最牛B的 Linux Shell 命令 系列连载(四)

本文编译自commandlinefu.com的系列文章Top Ten One-Liners from CommandLineFu Explained。作为一个由用户推荐最有用shell命令的网站,其记录了数以万计的各色shell命令,其中不乏相当实用和有趣的,本文就要细数当中获投票最高的一些命令,从其中取材并加以细释,希望读者能从中受益。

1.查看ascii码表

1   man 7 ascii  

很多人初学编程都会接触到ascii码的概念,有时候为了查某个符号的ascii值,可能还得翻箱倒柜找出当年的课本?Linux Manpage里面其实包含了很多类似的实用资料,上述命令就能很详细的方式解释ascii编码,当然这里还有在线版

man命令的第二个参数是区域码,用来区分索引词的范围,比如printf,在C标准库里面的printf跟bash当中的printf是不同的,前者的查询是man 3 printf,后者是man 1 printf。如果这个区域码省略,就会从1开始搜索,直到找到为止。

命令man man可以看到详细的解释

manpages里面还有一些有趣而且实用的资料,可能鲜为人知:

第7区里面的资料通常最酷:

man 7 bootparam – 详细解释内核启动参数。 man 7 charsets – 解释各种语言的编码集。(gbk,gb2312等) man 7 glob – 解释glob文件名管理机制的工作过程。 man 7 hier – 解释Linux文件系统结构各个部分的作用。 man 7 operator – C语言的运算符的列表。 man 7 regex – 介绍正则表达式。 man 7 suffixes – 常见文件后缀名的列表跟解释。 man 7 time – Linux的时钟机制解释。 man 7 units – 数值单位及其数值的解释。 man 7 utf8 – 描述UTF-8编码。 man 7 url – 解释URL、URI、URN等的标准。 2.简易计时器

1   time read  

运行命令开始算起,到结束时按一下Enter,就显示出整个过程的时间,精确到ms级别。

time是用来计算一个进程在运行到结束过程耗费多少时间的程序,它的输出通常有三项:

1 2 3 4 5 6   $ time ls /opt ...   real 0m0.008s user 0m0.003s sys 0m0.007s  

real指整个程序对真实世界而言运行所需时间,user指程序在用户空间运行的时间,sys指程序对系统调用锁占用时间。

read本来是一个读取用户输入的命令,常见用法是read LINE,用户输入并回车后,键入的内容就被保存到$LINE变量内,但在键入回车前,这个命令是一直阻塞的。

可见time read这命令灵活地利用了操作系统的阻塞。用这个命令来测试一壶水多久煮滚应该是不错的。

3.远程关掉一台Windows机器

1   net rpc shutdown -I IP_ADDRESS -U username%password  

Windows平台上的net命令是比较强大的,因为其后台是一个RPC类的系统服务,大家应该看过win下用net use \\ip\ipc$ *这样一个命令建立IPC空连接,入侵主机的事情。

Linux下的net命令是samba组件的程序,通常包含在smbclient内,可以跟windows主机的文件、打印机共享等服务进行通讯,但是也支持rpc命令。

上述命令就是在远程Windows主机上执行了shutdown命令。当然这不一定成功,关系到win主机上面的安全设置。net命令能够��制到win主机就是了。

4.在一个子shell中运行一个命令

1   (cd /tmp && ls)  

当然这只是演示,要查看目录当然可以ls /tmp。

好处就是不会改变当前shell的目录,以及如果命令中设计环境变量,也不会对当前shell有任何修改。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/26350.html