命令行的艺术

命令行的艺术 该项目的学习笔记

  • 为了便于编辑长命令,在设置你的默认编辑器后(例如 export EDITOR=*vim*),ctrl-x ctrl-e 会打开一个编辑器来编辑当前输入的命令。在 vi 风格下快捷键则是 escape-v

  • 使用 uptimew 来查看系统已经运行多长时间

  • 使用括号扩展({})来减少输入相似文本,并自动化文本组合。这在某些情况下会很有用,例如 mv foo.{txt,pdf} some-dir(同时移动两个文件),cp somefile{,.bak}(会被扩展成 cp somefile somefile.bak)或者 mkdir -p test-{a,b,c}/subtest-{1,2,3}(会被扩展成所有可能的组合,并创建一个目录树)

  • 通过使用 <(some command) 可以将输出视为文件。例如,对比本地文件 /etc/hosts 和一个远程文件:

1
diff /etc/hosts <(ssh somehost cat /etc/hosts)
  • 对 ssh 设置做一些小优化可能是很有用的,例如这个 ~/.ssh/config 文件包含了防止特定网络环境下连接断开、压缩数据、多通道等选项:
1
2
3
4
5
6
7
TCPKeepAlive=yes
ServerAliveInterval=15
ServerAliveCountMax=6
Compression=yes
ControlMaster auto
ControlPath /tmp/%r@%h:%p
ControlPersist yes
  • 使用 percol 或者 fzf 可以交互式地从另一个命令输出中选取值。
  • 将 web 服务器上当前目录下所有的文件(以及子目录)暴露给你所处网络的所有用户,使用: python -m SimpleHTTPServer 7777 (使用端口 7777 和 Python 2)或 python -m http.server 7777 (使用端口 7777 和 Python 3)。