1、部分行替换:
例如:将5到11行前面加上#(即注释掉5到11行):sed -i '5,11s/^/#/g' Hello.java
去掉开头的#号,在vi模式下使用:%s/^#//g

2、grep取上下行
cat  a.txt  |  grep -A1 saved       //取匹配行及其下一行
cat  a.txt  |  grep -B1 saved       //取匹配行及其上一行
cat  a.txt  |  grep -1  saved       //取匹配行及其上下一行
3、查看二进制文件
$ vim dir
然后输入":%!xxd"命令。如下:
linux命令补遗 - 4_职场
 
会把二进制文件的内容转换为十六进制。
还可以用:":%!od"、":%!xxd -c N",N为数字,表示每行显示的字节数。
4、拷贝是保留模式、权限、时间戳
-p     same as --preserve=mode,ownership,timestamps
例:-p     same as --preserve=mode,ownership,timestamps
5、vi快捷键

Ctrl + a:去往首行

Ctrl + e: 去往末行

Alt + f: 前进一个字

    Alt + b: 退后一个字 
 6、yum安装与卸载
按照:yum install ...
卸载:yum remove ...
7、解压到指定目录:-d
例子:unzip spring-framework-3.1.0.M2-with-docs.zip  -d /home/kejuwang/works/opensource/spring
 
8、正确和错误输出: > exp.out 2>&1
bash -x ./startws.sh > exp.out 2>&1
 
9、查看进程,去除头部
ps  --no-heading -C java -f --width 1000
 
10、echo -e
echo -e  后一般会接参数,
-e 若参数出现以下字符,则特别加以处理,而不会将它当成一般
文字输出:
   \a 发出警告声;
   \b 删除前一个字符;
   \c 最后不加上换行符号;
   \f 换行但光标仍旧停留在原来的位置;
   \n 换行且光标移至行首;
   \r 光标移至行首,但不换行;
   \t 插入tab;
   \v 与\f相同;
   \\ 插入\字符;
   \nnn 插入nnn(八进制)所代表的ASCII字符;
 
  1. [admin@inc-platform-133-132 ~]$ echo -e "abc\n" 
  2. abc 
  3.  
  4. [admin@inc-platform-133-132 ~]$ echo "abc\n" 
  5. abc\n 
【注意】注意echo -e "abc\n"的最后多输出了一行(空行),也就是-e参数的效果,让特殊字符生效
 
11、注意调试:bash -x的输出
 
  1. memcached_pid=`ps  --no-heading -C memcached -f --width 1000 | grep "$MEMCACHED_INSTALL_CTL" |awk '{print $2}' 
 当$MEMCACHED_INSTALL_CTL未定义时,同样可以执行,所以会带来执行执行和脚本中执行的区别,注意调试。
 
12、输出1到100:seq 1 100,常用于循环中:
  1. for i in `seq 1 100`  
  2. do 
  3.     echo $i 
  4. don 
 
13、yum卸载
 
查看安装情况
  1. #yum list | grep httpd 
  2. alibaba-httpd.x86_64                       2.0.63-17                   installed 
  3. alibaba-httpd22.x86_64                     2.2.15-2                    installed 
  4. alibaba-httpd.x86_64                       2.2.15-22                   update    
  5. alibaba-httpd-int.x86_64                   2.0.61-17                   update    
  6. alibaba-httpd_module-img_private.x86_64    1.0-2                       update  
卸载:yum remove
  1. #yum remove alibaba-httpd.x86_64  
安装:线上是安装是alibaba-httpd.x86_64                       2.2.15-22  
  1. yum install alibaba-httpd.x86_64 
 
14、vi中部分行替换:“:1,57s/^/#/g
例子:将:将1到57行中的全部注释,方法:":1,57s/^/#/g"
 
15、文件编码方式转换:iconv
-f:from
-t:to
将文件从gbk编码转换成utf8编码:iconv -f gbk -t utf8 filename
 
16、条件判断参数查询:man test
使用man test可以查看if中参数的选择,例如:-z:判断字符串长度是否为0
 
17、分析apache的访问日志
例:以"为分隔符,查看refer(引用当前js的url)
awk -F "\"" '{print $4}' apache_access.log | more
 
18、查看文件的最后修改时间
-r, --reference=FILE
              display the last modification time of FILE
例子:
  1. [admin@hz-unicorn1 2]$ date -r apache_access.log.2.tar.gz  
  2. Wed Nov 16 02:55:06 PST 2011 
 
  1. kejuwang@kejuwang-desktop:~/work/unicorn-docs$ date -d"2010/09/02 13:00:00" +"%Y%m%d%H%M" 
  2. 201009021300 
将文件的最后修改时间进行格式化:"`date -r unicorn-accesslog-backup.sh`"
 
  1. date -d"`date -r unicorn-accesslog-backup.sh`" +"%Y-%m-%d" 
 
正确的格式化文件最后修改时间:
  1. kejuwang@kejuwang-desktop:~/work/unicorn-docs$ date -r apache_access.log +"%Y_%m_%d %H:%M:%S" 
  2. 2011_11_16 15:59:59 
19、去除VI中的某些文字的存在的下划线
: syntax off 
 
20、yum安装与卸载软件
yum list
 yum install
卸载:yum erase
 
21、统计目录下所有文件以及文件夹大小和总大小
du -shc *
22、wget注意事项
(1)wget在访问url的时候,后面的url最好放在双引号之中,因为经常有url中包含&符号,命令行会将url截断,认为&为后台执行。
例如:wget -c "http://www.baidu.com/s?tn=baiduhome_pg&bs=request+getHeader+User-Agent+%BF%D5&f=8&rsv_bp=1&rsv_spt=1&wd=request+getHeader+User-Agent+null&inputT=1013"
 22、svn diff操作
svn diff -r newversion:oldversion  path

svn diff -r 1327:1326 mcsd_svc.php
23、tar解压到制定目录(条件:目录需存在,且使用大写的-C)
tar zxvf hummock.server.db-2.3.1.tar.gz -C db 
24、为软件打补丁
例如:gzip -cd php-5.2.6-fpm-0.5.9.diff.gz | patch -d php-5.2.6 -p1