`

最牛B的 Linux Shell 命令(四)

阅读更多

1.查看ASCII码表

man 7 ascii

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

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

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

 

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

man 1 intro – 一篇对从未接触过Linux的用户的简明教程。
man 2 syscalls – 内核系统请求的列表,按内核版本注释分类,系统编程必备。
man 2 select_tut – 关于select()系统请求的教程。
man 3 string – 在头文件内的所有函数。
man 3 stdio – 关于头文件的使用,标准输入/输出库的说明。
man 3 errno – 所有errorno的取值及说明。(C语言内类似其他语言的异常告知机制)
man 4 console_codes – Linux的终端控制码及其使用解释。
man 4 full – 介绍/dev/full这个总是处于”满”状态的磁盘。(对应/dev/null这个总是空的设备)
man 5 proc – 介绍/proc下的文件系统。
man 5 filesystems – 各种Linux文件系统。

第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.简易计时器

time read

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

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

$ time ls /opt


real 0m0.008s
user 0m0.003s
sys 0m0.007s

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

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

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

3.远程关掉一台WINDOWS机器

net rpc shutdown -I IP_ADDRESS -U username%password

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

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

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

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

(cd /tmp && ls)

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

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

在Shell编程中还有很多使用上引号来括住一个命令:`ls /tmp`,这也是子shell过程。可是上引号的方法无法嵌套,而使用小括号的方法可以,一个比较纠结的例子是:

echo $(echo -e file:///C|/x%24%28printf “%x” 65))

5.利用中间管道嵌套使用SSH

ssh -t host_A ssh host_B

如果目标机器host_B处于比较复杂的网络环境,本机无法直接访问,但另外一台host_A能够访问到host_B,而且也能被本机访问到,那上述命令就解决了方便登录host_B的问题。

但理论上这个过程是可以无限嵌套的,比如:

ssh -t host1 ssh -t host2 ssh -t host3 ssh -t host4 …

嗯那神马FBI CIA的,有本事来捉我吧~

6.清空屏幕

<CTRL+l>;

这个跟之前介绍的reset命令重置终端的作用有些类似,其实都只是发送一段控制序列,让终端的显示复位。

还可以这样运行:

tput clear

tput是专门用来控制终端的一个小工具,也挺强大的,详细信息运行man tput查看。

7.我想知道一台服务器什么时候重启完

ping -a IP

系统管理员最常做的事情是重启系统。但是服务器的重启过程往往得花上好几分钟,什么你的服务器4个scsi卡?16个硬盘?系统是Redhat?还完全安装所有组件?好吧,它重启的时间都够你吃顿饭了,所以我很想知道它什么时候回来。

ping命令有个audible ping参数,-a,当它终于ping通你的服务器时会让小喇叭叫起来。

8.列出你最常用的10条命令

history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head

这行命令组合得很妙: history输出用户了命令历史;awk统计并输出列表;sort排序;head截出前10行。

9.检查GMAIL新邮件

curl -u you@gmail.com --silent "https://mail.google.com/mail/feed/atom " | <br/>perl -ne \ <br/>' <br/>print "Subject: $1 " if /&lt;title&gt;(.+?)&lt;\/title&gt;/ &amp;&amp; $title++; <br/>print "(from $1)\n" if /&lt;email&gt;(.+?)&lt;\/email&gt;/; <br/>'

Gmail的一个特色是支持Atom feed输出邮件列表,所以总是见到很多Gmail邮件提醒器之类的,因为开发特简单,atom很方便。

这里只是利用了perl的正则来解析atom(sed/awk也能做到)。

10.用TELNET看《星球大战》

telnet towel.blinkenlights.nl

没什么好解释的,就是ASCII艺术之一。如果你有ipv6连接,还能看到彩色版的。牛吧?

分享到:
评论

相关推荐

    最牛B的 Linux Shell 命令

    最牛B的 Linux Shell 命令,最牛B的 Linux Shell 命令,

    最牛的Linux Shell 命令.pdf

    本文将详细介绍一些顶级的Linux Shell命令,帮助用户提升在Linux运维和服务器管理中的效率。 1. **以SUDO运行上条命令** `$ sudo !!` 当你需要以管理员权限执行上一条命令时,可以使用`sudo !!`。这里的`!!`是...

    最牛B的 Linux Shell 命令 中文版

    Shell作为Unix系操作系统当中最有魅力且不可或缺的组件,经过数十载的...本文的一些命令很可能看起来是"雕虫小技",我们只好仰慕一下Shell大牛了,但是有些细节我会稍加发掘加以说明,遇到有趣的地方希望能博您一笑了。

    最牛B的linuxBshell命令

    最牛B 的 linux B shell 命令 最牛B 的 linux B shell 命令

    Linux常用命令大全Linux常用命令深入理解Linux内核鸟哥的Linux私房菜Linux命令学习资料(12个).zip

    Linux常用命令大全Linux常用命令深入理解Linux内核鸟哥的Linux私房菜Linux命令学习资料(12个): Linux命令大全(Linuxidc.com修改版).chm Linux命令学习.chm Linux基础命令教程(豪华版).chm LINUX安全加固手册.doc ...

    Linux Shell编程最牛面试题全揭秘 119页

    Linux Shell编程是一种使用命令行解释器(如bash)编写脚本的方式,它在Linux系统管理、自动化任务和处理文本文件等方面有着广泛的应用。Shell脚本的使用是面试Linux系统管理员、运维工程师、DevOps工程师等职位时必...

    史上最牛b的linux教教程

    Linux 的命令格式通常由命令名、选项和参数组成,例如 `ls -l`、`mkdir -p` 等。 11. Linux 目录处理命令 Linux 目录处理命令包括 `ls`、`mkdir`、`cd`、`pwd`、`rmdir` 等,用于目录的管理和操作。 12. Linux ...

    史上最牛Linux教程

    史上最牛Linux教程。 简单,易学,页数不是很多。

    史上最牛的Linux内核学习方法论.doc

    ### Linux内核学习方法论——以U盘驱动为例 #### 一、引言 随着Linux系统的广泛应用和发展,越来越多的人开始接触并尝试理解Linux内核的工作原理。然而,面对庞大的Linux内核源码库,初学者往往会感到无从下手。...

    linux命令大全(15部最全面的CHM文档)linux命令手册集合最新版本

    Mint11官方中文手册.pdfLinux命令大全(Linuxidc.com修改版).chmLinux命令学习.chmLinux基础命令教程(豪华版).chmLinux基础命令教程豪华版.chmLINUX安全加固手册.docLinux常用命令全集.CHMLinux常用命令大全.chm史上...

    linux命令大全.rar

    《史上最牛Linux教程》可能是一个集大成者,包含了丰富的Linux知识和实战技巧,适合有一定基础的用户提高技能。 《深入理解Linux内核》则更偏重于技术深度,讲解了Linux内核的工作原理,对想要了解Linux内部机制的...

    史上最牛的linux教程学习笔记整理

    史上最牛的linux教程学习笔记整理、linux学习笔记整理、

    Linux常用命令和基础命令和教程,好用,非常推荐

    所提供的资源如“史上最牛Linux教程”、“Linux基础命令教程豪华版”和“Linux常用命令”都是很好的学习材料,值得深入研究。学习Linux不仅能提升工作效率,也有助于理解计算机系统底层工作原理,为成为IT专家打下...

    linux下最牛B的测网速软件,没有之一

    本文将详细介绍一款被誉为“Linux下最牛B的测网速软件”——iperf,以及如何利用它来进行网络速度和性能的测量。 iperf是一款强大的网络性能测试工具,它支持TCP和UDP协议,可以用来测量带宽、延迟抖动以及网络连接...

Global site tag (gtag.js) - Google Analytics