[SHELL进阶] (转)最牛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 usefile:///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}}' | sort -rn | head
这行命令组合得很妙: history输出用户了命令历史;awk统计并输出列表;sort排序;head截出前10行。
9.检查GMAIL新邮件
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也能做到)。
10.用TELNET看《星球大战》
telnet towel.blinkenlights.nl
没什么好解释的,就是ASCII艺术之一。如果你有ipv6连接,还能看到彩色版的。牛吧?
[SHELL进阶] (转)最牛B的 Linux Shell 命令 (四)的更多相关文章
- Linux基础命令(四)
作业一:1) 开启Linux系统前添加一块大小为15G的SCSI硬盘 [root@bogon ~]# fdisk -l Disk /dev/sda: 21.5 GB, 21474836480 byte ...
- [SHELL进阶] (转)最牛B的 Linux Shell 命令 (二)
1.用你最喜欢的编辑器来敲命令 command <CTRL-x CTRL-e> 在已经敲完的命令后按 <CTRL-x CTRL-e> ,会打开一个你指定的编辑器(比如vim,通 ...
- [SHELL进阶] (转)最牛B的 Linux Shell 命令 (三)
1. 更友好的显示当前挂载的文件系统 mount | column -t 这条命令适用于任何文件系统,column 用于把输出结果进行列表格式化操作,这里最主要的目的是让大家熟悉一下 columnt ...
- [SHELL实例] (转)最牛B的 Linux Shell 命令 (一)
本文编译自commandlinefu.com ( 应该是 Catonmat ) 的系列文章 Top Ten One-Liners from CommandLineFu Explained .作为一个由 ...
- 《最牛B的Linux Shell命令》笔记
1.以sudo 运行上一条命令 sudo !! 大家应该都知sudo,不解释.但通常出现的情况是,敲完命令执行后报错才发现忘了sudo.如下: ➜ ~ cp ~/download/CentOS7-Ba ...
- linux常用命令(四)
1.压缩解压命令 gzip命令 默认为.gz格式文件 1.只能压缩文件不可压缩目录 2.不保留源文件 压缩 giz 解压 gunip tar命令 -c产生打包文件 -v显示相信打包压缩过程 - ...
- Linux 常用命令四 rmdir rm
一.rmdir命令 用于删除空目录: wang@wang:~/workpalce/python$ tree . ├── .txt ├── .txt ├── .txt ├── A │ └── B │ ...
- Linux基础命令四
iptables iptables -F:关闭防火墙 crontab -l查看定时任务 crontab -e :编辑定时任务 log日志相关: ls /var/log:查看日志 du -sh /v ...
- linux 常用命令(四)——(centos7-centos6.8)Vim安装
centos是默认安装了vi编辑器的,vim编辑器是没安装或者未完全安装的,个人习惯用vim,所以记录一下vim编辑器的安装: 1.查看vim相关软件信息: yum search vim 2.在线安装 ...
随机推荐
- php 正则表达式
<?php //正则表达式 //定界符:斜杠:/正则/ //匹配开始:^ //匹配结束:$ /*\d代表一个数字 \w代表一个单词 */ $zz = "/(13[0-9]|14[5|7 ...
- linux svn客户端 常用命令
查看文件或者目录状态: [root@v01 ~]# svn status online/ #正常情况下没显示 [root@v01 ~]# svn status online/ #如果有变动会有如下显示 ...
- Java开发中程序和代码性能优化
现在计算机的处理性能越来越好,加上JDK升级对一些代码的优化,在代码层针对一些细节进行调整可能看不到性能的明显提升, 但是我觉得在开发中注意这些,更多的是可以保持一种性能优先的意识,对一些敲代码时间比 ...
- Linux下打包压缩war和解压war包
Linux下打包压缩war和解压war包 unzip是一种方法,如果不行则采用下面的方法 把当前目录下的所有文件打包成game.war jar -cvfM0 game.war ./ -c 创建wa ...
- To be transfered
bomb: file format elf64-x86-64 Disassembly of section .init: 0000000000400b38 <_init>: 400b38: ...
- ListView系列(七)——Adapter内的onItemClick监听器四个arg参数 (转)
举个例子你会理解的更快:X, Y两个listview,X里有1,2,3,4这4个item,Y里有a,b,c,d这4个item.如果你点了b这个item.如下: public void onItemCl ...
- 把Chrome浏览器变成文本编辑器
CoderWall 分享的一个小技巧. 在浏览器地址栏中输入一行代码:data:text/html, <html contenteditable> ,回车即可把浏览器变临时编辑器. 按f1 ...
- Android 一个app启动另一个app
最近,一个app启动另一个app,这个玩法挺火的嘛,有没有试过更新QQ到5.1版本,QQ的健康里面就可以添加其他app,实现从QQ跳转到其他app应用.这个挺好玩的,一下子带来了多少流量啊. 一.先来 ...
- 递推DP URAL 1119 Metro
题目传送门 /* 题意:已知起点(1,1),终点(n,m):从一个点水平或垂直走到相邻的点距离+1,还有k个抄近道的对角线+sqrt (2.0): 递推DP:仿照JayYe,处理的很巧妙,学习:) 好 ...
- TV测试中的按键长按操作模拟
从UiAutomator在TV测试中的局限性说起: 智能TV的操作和手机的操作有很大不同,一般智能TV的操作为遥控器按键操作,来向TV OS发送 KeyCode,以完成指定操作. UiAutomat ...