使用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


$ sort -f a.txt  

A


$ sort -f -s a.txt  

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)

相关推荐

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

    1. bash中的$相关参数 复制代码 代码如下: $0 - 表示当前文件名  $* - 以空格分离所有参数,形成一个字符串  $@ - 以空格分离所有参数,形成一个字符串组合.与$*的不同表现在被""引用时,"$*"是一个字符串,而"$@"则包含多个字符串  $# - 传递给进程的参数数目  $? - 上一条命令的执行结果,没有错误时为0  $$ - 本条命令的PID 2. bash技巧,由变量的内容来组合为另一个变量的变量名 EXAMPLE:

  • Linux五步构建内核树

    目录 0. 系统自带的内核树 1. 环境配置 第一步 第二步 2. 下载源码 3. 构建准备 4. 构建内核 5. 安装模块 总结 0. 系统自带的内核树 有时,安装的系统已经自带了Linux内核树,足够用来编译驱动程序了. 自带的内核树通常位于 /lib/modules/<系统内核版本>/build 其中,系统内核版本可以用uname -r来查看 $ uname -r 5.11.0-41-generic 不过自带的内核树似乎不完整,所以建议按照下面的方法编译一个完整的内核树. 1. 环境配置

  • 分享五个PHP7性能优化提升技巧

    PHP7已经发布了, 作为PHP10年来最大的版本升级, 最大的性能升级, PHP7在多放的测试中都表现出很明显的性能提升, 然而, 为了让它能发挥出最大的性能, 我还是有几件事想提醒下. 1. Opcache 记得启用Zend Opcache, 因为PHP7即使不启用Opcache速度也比PHP-5.6启用了Opcache快, 所以之前测试时期就发生了有人一直没有启用Opcache的事情. 启用Opcache非常简单, 在php.ini配置文件中加入: zend_extension=opcac

  • linux下命令行操作快捷键及技巧(分享)

    历史相关命令 !!:执行上一条命令 !num:执行历史命令中第num条命令 !-num:执行历史命令中倒数第num条命令 !?string?:执行最近一条包含有string字符串的命令 Ctrl+r:搜索上一条匹配的命令 !$:代表上一个命令的最后一个字符串 Esc+.:显示上一个命令的最后一个字符串 移动相关命令 Ctrl+a:将光标移到行首 Ctrl+e:将光标移到行尾 Ctrl+右箭头:向右移动一个单词 Ctrl+左箭头:向左移动一个单词 Ctrl+f:向右移动一个字符,相当于按向右按键

  • 分享五个有用的jquery小技巧

    下文里技巧实现的效果虽然并不新鲜,但通过jQuery的封装,HTML实现了很大的清洁.清爽简洁又高效的代码任何时候都是开发者所醉心追求的终极目标,也许它简单,但是它能量巨大.一起来看看我们小编推荐给大家的五个非常实用的jQuery技巧. 1.禁用鼠标右键 $(document).ready(function() { $(document).bind("contextmenu", function(e) { return false; }); }); 当然jquery1.7版本以后bin

  • 分析五个Laravel Dusk的使用技巧

    目录 1. 填充隐藏字段 2. 模拟 HTML 地理位置 3. 使用 XPath 选择器 4. 整页截屏 5. 访问浏览器错误日志 1. 填充隐藏字段 在测试某些 JS 组件时 (例如自动完成,日期选择器等) ,可能需要编写动作模拟操作与这些组件交互.犹豫这些组件中的大多数最终都会将值保存到隐藏字段中.那么将值直接填写到隐藏字段中可能更加方便.这可以防止不稳定的测试,并确保我们不测试自己不拥有 / 控制的东西 (第三方组件). 尽管 Laravel Dusk 没有为我们提供类似$browser-

  • 精简高效的C#网站优化经验技巧总结

    目录 对大型网站,技术涉及面非常广,对硬件,软件,编程语言,Web Service,防火墙等等有很高要求. 面对大量用户,高并发请求,可以使用高性能服务器,高性能编程语言,高性能数据库,加大带宽等,这意味着巨大的投入. 如果你没有这样的打算,而又想获得更好的系统性能,则需要我们精打细算,从"软"的方面着手. 如果你有过以下的一些用法,或者有不同见解,请赐教. (1)Foreach比for有更好的执行效率. Foreach所花的时间大约只有for的30%,通过测试结果,在两者都可以使用的

  • linux下建站目录分配权限的经验技巧总结

    前言 在网上搜索网站文件夹权限配置一般都是是: 文件夹权限最小权限755 文件最小权限644 文件的可读可写可执行很容易理解,但文件夹的权限就需要好好梳理梳理啦,下面是自己的一些经验分享给大家,需要的一起来看看详细的介绍: 前期工作 先创建一个文件夹 test mkdir test 在该目录下创建一个1.txt文件并写入111 cat > 1.txt 111 现在退出该目录来一个一个分析改目录权限 不要用root用户来创建文件夹,因为文件权限配置对root用户无效 目录的可执行权限 chmod

  • Linux Shell 数组的创建及使用技巧

    linux shell在编程方面比windows 批处理强大太多,无论是在循环.运算.已经数据类型方面都是不能比较的. 下面是个人在使用时候,对它在数组方面一些操作进行的总结. 1.数组定义 [chengmo@centos5 ~]$ a=(1 2 3 4 5) [chengmo@centos5 ~]$ echo $a 一对括号表示是数组,数组元素用"空格"符号分割开. 2.数组读取与赋值 得到长度: [chengmo@centos5 ~]$ echo ${#a[@]} 5 用${#数组

  • Linux系统中sudo命令的十个技巧总结

    前言 在Linux和其他类Unix操作系统中,只有root用户可以运行所有命令并在系统上执行某些关键操作,如安装和更新,删除包,创建用户和组,修改重要的系统配置文件等. 然而,承担root用户角色的系统管理员可以允许其他正常系统用户在sudo命令和几个配置的帮助下运行某些命令以及执行包括上述的一些重要系统操作. sudo 表示 "superuser do". 它允许已验证的用户以其他用户的身份来运行命令.其他用户可以是普通用户或者超级用户.然而,大部分时候我们用它来以提升的权限来运行命

随机推荐