歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> shell命令合集

shell命令合集

日期:2017/3/1 12:21:36   编辑:SHELL編程
shell是用戶和Linux操作系統之間的接口。 C cat zdd 浏覽文件zdd的內容 cat zdd1 zdd2 浏覽多個文件的內容 cat -n zdd浏覽文件zdd的內容並顯示行號 cd 回到起始目錄,也即剛登陸到系統的目錄,cd後面無參數 cd / 回到根目錄 cd .. 返回上一級目錄 cd - 返回到最近使用的目錄 D df -kh 查看磁盤信息 du -sh foldername 查看文件夾大小,-h表示以human readable格式顯示大小,-s表示累加各個文件的大小。 H history 顯示命令歷史記錄 hostname 顯示當前登錄的主機名 L ls -al 列出所有文件的完整信息,每行一個文件 ls -tl 按最後修改時間排序 ls -ul 按最後訪問時間排序 ls -R 遞歸現實子目錄中的文件及文件夾,這個命令配合grep可以方便的實現查找,比如在當前目錄及子目錄下查找文件zdd,ls -R | grep zdd ls -F | grep / 只列出目錄 less 分屏顯示文件,按空格向下查看,並可使用上下箭頭前後回看。按q鍵退出。 M more 分屏顯示文件,按空格向下查看,不支持回看,按q鍵退出。 man ls 查看ls命令的幫助,如果幫助有多頁 空格 向下翻頁 b 向上翻頁 q 退出幫助 O od 查看文件的ASCII編碼。 P pwd 顯示當前目錄 ps 列出當前用戶的進程 ps -ef 以完整信息列出所有進程 R rm -rf zdd 刪除目錄zdd及其子目錄,即使目錄不空 rm -rf zdd/* 刪除目錄zdd下的所有內容,但不刪除zdd本身 rm -rf * 刪除當前目錄下所有文件,包括子文件加及其中的文件,-r表示遞歸,-f表示強制刪除,不詢問。 rmdir zdd 刪除空目錄zdd mkdir zdd 創建目錄zdd S set 查看已定義變量 ssh hostname 登錄到hostname T tar [option] file or dir tar -xvf zdd.tar 將zdd.tar解壓,解壓後將產生zdd文件夾,裡面包含解壓後的文件 x表示解壓,v表示輸出解壓信息,f表示操作普通文件 tar -cvf tmp.tar tmp 將文件夾tmp打包成tmp.tar tar -rvf tmp.tar zzz 將文件zzz追加到tmp.tar中 type xxx 查看xxx所在的路徑。和which有何區別? touch命令 touch [acm] -t time file 這個命令用來修改文件的時間,a-access time, m-modification time c-do not create if file not exists 如果不指定時間,則使用當前的系統時間,如果文件不存在,且未指定-c那麼將創建新的文件。可以使用這個方法快速創建文件。time的格式如下 [[CC]YY]MMDDhhmm[.SS] touch abc 如果文件abc存在,則更新其時間為當前時間,否則創建它 touch abc -a -t touch -m -t 201101230621 abc W who 查看有哪些人登陸了系統 who am i 查看自己的賬戶信息 which ls 查看ls程序所在的路徑。 Z zip 壓縮 zip [options] dest_files source zip -r9 ~/zdd /home/zdd/* 將目錄/home/zdd下的所有文件壓縮並放入當前目錄下名為zdd。-r表示遞歸處理文件夾中的文件,9表示最大壓縮率。 unzip 解壓縮 unzip -d ~/zdd zdd.zip 將zdd.zip解壓到當前目錄下的zdd目錄中,-d表示指定解壓目錄。 gzip 壓縮/解壓縮 gzip -d error_log.gz 將error_log.gz解壓縮,-d表示解壓縮,解壓縮後error_log.gz將不復存在。 其他 在終端上翻頁(Putty窗口也可以) 向上翻頁 Shift+PageUp 向下翻頁 Shift+PageDown 1、 ls: 類似於dos下的dir命令 ls最常用的參數有三個: -a -l -F。 ls –a Linux上的文件以.開頭的文件被系統視為隱藏文件,僅用ls命令是看不到他們的,而用ls -a除了顯示一般文件名外,連隱藏文件也會顯示出來。 ls –l 該參數顯示更詳細的文件信息。 ls –F 使用這個參數表示在文件的後面多添加表示文件類型的符號,例如*表示可執行,/表示目錄,@表示連結文件,這都是因為使用了-F這個參數。但是現在基本上所有的Linux發行版本的ls都已經內建了-F參數,也就是說,不用輸入這個參數,我們也能看到各種分辨符號。 2、cd: 用於切換用戶當前工作目錄 cd aaa 進入aaa目錄 cd 命令後不指定目錄,會切換到當前用戶的home 目錄 cd ~ 作用同cd後不指定目錄,切換到當前用戶的home 目錄 cd - 命令後跟一個減號,則會退回到切換前的目錄 cd .. 返回到當前目錄下的上一級目錄 3、pwd:用於顯示用戶當前工作目錄 4、mkdir 和 rmdir midir:創建目錄 rmdir:刪除目錄 兩個命令都支持-p參數,對於mkdir命令若指定路徑的父目錄不存在則一並創建,對於rmdir命令則刪除指定路徑的所有層次目錄,如果文件夾裡有內容,則不能用rmdir命令 如下: mkdir -p 1/2/3 rmdir -p 1/2/3 5、cp:復制命令 復制一個文件到另一目錄:cp 1.txt ../test2 復制一個文件到本目錄並改名:cp 1.txt 2.txt 復制一個文件夾a並改名為b:cp -r a b 6、mv:移動命令 將一個文件移動到另一個目錄:mv 1.txt ../test1 將一個文件在本目錄改名:mv 1.txt 2.txt 將一個文件一定到另一個目錄並改名:mv 1.txt ../test1/2.txt 7、rm命令 rm命令用於刪除文件,與dos下的del/erase命令相似,rm命令常用的參數有三個:-i,-r,-f。 –i :系統在刪除文件之前會先詢問確認,用戶回車之後,文件才會真的被刪除。需要注意,linux下刪除的文件是不能恢復的,刪除之前一定要謹慎確認。 –r:該參數支持目錄刪除,功能和rmdir命令相似。 –f:和-i參數相反,-f表示強制刪除 8、du、df命令 du命令可以顯示目前的目錄所占用的磁盤空間,df命令可以顯示目前磁盤剩余空間。 如果du命令不加任何參數,那麼返回的是整個磁盤的使用情況,如果後面加了目錄的話,就是這個目錄在磁盤上的使用情況。 du -hs 指定目錄 查看指定目錄的總大小 du -hs ./* 查看當前目錄下的所有文件夾和文件的大小 這兩個命令都支持-k,-m和-h參數,-k和-m類似,都表示顯示單位,一個是k字節一個是兆字節,-h則表示human-readable,即友好可讀的顯示方式。 9、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。 10、echo命令 echo命令的使用頻率不少於ls和cat,尤其是在shell腳本編寫中。 語法:echo [-ne][字符串] 功能:echo會將輸入的字符串送往標准輸出,輸出的字符串間以空白字符隔開, 並在最後加上換行符。 參數: -n 顯示字串時在最後自動換行 -e 支持以下格式的轉義字符, -E 不支持以下格式的轉義字符 /a 發出警告聲; /b 刪除前一個字符; /c 最後不加上換行符號; /f 換行但光標仍舊停留在原來的位置; /n 換行且光標移至行首; /r 光標移至行首,但不換行; /t 插入tab; /v 與/f相同; // 插入/字符; /nnn 插入nnn(八進制)所代表的ASCII字符; 示例: oracle@hjtest:~/hgd> echo "123" "456" 123 456 oracle@hjtest:~/hgd> echo "123/n456" 123/n456 oracle@hjtest:~/hgd> echo -e "123/n456" 123 456 oracle@hjtest:~/hgd> echo -E "123/n456" 123/n456 oracle@hjtest:~/hgd> echo -E "123///456" 123//456 oracle@hjtest:~/hgd> echo -e "123///456" 123/456 oracle@hjtest:~/hgd> echo -e "123/100456" 123@456 注意事項: 在Linux使用的bash下,單引號’’和雙引號是有區別的,單引號忽略所有的轉義,雙引號不會忽略以下特殊字符: Dollar signs ($),Back quotes (`),Backslashes (/),Excalmatory mark(!) 示例如下: oracle@hjtest:~> echo "`TEST`" -bash: TEST: command not found oracle@hjtest:~> echo '`TEST`' `TEST` oracle@hjtest:~> echo "$TEST" oracle@hjtest:~> echo '$TEST' $TEST oracle@hjtest:~> echo "//TEST" /TEST oracle@hjtest:~> echo '//TEST' //TEST oracle@hjtest:~> echo "Hello!" echo "Hello" Hello oracle@hjtest:~> echo 'Hello!' Hello! 11、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命令功能相同。 12、head,tail n head和tail命令都用於查看文本文件,區別在於: head顯示文件的頭n行,tail顯示文件的尾n行,缺省情況n都為10行。可以通過-n方式指定行數,如: head -100 file和tail -100 file分別表示顯示文件頭100行和尾100行內容。 n tail -f命令可以實時查看文件新增內容。 13、wc命令 該命令用於統計指定文件中的字節數、字數、行數。該命令各選項含義如下: -l 統計行數 -w 統計字數 -c 統計字節數 這些選項可以組合使用。輸出列的順序和數目不受選項的順序和數目的影響。總是按下述順序顯示並且每項最多一列。 行數、字數、字節數、文件名 如果命令行中沒有文件名,則輸出中不出現文件名。 例如: oracle@hjtest:~> wc 1.txt 2.txt 460 1679 16353 1.txt 300 1095 10665 2.txt 760 2774 27018 總用量 oracle@hjtest:~> wc -l 1.txt 460 1.txt 缺省參數為-lcw,即wc file1 file2命令的執行結果與上面一樣。 14、grep 命令 grep是(global search regular expression(RE) and print out the line的縮寫,用於從文件面搜索包含指定模式的行並打印出來,它是一種強大的文本搜索工具,支持使用正則表達式搜索文本。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'就可以了。 15、man,logout命令 man命令 man是manual的縮寫,相當於Unix/Linux的聯機Help,每個系統命令和調用都有非常詳細的說明,絕大多數都是英文。如:man ls即是查看ls命令的使用說明,一般還有另一種方法用來查看幫助,如:ls –help,這種方式絕大多數命令都支持。 logout命令 該命令用於退出系統,與login命令對應。 16、管道和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 17、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
Copyright © Linux教程網 All Rights Reserved