常用BASH命令
- ls、cd、pwd、cat、more、tail、cp、rm、top、ps、grep、ifconfig、netstat、awk、sort、route、mount、amesg、find、whereis、echo、vi
ls # 显示当前目录下的目录及文件
ls -a # 显示包括隐藏文件
ls -lh # 显示文件目录详细信息(加上h是将文件大小换算为K或者M,否则为字节大小)
cd # 进入某一个目录
cd .. # 返回上一级目录
cd ~ # 进入用户主目录
cat 1.txt # 查看文件(适用于小文件,直接显示整个文件)
more 1.txt # 查看文件(适用于大文件,只显示一页,回车可以翻页,q退出)
less 1.txt # 和more基本相同
tail 1.txt # 查看最后十行
tail -20 1.txt # 查看最后20行
watch -n 2 tail -20 1.txt # 每两秒钟查看一下1.txt最后20行,相当于每两秒钟刷新一次
rm 1.txt # 删除文件
rm -r 1 # 删除目录1
cp 1.txt 1back.txt # 复制文件1并命名为1back.txt
cp -r 1 2 # 复制目录1并命名为2
top # 任务管理器
ps # 查看进程信息
ps -ef # 查看进程详细信息
ps aux # 与-ef参数相近
grep ssh /etc/passwd # 显示只包含ssh的内容
grep -v '0' # 不显示包含0的内容
ifconfig # 查看网络信息
ifconfig eth0 down # 关闭eth0网卡
macchanger -m 00:11:11:11:11:11 eth0 # 修改eth0 Mac地址(仅本次开机期间有效)
ifconfig eth0 up # 启动网卡
netstat -pantu # 查看TCP/UDP连接情况
netstat -pantu | egrep -v '0.0.0.0'|':::' # 不显示0.0.0.0或者:::
netstat -pantu | egrep -v '0.0.0.0'|':::' | awk '{print $5}' # 仅输出第五列数据
netstat -pantu | egrep -v '0.0.0.0'|':::' | awk '{print $5}' | cut -d ':' -f 1 # 以:分块并且显示第一块
netstat -pantu | egrep -v '0.0.0.0'|':::' | awk '{print $5}' | cut -d ':' -f 1 | sort | uniq # 重复的只显示一次
netstat -pantu | egrep -v '0.0.0.0'|':::' | awk '{print $5}' | cut -d ':' -f 1 | sort | uniq > ip.txt # 将结果覆盖输出到ip.txt文件(没有则会创建)。>为覆盖,>>为追加。
mount # 查看当前挂载
mount -o loop kali.iso /media/cdrom # 将指定文件挂载到指定目录
dmesg # 查看/var/log/messages
find / -name a.txt # 在根下查找指定文件
find / -iname a.txt # 忽略大小写
find . -name a* # *是通配符代表任意字符串
whereis # whereis命令只能用于程序名的搜索。如果省略参数,则返回所有信息。
whereis -b # 搜索二进制文件
whereis -m # man说明文件(参数-m)
whereis -s # 源代码文件(参数-s)
echo "hello world" # 回显
- 简单的shell脚本
1. 一个简单的shell脚本
vi 1.sh # 创建一个脚本文件
文件内容如下:
#!/bin/bash
echo "Hello World!"
echo -n "Please input something:"
read thing
echo $thing
保存退出。
增加执行权限:
chmod +x 1.sh
执行:
./1.sh
效果如下:
2. 九九乘法表shell脚本:
vi 99.sh
输入内容:
#!/bin/bash
for n in `seq 9`
do
for m in `seq $n`
do
echo -n "$m*$n=" `expr $m \* $n`" "
done
echo
done
增加执行权限:
chmod +x 99.sh
执行:
./99.sh
效果如下:
3. 简单的ping脚本(显示一个网段的在线主机)
vi ping.sh
内容如下:
#!/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
增加执行权限:
chmod +x ping.sh
执行:
./ping.sh
效果如下:
4. 批量扫描已知和ip和端口
创建和执行方法将不再赘述
内容如下:
#!/bin/bash
A = `cat ip.txt`
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 Starting | grep -v Host | grep -v PORT | grep -v Service | grep -v done >> result1
fi
done
ip.txt内容如下:
211.144.139.4
80
8080
211.144.139.30
18001
18063
127.0.0.1
3389
443
8080
80
扫描结果将会保存到result1
上一篇:【渗透测试笔记】之【渗透测试介绍】
下一篇:【渗透测试笔记】之【配置KALI】