你可以学习很多很酷的Linux命令和工具,但是如果您只是每周或每月使用一次,那么投入大量时间又有什么意义呢?我想举一个很好的例子,Vim – 它需要很长时间来学习和掌握,但我每天使用它超过几十次,所以它是值得学习的。

Vim – 通用文本编辑器

我记得我觉得Vim很烦 – 有那么多按键和快捷键要记住。在那之前,我是一个nano使用者。是什么让我改变了主意?我开始感到非常恼火的是因为我登录的所有服务器都没有安装nano,也没有语法高亮显示等等。然后我有意识地坚持使用Vim,现在我在每个服务器上都有一个我喜欢的文本编辑器。

Vim有一个陡峭的学习曲线,但是随着时间的推移,它确实在生产力方面有所回报。

相关教程:

Ubuntu 20.10/20.04/18.04 下安装 Vim 8.2

跟我学Ubuntu下将Vim 8.2打造成Python IDE

ps 和 top – 列出和查找进程

我几乎总是运行 ps aux | grep … 查找进程线程、进程id或进程作为什么用户运行的列表。我发现这非常强大,因为ps和grep在每台服务器上都是可用的。

┌───────────────────>
│~/www.linuxmi.com
└─> ps aux | grep bash
linuxmi 19311 0.0 0.2 23112 8564 pts/0 Ss 18:37 0:00 bash
linuxmi 21145 0.0 0.0 17556 732 pts/0 S+ 20:06 0:00 grep –color=auto bash

对于你经常登录的服务器,htop程序提供了更多的灵活性和易用性 – 并且支持使用鼠标在你的终端中对列进行排序。

htop 屏幕截图 — 终端中的进程管理器

相关链接:

Linux常用命令 ps 入门基础教程

ss 和 netstat – 该进程使用哪些端口?

netstat 现在是一个旧工具,在大多数发行版中基本上被 ss 取代。 在我的第一份系统管理员工作中,我学习了这些我经常使用的命令行标志;

  • ss -ntaupe
  • -n 使用数字地址列出进程(例如,IP 地址而不是 DNS 名称)
  • -t 列出 TCP 连接
  • -a 列出所有连接——监听和建立
  • -u 列出 UDP 连接
  • -p 显示使用套接字的过程——可能是最有用的
  • -e 显示一些扩展信息,如 uid。

ss -ntaupe

这会输出大量信息,我通常会使用 grep 和 less 过滤这些输出。 我使用的这些标志的一个非常常见的较短版本是 -ntpl 。 仅查找侦听端口的进程; ss -ntpl 看起来像这样:

ss -ntpl

Shell作业控制 – fg / bg / jobs 等

我发现自己经常在文本编辑器和日志文件之间切换。使用vim和less来读取日志文件 – 我经常按 Ctrl+Z 将当前应用程序暂停并放到后台,以便我可以查看其他内容。

less

如果我忘记了正在运行的内容,我可以运行 jobs 来查看列表。

要取回应用程序,只需 fg <jobnumber> 将其返回前台,或 bg <jobnumber> 让其在后台运行。这确实节省了您打开多个SSH连接的时间。

git – 版本控制所有的东西

我记得当我讨厌 git 并且喜欢 subversion 时。 我看了一眼 git,发现它看起来太复杂了。 然而,学习 git 比最初看起来要简单得多,现在我使用 Git 来存储所有内容。

  • 我的服务器配置存储在 Git 中
  • 我的照片、媒体和磁盘映像都存储在 Git [附件]

ssh / mosh / tmux

ssh – 我知道这看起来非常简单,但是大多数人不知道,你可以做一些事情,比如运行像 ssh user@host ‘service httpd restart’ 这样的一行程序 。

tmux(在它之前,我使用了 screen)实际上是终端多路复用的标准,并在您注销后保持运行。

tmux 截图

不幸的是,很多人不知道 mosh。它基本上在不可靠、慢速或滞后的网络上提供SSH访问。Mosh 是交互式 SSH 终端的替代品。

mosh

其他值得记录的重要命令工具:

  • 控制命令 – Ctrl+C(通常“取消”)、Ctrl+D(输入结束)、Ctrl+L(重绘)、Ctrl+S(xoff – 停止打印输出)、Ctrl+Q(xon – 继续打印输出)。我发现自己在慢速 SSH 连接上使用 Ctrl+C、S 和 Q 相当多!
  • nc – net cat,,非常适合轻松连接远程端口和网络调试。
  • openssl – 主要用于侦查 x509 证书 – openssl x509 -in foo.cert -text -noou – 对于查看证书何时过期或类似的事情非常有用
  • strace – 跟踪系统调用,例如 fopen、flock 或进程使用的类似调用。
  • dd – 用于直接写入和复制到存储。有趣的事实,dd 用于“转换和复制”文件,但它不称为“cc”,因为它已被采用(cc 是 C 编译器)。
  • iptables – 对不起,我从我的大多数服务器中删除了 firewalld,直接用 itpables 编写规则。我不是精英主义者 – firewalld 可以很棒,但在我看来,它只是 netfilter 之上的一个过于复杂的用户界面。我知道如何直接使用 iptables 规则打开端口( iptables -A INPUT -p tcp –dport 2677 -s 192.168.22.5 -j ACCEPT 等),所以我觉得这对我来说更方便。
  • dig – 我有很多域名,并且发现自己与 DNS 进行了相当多的交互。这是一个简单而强大的工具,可以快速运行 DNS 查询。

如果你还想到一些很久之前学会的Linux工具,现在还一直在用的,请在下面评论部分给我们留言。

发表评论