作为一名软件工程师,我做过的最明智的投资就是学习 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 》的安装向导中也应用了上述相关命令。
感谢你的阅读。若你有所收获,欢迎点赞与分享。
注:
- 本文版权归原作者所有,仅用于学习与交流;
- 如需转载译文,烦请按下方注明出处信息,谢谢!
英文原文:10 Linux Commands Every Developer Should Know
作者:Azer Koçulu
译者:IT程序狮
译文地址:http://www.jianshu.com/p/a86614d7cef9