苑房弘老师的课程,需要点基础才跟得上…
获取管理员权限
sudo -s
ls
可读性较好的并且按照文件大小排序显示(参数为 time 则按时间排序)
ls -lh --sort=size
cat
打开文件
cat /var/log/messages
more
分页显示,一页显示为完则停止,Enter 继续显示下一行,q 退出
more /var/log/messgaes
less
与 more
几乎一样,只是左下角不显示“已经显示数据的百分比”
less /var/log/messages
tail
上面两个命令,信息显示的过多,有个更方便的 tail ,
-20 表示显示最下面的 20 条数据,不加这个参数默认为 10 条。
tail -20 /var/log/messages
dmesg
可以直接查看 /var/log/messages 的内容
tail
一般和 watch
结合使用,
表示每隔2秒自动刷新查看的文件的内容
watch -n 2 tail -20 /var/log/messages
cp
拷贝文件 dir1 到当前目录,并命名为 dir2
cp dir1 dir2
拷贝文件夹 Agent 到当前目录,并命名为 A
cp -r Agent/ A
rm
删除文件 dir1
rm dir1
删除文件夹 A
rm -r A
top
top
是个重要命令,可以用来监控 linux 系统
进入 top 界面后,按 k,再输入 ID,可以杀掉这个 ID 的进程。
top
ps
ps
是专门显示进程信息的命令,可以加点参数显示的更详细
ps
ps -ef
ps -aux
grep
cat
命令打开某个文件可能过于庞杂,grep 命令用来筛选,
例如查看在 /etc/passwd 文件里包含 ss 字符的行
grep ss /etc/passwd
ifconfig
是 linux 中用于显示或配置网络设备(网络接口卡)的命令
ifconfig
下面使用 ifconfig
查看网卡,关闭 eth0 网卡,修改 mac 地址,再开启
ifconfig
ifconfig eth0 down
macchanger -m 00:11:11:11:11:11 eth0
ifconfig eth0 up
netstat
下面介绍一系列关于 netstat
指令,
# netstat命令用于显示各种网络相关信息,-pantu 是参数
netstat -pantu
中间的 ‘|’ 是管道,表示同时执行多个命令
egrep
是增强的 grep
,用于检索过滤,参数 -v 是排除
egrep -v '0.0.0.0|:::'
表示排除有 ‘0.0.0.0’ 或 ‘:::’ 出现的行
netstat -pantu | egrep -v '0.0.0.0|:::'
awk
用于显示文本,awk '{print $5}'
表示以空白分隔,显示文本的第5段内容
netstat -pantu | egreop -v'0.0.0.0|:::' awk '{print $5}'
cut
用于剪切字符,cut -d ':'
表示指定分隔符为 “:”, 为什么要这么指定,看上面那张图,IP 和 端口 之间用 “:” 分隔,cut -d ':' -f 1
表示指定":"分隔符后,选取分隔的第一部分,即选取前面的 IP。
netstat -pantu | egreop -v'0.0.0.0|:::' awk '{print $5}' | egrep -v 'and|Address' | cut -d ':' -f 1
选取出来的 IP 可能有重复的,我们用 sort
排序,再用uniq
去重(顺序不可颠倒)
netstat -pantu | egrep -v '0.0.0.0|:::' | awk '{print $5}' | egrep -v 'and|Address' | cut -d ':' -f 1 | sort | uniq
> ip
表示将查询到的内容输出到当前目录的 ip 文件,没有 ip 文件会自动创建,存在则会覆盖其的内容。
>> ip
表示追加到文件内容后面而不是覆盖。
netstat -pantu | egrep -v '0.0.0.0|:::' | awk '{print $5}' | egrep -v 'and|Address' | cut -d ':' -f 1 | sort | uniq > ip
mount
mount
用来查看当前挂载的文件,或者是挂载光盘文件后查看其内容
将 kali.iso 文件挂载到 /media/cdrom
mount -o loop kali.iso /media/cdrom
find
find
用来查找文件,
从**根目录(/)**开始查找 nmap 文件,如果参数为-iname
表示忽略大小写
find / -name -nmap
从**当前目录(.)**开始查找 ip 文件,-exec
表示执行操作
cp {} /yusael/{}.bak \;
将查找到的文件,批量拷贝到 /yusael/ 目录,并以 .bak 为后缀重命名。
find . -name 'ip' -exec cp {} /yusael/{}.bak \;
whereis
whereis
也用来查找文件,速度比find
更快,但是只能查找通过包管理安装获取的文件,通过源码安装的软件是找不到的。因为通过包管理安装获取的文件会记录在本地的数据库,用whereis
前可以用updatedb
更新一下数据库。
update db;
whereis nmap;
-b
参数表示查找二进制文件,即会找出可执行文件。
whereis - b nmap
vi常用命令
vi
进入vi编辑器,先按ESC,然后输入冒号(:),进入命令模式
非命令模式下,i
插入,a
添加,o
在当前光标所在处下面插入一行,y
复制,p
粘贴
命令模式下,wq
保存,wq!
强制的保存退出
管道
cat /etc/passwd | grep ssl
]查看 /etc/passwd 文件,并且只显示有 ssl 的行。
cd aaa || ls
|| 表示先执行前面的,不成功才会去执行后面的,成功则不执行。
cd yusael & ls
& 表示两个命令同时执行,哪怕一个是错的另一个也会执行。注意是同时,比如这条命令的结果是查看cd
前的目录文件,而不是先cd
再ls
。
cd yusael && ls
&& 先执行前一个命令,成功后再执行后面的,失败则不执行。
Shell 脚本
使用 vi 编辑器来编写一个shell脚本,保存为 1.sh 。
输入vi
,打开vi编辑器,按i
进入编辑模式。
写入以下代码,
#! /bin/bash
echo -n "IP:" # -n表示光标不换行
read ip
echo "your ip is:" $ip
编辑完后,按 ESC,进入命令模式,输入wq 1.sh
,保存文件名为 1.sh。
chmod +x 1.sh
给文件赋予可执行权限,ls -l 1.sh
查看 1.sh 的文件权限,./1.sh
执行文件。
Shell 打印99乘法表
#!/bin/bash
for i in `seq 9`
do
for j in `seq $i`
do
echo -n "$i*$j="`expr $i \* $j`" "
done
echo
done
ping 的脚本
这个脚本用来 ping 192.168.1.1
到 ping 192.168.1.254
,用ping
来发现所有192.168.1开头的,存活的IP地址。
for n in `sqe 254`
do
ping 192.168.1.$n -c 1 | grep ttl | awk '{print $4}' | -F: '{print $1}'
done
转载:https://blog.csdn.net/weixin_43734095/article/details/104570443