強大的UNIX,方便的UNIX,永遠的UNIX,讓人越學越喜歡。這裡的UNIX家庭小點滴,希望和大家分享。
1. 讓人放心的郵差ftp:
(1).在UNIX下,當建立文件傳輸對話後,可以通過Ctrl+z來先停止ftp進程,再用bg來將此進程放到後台執行,這樣可以在你回家睡覺的時間裡得到想要下載的文件,可以省卻很多不必要的等待。再也不會有為下載文件到微機上而怕斷線的擔心了。
(2).建立傳輸對話後,可以用hash命令來監視文件的下裝情況,每出現一個#提示為8192字節數據塊(某些系統是4096字節);當用mput或mget傳輸多個文件時,用prompt可以關閉交互式的提示;用append可以把一個文件附加到遠程機器的某一個文件上;help可以顯示所有ftp命令。
2. 技藝高超的修理師VI。
(1).在對話模式時(即輸完Esc再輸入: ),輸入“:set number”可以將編輯的文本加上行號。
(2).跟玩俄羅斯方塊一樣方便的上下左右移動箭頭的快捷鍵分別為:k,j,l,h。向下和向上翻頁分別時“Ctrl+f”和“Ctrl+b”,“Ctrl+l”可以在雜亂的顯示下刷新屏幕。
(3).對話模式下:回到行首你可以用 “ ^ ” 鍵(shift+6)或者數字0;當然回到行尾你可以用“ $ ”鍵(shift+4);回到文本末可以用“G”;“:n”可以定位光標到第n行行首,相應地,如果想回到文本開頭,可以用“:1”;“H”將光標移到屏幕左上角,“L”為屏幕最後一行,“M”為屏幕中間;至於句,節,段的始(末)端分別是“(,)”“[,]”和“{,}”,這個一般比較少用。
(4).輸入“/匹配字符串”可以定位到光標當前位置的下一個的匹配字符串處,用做查找功能。某些特殊字符用“\特殊字符”來輸入才能有效。“n”為查找下一個,“N”為查找上一個。
(5).替換編輯,“:1,$ s/string1/string2/g”為將全部文本中出現的string1用string2替換;其中1和$可以用m,n代替,則為將文本第m行到第n行的string1用sring2替換;去掉/g則只替換每個所選行的第一次出現。如果有特殊字符出現同樣加上“\特殊字符”即可。例如要將文全部/usr/local/acct用/home1/acct替換,可輸入“:1,$ s/\/usr\/local\/acct/\/home1\/acct/g”即可。
(6).文本刪除,“x”刪除當前字符;“nx”刪除n個字符;“dw”刪除當前字;“dd”刪除當前行;“:dn”從當前行開始刪除n行,當n足夠大時,刪除從當前行開始的後面所有行,不刪除前面的行;“:m,n d”刪除m到n行;“D”刪除當前光標到行末的全部內容。
(7).文本插入,I,i,A,a分別為在光標行開始處,光標前,光標行行尾,光標後放置所輸入的新文本,“o”和“O”分別為在當前行下一行和當前行上一行插入新行開始輸入。
(8).“Esc u”可以取消最後一次編輯,再輸入一次“u”又恢復最後一次操作,“· ”為重復上一次操作。“”np”將第n號緩沖區中的內容放到文件中,所以“”1pu.u.u.u.u.u.u.u.”可以恢復前9次刪除的任意一次,直到滿意為止。
(9).“:w filename”將當前編輯的文件寫入文件filename中,如果 filename已經存在,需要用“: w! filename”覆蓋。“: r filename”將文件filename 讀入到當前文件。 當編輯多個文件時,可以用“:n”來切換到下一個文件,想要切換到第n個文件則用“:nn”(第二個n表示數字第n 個)。
(10).當編輯文件想取消本次所有編輯而不退出vi,則使用“:e!”即可;如果想不退出vi而查看UNIX系統的有關信息,輸入“:shell ”即可進入vi以前的shell環境,“exit”退回到vi編輯狀態。
(11).如果想粘貼一行,則先在非編輯狀態(按過Ese鍵以後)光標移到該行處輸入“yy”,再將光標移到需要拷貝的位置的前一行,用“p”即可完成一行的拷貝;如果想拷貝多行則用“:y n”則拷貝當前行包括當前行在內的n行,再將光標移到相應的位置,輸入“p”即可完成n行的拷貝。
3. 梁山英雄的見證人Sort
sort可以根據不同的列將文件中的內容排序,對靈活處理文件非常有幫助。
(1),sort file 將文件按照第一列的字母順序排序。
(2),將排序好的結果輸出到文件
sort –o fileb filea 將文件filea排序輸出到fileb;也可以用sort filea >fileb重定向的方法。
sort –o filea filea 將文件filea排序且覆蓋原來的文件
(3),-r 為按降序排序,-n按數字的小大排序,+n(n為0和正整數)按第n+1個字段排序。
Sort –nr +3 filea 即是將filea文件按照第4個字段的數字大小排序,假設filea第4個字段為數字,
並且每個字段之間用空格或Tab鍵分開。
(4),-t選項為定義文件字段之間分界的符號,-n(n為0或正整數)表示不按第n+1個字段排序。所以 sort +1 –2 +0 -3 -t: filea將文件filea分別按第2個,不按第3個,按第1個,不按第4個字段排序,其中每個字段之間用“:”分開。
(5),與uniq命令結合可以刪除 余的行 sort filea |uniq 將文件filea刪除所有完全相同的行後輸出。
4. 裁縫世家cut&paste
(1),從一個文件中剪貼字段,字段之間按照特定的符號隔開(默認為空格)。cut –f2,3,5 –d:filea 將文件filea的第2,3,5個字段剪貼出來輸出到屏幕,其中每個字段之間用:分開,如果不帶-d則每個字段之間按空格分開。
(2),-c選項可以剪貼文件中的數據列。cut -c 1-15,20,22-30 filea 可以剪貼文件filea從第一列開始的第1-15個字符,第20個字符,和第22-30個字符,並輸出。
(3),paste 可以將多個文件按列方式合並,與 cut相結合可以重組文件格式。
Cut –d: -f2,5 filea >tmp1
Cut –d: -f 4,3 fileb >tmp2
Cut –d: -f 11,12,13 filec >tmp3
Paste tmp1 tmp2 tmp3 >filed
則分別將文件filea的第2和第5個字段,fileb的第4個和第3個字段,filec的第11,12,13個字段合成為一個新文件filed。(最好filea,fileb,filec具有相同的行,不然將會將行多的文件的行貼到最後,前面的照樣匹配。
5. 偷梁換柱的高手tr.
tr(translate)完成文件種批編輯的替換功能,用來將標准輸入中的字符轉換成標准輸出中的其他制定字符:
(1). tr A B
fileb 將文件filea中的所有A全部替換成B然後輸出到文件fileb
(2). tr 也支持范圍替換:
tr “[a-z]” “[A-Z]”
tr -s ‘[A-Z]' ‘[!*]'
(3). 可以利用tr 刪除一個字符的連續出現: tr –s ″ ″ fileb 則將filea中的連續出現的空格以一個空格替換然後輸出到文件fileb。
(4). –d 選項可以刪除指定的字符,-cd 選項可以刪除列出的字符以外的所有字符:
tr –d ″[a-z]″ fileb 將文件filea 中的所有小寫字符全部刪除然後輸出到fileb.
tr –cd ″[a-z]″
6. “find ,grep & strings” 織成一張無邊無際的網,幾乎可以網住所有需要查找的目標,但也難免有漏網之魚。
find 在目錄中查找文件: find / -name filea –print
grep 在文本文件中搜索模式: grep aaaaa filea
strings 在文本文件或二進制文件中找出可打印字符:strings filea
還有很多小成員,象sed,awk,perl,expect等,等我們混熟了,再介紹給大家。