1、执行渗透测试时,清除history历史命令
如果我们登陆了别人的服务器,不想让别人知道我们都在服务器上面进行了哪些操作,在退出登录或者操作时需要进行行为隐藏以及环境恢复,可以采用以下两种方式
# 第一种方式:history -c
# 第二种方式:输入操作命令时, 在操作命令前面添加一个空格,那这条命令就不会被 history 保存到历史记录
2、快速搜索历史命令
# 第一种方式:ctrl + r 后输入要搜索的命令关键字
3、历史命令高级使用技巧
# 1、重复执行上一条命令
!!
# 2、重复执行 history 历史中第 N 条命令,N 可以通过 history 查看
!N
# 3、重复执行最近一次,以pw开头的历史命令,这个非常有用
!pw
# 4、表示最近一次命令的最后一个参数
!$
这里我之前使用了ls命令查看了某个目录,这里我们又需要再次访问这个目录,当时这个目录路径有很长记不住,一层一层+tab输入很影响工作效率,怎么办?这里就可以使用!$
,!$
代表的就是自动获取上一条命令的最后一个参数。直接使用!$
代表我们上一条命令中输入的那一长串路径名称即可。
4、批量下载网络资源
现在有很多的网站提供了很多的安装包、数据文件、文本文件,如果我们需要批量获取这些文件,就可以使用下面这条命令,可以下载当前网页上所有的.zip压缩文件
# --accept参数就是过滤资源类型格式,当前命令为.zip文件
wget -r -nd -np --accept=zip http://npm.taobao.org/mirrors/chromedriver/2.0/
6、Linux上获取你的公网IP地址
方式有很多,我把我常用的和同事推荐的都汇总到这里
# 方式一
curl ip.sb
# 方式二(这个是其他同事推荐的,我试了有时不生效)
curl ifconfig.me
# 方式三
curl cip.cc
# 方式四
curl ip.cip.cc
# 方式五
curl myip.ipip.net
# 方式六
curl http://members.3322.org/dyndns/getip
# 方式七
curl ipinfo.io
7、Linux上查看ascii码表
man ascii
8、统计程序运行时间
在 Linux 下,可以通过 time 命令来统计程序的运行耗时
time ./test.sh
# 输出结果
# real xxxxxxs
# user xxxxxxs
# sys xxxxxxs
# real:表示的钟表时间,也就是从程序执行到结束花费的时间;
# user:表示运行期间,cpu 在用户空间所消耗的时间;
# sys:表示运行期间,cpu 在内核空间所消耗的时间;
# 1、因为 user 和 sys 只统计 cpu 消耗的时间,当时程序运行期间会调用 sleep 发生阻塞,也可能会等待网络或磁盘 IO,都会消耗大量时间。因此对于类似情况,real 的值就会大于其它两项之和。
# 2、如果是程序在多个 cpu 上并行执行的场景,那user 和 sys 统计时间是多个 cpu 时间,实际消耗时间 real 很可能就比其它两个之和要小。
9、时间戳的快速转换
# 查看当前日期时间戳的秒值表示(seconds since 1970-01-01 00:00:00 UTC)
date +%s
# 查看当前日期时间的年份(xxxx)
date +%Y
# 查看当前日期时间的年份后两位(00-99)
date +%y
# 查看当前日期时间的月份(01-12)
date +%m
# 查看当前日期时间在该月的天数序号(01-31)
date +%d
# 查看当前日期时间的小时数(00..23)
date +%H
# 查看当前日期时间的分钟数(00..23)
date +%M
# 查看当前日期时间的秒值(second (00..60))
date +%S
# 时间戳转换为日期时间
date -d@1518382548 +"%Y-%m-%d %H:%M:%S"
- 示例一:查询当前日期时间的时间戳
- 示例二:时间戳转为日期时间
10、动态实时查看日志
动态地监控日志文件的变化,非常实用,问题定位时使用很舒服
# 命令一:不会自动退出
tailf xxxx.log
# 命令二:不会自动退出
tail -f xxxx.log
# 命令三:当日志文件中出现匹配的字符时,自动退出日志监控
# 当日志文件的行中出现了compeleted时,自动退出日志监控
tailf xxxx.log | sed "/compeleted/ q"
# 当日志文件的行中出现了compeleted时,自动退出日志监控
tail -f xxxx.log | sed "/compeleted/ q"
11、 查看某个进程的运行时间
查看进程及进程详细信息的命令大多数人可能都会使用,ps -ef | grep 服务名称
或者ps -aux | grep 服务名称
# 查看某个进程的具体运行时间,通过 etime 获取该进程的运行时间
ps -p 进程pid -o etimes,etime
# 查看某个进程的内存信息
ps -p 进程pid -o rss
12、 dd命令的妙用
- 快速制作系统盘
- 快速生成大文件
- 安全删除硬盘数据
# 高效,安全擦除硬盘数据的方法, 使用 /dev/urandom 生成随机数据,将生成的数据写入 sda 硬盘中,相当于安全的擦除了硬盘数据
dd if=/dev/urandom of=/dev/sda
# 生成一个文件名为 test.png 大小为 100G 的文件, 常用来模拟服务器百分比负载下的性能压测使用
dd if=/dev/zero of=test.png bs=100M count=1024
# 在 Linux 下制作系统盘, sdb 可以 U 盘,也可以是普通硬盘
dd if=ubuntu-server-amd64.iso of=/dev/sdb
13、 删除乱码目录或者文件
在 Linux 系统中,由于默认编码不兼容的问题,导致经常会出现ftp上传的文件或者程序自动创建的文件名称乱码。想要删除它,却无法通过键盘输入名字,有时候复制粘贴乱码名称,终端可能识别不了,该怎么办?
直接拷贝文件名称暴力删除也无不可。。。
希望优雅高级一点儿,可以使用以下方式:
# 查看文件的node节点编号
ls -i
# -inum 指定的是文件的 inode 号,它是系统中每个文件对应的唯一编号,find 通过编号找到后,执行删除操作。
find . -inum 132395 -exec rm {} \;
14、使用 truncate 命令创建大文件
truncate 命令将一个文件缩小或者扩展到所需大小。使用 -s 选项来指定文件的大小。
接下来,我们使用 truncare 命令来创建一个 2GB 大小的文件。
truncate -s 2G rumenz.img
可以使用ls -lh rumenz.img命令查看生成的文件。
默认情况下,如果请求的输出文件不存在,truncate 命令将创建新文件。我们可以使用 -c 选项来避免创建新文件。
15、使用 fallocate 命令创建大文件
fallocate 命令是我比较推荐的创建大文件的方法,因为它创建大文件的速度是最快的。
假设我们要创建一个 1 GB 的文件,可以执行以下操作:
fallocate -l 1G rumenz.img
可以使用ls -lh rumenz.img查看生成的文件。
16、kill 进程
ps -ef|grep 进程名称 | grep -v grep |awk '{print "kill -9 " $2}' | sh