























俗话说:"杀鸡用牛刀",如何选择合适的轮子亦是一门修行。在Python大行其道的今天,小到文本处理,大到网络传输,Python几乎无所不能,其灵活与强大有目共睹,但就某些需求来看,并不一定需要上升到使用Python进行编程解决。
在日常办公、自动化领域,Linux发行版已自带一众轮子,供系统本身及终端用户直接调用,相比Python等大型车床,使用此类系统工具存在诸多天然优势:
下面简要举几个例子
邮件协议三剑客:SMTP、POP3、IMAP
发送一封邮件「SMTP」
echo -e "Subject: Title\r\n\r\nContent" | msmtp -f <sender@xxx.com> -t <target@xxx.com>
收取邮件「POP3」
fetchmail -f <mailbox.conf>
更详细的配置和说明,可参考 免费邮箱:收发服务器动态公网地址
生成由数字1-10组成、逗号分隔的字符串
seq -s ',' 1 10
查找关键字并列出所在行号
grep -n keyword filename
输出文本中的第2,4,5行
sed -n '2p;4p;5p' filename
输出csv表文件中的第2列「指定逗号为分隔符」
awk -F ',' '{print $2}'
逆向排序
sort -v filename
利用管道“|”将多个操作进行组合「关键字过滤 -> 排序 -> 提取每行的2-4列」
grep keyword filename | sort | awk '{print $2,$3,$4}'
cURL作为瑞士军刀级传输工具,支持多种互联网传输协议,以常用的HTTP传输为例:
查询外网IP
curl ifconfig.me
VPS远程重启「SolusVM API」
curl https://solusvm.virmach.com/api/client/command.php?key=AKBJL-L1BZR-H6ZLF&hash=efb171f808dce327e2f9e517a909f415f86fa29e&action=reboot
DDNS映射更新「no-ip.com」
curl http://dynupdate.no-ip.com/ducupdate.php?requestL=dXNlcm5hbWU9aGVsbG9zc3BhaSU0MHNzcGFpLmNvbSZwYXNzPWhlbGxvd29ybGQmaFtdPXNzcGFpLmRkbnMuY29tJmlwPTE2OS4yNTQuMC4yCg==
一行代码重启路由器「详细过程」
curl http://192.169.1.1/userRpm/SysRebootRpm.htm?Reboot=%D6%D8%C6%F4%C2%B7%D3%C9%C6%F7
除收发邮件需要手动安装外,其它工具在各大GNU/Linux发行版已默认安装,直接输入指令即可;在macOS平台下,部分命令行软件需要借助Homebrew软件包管理器进行安装2后即可使用。
| 名称 | 用途 | 分类 |
|---|---|---|
| awk | 列处理 | 文本 |
| base64 | base64编解码 | 编解码 |
| cat | 显示/拼接文件内容 | 文本 |
| curl | 综合传输工具 | 网络传输 |
| echo | 格式化输出 | 文本 |
| grep | 关键词过滤 | 文本 |
| jq | JSON格式编解码 | 编解码 |
| sed | 行处理 | 文本 |
| seq | 生成序数 | 文本 |
| sort | 排序 | 文本 |
| tail | 显示最后N行 | 文本 |
| uniq | 去重 | 文本 |
| wc | 统计 | 文本 |
| wget | 自动/批量下载工具 | 网络传输 |
以上工具的诞生离不开GNU项目及自由软件基金会的支持,感谢它们。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。