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 將檔案從遠端主機中傳送至本地主機中。如要獲取...