熟悉BASH命令
Ls、cd、pwd、cat、more、tail、cp、rm、top、ps、greg、ifconfig、netstat、awk、sort、route、mount、dmesg、find、whereis、Echo、vi
管道
shell脚本
root@kali:~# ls //列出当前目录
root@kali:~# ls -l //长格式显示文件名
root@kali:~# ls /dev -l
[扩展知识]:“-”表示普通文件,“d”表示是一个目录(directory),事实上在ext2fs中,目录是一个特殊的文件。,“l”表示这是一个符号链接(symbol link)文件,实际上它指向另一个文件。,“b”代表设备文件,c表示字符型的设备,f表示一个连接,s、p:这些文件关系到系统的数据结构和管道(pipe),通常很少见到。
root@kali:~# ls -a //列出文件下所有的文件,包括以“.“开头的隐藏文件(linux下文件隐藏文件是以.开头的,如果存在..代表存在着父目录)。
root@kali:~# ls -1h //h参数与l参数结合,更合理的显示文件的大小。
root@kali:~# ls -1h --sort=size //按照大小排序
root@kali:~# ls -1h --sort=time //按照时间排序
root@kali:~# cd
root@kali:~# cd /media/
root@kali:~/media# ls
cdrom cdrom0 sf_D_DRIVE
root@kali:~/media# cd .
root@kali:~/media# cd ..
root@kali:/# pwd
/
root@kali:/# cd
root@kali:~# pwd //查看当前的目录
/root
root@kali:~# cat /var/log/messages //一次显示整个文件
root@kali:~# more /var/log/messages //more命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。
root@kali:~# less /var/log/messages //less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
root@kali:~# tail /var/log/messages //用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
root@kali:~# tail -20 /var/log/messages //查看20行
root@kali:~# watch -n 2 tail -20 /var/log/messages 每隔两秒钟跳一下最后20行的内容查看事实的信息
root@kali:~# ls
Agent battery burpsuite_pro_v1.6 Desktop Downloads jdk-8u45-linux-x64.tar KALI培训 net.txt Notebook ps ps1
root@kali:~# rm net.txt //删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。
root@kali:~# ls
Agent battery burpsuite_pro_v1.6 Desktop Downloads jdk-8u45-linux-x64.tar KALI培训 Notebook ps ps1
root@kali:~# rm ps1 //删除文件ps1
root@kali:~# ls
Agent battery burpsuite_pro_v1.6 Desktop Downloads jdk-8u45-linux-x64.tar KALI培训 Notebook ps
root@kali:~# cp ps ps1 //复制文件
root@kali:~# ls
Agent battery burpsuite_pro_v1.6 Desktop Downloads jdk-8u45-linux-x64.tar KALI培训 Notebook ps ps1
root@kali:~# cp -r Agent/ A //复制目录
root@kali:~# ls
A Agent battery burpsuite_pro_v1.6 Desktop Downloads jdk-8u45-linux-x64.tar KALI培训 Notebook ps ps1
root@kali:~# rm -r A //删除目录A
root@kali:~# ls
Agent battery burpsuite_pro_v1.6 Desktop Downloads jdk-8u45-linux-x64.tar KALI培训 Notebook ps
root@kali:~# top //监视linux系统性能,显示的前五行是系统整体的统计信息。显示的前五行是系统整体的统计信息。最后两行为内存信息。
root@kali:~# ps //所有使用者
PID TTY TIME CMD
3490 pts/0 00:00:00 base
3922 pts/0 00:00:00 ps
root@kali:~# ps -ef //列出详细的信息
root@kali:~# ps aux //显示其他用户启动的程序(a);查看系统中属于自己的进程(x);启动这个进程的用户和它启动的时间(u)
root@kali:~# grep ssh /etc/passwd //搜索只含shh字符串的信息
sshd x: 115: 65534::/var/run/sshd:/usr/sbin/nologin
root@kali:~# ifconfig // 查看本机信息
root@kali:~# ifconfig eth0 down //down掉eth0网卡
root@kali:~# macchanger -m 00:11:11:11:11:11 eth0 //修改mac地址
root@kali:~# ifconfig eth0 up //打开网卡
root@kali:~# netstat -pantu //查看网络的链接信息,显示建立相关链接的程序名,显示所有选项,拒绝显示别名,能显示数字的全部转化成数字,显示tcp和udp
root@kali:~# cat /etc/resolv.conf
#Donamic resolv.conf(5) file for glbc resolver generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWARTTEN
nameserver 124.207.160.106
nameserver 219.239.26.42
root@kali:~# vi /etc/resolv.conf //配置Ip地址
#Donamic resolv.conf(5) file for glbc resolver generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWARTTEN
nameserver 192.168.1.1
root@kali:~# netstat -pantu | egrep -v '0.0.0.0|::::' //显示外网ip地址
root@kali:~# netstat -pantu | egrep -v '0.0.0.0|::::'| awk '{print $5}' //只显示第五列的ip地址
root@kali:~# netstat -pantu | egrep -v '0.0.0.0|::::'| awk '{print $5}'| egrep -v 'and|address'
//只显示第五列的ip地址不包含and和adress
root@kali:~# netstat -pantu | egrep -v '0.0.0.0|::::'| awk '{print $5}'| egrep -v 'and|address | cut -d ':' -f 1 |
//只显示第五列的ip地址,不包含and和adress,只显示一行
root@kali:~# netstat -pantu | egrep -v '0.0.0.0|::::'| awk '{print $5}'| egrep -v 'and|address | cut -d ':' -f 1 | sort | uniq
root@kali:~# netstat -pantu | egrep -v '0.0.0.0|::::'| awk '{print $5}'| egrep -v 'and|address | cut -d ':' -f 1 | sort | uniq > ip
//只显示第五列的ip地址,不包含and和adress,只显示一行,ip地址打印到ip文件上
root@kali:~# netstat -pantu | egrep -v '0.0.0.0|::::'| awk '{print $5}'| egrep -v 'and|address | cut -d ':' -f 1 | sort | uniq >> ip
//只显示第五列的ip地址,不包含and和adress,只显示一行,新的ip地址追加到ip文件上
root@kali:~# mount -o loop kali.iso /media/cdrom//kali.iso操作系统挂载到/media/cdrom目录中
root@kali:~# tail /var/log/messages 查看messages
root@kali:~# demsg /var/log/messages
root@kali:~# find / -name nmap //找到名字叫nmap
root@kali:~# find / -iname nmap //不区分大小写Nmap
root@kali:~# find . -name "ps*" //找到ps之类的都能找出来
root@kali:~# find . -name "ps*" -exec cp {} /tmp/{}.bak \; //搜索的结果复制到tmp目录下
root@kali:~# whereis nmap
//查找nmap,和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。
root@kali:~# whereis -b namp //查找nmap二进制的执行文件
root@kali:~# updatedb //更新
root@kali:~# echo "hello word" // 显示“hello word"
root@kali:~# vi //vi编辑器
[课外拓展]
vi的基本概念
基本上vi可分为三种操作状态,分别是命令模式(Command mode)、插入模式(Insert mode)和底线命令模式(Last line mode),各模式的功能区分如下:
1. Comand mode:控制屏幕光标的移动,字符或光标的删除,移动复制某区段及进入Insert mode下,或者到Last line mode。
2. Insert mode:唯有在Insert mode下,才可做文字数据输入,按Esc等可回到Comand mode。
3. Last line mode:将储存文件或离开编辑器,也可设置编辑环境,如寻找字符串、列出行号等。
不过可以把vi简化成两个模式,即是将Last line mode也算入Command mode,把vi分成Command 和Insert mode。
通过冒号输入命令
:set nu //显示行号
:wq //保存并退出
输入i可以编辑文本
esc之后到命令模式
按dd可以删除一行
按o插入一行,进入编辑模式
w进行文字粘贴复制
输入q!放弃编辑
管道:
root@kali:~# cat /etc/passwd |grep ssl
sslh x: 122: 132::/noexistent:/bin/false
root@kali:~# cd /etc/passwd & grep ssl //前后两个运用都会一次被运用
root@kali:~# cd aaa & ls
root@kali:~# cd aaa && ls
root@kali:~# cd aaa || ls
shell脚本
root@kali:~# viThis is a premium name
按a进入编辑模式
/bin/bash //启始行
echo -n -IP : -
read ip //定义一个变量叫ip
echo "your ip is :" $ip
保存退出
root@kali:~# chmod +xThis is a premium name//更改附加增加可执行的文件
root@kali:~# ls -lThis is a premium name//查看它的权限
root@kali:~# ./1.sh //执行文件
IP :192.168.1.100
your ip is : 192.168.1.100
99成法表shell命令:
/bin/bash
for n in ‘seq 9’ //n是一个变量
do
for m in 'seq $n' //m是一个变量
do
echo -n "$m*$n=*" 'expr $m \* $n'" "
done
echo
done
/bin/bash
for n in 'seq 254'
do
ping 192.168.1.$n -c 1 | grep ttl | awk '{print $4}' | awk -F: '{print $1}'
done
root@kali:~# ping 192.168.1.1 -c 1 | grep ttl | awk '{print $4}' | awk -F: '{print $1}'
root@kali:~# ./ping.sh
/bin/base
A='cat ip1
for B in $A
do
n='echo $B | wc -L
if [ $n -gt 6 ] ; then
ip=$B
else
port=$B
nmap -p$port -sV $ip | grep -v Startinb | grep -v Host | grep -v PORT | grep -v Service |grep -v done >> r2
fi
done