每个开发者应该了解的 10 个 Linux 命令

作为一名软件工程师,我做过的最明智的投资就是学习 Linux。因为,在日常工作中,我们会经常与 Linux 系统打交道。而今天,作为一名 30 多岁的工程师,我仍受益于几年前我碰巧学过的那些知识,所以技术学习需要不断积累,不积跬步无以至千里。另外,在另一篇博客文章中,我将更详细地解释为什么 Linux 对于软件开发人员来说更加务实。

在本文中,我将分享一些小众却十分有用的 Linux 命令。如果你使用 Macbook,那刚刚好。因为我推荐的大多数命令也能应用于 OSX 系统。

10. file

返回给定信息的类型。例如,你可以输出图像的尺寸信息:

file logo.png

返回:

> PNG image data, 16 x 16, 8-bit/color RGBA, non-interlaced

9. iotop, powertop, nethogs

你将如何监控 Linux 系统中发生的状况? 这三个命令可以解决你的燃眉之急。

  • Iotop:通过磁盘写入对进程排序,并显示程序写入到磁盘的数量与频次。
  • Powertop:监控程序的电源使用情况。如果你无法及时充电时,这个命令就很重要了。
  • Nethogs:列出每个进程所使用的带宽。

8. tee

将数据重定向到给定文件和屏幕上。例如,添加一个新的条目到 hosts 文件:

echo "127.0.0.1 foobar" | sudo tee -a /etc/hosts

7. pidof, kill 和 pkill

这三条重要的命令将帮助你控制系统中运行的程序。

Pidof:输出正在运行程序的进程 ID。例如,以下命令将输出 nginx 的进程 ID:

pidof nginx

你还可以通过 kill 命令,以及相应的数字来终止 nginx 进程:

kill -USR2 $(pidof nginx)'

pkill 是一个快捷命令,可以按照进程名称终止所有的进程:

pkill -f nginx

6. tmux

如果你还没有安装 tmux 的话,我极力推荐你安装它。Tmux 是一款优秀的终端中的窗口和会话管理器。译者注:如果你想详细了解 Tmux,参见本篇文章。

5. tree

以树状结构列出目录内容。同时,通过设置相应的参数还可以只显示目录名称:

tree -d

4. find

当我们在指定目录下寻找具体文件时,这个命令将帮你大忙。我将在这里介绍几个简单的用例:

示例 1 – 列出所有的 CSS 文件(包括子目录):

find . -type f -name "*.css"

示例 2 – 列出所有的 CSS 与 HTML 文件:

find . -type f \( -name "*.css" -or -name "*.html" \)

3. htop

Htop 是一个著名的进程查看器。它拥有漂亮、多彩的命令行界面,以及一些实用的字母快捷键:

  • \ – 增量进程过滤器;
  • / – 搜索进程;
  • , – 选择排序标准;
  • k – 终止进程;
  • u – 筛选某一特定用户进程;
  • t – 显示/隐藏树形结构;
  • 和 + – 展开/折叠选定的进程树;
  • H – 显示/隐藏用户线程。

2. chroot

这个命令的神奇之处在于,它可以帮助你在指定目录中打开新的 TTY 。那么,你就可以创建一个文件夹,在其中设置新的 Linux 系统,并随时切换到该“子系统”。

1. dialog

方便与用户交互的简易命令。例如,下面的命令就显示了一个漂亮的输入框:

dialog --title "Oh hey" --inputbox "Howdy?" 8 55

上述介绍的大多数命令都可应用在 OSX 系统上,并且支持许多其他类型的对话:消息框、菜单、确认对话框、进度条等。另外,我所编写《 Happy Hacking Linux 》 (http://azer.bike/happy-hacking-linux/) 的安装向导中也应用了上述相关命令。

标签:Linux 发布于:2019-11-06 12:12:44