[collect]命令行艺术

本文最后更新于2015年7月4日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢!

标题中的“命令行艺术”指的是在GitHub上看到的 the-art-of-command-line ,从中学习到了不少之前我不知道或不熟悉的命令,在此做个记录,不定期更新:

==

  • man
  • apropos
  • help [-d]
  • type
  • whereis/which

了解 ssh,以及基本的无密码认证,ssh-agent,ssh-add 等

  • df
  • mount
  • fdisk
  • mkfs
  • lsblk

ln 和 ln -s (了解硬链接与软链接的区别)

  • Ctrl-a/e/u/k/l  #Useful
  • Alt-b/f     #Useful
  • man readline
和上一个命令相关的参数、命令内容:
  • !^
  • !$
  • !*
  • !!

使用 netstat -lntp 或 ss -plat 检查哪些进程在监听端口

=

在 Bash 脚本中,使用 set -x 去调试输出,尽可能的使用严格模式,使用 set -e 令脚本在发生错误时退出而不是继续运行,使用 set -o pipefail 严谨地对待错误(尽管问题可能很微妙)。当牵扯到很多脚本时,使用 trap。

使用 man ascii 查看具有十六进制和十进制值的ASCII表。man unicode,man utf-8,以及 man latin1 有助于你去了解通用的编码信息。

=

使用 screen 或 tmux 来使用多个屏幕,当你在使用 ssh 时(保存 session 信息)将尤为有用。另一个轻量级的解决方案是 dtach。

=

对 ssh 设置做一些小优化可能是很有用的,例如这个 ~/.ssh/config 文件包含了防止特定环境下断开连接、压缩数据、多通道等选项:

获取文件的八进制格式权限,使用类似如下的代码:

使用 jq 处理 JSON

如果你不得不处理 XML,xmlstarlet 宝刀未老

了解如何使用 cut,paste 和 join 来更改文件。很多人都会使用 cut,但几乎都不会使用 join

=

了解语言环境对许多命令行工具的微妙影响,包括排序的顺序和性能。大多数 Linux 的安装过程会将 LANG 或其他有关的变量设置为符合本地的设置。意识到当你改变语言环境时,排序的结果可能会改变。明白国际化可能会时 sort 或其他命令运行效率下降许多倍。某些情况下(例如集合运算)你可以放心的使用 export LC_ALL=C 来忽略掉国际化并使用基于字节的顺序。

=

替换一个或多个文件中出现的字符串:

依据某种模式批量重命名多个文件,使用 rename。对于复杂的重命名规则,repren 或许有帮助。

=待续=

 

参考链接:

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/2297.html

《[collect]命令行艺术》上有7条评论

  1. 在命令行下解析json除了可以使用jq等外部工具之外,还可以用Python进行处理:

    $ echo '{"foo":1, "bar":2}' | python -m json.tool
    {
    "bar": 2,
    "foo": 1
    }

发表评论

电子邮件地址不会被公开。 必填项已用*标注