作為一個程式設計師,在軟體開發職業生涯中或多或少會用到Linux系統,並且可能會使用Linux命令來檢索所需的資訊。本文將為各位開發者分享10個有用的Linux指令,希望對你會有所幫助。
以下就是今天我們要介紹的Linux指令:
man touch, cat and less sort and grep cut sed tar find diff uniq chmod
接下來讓我們逐一來詳細介紹。
1、man指令
#第一個你需要知道的Linux指令就是man指令,該指令可以顯示指定指令的用法和描述。例如你想知道ls指令的用法和選項,可以在終端機執行「man ls」:
語法: man man ls
~# man ls LS(1) User Commands LS(1) NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]... DESCRIPTION List information about the FILEs (the curren t directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is speciâ fied. Mandatory arguments to long options are mandatory for short op tions too. -a, --all do not ignore entries starting with .
2、touch,cat和less指令
touch指令可以在Linux系統中建立大小為0的任意型別文件,作為程式開發者,當你需要在Linux伺服器上建立文件時,可以使用touch指令:
語法: touch touch demo.txt
#~# touch demo.txt root@devopscube:~# ls demo.txt
cat指令用來查看檔案的內容,但是使用cat指令並不能編輯檔案的內容,它只是可以瀏覽檔案內容。 cat指令不支援鍵盤上下鍵翻頁。
語法: cat cat demo.txt
#同樣的less指令也可以讓你瀏覽文件,less指令非常快,並且支援上下鍵查看文件的開頭和結尾。然而more指令跟它類似,只是more指令只能用enter鍵實作檔案的向前翻頁,不支援回退。
語法: less more
less demo.txt more demo.txt
3、sort和grep指令
sort指令用來對檔案內容進行排序。建立一個名為test.txt的文件,並且把以下內容拷貝到該文件中:
1 mike level intermediate jan 10 lucy level beginer mar 45 Dave level expert dec 4 dennis start beginner jul 7 Megan employee trainee feb 58 Mathew Head CEO nov
上面的範例中,第二列是名稱,所以如果你想對名稱列按字母排序,就可以使用「-k」選項,並標註列號,例如「-k2」:
語法: sort sort -k2 test.txt
排序結果
~# sort -k2 test.txt 45 Dave level expert dec 4 dennis start beginner jul 10 lucy l evel beginer mar 58 Mathew Head CEO nov 7 Megan employee trainee feb 1 mike level in termediate jan
第一列是數字,如果你想按數字排序,可以使用「-h」選項。如果數字在不同列上,你可以在「-h」選項後面使用「-k」選項:
~# sort -h test.txt 1 mike level intermediate jan 4 dennis start beginner jul 7 Megan employ ee trainee feb 10 lucy level beginer mar 45 Dave level expert dec 58 Mathew Head CEO nov
最後一列是月份,你可以使用「-M」選項來讓檔案內容按月份排序:
~# sort -k5 -M test.txt 1 mike level intermediate jan 7 Megan employee trainee feb 10 l ucy level beginer mar 4 dennis start beginner jul 58 Mathew Head CEO nov 45 Dave level e xpert dec
附註:如果你想消除重複的行,可以在sort指令後面使用「-u」選項。
使用「-r」選項,是檔案倒序排列:
~# sort -h -r test.txt 58 Mathew Head CEO nov 45 Dave level expert dec 10 lucy level beginer mar 7 Megan employee trainee feb 4 dennis start beginner jul 1 mike level intermediate jan
Grep指令:
#Grep指令非常強大,系統管理員常常會用到它。 grep指令可以在檔案中搜尋指定格式的字串,同時對其進行標準輸出。
語法: grep “” grep “Mathew” test.txt
~# grep "dennis" test.txt 4 dennis start beginner jul
上面指令的輸出結果是包含該子字串的,如果你想檢索完整的單字,你需要加入「-i」選項。同時,也可以用grep指令在多個檔案中搜尋字串,指令碼如下:
while(!game_over) { for each possible move: count_no_of_merges_for_2-tiles and 4-tiles choose the move with large number of merges } grep "dennis" test1.txt test2.txt test3.txt
當然你也可以用正規表示式來匹配字串。
4、cut指令
#cut指令可以讓你用列或分隔符號來擷取檔案中的指定部分。如果你要列出文件中某列的全部內容,可以使用「-c」選項。例如,下面將從test.txt檔案中提取第1、2列的全部內容。
cut -c1-2 test.txt ~# cut -c1-2 test.txt 1 10 45 4 7 58
如果你希望從檔案中提取指定的字串,那麼你可以使用分隔符號選項「-d」和「-f」選項選取列。例如,我們可以利用cut指令來提取names列:
cut -d' ' -f2 test.txt ~# cut -d' ' -f2 test.txt mike lucy Dave dennis Megan Mathew
下面的範例從/etc/passd file中提取users列:
cut -d':' -f1 /etc/passwd
5、sed指令
#sed 是一種線上編輯器,它一次處理一行內容。處理時,把目前處理的行儲存在暫存緩衝區中,稱為「模式空間」(pattern space),接著用sed指令處理緩衝區中的內容,處理完成後,把緩衝區的內容送到螢幕。接著處理下一行,這樣不斷重複,直到文件末尾。文件內容並沒有 改變,除非你使用重定向儲存輸出。
如果你想透過搜尋取代檔案中的指定內容,你可以使用「s」選項來檢索它然後將它取代。
語法: sed ‘s///’ test.txt
例如,在test.txt檔案中用「michael」取代「mike」:
sed 's/mike/michael/' test.txt ~# sed 's/mike/michael/' test.txt 1 michael level intermediate jan 10 lucy level beginer mar 45 Dave level expert dec 4 dennis start beginner jul 7 Megan employee trainee feb 58 Mathew Head CEO nov
6、tar指令
#tar指令用來壓縮和解壓縮文件,其中經常會用到“-cf”和“-xf”選項。
語法: tar
讓我們將test.txt檔案打包:
tar -cf test.tar test.txt ~# tar -cf test.tar test.txt root@devopscube:~# ls test.tar test.txt
用「-C」選項將剛才打包好的test.tar檔案解壓縮至「demo」目錄:
tar -xf test.tar -C /root/demo/ ~# tar -xf test.tar -C /root/demo/ root@devopscube:~# cd demo/ root@devopscube:~/demo# ls test.txt
7、find指令
#find指令用來檢索文件,可以用「-name」選項來擷取指定名稱的文件:
find -name find -name test.txt ~#/home/ubuntu# cd ~ root@devopscube:~# find -name test.txt ./demo/test.txt ./test.txt
你也可以用「/ -name」來擷取指定名稱的資料夾:
find / -name passwd ~# find / -name passwd /etc/cron.daily/passwd /etc/pam.d/passwd /etc/passwd /usr/share/lintian/o verrides/passwd
8、diff指令
#diff指令用來找出2個檔案的不同點。 diff指令透過分析檔案內容,然後將不同的行印出來,下面的範例可以找出兩個檔案test和test1的不同點
語法: diff diff test.txt test1.txt
~# diff test.txt test1.txt 7c7 59 sdfsd CTO dec
9、Uniq命令
uniq命令用来过滤文件中的重复行:
语法: uniq uniq test.txt
~# uniq test.txt 1 mike level intermediate jan 10 lucy level beginer mar 45 Da ve level expert dec 4 dennis start beginner jul 7 Megan employee trainee feb 58 Mathew Head CEO nov
10、chmod命令
chmod命令用来改变文件的读/写/执行权限,权限数值如下所示:
4 – read permission 2 – write permission 1 – execute permission 0 – no permission
下面的命令可以给test.txt文件赋最高的权限:
chmod 755 test.txt
以上是程式設計師需要了解的10個Linux指令的詳細內容。更多資訊請關注PHP中文網其他相關文章!