Linux下的常用shell命令

2021-09-30 13:04:30 字數 4122 閱讀 2739

1.字元介面下的shell命令操作(1)檢視當前目錄。pwd

(2)cat命令:標準的輸入、輸出,顯示檔案。引數如下:

-n 輸出行編號

-b 對空白行不編號

-s 大於兩行的空行換成一行

-v 顯示問列印的字元lfd和tab

-e display $ at end of each line

-t display tab characters as ^i

-a equivalent to –vet

-e equivalent to –ve

新建檔案並輸入內容:cat >f1

[使用cat命令進行輸入時,而且只能用退格鍵(backspace)來刪除游標前一位置的字元。並且一旦按下回車鍵,該行輸入的字元就不可修改。按ctrl+d鍵結束輸入。]

linux is userful for us all.

you can never imganie how great it is.

輸入命令「cat f1」,檢視f1檔案的內容。

在檔案末尾增加內容:cat >>f1

(3)  wc命令:顯示檔案資訊,引數如下

-c --bytes

-m --chars

-l --lines

-w –word counts

統計f1檔案的行數,單詞數和字元數,並將統計結果存放在countf1檔案。

輸入wc countf1,再檢視cat countf1

(4) 分頁顯示/etc目錄中檔案及目錄(一律按名稱排序)

ls /etc|head –n 15:顯示前15行

2.萬用字元的使用

最實用的萬用字元是:

* --可代表任意多個字元

? –代表乙個字元

示例:ls /bin/c*

ls /bin/c??

不常用的:

ls /bin/[c,s,h]*   //首字母為c或s或h

ls /bin/[!a-e]*   //首字母不是a、b、c、d、e

!!        //重複上一步操作。即執行ls /bin/[!a-e]*

3.設定手工啟**形化使用者介面

在/etc/inittab檔案中:

id:0-6分別代表:0代表關機, 6代表重啟,5代表重啟到圖形介面,其他不用管。

4.操作vi

vi是最老土的文字編輯器,和dos差不多,用起來非常不方便,vim是vi的加強版,但本質上都一樣,只是增強了一些命名功能。vi的三種模式切換如下:

l  命令模式:按esc鍵。

l  最後行模式:先進入命令模式,再按「:」鍵。

編輯模式下最好不要使用backspace,delete,insert以及上下左右方向鍵。若想使用這些鍵的功能,應退回到命令模式,使用其他快捷命令完成。

vi令一大堆,掌握下面幾個常用命令就ok了。

常用的vim(vi一樣)命令如下:

(1)儲存

:w /root/vim.txt      //儲存,w!為強制儲存

:w          //儲存(已儲存過的)

:w >>file2       //附加儲存到檔案file2裡面

:q!        //強制退出,不儲存

**下面三個命令均為:儲存並退出(已儲存過的)

:wq

直接按zz

:x(2)插入

a(游標後插入)

其他:  i(游標前)      i(行首)      a(行尾)     r(替換當前字元)

(3)刪除與剪下

x     //刪除當前游標位置的乙個或多個字元

:1,16 d      //刪除1至16行

dd             //剪下當前行(包括行尾的回車換行符)

d0            //剪下當前行游標之前所有字元,d後面是數字0

d$         //剪下當前行游標之後所有字元

x     //在游標只指向乙個字元的情況下,刪除游標的前乙個字元

(4)選擇與複製

v             //選定塊,從游標處開始選擇(可以跨多行選擇)

p         //貼上預設緩衝區的內容,在使用p命令之前不能使用x和x命令,否則p失效(本人親測,原因可能是x或x會將緩衝區的內容也一起刪除)

y           //複製選定塊的內容

yy         //複製當前行

:2,5 co 10        //將2至5行的內容複製到第10行後面

說明:vi的複製、貼上相當複雜,緩衝區就好象windows下的剪下板一樣,它有a-z和1-9這麼多,例如:要把一行插入a緩衝區,可鍵入:"ayy,為了把這個文字放回該檔案中,鍵入"ap 。

(5)移動

:1,3 m 5            //將1至3行移動到第5行後面

(6)其他

h、j、k、l     //移動游標,j上、k下(用滑鼠滑輪也可以上下移動)

u             //撤銷上一步的操作

小o、大o      //在當前行之下、之上新開一行,並且進入編輯模式

:sp [filename]  //在同一視窗中開啟第二個檔案, 在多個編輯檔案之間切換,用^ww

:set nu   //設定行號

ctrl+f    //向前翻屏

ctrl+b    //向後翻屏

5.編輯檔案

在終端中直接輸入vi file2開啟檔案

(1)搜尋(注意,不需要輸入:號)

?string        //向前搜尋

搜尋中可使用萬用字元

(2)替換

常用的三種格式:

:s/p1/p2/g          //當前行,p1用p2替代

:n1,n2s/p1/p2/g     //n1到n2行之間,注意n2和s之間無空格

6.c程式開發

在vi中編寫乙個test1.c程式,對程式進行編譯、連線、執行。

編譯命令如下:

gcc test1.c    //預設編譯產生的可執行檔案為a.out

gcc test1.c -o test1.out   //引數-o test1.out用於將生產的可執行檔案命名為test1.out

7. 除錯c程式

使用gdb除錯c程式,步驟如下:

(1)輸入命令「gcc test2.c –g –o test2」,重新編譯源**。

(2)輸入命令「gdb test2」,使用gdb偵錯程式對test2進行除錯。

(3)在gdb提示符(gdb)下輸入run執行,輸入命令「list」,列出10行源**,按enter鍵將列出下10行**。

(4)在17行str[size-i] = str[i]處設定斷點,輸入:break 15,再run執行會停止在第17行。

(5)*輸入命令「watch str2[size - i]」,設定觀察點來觀察str2[size - i]變數的值,不知道為什麼,我這裡顯示不了監視點的值(應該能顯示old value和new value的),去掉這一步更好,因為設定監視點代價非常高,而且設定了斷點就行了,用不著監視點。

(6)輸入命令「next」,單步執行for迴圈。(也可用step,step能深入呼叫的函式)

(7)用p顯示變數或表示式的值,每次執行n後都要執行p非常麻煩,可以用display expr設定自動顯示。例如設定了display a[i]以後就會在**的後面顯示1: a[i] = 17

取消display可以用disable display(恢復用enable display)或者delete display

(8)n步連續執行,用命令:cont n,比如cont 13將從現在開始執行13步後停止。

(9)在gdb提示符(gdb)下,輸入命令「quit」退出gdb偵錯程式。

注:除錯c程式用圖形介面的kdbg或者ddd更好,下面是kdbg的介面:

Linux下shell指令碼中的read命令

read命令作用 從標準輸入中讀取一行,並把輸入行的每個欄位的值指定給shell變數 引數 a 後跟乙個變數,該變數會被認為是個陣列,然後給其賦值,預設是以空格為分割符。d 後面跟乙個標誌符,其實只有其後的第乙個字元有用,作為結束的標誌,會舉例說 明。p 後面跟提示資訊,即在輸入前列印提示資訊。e ...

linux中shell常用聯合批量操作命令

最近學習過程中,常常使用的聯合批量操作命令,整理供以後參考 1 將目錄下所有檔案都轉化從dos為unix格式 find type f xargs dos2unix 2 將目錄下所有的.svn目錄刪除 1 find type d name svn xargs rm rf 2 find type d i...

linux掃盲之linux下常用FTP命令

格式 ftp hostname ip address a 在linux命令列下輸入 ftp 192.168.1.1 b 伺服器詢問你使用者名稱和密碼,分別輸入使用者名稱和相應密碼,待認證通過即可。格式 get remote file local file 將檔案從遠端主機中傳送至本地主機中。如要獲取...