使用Linux五年积累的一些经验技巧

1. bash中的$相关参数

  

复制代码 代码如下:

  $0 - 表示当前文件名

  $* - 以空格分离所有参数,形成一个字符串

  $@ - 以空格分离所有参数,形成一个字符串组合。与$*的不同表现在被""引用时,"$*"是一个字符串,而"$@"则包含多个字符串

  $# - 传递给进程的参数数目

  $? - 上一条命令的执行结果,没有错误时为0

  $$ - 本条命令的PID

  2. bash技巧,由变量的内容来组合为另一个变量的变量名

  EXAMPLE:

  

复制代码 代码如下:

  A_B_C_D="something"

  t1="B"

  t2="_D"

  eval echo \$A_${t1}_C${t2};

  3.  Ubuntu(12.04, 12.10)下,ThinkPad X220指点杆设置,分别设置灵敏度和速度

  

复制代码 代码如下:

  echo -n 225 > /sys/devices/platform/i8042/serio1/serio2/sensitivity

  echo -n 115 > /sys/devices/platform/i8042/serio1/serio2/speed

  4. 备份主引导扇区(bootsector)

  如果启动文件随坏,可以通过恢复主引导扇区来视图修复:

  备份

  

复制代码 代码如下:

  dd if=/dev/hda of=bootsector.img bs=512 count=1

  恢复

  

复制代码 代码如下:

  dd if=bootsector.img of=/dev/hda

  上面两步只是恢复了主引导扇区,很可能还需要把/boot里面的内容全都恢复才能正常启动,所以也可以备份一下/boot下面的文件。

  5. bash命令行输入技巧:

  使用Ctrl+R来搜索以前用过的命令

  使用Ctrl+W删除当前单次

  使用Ctrl+U删除当前行

  6. xargs很强大,用 -l{} 可以指定参数的位置:

  EXAMPLE

  

复制代码 代码如下:

  cat hosts | xargs -I{} ssh root@{} hostname

  7. 写安全的bash脚本:

  set -e,当有错误发生时,脚本会退出

  set -u,当bash发现有没有初始化的变量时就退出

  更多可参考:《写出健壮的Bash脚本》

  8. tar打包指定列表中列出的文件:

  

复制代码 代码如下:

  cat yourlist.lst

  /etc/fstab

  /home/admin/bin/somefile.sh

  /home/mysql/somefile

  ...

  tar cvzf xxx.tar.gz -T yourlist.lst

  9. 指定一个DNS服务器查询域名记录

  

复制代码 代码如下:

  dig @8.8.8.8 www.google.com

  10. sort命令最需要注意的参数是-k和-s:

  

复制代码 代码如下:

  -s, --stable

  stabilize sort by disabling last-resort comparison

  stable表示最终的顺序依赖于原来的顺序。

  EXAMPLE

  

复制代码 代码如下:

  $ cat a.txt

  a

  A

  b

  $ sort -f a.txt

  a

  A

  B

  $ sort -f -s a.txt

  a

  A

  b

  例子中,-f表示不区分大小写,-s表示顺序依赖于原来文件的顺序

  

复制代码 代码如下:

  -k, --key=POS1[,POS2]

  start a key at POS1 (origin 1), end it at POS2 (default end of line).

  所以只以第二列来排序应该写:

  

复制代码 代码如下:

  sort -k1,1