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 //取匹配行及其上下一行
$ vim dir
然后输入":%!xxd"命令。如下:
会把二进制文件的内容转换为十六进制。
还可以用:":%!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
[admin@inc-platform-133-132 ~]$ echo -e "abc\n" abc [admin@inc-platform-133-132 ~]$ echo "abc\n" abc\n
【注意】注意
echo -e "abc\n"
的最后多输出了一行(空行),也就是-e参数的效果,让特殊字符生效
11、
注意调试:bash -x的输出
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,常用于循环中:
for i in `seq 1 100` do echo $i done
13、yum卸载
查看安装情况
#yum list | grep httpd alibaba-httpd.x86_64 2.0.63-17 installed alibaba-httpd22.x86_64 2.2.15-2 installed alibaba-httpd.x86_64 2.2.15-22 update alibaba-httpd-int.x86_64 2.0.61-17 update alibaba-httpd_module-img_private.x86_64 1.0-2 update
卸载:yum remove
#yum remove alibaba-httpd.x86_64
安装:线上是安装是
alibaba-httpd.x86_64 2.2.15-22
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
例子:
[admin@hz-unicorn1 2]$ date -r apache_access.log.2.tar.gz Wed Nov 16 02:55:06 PST 2011
kejuwang@kejuwang-desktop:~/work/unicorn-docs$ date -d"2010/09/02 13:00:00" +"%Y%m%d%H%M" 201009021300
将文件的最后修改时间进行格式化:
"`date -r unicorn-accesslog-backup.sh`"
date -d"`date -r unicorn-accesslog-backup.sh`" +"%Y-%m-%d"
正确的格式化文件最后修改时间:
kejuwang@kejuwang-desktop:~/work/unicorn-docs$ date -r apache_access.log +"%Y_%m_%d %H:%M:%S" 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
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
25、命令行以打字模式一个一个字符显示
clear echo "welcome to sample.so , you can learn IT by doing" | pv -qL 10