参考:http://www.vaikan.com/bash-scripting/
1. tee
命令
tee
命令能将标准输入复制到标准输出和文件中。这在你需要将命令输出保存到文件,同时在终端查看时非常有用。
ls -l | tee file_list.txt
这个命令会把 ls -l
的输出结果显示在终端上,并且保存到 file_list.txt
文件里。
2. xargs
命令
xargs
命令可以将标准输入转换为命令行参数。它常用于处理大量文件或字符串。
find . -name "*.txt" | xargs rm
此命令先找出当前目录下所有的 .txt
文件,然后把这些文件名作为参数传递给 rm
命令,从而删除这些文件。
3. expect
命令
expect
是一个用来自动交互的工具,它能根据程序的输出自动输入相应的内容。
#!/usr/bin/expect
spawn ssh user@example.com
expect "password:"
send "your_password\r"
interact
这段脚本会自动登录到远程服务器,在出现密码提示时输入密码。
4. watch
命令
watch
命令可以周期性地执行指定命令,并显示其输出。
watch -n 5 df -h
该命令会每5秒执行一次 df -h
命令,以此来实时查看磁盘使用情况。
5. netstat
命令
netstat
命令用于显示网络连接、路由表、网络接口等网络相关信息。
netstat -tuln
这个命令会列出所有监听的TCP和UDP端口。
6. grep
高级用法
grep
除了基本的文本搜索功能外,还支持正则表达式、递归搜索等高级用法。
grep -r "keyword" /path/to/directory
此命令会递归地在 /path/to/directory
目录下搜索包含 "keyword"
的文件。
7. awk
命令
awk
是一种强大的文本处理工具,可用于数据提取、格式化输出等。
ps -ef | awk '{print $1, $2}'
这个命令会从 ps -ef
的输出中提取用户和进程ID这两列信息。
8. sed
命令
sed
是一个流编辑器,可用于文本替换、删除、插入等操作。
sed 's/old_text/new_text/g' file.txt
该命令会把 file.txt
文件里所有的 old_text
替换成 new_text
。