作为一个软件工程师,学习Linux是我做过的最好的时间投资。因为它是一个用户必须理解和维护的系统,每天的使用经验就像在水坑中添加一滴水一样。很长时间以后,水坑就变成了湖泊,甚至海洋。
今天,作为一名30岁的工程师,我仍然受益于多年前学到的知识,那时我是一个雄心勃勃的初学者。在另一篇博客文章中,我更详细地解释了为什么Linux更适合软件开发人员。
在这篇文章中,我将分享我个人使用和推荐的一些不太流行但非常有用的Linux命令。如果你有一个苹果笔记本,那很好,因为我提到的大部分命令也存在于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
tee 将程序的输出结果重定向,使得我们可以同时显示和保存结果,例如,添加一个新的条目到hosts文件中:
echo "127.0.0.1 foobar" | sudo tee -a /etc/hosts
7. pidof, kill and pkill
这三个重要命令帮助你控制系统中运行的程序。
pidof 打印出正在运行程序的进程ID。例如,下面的命令将输出nginx的进程ID:
pidof nginx
你可以把nginx的进程ID输入到 kill 命令来终止它。
kill -USR2 $(pidof nginx)'
pkill 是一个快捷命令,可以终止匹配的进程:
pkill -f nginx
6.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
著名的进程监视器。它有一个漂亮多彩的命令行界面。一些有用的快捷键:
- * / 过滤
- * / 搜索
- * ,选择排序条件
- * k 发送kill指令
- * u 按用户过滤结果
- * t 打开/关闭 树形(tree) 模式
- * -和+ 展开/关闭进程树
- * H 关闭显示进程
2.chroot
魔术师们喜欢这个命令,因为它在给定的目录中打开了一个新的TTY。这意味着,你可以创建一个文件夹,在其中设置一个新的Linux系统,并随时切换到该“子系统”。
是不是很强大?
1.dialog
在命令行上与用户交互的一种非常简单而且不错的方式。例如,下面的命令显示了一个不错的输入框:
dialog --title "Oh hey" --inputbox "Howdy?" 8 55
它存在于Linux和OSX系统上,并支持许多其他类型的对话框:消息框,菜单,确认框,进度条…我为Happy Hacking Linux编写的安装向导就是用这个神奇的命令制作的!
新闻热点
疑难解答