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

2,957 阅读3分钟
原文链接: zhuanlan.zhihu.com

作为一名软件工程师,我做过的最明智的投资就是学习 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 》的安装向导中也应用了上述相关命令。


感谢你的阅读。若你有所收获,欢迎点赞与分享。

注:

  1. 本文版权归原作者所有,仅用于学习与交流;
  2. 如需转载译文,烦请按下方注明出处信息,谢谢!
英文原文:10 Linux Commands Every Developer Should Know
作者:Azer Koçulu
译者:IT程序狮
译文地址:jianshu.com/p/a86614d7c

同时也欢迎关注我的微信【IT程序狮】,不定期分享 IT 学习文章与资源。