过滤特定的行#
# 从文本中过滤带有vpn的行
grep -v "vpn" 文件名
端口#
# 查看所有服务的默认端口名称和端口号
getent services
以 sudo 身份运行上一条命令#
sudo !!
find#
#显示文件内容并输出当前文件名
find . -type f -print -exec cat {} \;
#在当前目录及其子目录中查找文件大小为0的文件,并显示文件的详细信息。
find . -size 0 -type f -exec ls -lh "{}" \;
#在当前目录下查找修改时间为最近一天的所有文件,并且文件名以.md结尾,但不包括名为"template.md"和"temp.md"的文件
find . -maxdepth 1 -type f -mtime -1 -name "*.md" -not -name "template.md" -not -name "temp.md" -exec ls -lh "{}" \;
#在当前目录下查找查找最近两天修改过的文件且文件名中包含“margin”的文件,并将它们移动到/tmp/img/目录中。
find . -maxdepth 1 -type f -mtime -2 -name "*margin*" -exec mv "{}" /tmp/img/ \;
# 在当前目录下查找以'.ibd'结尾的文件,然后过滤出包含'tpcc1000'的文件,并排除掉包含'mysql_global'的文件。最后,将找到的文件复制到/tmp/bak/目录下。
find . -name '*.ibd' | grep tpcc1000 | grep -v mysql_global | xargs -I{} cp --path {} /tmp/bak/
xargs#
xargs 通常用来批量处理命令输出的内容,并将输出的内容赋给后续命令继续处理
# ip.txt中每行一个ip,xargs处理每一个ip,并传递给nmap进行端口扫描,{}是占位符,代表ip地址
cat ip.txt | xargs -I {} nmap -p80 {}
cat aqc.100.ip.alive.1 | xargs -I {} java -jar shiro_tool.jar {}
ps#
ps -Tfp <PID>
循环文本内容#
while read i ; do echo $i ; done <./prometheus.list
在以普通用户打开的 vim 当中保存一个 root 用户文件#
:w !sudo tee %
切换回上一个目录#
$cd -
免密码 ssh 登录远程主机#
$ ssh-copy-id remote-machine
清空或创建一个文件#
> file.txt
用 ssh 创建端口转发通道#
# 在本地主机上建立一个SSH隧道,将本地主机的2001端口映射到远程主机的80端口。这样,您可以通过本地主机的2001端口访问远程主机的80端口。请注意,"user"是您在"some machine"上的登录用户名。
ssh -f -N -L2001:remotehost:80 user@somemachine
实时某个目录下查看最新改动过的文件#
watch -d -n 1 'df; ls -FlAt /path'
用 Wget 的递归方式下载整个网站#
nohup wget --random-wait -nc -q -r -l 0 --reject=html -np -e robots=off -U Mozilla www.example.com &
执行一条命令但不保存到 history 中#
通过在命令行前面添加一个空格,就可以阻止这条命令被保存到 bash history (~/.bash_history) 文件中
$ command
显示当前目录中所有子目录的大小#
sudo du -h -max-depth=1 -BG //单位 block-size G; or -BM MB
#按单位大小排序
du -sh * | sort -hr | head
用 python 快速开启一个 SMTP 服务#
python -m smtpd -n -c DebuggingServer localhost:1025
用 python 快速开启一个 HTTP 服务#
python3 -m http.server 8080
其他#
form X @javinpaul
参考: