推荐阅读:凭借这个pdf,我获得了蚂蚁金服、字节跳动、小米等大厂的offer
今天给大家推荐一个开源项目“The Art of Line(命令行艺术)”,这个开源项目曾经霸占周榜TOP,现在已经有69.5K Star了!
地址:
以下是其中文版-zh.md的内容,有需要的朋友赶紧关注吧!
命令行的艺术
熟练掌握命令行是一项经常被忽视或被认为难以掌握的技能,但它实际上会提高您作为工程师的灵活性和生产力。 本文总结了我在 Linux 上工作时发现的一些命令行技巧。 有些技术非常基础,而另一些技术则相当复杂,甚至晦涩难懂。 本文并不长,但是当您能够掌握这里列出的所有技术时,您就已经了解了很多有关命令行的知识。 本文是多位作者和译者共同的成果。 这里的一些内容最初出现在 Quora 上,但已经迁移到这里,并由许多专家进行了许多改进。 如果您发现本文有错误或有需要改进的地方,请贡献您的一份力量。
一、简介
覆盖范围:
防范措施:
2. 基础知识 3. 日常使用
find . -name '*.py' | xargs grep some_function
cat hosts | xargs -I{} ssh root@{} hostname
set -euo pipefail
trap "echo 'error: script failed: see failed command above'" ERR
# do something in current dir
(cd /some/other/dir && other-command)
# continue in original dir
diff /etc/hosts <(ssh somehost cat /etc/hosts)
{
# 在这里写代码
}
TCPKeepAlive=yes
ServerAliveInterval=15
ServerAliveCountMax=6
Compression=yes
ControlMaster auto
ControlPath /tmp/%r@%h:%p
ControlPersist yes
stat -c '%A %a %n' /etc/timezone
>>> 2+3
5
4. 文件和数据处理
perl -pi.bak -e 's/old-string/new-string/g' my-files-*.txt
# 将文件、目录和内容全部重命名 foo -> bar:
repren --full --preserve-case --from foo --to bar .
# 还原所有备份文件 whatever.bak -> whatever:
repren --renames --from '(.*)\.bak' --to '\1' *.bak
# 用 rename 实现上述功能(若可用):
rename 's/\.bak$//' *.bak
mkdir empty && rsync -r --delete empty/ some-dir && rmdir some-dir
uconv -f utf-8 -t utf-8 -x '::Any-Lower; ::Any-NFD; [:Nonspacing Mark:] >; ::Any-NFC; ' < input.txt > o
getfacl -R /some/path > permissions.txt
setfacl --restore=permissions.txt
5.系统调试 6.一行脚本
命令组合的一些示例:
sort a b | uniq > c # c 是 a 并 b
sort a b | uniq -d > c # c 是 a 交 b
sort a b b | uniq -u > c # c 是 a - b
awk '{ x += $3 } END { print x }' myfile
find . -type f -ls
egrep -o 'acct_id=[0-9]+' access.log | cut -d= -f2 | sort | uniq -c | sort -rn
function taocl() {
curl -s https://raw.githubusercontent.com/jlevy/the-art-of-command-line/master/README-zh.md|
pandoc -f markdown -t html |
iconv -f 'utf-8' -t 'unicode' |
xmlstarlet fo --html --dropdtd |
xmlstarlet sel -t -v "(html/body/ul/li[count(p)>0])[$RANDOM mod last()+1]" |
xmlstarlet unesc | fmt -80
}
7. 不受欢迎但有用 8. 仅限 OS X 系统
以下是仅限 OS X 的提示。
9. 仅限系统
以下是仅限系统的提示。
9.1. 获取 9.2 以下的 Unix 工具。 实用的命令行工具 9.3。 提示 10. 更多资源
1. -shell:组织良好的命令行工具和资源列表。
2. -osx--line:更深入的 OS X 命令行指南。
3.模式:为了写出更好的脚本文件。
4.:静态shell脚本分析工具,本质上是bash/sh/zsh lint。
5. and in Shell:有关如何在shell脚本中正确处理文件名的详细信息。
6. Data at the Line:数据科学的一些命令和工具,摘自同名书籍。
#工具