第一组:
1.\cp 调用非alias 的cp 2.alias t='firefox http://t.mreald.com/ &' 3.第一个是历史文件大小,第二个是多少行 HISTFILESIZE=2000 HISTSIZE=1000 4. 不区别大小写 set completion-ignore-case on 5.echo 1 2 3 4 | read one two three four 6.BASHOPTS SHELLOPTS shopt(-s 开 -u关) #!/bin/sh -x
第二组:
1.PPID $$ (前者是调用shell的ID,后者是自身ID,$$可以用来创建唯一文件) 2.$$、mktemp、sleep 1;echo $SECONDS(计算运行时间的) 唯一数 3.RANDOM 0~32767 4.GLOBIGNORE=*.php;ls * 5.IFS=$' \t\n' TMOUT 自动退出 6.ls A?? 匹配两个字母 ls [!a] or ls [^a] 非a开头的 - 只能在开头与结尾
第三组:
1.set -o noglob (关闭扩展 +o 打开) 2.shopt -s extglod [ GLOBIGNORE=/dev/sd*[0-9]; ls /dev/sd+([a-z]) ;ls abc@(.txt|.php) ] ? 0-1 * 0-n + 1-n @ 1 ! 非 3. shopt -s nocaseglob 4.echo ${line/Wintel/Linux} 第一个替换 echo ${line//Wintel/Linux} 全部替换 echo ${line#Wintel/Linux} Wintel 开头的(不是^) %为末尾 5.${line#word} 非贪婪 ${line##word} 贪婪 % %% 反方向 ${line^^} 转为大写 ${line,,} 小写 6${var:-/home} for myvar in PATH HOSTNAME; do echo $myvar is ${!myvar}; done
第四组:
1.ps System V 使用最广泛 ps -fp 312 ps -Fp 312 ps -fp 312 |cat - kill -9 `pgrep -x apache2` (-x 精确匹配) pgrep -l apa pgrep -d ' ' -x apache2 pgrep -u user1 database 2. exec 替换 已有的程序 修改重定向: 1.打开用于写的文件 exec 3> /tmp/onlywriting ;ls -l /proc/$$/fd 2.打开用于读的文件 exec 4< /tmp/onlyreadding; 3.跟踪文件位置(删除在使用的而非真正删除的原因:对文件与文件描述符读取差异,消耗!) 用 >清空 3. /proc ctrl+alt+sysrp h/s...... echo h >/proc/sysrq-trigger (/proc/sys/kernel/sysrq 1表示启用 0禁用) tail /var/log/messages 4. cat cat -vT 显示非打印字符与tab cat -e 显示$ install 其实是增加版本的cp splite -b 1G -d big.txt piece_ ;cat piece_*>big.txt 5. touch -t 201402200000 test1 但不能修改chang 时间 locate filename 很快,/etc/cron.daily/mlocate.cron cut paste 小巧灵活 脚本可以输入 Ctrl+M 如: ^M `date` vim中输入方法:Ctrl+v ->ctrl +m 6.格式化工具 fmt indent 随机排序工具 shuf
第五组:
netcat 在脚本中是telnet替代品 netcat blog.mreald.com 80 netcat -vz 192.168.0.10 1-1024 同nmap 192.168.0.10 netcat -l -p 8888 |pt -v >iso.gz (用来传输数据) ping -c1 -w1 ip seq 10 10 40 10-40 每次增加10 timeout -s 9 60 wget http://blog.mreald.com uuencode 二进制编码,适合电邮 yes no |cp -i * /tmp man ascii:获得一个好用的ASCII表格,包含10进制和16进制的值。 #在当前路径下执行一些命令 (cd /some/other/dir; other-command) # 工作路径仍然是当前目录 ${name:?error message} 检查某个变量是否存在,若不存在输出 error message。 lynx -dump -stdin:将HTML转换为文本 xmlstarlet:需要处理XML时,这个命令很有用。 Ctrl-S Ctrl-C:将一不小心需要大量输出文本时,依次输入这两个操作,比单纯的频繁按Ctrl-C能更快让程序终止。 split,csplit:分别可以实现将文件按照大小分割,以及按照特定的模式分割。 iconv,uconv:可以帮助转换文本编码
建立新文件并写入内容 :
[armlinux@lqm patch]$ cat >test0<<EOF > 111111 > 111111 > 111111 > EOF