参考: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