使用Linux五年积累的一些经验技巧
程序员文章站
2022-05-14 08:37:32
1. bash中的$相关参数 复制代码 代码如下:$0 - 表示当前文件名 $* - 以空格分离所有参数,形成一个字符串 $@ - 以空格分离所有参...
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
复制代码 代码如下:
$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
上一篇: 勒索病毒肆虐教训:升级到Win10 重要文件多备份
下一篇: Flask 系列之 Blueprint