2023
Article published by: wxie
Date of publication: 2023
BASH 脚本,即使你不是程序员也少不了会使用、
会编写——因为它真的很强大,而且无处不在,在可见的将来也不会消失。作为程序员,也许
你觉得 BASH 脚本太难写,BASH 语法太难看,BASH 脚本不安全,但是也许 BASH 不会变成
主流编程语言,它总是那么易得,仿佛就在手边,每个 GNU/Linux 发行版都有它,甚至连
Docker 也要带着它,如果你不会编写 BASH 脚本,那么你可能就错失了最直接、最自然、
最简单的解决方案,简直是入宝山而空返。
BASH 是 shell(命令解释器)的一种,而命令解释器是 UNIX 最前卫、最强大的思想之一。
使用 BASH 可以快速把一系列命令和工具组合起来完成复杂任务,这些脚本还可以保存起来
对付以后的类似任务。
管道|
是命令解释器的另一个利器。利用管道,BASH
可以简明地构建多个命令之间的输入
输出逻辑关系,并强有力地按照程序员的想法执行出结果。这种能力是其他编程语言难以企
及的。
下面看两个例子。
ls -tc | head -n5 | tr '\n' '\0' | xargs -0 ls
说明:
ls -tc
: 按状态改变时间列出目录。
head -n5
: 列出前五个。
`tr ‘’ ‘\0’: 把换行符替换未字符串结尾。
xargs -0 ls
:
列出筛选以出来的字符串为目录名的内容。
当然,最后的命令ls
可以根据需要调整成其他命令,非常实用。
history | cut -d' ' -f3- | awk -F'|' '{ print NF-1 " " $0 }' | sort -n | tail
说明:
history
: 列出历史命令。
cut -d' ' -f3-
:
移除历史命令的第三列(以空格分割),就是把历史命令的编号去掉。
awk -F'|' '{ print NF-1 " " $0 }'
:
使用awk
打印命令里的|
个数。
sort -n
: 按数字大小排列结果。
tail
:列出最后十个结果。
这个大家可以试一试,其中-f3-
可能需要根据自己的终端设置调整。
希望这两个小例子给予大家一些想象的空间——BASH 实际带来的便利会非常大。或早或晚,
作为程序员,你都需要学习 BASH 编程。
下面是两个小练习,大家看看是什么结果?
seq 1 10
tr -dc 'a-zA-Z0-9~!@#$%^&*_()+}{?></";.,[]=-' < /dev/urandom | fold -w 32 | head -n 1
预祝大家 2021 年元旦快乐!
Markdown file for this page: https://wxie.codeberg.page/tutorials/tutorial/BASH_对程序员的重要性.md
Subscribe to RSS for this site
This HTML page was generated by the Untitled Static Site Generator.