*************基本shell命令的使用******
创新互联服务项目包括西盟网站建设、西盟网站制作、西盟网页制作以及西盟网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,西盟网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到西盟省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
1、在/home目录中创建两个文件夹,分别命名为dir1和dir2,在dir1下创建子目录d1,在dir1下创建子目录d2,分别对目录进行移动和删除的操作。
(1)在终端提示符下输入命令“mkdir
/home/dir1”,在home下创建dir1目录。输入命令“ls
/home”,可以看到dir1创建成功。
(2)在终端提示符下输入命令“mkdir
/home/dir1/d1”,在dir1下创建子目录d1。输入命令“ls
/home/dir1”,可以看到d1创建成功。
(3)在终端提示符下输入命令“mkdir
–p
/home/dir2/d2”,在home下创建子目录dir2,同时在dir2下创建子目录d2。输入命令“ls/home”,可以看到dir2创建成功。
(4)输入命令“cd
/home/dir2”,将工作路径转至/home/dir2。输入命令“ls”,可以看到d2创建成功。
(5)输入命令“cd
..”,将工作路径转至/home。
(6)输入命令“pwd”,显示当前工作路径为“/home”。
(7)输入命令“cd”,将工作路径转至用户主目录。
(8)输入命令“mv
/home/dir1/d1
/home/dir2”,将d1文件夹移动到dir2中。输入命令“ls/home/dir2”和“ls/home/dirl”,可以看到移动成功。
(9)输入命令“rmdir
/home/dir2/dl”,删除dl文件夹。输入命令“ls/home/dir2”,可以看到删除d1成功。
(10)输入命令“rmdir
–p
/home/dir2/d2”,删除dir2和d2文件夹。输入命令“ls
/home”,可以看到删除dir2成功。
2、在/home目录中创建一个名为f1的文件,对其进行复制、移动和删除等基本操作。
(1)在终端提示符下输入命令“cd
/home”,将当前的工作路径转换为/home。
(2)在终端提示符下输入命令“cat
f1”,之后输入f1的文本内容“this
is
f1”,按下ctrl+d快捷键结束输入。输入命令“ls”可以看到f1创建成功。
(3)在终端提示符下输入命令“cp
f1
dir1”,将f1复制到文件夹dir1中,输入命令“ls
/home/dir1”,可以看到f1复制成功。
(4)输入命令“rm
f1”,删除/home中的f1文件。在出现的提示信息后输入“y”,输入命令“ls”,可以看到f1删除成功。
(5)输入命令“mv
dirl/fl
/home”,将fl文件从dirl目录中移动到/home。输入命令“ls”,可以看到f1移动成功。
3、在/home目录中创建一个名为f2的文件,对其进行查找、统计等基本操作。
(1)在终端提示符下输入命令“cat
f2”,之后输入f2的文本内容如下:
linux
is
an
operating
system
for
computers.comparable
to
windows
or
mac
os
x.it
was
originally
created
starting
in
1
99
1
by
finnish
programmer
linus(pronounced
lee—nus)
torvalds
with
the
assistance
of
developers
from
around
the
globe.
按下ctrl+d快捷键结束输入。再输入命令“ls”可以看到f2创建成功。
(2)输入命令“head
-3
f2”,查看文件前3行文本内容。
(3)输入命令“tail
-2
f2”,查看文件最后两行文本内容。
(4)输入命令“grep‘linux’f2”,查找含有字符串“linux”的文本行。
(5)输入命令“wc
-w
f2”,统计f2中的单词个数。
(6)输入命令“find
f*”,在当前目录中查找以“f”开头的文件。
4、shell的高级应用。
(1)假定当前的目录是/home,输入命令“cd
d”之后按下tab键,系统自动补全命令“cd
dir1”,按下回车键后工作路径从当前的目录转换到/home/dir1下。
(2)输入命令“history
5”显示最近执行的5条命令。
(3)输入命令“alias
cgdir=‘cd
/home’”,为命令“cd
/home”设置别名“cgdir”。输入命令“cgdir”,工作路径从当前的目录转换到/home下。
(4)输入命令“ls
[!a-c]*,显示开头字符不是a、b、c的文件和文件夹。
Linux系统下由于系列所属不同,则对应的操作命令也略有不同。
Redhat系列RHE、FedoraCore、CentOS等。
Debian系列包括Debian和Ubuntu等。
Gentoo,伟大的Gentoo是Linux世界最年轻的发行版本。
支持kde和gnome,xface等桌面,桌面特效比较丰富,缺点是KDE虽然华丽多彩,但比较不 稳定。新手用这个也很容易上手。
RedHat系列的包管理工具是yum
Debian系列的包管理工具是apt-get
比如在RedHat系列下安装vim应该使用
而在Debian系列下应使用
查看系统当前版本应使用:
wget -c 后面是该网络地址和文件的位置。
例如:wget -c 就是下载该网络想的MySQL.zip压缩包。
其中-c:断点续传,如果下载中断,那么连接恢复时会从上次断点开始下载。
扩展资料:
wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载,并可以使用 HTTP 代理。"wget" 这个名称来源于 “World Wide Web” 与 “get” 的结合。
wget下载的参数设定:
--bind-address=ADDRESS 指定本地使用地址(主机名或IP,当本地有多个IP或名字时使用)
-nc, --no-clobber 不要覆盖存在的文件或使用.#前缀
--progress=TYPE 设定进程条标记
-N, --timestamping 不要重新下载文件除非比本地文件新
-T, --timeout=SECONDS 设定响应超时的秒数
-w, --wait=SECONDS 两次尝试之间间隔SECONDS秒
--waitretry=SECONDS 在重新链接之间等待1...SECONDS秒
--random-wait 在下载之间等待0...2*WAIT秒
递归下载:
-r, --recursive 递归下载--慎用!
-l, --level=NUMBER 最大递归深度 (inf 或 0 代表无穷).
--delete-after 在完毕后局部删除文件
-k, --convert-links 转换非相对链接为相对链接
-K, --backup-converted 在转换文件X之前,将之备份为 X.orig
-m, --mirror 等价于 -r -N -l inf -nr.
-p, --page-requisites 下载显示HTML文件的所有图片
参考资料:百度百科 wget
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令。
yum [options] [command] [package ...]
Linux wget是一个下载文件的工具,它用在命令行下。
wget (选项) url
RPM是RedHat Package Manager(RedHat软件包管理工具)
rpm [选项] [rpm软件包]
Linux安装基本命令大全
Linux常用命令,你还能记得多少呢?下文是我为大家准备的Linux常用命令,一起来看看吧!
安装升级
查看软件xxx安装内容
dpkg -L xxx
查找软件库中的软件
apt-cache search 正则表达式
或
aptitude search 软件包
显示系统安装包的统计信息
apt-cache stats
显示系统全部可用包的名称
apt-cache pkgnames
显示包的信息
apt-cache show k3b
查找文件属于哪个包
dpkg -S filename
apt-file search filename
查看已经安装了哪些包
dpkg -l
也可用
dpkg -l | less
翻页查看
查询软件xxx依赖哪些包
apt-cache depends xxx
查询软件xxx被哪些包依赖
apt-cache rdepends xxx
增加一个光盘源
sudo apt-cdrom add
系统更新
sudo apt-get update (这一步更新包列表)
sudo apt-get dist-upgrade (这一步安装所有可用更新)
或者
sudo apt-get upgrade (这一步安装应用程序更新,不安装新内核等)
清除所有已删除包的残馀配置文件
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
如果报如下错误,证明你的系统中没有残留配置文件了,无须担心。
----------------------------------------------------------
dpkg: --purge needs at least one package name argument
Type dpkg --help for help about installing and deinstalling packages [*];
Use `dselect' or `aptitude' for user-friendly package management;
Type dpkg -Dhelp for a list of dpkg debug flag values;
Type dpkg --force-help for a list of forcing options;
Type dpkg-deb --help for help about manipulating *.deb files;
Type dpkg --license for copyright license and lack of warranty (GNU GPL) [*].
Options marked [*] produce a lot of output - pipe it through `less' or `more' !
----------------------------------------------------------
编译时缺少h文件的自动处理
sudo auto-apt run ./configure
查看安装软件时下载包的临时存放目录
ls /var/cache/apt/archives
备份当前系统安装的所有包的列表
dpkg --get-selections | grep -v deinstall ~/somefile
从上面备份的安装包的列表文件恢复所有包
dpkg --set-selections ~/somefile
sudo dselect
清理旧版本的软件缓存
sudo apt-get autoclean
清理所有软件缓存
sudo apt-get clean
删除系统不再使用的孤立软件
sudo apt-get autoremove
如果使用
sudo apt-get autoremove --purge
的话会把这些孤立软件的残留配置文件也一并移除
查看包在服务器上面的地址
apt-get -qq --print-uris download 软件包名称 | cut -d\' -f2
彻底删除Gnome
sudo apt-get --purge remove liborbit2
彻底删除KDE
sudo apt-get --purge remove libqt3-mt libqtcore4
一键安装 LAMP 服务
sudo tasksel install lamp-server
删除旧内核
sudo aptitude purge ~ilinux-image-.*\(\!\(`uname -r`\|generic-.*\)\)
导入ppa源的'key值
#W: GPG签名验证错误: jaunty Release: 由于没有公钥,下列签名无法进行验证: NO_PUBKEY 5126890CDCC7AFE0
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 5126890CDCC7AFE0 #5126890CDCC7AFE0替换为你需要导入的Key值
增加 add-apt-repository 命令
sudo apt-get install software-properties-common
增加一个ppa源
sudo add-apt-repository ppa:user/ppa-name
#使用 ppa 的地址替换 ppa:user/ppa-name
添加163镜像源
sudo add-apt-repository "deb `lsb_release -cs` main restricted universe multiverse"
sudo add-apt-repository "deb `lsb_release -cs`-updates main restricted universe multiverse"
sudo add-apt-repository "deb `lsb_release -cs`-security main restricted universe multiverse"
系统升级
1 这里指的是版本间的升级,例如 9.04=10.04。
2 使用该升级方式通常需要使用 backports 源。
sudo apt-get update
sudo apt-get install update-manager-core
sudo do-release-upgrade
系统
查看内核
uname -a
查看系统是32位还是64位
#查看long的位数,返回32或64
getconf LONG_BIT
#查看文件信息,包含32-bit就是32位,包含64-bit就是64位
file /sbin/init
或者使用
uname -m
查看Ubuntu版本
lsb_release -a
或 cat /etc/lsb-release
查看内核加载的模块
lsmod
查看PCI设备
lspci
查看USB设备
lsusb
#加参数 -v 可以显示USB设备的描述表(descriptors)
lsusb -v
查看网卡状态
sudo apt-get install ethtool
sudo ethtool eth0
激活网卡的 Wake-on-LAN
sudo apt-get install wakeonlan
或 sudo ethtool -s eth0 wol g
查看CPU信息
cat /proc/cpuinfo
显示当前硬件信息
sudo lshw
查看内存型号
sudo dmidecode -t memory
获取CPU序列号或者主板序列号
#CPU ID
sudo dmidecode -t 4 | grep ID
#Serial Number
sudo dmidecode | grep Serial
#CPU
sudo dmidecode -t 4
#BIOS
sudo dmidecode -t 0
#主板:
sudo dmidecode -t 2
#OEM:
sudo dmidecode -t 11
显示当前内存大小
free -m |grep "Mem" | awk '{print $2}'
查看硬盘温度
sudo apt-get install hddtemp
sudo hddtemp /dev/sda
显示系统运行时间
uptime
查看系统限制
ulimit -a
查看内核限制
ipcs -l
查看当前屏幕分辨率
xrandr
硬盘
查看块设备
lsblk
查看硬盘的分区
sudo fdisk -l
硬盘分区
#危险!小心操作。
sudo fdisk /dev/sda
硬盘格式化
#危险!将第一个分区格式化为 ext3 分区, mkfs.reiserfs mkfs.xfs mkfs.vfat
sudo mkfs.ext3 /dev/sda1
硬盘检查
#危险!检查第一个分区,请不要检查已经挂载的分区,否则容易丢失和损坏数据
sudo fsck /dev/sda1
硬盘坏道检测
sudo badblocks -s -v -c 32 /dev/sdb
#得到坏的块后,使用分区工具隔离坏道。
分区挂载
sudo mount -t 文件系统类型 设备路经 访问路经
#常用文件类型如下: iso9660 光驱文件系统, vfat fat/fat32分区, ntfs ntfs分区, smbfs windows网络共享目录, reiserfs、ext3、xfs Linux分区
#如果中文名无法显示尝试在最後增加 -o nls=utf8 或 -o iocharset=utf8
#如果需要挂载後,普通用户也可以使用,在 -o 的参数後面增加 ,umask=022 如:-o nls=utf8,umask=022
分区卸载
sudo umount 目录名或设备名
只读挂载ntfs分区
sudo mount -t ntfs -o nls=utf8,umask=0 /dev/sdb1 /mnt/c
可写挂载ntfs分区
sudo mount -t ntfs-3g -o locale=zh_CN.utf8,umask=0 /dev/sdb1 /mnt/c
挂载fat32分区
sudo mount -t vfat -o iocharset=utf8,umask=0 /dev/sda1 /mnt/c
挂载共享文件
sudo mount -t smbfs -o username=xxx,password=xxx,iocharset=utf8 //192.168.1.1/share /mnt/share
挂载ISO文件
sudo mount -t iso9660 -o loop,utf8 xxx.iso /mnt/iso
查看IDE硬盘信息
sudo hdparm -i /dev/sda
查看软raid阵列信息
cat /proc/mdstat
参看硬raid阵列信息
dmesg |grep -i raid
cat /proc/scsi/scsi
查看SATA硬盘信息
sudo hdparm -I /dev/sda
或
sudo apt-get install blktool
sudo blktool /dev/sda id
查看硬盘剩余空间
df
df --help 显示帮助
查看目录占用空间
du -hs 目录名
闪盘没法卸载
sync
fuser -km /media/闪盘卷标
使用文件来增加交换空间
#创建一个512M的交换文件 /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=512
sudo mkswap /swapfile
sudo swapon /swapfile
#sudo vim /etc/fstab #加到fstab文件中让系统引导时自动启动
/swapfile swap swap defaults 0 0
查看硬盘当前读写情况
# 首先安装 sysstat 包
sudo apt-get install sysstat
#每2秒刷新一次
sudo iostat -x 2
测试硬盘的实际写入速度
dd if=/dev/zero of=test bs=64k count=512 oflag=dsync
进程
查看当前的内存使用情况
free
连续监视内存使用情况
watch -d free
# 使用 Ctrl + c 退出
动态显示进程执行情况
top
top指令运行时输入H或?打开帮助窗口,输入Q退出指令。
查看当前有哪些进程
ps -AFL
查看进程的启动时间
ps -A -opid,stime,etime,args
查看目前登入用户运行的程序
w
查看当前用户程序实际内存占用,并排序
ps -u $USER -o pid,rss,cmd --sort -rss
统计程序的内存耗用
ps -eo fname,rss|awk '{arr[$1]+=$2} END {for (i in arr) {print i,arr[i]}}'|sort -k2 -nr
按内存从大到小排列进程
ps -eo "%C : %p : %z : %a"|sort -k5 -nr
列出前十个最耗内存的进程
ps aux | sort -nk +4 | tail
按cpu利用率从大到小排列进程
ps -eo "%C : %p : %z : %a"|sort -nr
ps aux --sort -pcpu |head -n 20
查看当前进程树
pstree
中止一个进程
kill 进程号(就是ps -A中的第一列的数字)
或者 killall 进程名
强制中止一个进程(在上面进程中止不成功的时候使用)
kill -9 进程号
或者 killall -9 进程名
图形方式中止一个程序
xkill 出现骷髅标志的鼠标,点击需要中止的程序即可
查看进程打开的文件
lsof -p 进程的pid
显示开启文件abc.txt的进程
lsof abc.txt
显示22端口现在运行什么程序
lsof -i :22
显示nsd进程现在打开的文件
lsof -c nsd
在後台运行程序,退出登录後,并不结束程序
nohup 程序
#查看中间运行情况 tail nohup
在后台运行交互式程序,退出登录后,并不结束程序
sudo apt-get install screen
screen vim a.txt
#直接退出后使用
screen -ls # 2208pxs-0.ubuntu (Detached)
screen -r 1656 #恢复
#热键,同时按下Ctrl和a键结束后,再按下功能键
C-a ? #显示所有键绑定信息
C-a w #显示所有窗口列表
C-a C-a #切换到之前显示的窗口
C-a c #创建一个新的运行shell的窗口并切换到该窗口
C-a n #切换到下一个窗口
C-a p #切换到前一个窗口(与C-a n相对)
C-a 0..9 #切换到窗口0..9
C-a a #发送 C-a到当前窗口
C-a d #暂时断开screen会话
C-a k #杀掉当前窗口
在后台运行交互式程序,退出登录后,并不结束程序
tmux 进入后再运行其它命令
tmux attach #恢复
#热键,同时按下Ctrl和b键结束后,再按下功能键
C-b c #创建一个新的运行shell的窗口并切换到该窗口
C-b n #切换到下一个窗口
C-b p #切换到前一个窗口(与C-a n相对)
C-b 0..9 #切换到窗口0..9
C-b d #暂时断开会话
C-b #杀掉当前窗口
详细显示程序的运行信息
strace -f -F -o outfile
增加系统最大打开文件个数
#ulimit -SHn
sudo vim /etc/security/limits.conf
文件尾追加
* hard nofile 4096
* soft nofile 4096
sudo vim /etc/pam.d/su
将 pam_limits.so 这一行注释去掉
重起系统
清除僵尸进程
ps -eal | awk '{ if ($2 == "Z") {print $4}}' | xargs sudo kill -9
将大于120M内存的php-cgi都杀掉
ps -eo pid,fname,rss|grep php-cgi|grep -v grep|awk '{if($3=120000) print $1}' | xargs sudo kill -9
Linux系统中如何限制用户进程CPU占用率
renice +10 `ps aux | awk '{ if ($3 0.8 id -u $1 500) print $2}'`
#或直接编辑/etc/security/limits.conf文件。 ;
在我们渗透测试的过程中,通常会需要向目标主机传送一些文件,来达到提权,维持控制等目的。因此当不方便进行直接传输时,同时目标主机是能有网络连接的,那么此时就可以通过本地下载这种方法来达到文件传输的目的。此篇文章,我会对互联网上针对win与linux大部分的下载指令来做一个汇总,可能会有疏漏,但汇总的都是经常会用的。
这款工具功能很丰富,可以充当某种功能完备的GUI下载管理器,它拥有一款理想的下载管理器所需要的所有功能,比如它可以恢复下载,可以下载多个文件,出现某个连接问题后,可以重新尝试下载,你甚至可以管理最大的下载带宽。
直接下载:
后台下载:
如果互联网连接出现中断,恢复下载:
从某个密码保护的ftp软件库下载文件:
Curl是另一种高效的下载工具,它可以用来上传或下载文件,只要使用一个简单的命令。它支持暂停和恢复下载程序包,并支持数量最多的Web协议,可预测下载完成还剩余多少时间,可通过进度条来显示下载进度。它是所有Linux发行版的内置工具。
直接下载:
借助-o选项,提供名称,下载文件会以该名称保存;如使用-O选项,文件就会以原始名称保存。
这是wget的出色替代者,是一款轻量级下载实用工具。它实际上是个加速器,因为它打开了多路http连接,可下载独立文件片段,因而文件下载起来更快速。
直接下载:
这是一种开源命令行下载加速器,支持多个端口,你可以使用最大带宽来下载文件,是一款易于安装、易于使用的工具。
直接下载:
Perl是一门很吊的语言,使用它基本可以实现任何事情,用它实现文件下载也很简单。
执行脚本文件是这样:
Python也是很受欢迎的主流脚本语言,代码清晰且简洁:
Ruby是一个面对对象的语言,Metasploit框架就是用它来实现的,当然他也可以实现像下载文件这样的小任务。
执行脚本文件是这样;
PHP作为一种服务端脚本,也可以实现下载文件这种功能。
执行脚本文件是这样:
一般情况下攻击者使用FTP上传文件需要很多交互的步骤,下面这个 bash 脚本,考虑到了交互的情况,可以直接执行并不会产生交互动作。
当然根据实际情况也可以进入交互终端:
攻击者的电脑上输入:
这个命令会将file的内容输出到本地的1234端口中,然后不论谁连接此端口,file的内容将会发送到连接过来的IP。
目标电脑上的命令:
这条命令将连接攻击者的电脑,接受file内容保存。
PowerShell 是一种winodws原生的脚本语言,对于熟练使用它的人来说,可以实现很多复杂的功能。
下面这两条指令实现了从Internet网络下载一个文件。
可以应用到: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2
文件下载并执行如下:
在1998年Visual Basic最终标准在windows上确定。下面的代码可以实现下载文件,虽然它的长度比Powershell长多了。
在windows中Cscript指令可以允许你执行VBS脚本文件或者对script脚本做一些设置。在windows 7中这个指令并不是必须要用到。但是在windows XP中需要使用这条指令,如下所示:
在Windows Vista以及以后的版本中默认有FTP,可以使用以下命令运行:
上传:
下载:
Bitsadmin是Windows命令行工具,用户可以使用它来创建下载或上传的任务。只能命令下载到指定路径上,win7以上:
mshta 内容如下:
依赖于WScript.shell这个组件:
Regsvr32命令用于注册COM组件,是 Windows 系统提供的用来向系统注册控件或者卸载控件的命令,以命令行方式运行。
WinXP及以上系统的regsvr32.exe在windowssystem32文件夹下;2000系统的regsvr32.exe在winntsystem32文件夹下。
test.data内容:
还可以利用 生成sct文件:
Windows shares可以加载一个驱动器,然后用命令来复制文件。
加载远程驱动:
当需要把一个exe文件放到目标计算机上时,Nishang可以使用PowerShell允许你把一个exe转换成hex,然后把hex再转换成原来的exe文件:
把exe转成hex文件输入:
打开evil.txt文件,复制内容,然后通过RDP的剪贴板复制进目标计算机,把hex文件还原成exe文件输入:
1.MSXSL.EXE
msxsl.exe是微软用于命令行下处理XSL的一个程序,所以通过他,我们可以执行JavaScript进而执行系统命令。
2.pubprn.vbs在Windows 7以上版本存在一个名为PubPrn.vbs的微软已签名WSH脚本,其位于
3.esentutl.exe/extrac32.exe
4.desktopimgdownldr.exedesktopimgdownldr.exe 位于 Win10 的 system32 文件夹中,原本用于设置锁定屏幕或桌面背景图像的。
普通用户可以用:
这样来下载文件。
可以把C:ProgramData来改成一个普通用户可写的目录。
下载的文件存放于:
管理员用户会多写一个注册表项,所以管理员最好的命令是:
作者:肖洋肖恩、
原文链接: