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"命令。如下:






會把二進制檔的內容轉換為十六進制。

 

還可以用:":%!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字元;




[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





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
創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()