高效地使用命令行是一个Linux系统管理员技能的重要组成部分。在本文中,我们提供了五个很酷甚至略显古怪的Linux命令行技巧,可以帮你更有效地管理你的Linux系统。
More=Less
在Linux上读取文件通常会涉及到more和less命令。more命令从前向后读取文件,因此在启动时就加载整个文件。less命令则允许在文件中前向或后向移动,加载时只读取文件的下一部分。为了节约时间,一个有用的技巧便是将less命令建立别名为more:
$ alias more=less
把这一条加入你的.bashrc或者.bash_profile文件中,使之成为永久性的别名。
less命令使用方便,向前滚动就像more命令一样,可以通过敲击空格键或f键来完成。使用一次b键则可以向后滚动一屏。(在less命令的帮助页面你还可以看到更多的命令选项。)
另一个输出文件内容的命令是cat命令,该命令将整个文件的内容从上到下显示在屏幕上。许多人不知道cat命令还有一个姐妹命令tac。正如你想象的那样,tac命令也会显示整个文件的内容,但是顺序相反,是从下至上。这个命令在读取一个日志文件或其它受关注输出在文件底部的事情时很有用
shuf命令用处不那么大,但却很有意思,能够打乱输入数据的顺序。试试运行:
$ shuf filename
它将以随机的顺序返回文件内容。
没人能看到你的屏幕
在同一台服务器上建立了多个SSH会话?你不该这么做。打开多个SSH会话不仅浪费计算机资源,而且还不方便管理。尤其是当你使用窗口管理器(Window Manager)或是Putty之类包含多个终端并能迅速占据独立屏幕位置的工具时,尤其如此。更好的选择是使用screen或者tmux之类的工具,允许你在一个SSH会话中建立多个终端。
screen命令很容易使用。首先,你需要确保你已经安装了screen程序。在Red Hat和Ubuntu主机上你需要安装screen程序包,命令是:
$ sudo yum install screen
然后在终端会话中键入:
$ screen
看起来像什么事都没发生,对吧?那你就错了。键入一个命令,如top,那么你将看到系统内正在运行的进程。现在键入Ctrl-a-c(按住Ctrl键,然后敲a,然后再敲c),一个新的终端窗口会弹出来。你的旧窗口仍然可用。实际上你可以通过Ctrl-a-p回到前一个窗口,你还可以通过Ctrl-a- a在窗口之间循环。或者你还可以通过序号来选择窗口,根据创建的顺序,每个窗口序号不同,第一个窗口是Ctrl-a-0,然后是Ctrl-a-1,依次增加。你可以通过不断按下Ctrl-a-c来创建更多的窗口,在命令行里键入exit就可以退出窗口。当退出最后一个窗口时,整个会话也将退出。
关于屏幕最好玩的事就是你可以保留当前的屏幕,并随时回到这个状态。键入Ctrl-a-d,保留屏幕,然后你可以返回到最初运行screen命令的那个窗口。随后你可以退出主机。当你再次登录时,你可以运行:
$ screen -r
你的会话会重新开始,并且所有之前的终端都将可用(前提是没人关闭screen进程或重启主机)。你可以在Screen的帮助页面找到更多有用的信息。
另一种screen的替代工具是Tmux,它功能更强大使用更复杂,对多用户共享屏幕非常有用。一个常见的应用就是远程双人共同编程。
HTTP服务器:当你马上需要一个Web服务器时!
当你需要快速传递文件时,最简单的方法之一就是通过HTTP服务器。我常常通过命令行快速地建立一个Ruby Web服务器:
$ ruby -rwebrick -e'WEBrick::HTTPServer.new(:Port => 3125, :DocumentRoot => Dir.pwd).start'
这会在3125端口为当前目录开启HTTP服务:
http://your.server.com:3125
你还可以使用Python完成同样的事:
$ python -m SimpleHTTPServer
这将在8000端口为当前目录开启HTTP服务。(你需要通过防火墙打开这两个端口。)
记住这一点很重要,任何人都可以从你的服务器上下载文件,所以一定要确保你知道自己对外提供了哪些文件,别把你不想与他人分享的东西也贡献出去。
更好的进程显示工具:pgrep
你可能经常发现自己会键入这样的命令:
$ ps -A | grep ‘ruby’ 1680 ? 00:05:45 ruby 30250 ? 00:06:39 ruby
但还有一个更简单的方法可以显示进程,并且不需要调用ps命令的输出管道:pgrep。
$ pgrep -l ruby 1680 ruby 30250 ruby
你还可以查询某个特定用户运行的进程,如:
$ pgrep -u root
这会显示所有root运行的进程。
最后你还可以使用一些grep式的查询技巧:
$ pgrep -lv `whoami`
这条命令会列出所有不属于你的用户进程(就像在grep命令中一样,-v选项表示排除)。
拼写错误
你可能知道aspell(或者ispell)库可以允许你在Linux上进行拼写检查。但你还能独立运行aspell命令,或者集成到其它应用程序中。例如,从命令行对一个文件进行拼写检查,你可以这样运行aspell:
$ aspell -c filename.txt
这条命令会启动一个交互式的拼写检查程序,你可以检查和更新文件中任何的拼写错误。
但有时你只是想知道某个单词该怎么拼,这时你需要look命令,它是命令行里一个好用的拼写检查工具。键入look,以及你想要拼写的单词的一部分,例如:
$ look vendo
就会返回一个以vendo开头的单词列表。
原文链接:http://www.searchsv.com.cn/showcontent_45888.htm?lg=t
【编辑推荐】