日期:2014-05-16  浏览次数:20687 次

最牛B的 Linux Shell 命令(三)

1. 更友好的显示当前挂载的文件系统

mount | column -t

这条命令适用于任何文件系统,column 用于把输出结果进行列表格式化操作,这里最主要的目的是让大家熟悉一下 columnt 的用法。

?

下面是单单使用 mount 命令的结果:

$ mount

/dev/root on / type ext3 (rw)
/proc on /proc type proc (rw)
/dev/mapper/lvmraid-home on /home type ext3 (rw,noatime)

而加了 column -t 命令后就成为这样了:

$ mount | column -t

/dev/root on / type ext3 (rw)
/proc on /proc type proc (rw)
/dev/mapper/lvmraid-home on /home type ext3 (rw,noatime)

另外你可加上列名称来改善输出结果

      $ (echo "DEVICE - PATH - TYPE FLAGS" && mount) | column -t
   

DEVICE – PATH – TYPE FLAGS
/dev/root on / type ext3 (rw)
/proc on /proc type proc (rw)
/dev/mapper/lvmraid-home on /home type ext3 (rw,noatime)

列2和列4并不是很友好,我们可以用 awk 来再处理一下

      $ (echo "DEVICE PATH TYPE FLAGS" && mount | awk '$2=$4="";1') | column -t
   

DEVICE PATH TYPE FLAGS
/dev/root / ext3 (rw)
/proc /proc proc (rw)
/dev/mapper/lvmraid-home /home ext3 (rw,noatime)

最后我们可以设置一个别名,为 nicemount

      $ nicemount() { (echo "DEVICE PATH TYPE FLAGS" && mount | awk '$2=$4="";1') | column -t; }
   

试一下

$ nicemount

DEVICE PATH TYPE FLAGS
/dev/root / ext3 (rw)
/proc /proc proc (rw)
/dev/mapper/lvmraid-home /home ext3 (rw,noatime)

2. 运行前一个 Shell 命令,同时用 “bar” 替换掉命令行中的每一个 “foo”

!!:gs/foo/bar

!! 表示重复执行上一条命令,并用 :gs/foo/bar 进行替换操作。

关于 !! 这个用法在前一篇文章中 已有详细的介绍。

3. 实时某个目录下查看最新改动过的文件

      watch -d -n 1 'df; ls -FlAt /path'
  

在使用这条命令时你需要替换其中的 /path 部分,watch 是实时监控工具,-d 参数会高亮显示变化的区域,-n 1 参数表示刷新间隔为 1 秒。

df; ls -FlAt /path 运行了两条命令,df 是输出磁盘使用情况,ls -FlAt 则列出 /path 下面的所有文件。

ls -FlAt 的参数详解:

-F 在文件后面加一个文件符号表示文件类型,共有 */=>@| 这几种类型,* 表示可执行文件,/ 表示目录,= 表示接口( sockets) ,> 表示门, @ 表示符号链接, | 表示管道。
-l 以列表方式显示
-A 显示 . 和 ..
-t 根据时间排序文件

4. 通过 SSH 挂载远程主机上的文件夹

sshfs name@server:/path/to/folder /path/to/mount/point

这条命令可以让你通过 SSH 加载远程主机上的文件系统为本地磁盘,前提是你需要安装 FUSE 及 sshfs 这两个软件。

译者注 :关于 sshfs 实际上我之前写过一篇文章介绍过,详见”在 Ubuntu 上使用 sshfs 映射远程 ssh 文件系统为本地磁盘 “。

卸载的话使用 fusermount 命令:

fusermount -u /path/to/mount/point

5. 通过 DNS 来读取 Wikipedia 的词条

dig +short txt <keyword>.wp.dg.cx

这也许是最有趣的一条技巧了,David Leadbeater 创建了一个 DNS 服务器 ,通过它当你查询一个 TXT 记录类型时,会返回一条来自于 Wikipedia 的简短的词条文字,这是他的介绍 。

这里有一个样例,来查询 “hacker” 的含义:

$ dig +short txt hacker.wp.dg.cx

“Hacker may refer to: Hacker (computer security), someone involved
in computer security/insecurity, Hacker (programmer subculture), a
programmer subculture originating in the US academia in the 1960s,
which is nowadays mainly notable for the free software/” “open
source movement, Hacker (hobbyist), an enthusiastic home computer
hobbyist http://a.vu/w:Hacker “

这里使用了 dig 命令,这是标准的用来查询 DNS 的系统管理工具,+short 参数是让其仅仅返回文字响应,txt 则是指定查询 TXT 记录类型。

更简单的做法是你可以为这个技巧创建一个别名:

wiki() { dig +short txt $1.wp.dg.cx; }

然后试试吧:

$ wiki hacker

“Hacker may refer to: Hacker (computer security), …”

如果你不想用 dig ,也可以用 host 命令:

host -t txt hacker.wp.dg.cx

6. 用 Wget 的递归方式下载整个网站

w