標籤:style color 使用 os io strong 檔案 ar
1、 ls: 類似於dos下的dir命令
ls最常用的參數有三個: -a -l -F。
ls –a
Linux上的檔案以.開頭的檔案被系統視為隱藏檔案,僅用ls命令是看不到他們的,而用ls -a除了顯示一般檔案名稱外,連隱藏檔案也會顯示出來。
ls –l
該參數顯示更詳細的檔案資訊。
ls –F
使用這個參數表示在檔案的後面多添加表示檔案類型的符號,例如*表示可執行,/表示目錄,@表示連結檔案,這都是因為使用了-F這個參數。但是現在基本上所有的Linux發行版本的ls都已經內建了-F參數,也就是說,不用輸入這個參數,我們也能看到各種分辨符號。
-A
同-a,但不列出“.”(表示目前的目錄)和“..”(表示目前的目錄的父目錄)。
2、cd: 用於切換使用者當前工作目錄
cd aaa 進入aaa目錄
cd 命令後不指定目錄,會切換到目前使用者的home 目錄
cd ~ 作用同cd後不指定目錄,切換到目前使用者的home 目錄
cd - 命令後跟一個減號,則會退回到切換前的目錄 ---這個比較實用,但是大多數人都不知道
3、cp:複製命令
複製一個檔案到另一目錄:cp 1.txt ../test2
複製一個檔案到本目錄並改名:cp 1.txt 2.txt
複製一個檔案夾a並改名為b:cp -r a b
4、rm命令
rm命令用於刪除檔案,與dos下的del/erase命令相似,rm命令常用的參數有三個:-i,-r,-f。
–i :系統在刪除檔案之前會先詢問確認,使用者斷行符號之後,檔案才會真的被刪除。需要注意,linux下刪除的檔案是不能恢複的,刪除之前一定要謹慎確認。
–r:該參數支援目錄刪除,功能和rmdir命令相似。
–f:和-i參數相反,-f表示強制移除
5、du、df命令
du命令可以顯示目前的目錄所佔用的磁碟空間,df命令可以顯示目前磁碟剩餘空間。
如果du命令不加任何參數,那麼返回的是整個磁碟的使用方式,如果後面加了目錄的話,就是這個目錄在磁碟上的使用方式。
du -hs 指定目錄 查看指定目錄的總大小
du -hs ./* 查看目前的目錄下的所有檔案夾和檔案的大小
這兩個命令都支援-k,-m和-h參數,-k和-m類似,都表示顯示單位,一個是k位元組一個是MB,-h則表示human-readable,即友好可讀的顯示方式。
6、cat命令
cat命令的功能是顯示或連結一般的ascii文字檔。cat是concatenate的簡寫,類似於dos下面的type命令。用法如下:
cat file1 顯示file1檔案內容
cat file1 file2 依次顯示file1,file2的內容
cat file1 file2 > file3 把file1, file2的內容結合起來,再“重新導向(>)”到file3檔案中。
">"是右重新導向符,表示將左邊命令結果當成右邊命令的輸入,注意:如果右側檔案是一個已存在檔案,其原有內容將會被清空,而變成左側命令輸出內容。如果希望以追加方式寫入,請改用">>"重新導向符。
如果">"左邊沒有指定檔案,如: cat >file1,將會等使用者輸入,輸入完畢後再按[Ctrl]+[c]或[Ctrl]+[d],就會將使用者的輸入內容寫入file1。
7、echo命令
echo命令的使用頻率不少於ls和cat,尤其是在shell指令碼編寫中。
文法:echo [-ne][字串]
功能:echo會將輸入的字串送往標準輸出,輸出的字串間以空白字元隔開, 並在最後加上分行符號。
參數:
-n 顯示字串時在最後自動換行
-e 支援以下格式的逸出字元, -E 不支援以下格式的逸出字元
\a 發出警告聲; 注意:是反斜線
\b 刪除前一個字元;
\c 最後不加上分行符號號;
\f 換行但游標仍舊停留在原來的位置;
\n 換行且游標移至行首;
\r 游標移至行首,但不換行;
\t 插入tab;
\v 與/f相同;
\\ 插入\字元;
\nnn 插入nnn(八進位)所代表的ASCII字元;
樣本:(下面的例子應該實用反斜線)
[email protected]:~/hgd> echo "123" "456"
123 456
[email protected]:~/hgd> echo "123/n456"
123/n456
[email protected]:~/hgd> echo -e "123/n456"
123
456
[email protected]:~/hgd> echo -E "123/n456"
123/n456
[email protected]:~/hgd> echo -E "123///456"
123//456
[email protected]:~/hgd> echo -e "123///456"
123/456
[email protected]:~/hgd> echo -e "123/100456"
[email protected]
注意事項:
在Linux使用的bash下,單引號’’和雙引號是有區別的,單引號忽略所有的轉義,雙引號不會忽略以下特殊字元:
Dollar signs ($),Back quotes (`),Backslashes (/),Excalmatory mark(!)
樣本如下:
[email protected]:~> echo "`TEST`"
-bash: TEST: command not found
[email protected]:~> echo ‘`TEST`‘
`TEST`
[email protected]:~> echo "$TEST"
[email protected]:~> echo ‘$TEST‘
$TEST
[email protected]:~> echo "//TEST"
/TEST
[email protected]:~> echo ‘//TEST‘
//TEST
[email protected]:~> echo "Hello!"
echo "Hello"
Hello
[email protected]:~> echo ‘Hello!‘
Hello!
8、more,less,clear
n more,less命令
這兩個命令用於查看檔案,如果一個檔案太長,顯示內容超出一個螢幕,用cat命令只能看到最後的內容,用more和less兩個命令可以分頁查看。more指令可以使超過一頁的檔案內容分頁暫停顯示,使用者按鍵後才繼續顯示下一頁。而less除了有more的功能以外,還可以用方向鍵往上或往下的滾動檔案,更方便瀏覽閱讀。
less的常用動作命令:
斷行符號鍵 向下移動一行;
y 向上移動一行;
空格鍵 向下滾動一屏;
b 向上滾動一屏;
d 向下滾動半屏;
h less的協助;
u 向上洋動半屏;
w 可以指定顯示哪行開始顯示,是從指定數位下一行顯示;比如指定的是6,那就從第7行顯示;
g 跳到第一行;
G 跳到最後一行;
p n% 跳到n%,比如 10%,也就是說比整個檔案內容的10%處開始顯示;
/pattern 搜尋pattern ,比如 /MAIL表示在檔案中搜尋MAIL單詞;
v 調用vi編輯器;
q 退出less
!command 調用SHELL,可以運行命令;比如!ls 顯示當前列目前的目錄下的所有檔案;
n clear命令
clear命令是用來清除當前螢幕顯示的,不需任何參數,和dos下的cls命令功能相同。
9、head,tail
n head和tail命令都用於查看文字檔,區別在於: head顯示檔案的頭n行,tail顯示檔案的尾n行,預設情況n都為10行。可以通過-n方式指定行數,如:
head -100 file和tail -100 file分別表示顯示檔案頭100行和尾100行內容。
n tail -f命令可以即時查看檔案新增內容。
10、wc命令
該命令用於統計指定檔案中的位元組數、字數、行數。該命令各選項含義如下:
-l 統計行數
-w 統計字數
-c 統計位元組數
這些選項可以組合使用。輸出資料行的順序和數目不受選項的順序和數目的影響。總是按下述順序顯示並且每項最多一列。
行數、字數、位元組數、檔案名稱
如果命令列中沒有檔案名稱,則輸出中不出現檔案名稱。
例如:
[email protected]:~> wc 1.txt 2.txt
460 1679 16353 1.txt
300 1095 10665 2.txt
760 2774 27018 總用量
[email protected]:~> wc -l 1.txt
460 1.txt
預設參數為-lcw,即wc file1 file2命令的執行結果與上面一樣。
11、grep 命令
grep是(global search regular expression(RE) and print out the line的縮寫,用於從檔案面搜尋包含指定模式的行並列印出來,它是一種強大的文本搜尋工具,支援使用Regex搜尋文本。grep的工作方式是這樣的,它在一個或多個檔案中搜尋字串模板。如果模板包括空格,則必須被””引用,模板後的所有字串被看作檔案名稱。搜尋結果送到螢幕,不影響原檔案內容。
grep可用於shell指令碼,因為grep通過返回一個狀態值來說明搜尋的狀態,如果模板搜尋成功,則返回0,如果搜尋不成功,則返回1,如果搜尋的檔案不存在,則返回2。我們利用這些傳回值就可進行一些自動化的文本處理工作。
樣本:
$ ls -l | grep ‘^a‘
通過管道過濾ls -l輸出的內容,只顯示以a開頭的行。
$ grep ‘test‘ d*
顯示所有以d開頭的檔案中包含test的行。
$ grep ‘test‘ aa bb cc
顯示在aa,bb,cc檔案中匹配test的行。
$ grep ‘[a-z]/{5/}‘ aa
顯示所有包含每個字串至少有5個連續小寫字元的字串的行。
$ grep ‘w/(es/)t.*/1‘ aa
如果west被匹配,則es就被儲存到記憶體中,並標記為1,然後搜尋任意個字元(.*),這些字元後面緊跟著另外一個es(/1),找到就顯示該行。如果用egrep或grep -E,就不用"/"號進行轉義,直接寫成‘w(es)t.*/1‘就可以了。
12、man,logout命令
man命令
man是manual的縮寫,相當於Unix/Linux的聯機Help,每個系統命令和調用都有非常詳細的說明,絕大多數都是英文。如:man ls即是查看ls命令的使用說明,一般還有另一種方法用來查看協助,如:ls –help,這種方式絕大多數命令都支援。
logout命令
該命令用於退出系統,與login命令對應。
13、管道和xargs
管道:
利用Linux所提供的管道符“|”將兩個命令隔開,管道符左邊命令的輸出就會作為管道符右邊命令的輸入。連續使用管道意味著第一個命令的輸出會作為第二個命令的輸入,第二個命令的輸出又會作為第三個命令的輸入,依此類推。
注意:管道左邊命令的輸入作為管道右邊命令的輸入(命令的輸入是一定的),不是參數,並不是所有命令都支援管道
例子:ls | grep a 查看目前的目錄下名稱包含a的檔案或檔案夾
xargs:
大多數 Linux 命令都會產生輸出:檔案清單、字串列表等。但如果要使用其他某個命令並將前一個命令的輸出作為參數該怎麼辦?例如,file 命令顯示檔案類型(可執行檔、ascii 文本等);你能處理輸出,使其僅顯示檔案名稱,目前你希望將這些名稱傳遞給 ls -l命令以查看時間戳記。xargs 命令就是用來完成此項工作的。
注意:find命令把匹配到的檔案傳遞給xargs命令,而xargs命令每次只擷取一部分檔案而不是全部,不像-exec選項那樣。這樣它可以先處理最先擷取的一部分檔案,然後是下一批,並如此繼續下去
例子:
1、在整個系統中尋找記憶體資訊轉儲檔案(core dump) ,然後把結果儲存到/tmp/core.log 檔案中:
$ find / -name "core" -print | xargs echo "" >/tmp/core.log
2、當一個目錄下檔案太多時,直接用rm * 命令會包參數過長,用如下方法可以全部刪除
$ls | xargs rm
14、basename 和 dirname
basename用於查看檔案不含路徑的名字,dirname則用於查看檔案路徑,使用效果我們測試一下便知:
> basename /home/hj/1.txt
1.txt
> dirname /home/hj/1.txt
/home/hj
> basename 1.txt
1.txt
> dirname 1.txt
.
15、不帶任何參數的set命令將顯示shell的全部變數