1 |
man 7 ascii |
不少人初学编程都会接触到ascii码的概念,有时候为了查某个符号的ascii值,可能还得翻箱倒柜找出当年的课本?Linux Manpage里面其实包含了不少相似的实用资料,上述命令就能很详细的方式解释ascii编码,固然这里还有在线版。html
man命令的第二个参数是区域码,用来区分索引词的范围,好比printf
,在C标准库里面的printf
跟bash当中的printf
是不一样的,前者的查询是man 3 printf
,后者是man 1 printf
。若是这个区域码省略,就会从1开始搜索,直到找到为止。正则表达式
命令man man
能够看到详细的解释。shell
manpages里面还有一些有趣并且实用的资料,可能不为人知:编程
select()
系统请求的教程。errorno
的取值及说明。(C语言内相似其余语言的异常告知机制)/dev/full
这个老是处于“满”状态的磁盘。(对应/dev/null
这个老是空的设备)/proc
下的文件系统。第7区里面的资料一般最酷:windows
1 |
time read |
运行命令开始算起,到结束时按一下Enter
,就显示出整个过程的时间,精确到ms级别。安全
time是用来计算一个进程在运行到结束过程耗费多少时间的程序,它的输出一般有三项:bash
1 2 3 4 5 |
$ time ls /opt ... real 0m0.008s user 0m0.003s sys 0m0.007s |
real指整个程序对真实世界而言运行所需时间,user指程序在用户空间运行的时间,sys指程序对系统调用锁占用时间。服务器
read原本是一个读取用户输入的命令,常见用法是read LINE
,用户输入并回车后,键入的内容就被保存到$LINE
变量内,但在键入回车前,这个命令是一直阻塞的。网络
可见time read
这命令灵活地利用了操做系统的阻塞。用这个命令来测试一壶水多久煮滚应该是不错的。ssh
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主机就是了。
1 |
(cd /tmp && ls) |
固然这只是演示,要查看目录固然能够ls /tmp
。
好处就是不会改变当前shell的目录,以及若是命令中设计环境变量,也不会对当前shell有任何修改。
在Shell编程中还有不少使用上引号来括住一个命令:`ls /tmp`,这也是子shell过程。但是上引号的方法没法嵌套,而使用小括号的方法能够,一个比较纠结的例子是:
1 |
echo $(echo -e \\x$(printf "%x" 65)) |
1 |
ssh -t host_A ssh host_B |
若是目标机器host_B处于比较复杂的网络环境,本机没法直接访问,但另一台host_A可以访问到host_B,并且也能被本机访问到,那上述命令就解决了方便登陆host_B的问题。
但理论上这个过程是能够无限嵌套的,好比:
1 |
ssh -t host1 ssh -t host2 ssh -t host3 ssh -t host4 ... |
嗯那神马FBI CIA的,有本事来捉我吧~
1 |
<CTRL+l>; |
这个跟以前介绍的reset
命令重置终端的做用有些相似,其实都只是发送一段控制序列,让终端的显示复位。
还能够这样运行:
1 |
tput clear |
tput是专门用来控制终端的一个小工具,也挺强大的,详细信息运行man tput
查看。
1 |
ping -a IP |
系统管理员最常作的事情是重启系统。可是服务器的重启过程每每得花上好几分钟,什么你的服务器4个scsi卡?16个硬盘?系统是Redhat?还彻底安装全部组件?好吧,它重启的时间都够你吃顿饭了,因此我很想知道它何时回来。
ping命令有个audible ping参数,-a
,当它终于ping通你的服务器时会让小喇叭叫起来。
1 |
history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head |
这行命令组合得很妙:
history输出用户了命令历史;awk统计并输出列表;sort排序;head截出前10行。
1 2 3 4 5 6 |
curl -u you@gmail.com --silent "https://mail.google.com/mail/feed/atom" | perl -ne \ ' print "Subject: $1 " if /<title>(.+?)<\/title>/ && $title++; print "(from $1)\n" if /<email>(.+?)<\/email>/; ' |
Gmail的一个特点是支持Atom feed输出邮件列表,因此老是见到不少Gmail邮件提醒器之类的,由于开发特简单,atom很方便。
这里只是利用了perl的正则来解析atom(sed/awk也能作到)。
1 |
telnet towel.blinkenlights.nl |
没什么好解释的,就是ASCII艺术之一。若是你有ipv6链接,还能看到彩色版的。牛吧?