常用命令列(第三版)
poweroff (用來關閉計算機作業系統並且切斷系統電源。)
語法:poweroff (選項)
選項: -n:關閉作業系統時不執行sync操作;
-w:不真正關閉作業系統,僅在日誌檔案“/var/log/wtmp”中;
-d:關閉作業系統時,不將操作寫入日誌檔案“/var/log/wtmp”中新增相應的記錄;
-f:強制關閉作業系統;
-i:關閉作業系統之前關閉所有的網路介面;
-h:關閉作業系統之前將系統中所有的硬體設定為備用模式。
EG:(如果確認系統中已經沒有使用者存在且所有資料都已儲存,需要立即關閉系統,可以使用poweroff命令。)
使用poweroff立即關閉系統:poweroff
shoutdown (用於系統的關機命令,這個命令可以關閉所有程式,並且根據使用者要求進行重啟或關機的動作)
語法:shutdown (選項) (引數)
選項: -c:當執行“shutdown -h 11:50”指令時,只要按+鍵就可以中斷關機的指令;
-f:重新啟動時不執行fsck;
-F:重新啟動時執行fsck;
-h:將系統關機;
-k:只是送出資訊給所有使用者,但不會實際關機;
-n:不呼叫init程式進行關機,而由shutdown自己進行;
-r:shutdown之後重新啟動;
-t<秒數>:送出警告資訊和刪除資訊之間要延遲多少秒。
引數: [時間]:設定多久時間後執行shutdown指令;
[警告資訊]:要傳送給所有登入使用者的資訊。
EG: 現在立即關機: shutdown -h now
5分鐘後關機,同時送出警告資訊給登入使用者: shutdown +5 "System will shutdown after 5 minutes"
reboot (重新啟動正在執行的Linux作業系統)
語法:reboot(選項)
選項: -d:重新開機時不把資料寫入記錄檔案/var/tmp/wtmp。本引數具有“-n”引數效果;
-f:強制重新開機,不呼叫shutdown指令的功能;
-i:在重開機之前,先關閉所有網路介面;
-n:重開機之前不檢查是否有未結束的程式;
-
EG: reboot 重開機。
reboot -w 做個重開機的模擬(只有紀錄並不會真的重開機)。
halt (關閉正在執行的Linux作業系統)
語法:halt(選項)
選項: -d:不要在wtmp中記錄;
-f:不論目前的runlevel為何,不呼叫shutdown即強制關閉系統;
-i:在halt之前,關閉全部的網路介面;
-n:halt前,不用先執行sync;
-p:halt之後,執行poweroff;
-w:僅在wtmp中記錄,而不實際結束系統。
EG: halt -p 關閉系統後關閉電源。
halt -d 關閉系統,但不留下紀錄。
who (顯示目前登入系統的使用者資訊)(執行who命令可得知目前有那些使用者登入系統,單獨執行who命令會列出登入帳號,使用的終端機,登入時間以及從何處登入 或正在使用哪個X顯示器)
選項:who(選項) (引數)
語法: -H或--heading:顯示各欄位的標題資訊列;
-i或-u或--idle:顯示閒置時間,若該使用者在前一分鐘之內有進行任何動作,將標示成"."號,如果該使用者已超過24小時沒有任何動作,則標示出"old"字串;
-m:此引數的效果和指定"am i"字串相同;
-q或--count:只顯示登入系統的帳號名稱和總人數;
-s:此引數將忽略不予處理,僅負責解決who指令其他版本的相容性問題;
-w或-T或--mesg或--message或--writable:顯示使用者的資訊狀態列;
--help:線上幫助;
--version:顯示版本資訊。
引數: 檔案:指定查詢檔案。
EG: [root@localhost ~]# who
root pts/0 2013-08-19 15:04 (192.168.0.134)
root pts/1 2013-12-20 10:37 (180.111.155.40)
[root@localhost ~]# who -q
root root
# users=2
[root@localhost ~]# who -H
NAME LINE time COMMENT
root pts/0 2013-08-19 15:04 (192.168.0.134)
root pts/1 2013-12-20 10:37 (180.111.155.40)
[root@localhost ~]# who -w
root + pts/0 2013-08-19 15:04 (192.168.0.134)
root + pts/1 2013-12-20 10:37 (180.111.155.40)
whoami (列印當前有效的使用者名稱稱,相當於執行 id -un
命令。)
語法:whoami(選項)
選項:--help:線上幫助;
--version:顯示版本資訊。
EG: [root@localhost ~]# whoami
root
[root@localhost ~]# id -un
root
pwd (以絕對路徑的方式顯示使用者當前工作目錄) (命令將當前目錄的全路徑名稱(從根目錄)寫入標準輸出。全部目錄使用/
分隔。第一個/
表示根目錄,
最後一個目錄是當前目錄。執行pwd命令可立刻得知您目前所在的工作目錄的絕對路徑名稱。)
語法:pwd(選項)
選項: --help:顯示幫助資訊;
--version:顯示版本資訊。
EG: [root@localhost ~]# pwd
/root
ls (顯示目標列表)
語法:ls(選項)(引數)
選項:-a:顯示所有檔案及目錄(ls內定將檔案名或目錄名稱為“.”的視為影藏,不會列出);
-A:顯示除影藏檔案“.”和“..”以外的所有檔案列表;
-C:多列顯示輸出結果。這是預設選項;
-l:與“-C”選項功能相反,所有輸出資訊用單列格式輸出,不輸出為多列;
-F:在每個輸出項後追加檔案的型別識別符號,具體含義:“*”表示具有可執行許可權的普通檔案,“/”表示目錄,“@”表示符號連結,“|”表示命令管道FIFO,
“=”表示sockets套接字。當檔案為普通檔案時,不輸出任何識別符號;
-b:將檔案中的不可輸出的字元以反斜線“”加字元編碼的方式輸出;
-c:與“-lt”選項連用時,按照檔案狀態時間排序輸出目錄內容,排序的依據是檔案的索引節點中的ctime欄位。與“-l”選項連用時,
則排序的一句是檔案的狀態改變時間;
-d:僅顯示目錄名,而不顯示目錄下的內容列表。顯示符號連結檔案本身,而不顯示其所指向的目錄列表;
-f:此引數的效果和同時指定“aU”引數相同,並關閉“lst”引數的效果;
-i:顯示檔案索引節點號(inode)。一個索引節點代表一個檔案;
--file-type:與“-F”選項的功能相同,但是不顯示“*”;
-k:以KB(千位元組)為單位顯示檔案大小;
-l:以長格式顯示目錄下的內容列表。輸出的資訊從左到右依次包括檔名,檔案型別、許可權模式、硬連線數、所有者、組、檔案大小和檔案的最後修改時間等;
-m:用“,”號區隔每個檔案和目錄的名稱;
-n:以使用者識別碼和群組識別碼替代其名稱;
-r:以檔名反序排列並輸出目錄內容列表;
-s:顯示檔案和目錄的大小,以區塊為單位;
-t:用檔案和目錄的更改時間排序;
-L:如果遇到性質為符號連結的檔案或目錄,直接列出該連結所指向的原始檔案或目錄;
-R:遞迴處理,將指定目錄下的所有檔案及子目錄一併處理;
--full-time:列出完整的日期與時間;
--color[=WHEN]:使用不同的顏色高亮顯示不同型別的。
引數:目錄:指定要顯示列表的目錄,也可以是具體的檔案。
EG: 顯示當前目錄下非影藏檔案與目錄
[root@localhost ~]# ls
anaconda-ks.cfg install.log install.log.syslog satools
顯示當前目錄下包括影藏檔案在內的所有檔案列表
[root@localhost ~]# ls -a
. anaconda-ks.cfg .bash_logout .bashrc install.log .mysql_history satools .tcshrc .vimrc
.. .bash_history .bash_profile .cshrc install.log.syslog .rnd .ssh .viminfo
輸出長格式列表
[root@localhost ~]# ls -1 anaconda-ks.cfg install.log install.log.syslog satools
clear (清除當前螢幕上的任何資訊)
語法:clear
EG:直接輸入clear並按下回車鍵就清除所有資訊
cd (切換工作目錄至dirname)
語法:cd (選項) (引數)
選項: -p 如果要切換到的目標目錄是一個符號連線,直接切換到符號連線指向的目標目錄
-L 如果要切換的目標目錄是一個符號的連線,直接切換到字元連線名代表的目錄,而非符號連線所指向的目標目錄。
- 當僅實用"-"一個選項時,當前工作目錄將被切換到環境變數"OLDPWD"所表示的目錄。
EG: cd 進入使用者主目錄;
cd ~ 進入使用者主目錄;
cd - 返回進入此目錄之前所在的目錄;
cd .. 返回上級目錄(若當前目錄為“/“,則執行完後還在“/";".."為上級目錄的意思);
cd ../.. 返回上兩級目錄;
cd !$ 把上個命令的引數作為cd引數使用。
su (切換當前使用者身份到其他使用者身份,變更時須輸入所要變更的使用者帳號與密碼。)
語法: su(選項) (引數)
選項: -c<指令>或--command=<指令>:執行完指定的指令後,即恢復原來的身份;
-f或——fast:適用於csh與tsch,使shell不用去讀取啟動檔案;
-l或——login:改變身份時,也同時變更工作目錄,以及HOME,SHELL,USER,logname。此外,也會變更PATH變數;
-m,-p或--preserve-environment:變更身份時,不要變更環境變數;
-s<shell>或--shell=<shell>:指定要執行的shell;
--help:顯示幫助;
--version;顯示版本資訊。
引數: 使用者:指定要切換身份的目標使用者。
EG: 變更帳號為root並在執行ls指令後退出變回原使用者:
su -c ls root
變更帳號為root並傳入-f
選項給新執行的shell:
su root -f
變更帳號為test並改變工作目錄至test的家目錄:
su -test
man (Linux下的幫助指令,通過man指令可以檢視Linux中的指令幫助、配置檔案幫助和程式設計幫助等資訊。)
語法:man(選項)(引數)
選項:-a:在所有的man幫助手冊中搜索;
-f:等價於whatis指令,顯示給定關鍵字的簡短描述資訊;
-P:指定內容時使用分頁程式;
-M:指定man手冊搜尋的路徑。
引數: 數字:指定從哪本man手冊中搜索幫助;
關鍵字:指定要搜尋幫助的關鍵字。
EG:
man是按照手冊的章節號的順序進行搜尋的,比如:
man sleep
只會顯示sleep命令的手冊,如果想檢視庫函式sleep,就要輸入:
man 3 sleep
help (顯示shell內部命令的幫助資訊,help命令只能顯示shell內部的命令幫助資訊。而對於外部命令的幫助資訊只能使用man或者info命令檢視。)
語法:help(選項)(引數)
選項:-s:輸出短格式的幫助資訊。僅包括命令格式。
引數:內部命令:指定需要顯示幫助資訊的shell內部命令。
EG:
使用help命令顯示shell內部shopt命令的幫助資訊,輸入如下命令:
help shopt #獲取shopt命令的幫助資訊
shopt: shopt [-pqsu] [-o long-option] optname [optname...]
Toggle the values of variables controlling optional behavior.
The -s flag means to enable (set) each OPTNAME; the -u flag
unsets each OPTNAME. The -q flag suppresses output; the exit
status indicates whether each OPTNAME is set or unset. The -o
option restricts the OPTNAMEs to those defined for use with
`set -o'. With no options, or with the -p option, a list of all
settable options is displayed, with an indication of whether or
not each is set.
date (顯示或設定系統時間與日期)
語法:date(選項)(引數)
選項: -d<字串>:顯示字串所指的日期與時間。字串前後必須加上雙引號;
-s<字串>:根據字串來設定日期與時間。字串前後必須加上雙引號;
-u:顯示GMT;
--help:線上幫助;
--version:顯示版本資訊。
引數: <+時間日期格式>:指定顯示時使用的日期時間格式。
日期格式字串列表:
%H 小時,24小時制(00~23)
%I 小時,12小時制(01~12)
%k 小時,24小時制(0~23)
%l 小時,12小時制(1~12)
%M 分鐘(00~59)
%p 顯示出AM或PM
%r 顯示時間,12小時制(hh:mm:ss %p)
%s 從1970年1月1日00:00:00到目前經歷的秒數
%S 顯示秒(00~59)
%T 顯示時間,24小時制(hh:mm:ss)
%X 顯示時間的格式(%H:%M:%S)
%Z 顯示時區,日期域(CST)
%a 星期的簡稱(Sun~Sat)
%A 星期的全稱(Sunday~Saturday)
%h,%b 月的簡稱(Jan~Dec)
%B 月的全稱(January~December)
%c 日期和時間(Tue Nov 20 14:12:58 2012)
%d 一個月的第幾天(01~31)
%x,%D 日期(mm/dd/yy)
%j 一年的第幾天(001~366)
%m 月份(01~12)
%w 一個星期的第幾天(0代表星期天)
%W 一年的第幾個星期(00~53,星期一為第一天)
%y 年的最後兩個數字(1999則是99)
EG:
格式化輸出:
date +"%Y-%m-%d" 2009-12-07
輸出昨天日期:
date -d "1 day ago" +"%Y-%m-%d" 2012-11-19
2秒後輸出:
date -d "2 second" +"%Y-%m-%d %H:%M.%S" 2012-11-20 14:21.31
傳說中的 1234567890 秒:
date -d "1970-01-01 1234567890 seconds" +"%Y-%m-%d %H:%m:%S" 2009-02-13 23:02:30
cal (顯示當前日曆,或者指定日期的日曆。)
語法:cal(選項)(引數)
選項: -l:顯示單月輸出;
-3:顯示臨近三個月的日曆;
-s:將星期日作為月的第一天;
-m:將星期一作為月的第一天;
-j:顯示“julian”日期;
-y:顯示當前年的日曆。
引數: 月:指定月份;
年:指定年份。
EG: 單獨執行cal命令會打印出日曆:
[root@localhost ~]# cal 十二月 2013 日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
[root@localhost ~]# cal -j 十二月 2013 日 一 二 三 四 五 六 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365
[root@localhost ~]# cal -3 十一月 2013 十二月 2013 一月 2014 日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六 1 2 1 2 3 4 5 6 7 1 2 3 4 3 4 5 6 7 8 9 8 9 10 11 12 13 14 5 6 7 8 9 10 11 10 11 12 13 14 15 16 15 16 17 18 19 20 21 12 13 14 15 16 17 18 17 18 19 20 21 22 23 22 23 24 25 26 27 28 19 20 21 22 23 24 25 24 25 26 27 28 29 30 29 30 31 26 27 28 29 30 31
whatis (查詢一個命令執行什麼功能,並將查詢結果列印到終端上。)
語法:whatis
EG:
[root@localhost ~]# whatis ls
ls (1) - list directory contents
ls (1p) - list directory contents
[root@localhost ~]# whatis cp
cp (1) - copy files and directories
cp (1p) - copy files
[root@localhost ~]# whatis chown
chown (1) - change file owner and group
chown (1p) - change the file ownership
chown (2) - change ownership of a file
chown (3p) - change owner and group of a file
[root@localhost ~]# whatis man
man (1) - format and display the on-line manual pages
man (1p) - display system documentation
man (7) - macros to format man pages
man (rpm) - A set of documentation tools: man, apropos and whatis.
man-pages (rpm) - Man (manual) pages from the Linux Documentation Project.
man.config [man] (5) - configuration data for man
whereis (定位指令的二進位制程式、原始碼檔案和man手冊頁等相關檔案的路徑)
語法:whereis(選項)(引數)
選項: -b:只查詢二進位制檔案;
-B<目錄>:只在設定的目錄下查詢二進位制檔案;
-f:不顯示檔名前的路徑名稱;
-m:只查詢說明檔案;
-M<目錄>:只在設定的目錄下查詢說明檔案;
-s:只查詢原始程式碼檔案;
-S<目錄>只在設定的目錄下查詢原始程式碼檔案;
-u:查詢不包含指定型別的檔案。
引數: 指令名:要查詢的二進位制程式、原始檔和man手冊頁的指令名。
EG:
將相關的檔案都查找出來
[root@localhost ~]# whereis tomcat tomcat: [root@localhost ~]# whereis svn svn: /usr/bin/svn /usr/local/svn /usr/share/man/man1/svn.1.gz
說明:tomcat沒安裝,找不出來,svn安裝找出了很多相關檔案
只將二進位制檔案查找出來
[root@localhost ~]# whereis -b svn svn: /usr/bin/svn /usr/local/svn [root@localhost ~]# whereis -m svn svn: /usr/share/man/man1/svn.1.gz [root@localhost ~]# whereis -s svn svn:
說明:whereis-msvn
查出說明文件路徑,whereis-ssvn
找source原始檔。
alias (設定指令的別名)
語法:alias(選項)(引數)
選項:-p:列印已經設定的命令別名。
引數:命令別名設定:定義命令別名,格式為“命令別名=‘實際命令’”。
EG:
alias 的基本使用方法為:
alias 新的命令='原命令 -選項/引數'
例如:alias l=‘ls -lsh'
將重新定義ls命令,現在只需輸入l就可以列目錄了。直接輸入 alias 命令會列出當前系統中所有已經定義的命令別名。
要刪除一個別名,可以使用 unalias 命令,如 unalias l。
unalias (取消命令別名)
語法:unalias(選項)(引數)
選項:-a:取消所有命令別名。
引數:命令別名:指定要取消的命令別名。
EG:
使用unalias命令將已經設定的命令別名"cc"取消,輸入如下命令:
unalias cc #取消已經設定的命令別名
上面的命令執行後,系統會將指定的命令別名取消掉。如果使用者再使用該命令別名時,系統將提示如下資訊:
cc:no input files
因此,當使用該指令將命令別名取消後,將不能夠再進行使用。否則,將出現錯誤提示。
mkdir (建立目錄)
語法:mkdir (選項)(引數)
選項:-Z:設定安全上下文,當使用SELinux時有效;
-m<目標屬性>或--mode<目標屬性>建立目錄的同時設定目錄的許可權;
-p或--parents 若所要建立目錄的上層目錄目前尚未建立,則會一併建立上層目錄;
--version 顯示版本資訊。
引數: 目錄:指定要建立的目錄列表,多個目錄之間用空格隔開。
EG:
在目錄/usr/meng
下建立子目錄test,並且只有檔案主有讀、寫和執行許可權,其他人無權訪問
mkdir -m 700 /usr/meng/test
在當前目錄中建立bin和bin下的os_1目錄,許可權設定為檔案主可讀、寫、執行,同組使用者可讀和執行,其他使用者無權訪問
mkdir -p-m 750 bin/os_1
rmdir (刪除空目錄)
語法:rmdir(選項)(引數)
選項:-p或--parents:刪除指定目錄後,若該目錄的上層目錄已變成空目錄,則將其一併刪除;
--ignore-fail-on-non-empty:此選項使rmdir命令忽略由於刪除非空目錄時導致的錯誤資訊;
-v或-verboes:顯示命令的詳細執行過程;
--help:顯示命令的幫助資訊;
--version:顯示命令的版本資訊。
引數:目錄列表:要刪除的空目錄列表。當刪除多個空目錄時,目錄名之間使用空格隔開。
EG:
刪除子目錄os_1和其父目錄bin
cd /usr/meng/test
rmdir -p bin/os_1
cp (將一個或多個原始檔或者目錄複製到指定的目的檔案或目錄)
語法:cp(選項)(引數)
選項:-a:此引數的效果和同時指定"-dpR"引數相同;
-d:當複製符號連線時,把目標檔案或目錄也建立為符號連線,並指向與原始檔或目錄連線的原始檔案或目錄;
-f:強行復制檔案或目錄,不論目標檔案或目錄是否已存在;
-i:覆蓋既有檔案之前先詢問使用者;
-l:對原始檔建立硬連線,而非複製檔案;
-p:保留原始檔或目錄的屬性;
-R/r:遞迴處理,將指定目錄下的所有檔案與子目錄一併處理;
-s:對原始檔建立符號連線,而非複製檔案;
-u:使用這項引數後只會在原始檔的更改時間較目標檔案更新時或是名稱相互對應的目標檔案並不存在時,才複製檔案;
-S:在備份檔案時,用指定的字尾“SUFFIX”代替檔案的預設字尾;
-b:覆蓋已存在的檔案目標前將目標檔案備份;
-v:詳細顯示命令執行的操作。
引數: 原始檔:制定原始檔列表。預設情況下,cp命令不能複製目錄,如果要複製目錄,則必須使用-R
選項;
目標檔案:指定目標檔案。當“原始檔”為多個檔案時,要求“目標檔案”為指定的目錄
EG:
如果把一個檔案複製到一個目標檔案中,而目標檔案已經存在,那麼,該目標檔案的內容將被破壞。此命令中所有引數既可以是絕對路徑名,也可以是相對路徑名。通常會用到點.
或點點..
的形式。例如,下面的命令將指定檔案複製到當前目錄下:
cp ../mary/homework/assign .
所有目標檔案指定的目錄必須是己經存在的,cp命令不能建立目錄。如果沒有檔案複製的許可權,則系統會顯示出錯資訊。
將檔案file複製到目錄/usr/men/tmp
下,並改名為file1
cp file /usr/men/tmp/file1
將目錄/usr/men
下的所有檔案及其子目錄複製到目錄/usr/zh
中
cp -r /usr/men /usr/zh
mv (對檔案或目錄重新命名,或者將檔案從一個目錄移到另一個目錄中。)
語法:mv(選項)(引數)
選項:--backup=<備份模式>:若需覆蓋檔案,則覆蓋前先行備份;
-b:當檔案存在時,覆蓋前,為其建立一個備份;
-f:若目標檔案或目錄與現有的檔案或目錄重複,則直接覆蓋現有的檔案或目錄;
-i:互動式操作,覆蓋前先行詢問使用者,如果原始檔與目標檔案或目標目錄中的檔案同名,則詢問使用者是否覆蓋目標檔案。使用者輸入”y”,表示將覆蓋目標檔案;輸入”n”,表示取消對原始檔的移動。這樣可以避免誤將檔案覆蓋。
--strip-trailing-slashes:刪除原始檔中的斜槓“/”;
-S<字尾>:為備份檔案指定字尾,而不使用預設的字尾;
--target-directory=<目錄>:指定原始檔要移動到目標目錄;
-u:當原始檔比目標檔案新或者目標檔案不存在時,才執行移動操作。
引數: 原始檔:原始檔列表。
目標檔案:如果“目標檔案”是檔名則在移動檔案的同時,將其改名為“目標檔案”;如果“目標檔案”是目錄名則將原始檔移動到“目標檔案”下。
EG:
將檔案ex3改名為new1
mv ex3 new1
將目錄/usr/men
中的所有檔案移到當前目錄(用.
表示)中:
mv /usr/men/* .
du (檢視使用空間)
語法:du [選項][檔案]
選項:
-a或-all 顯示目錄中個別檔案的大小。
-b或-bytes 顯示目錄或檔案大小時,以byte為單位。
-c或--total 除了顯示個別目錄或檔案的大小外,同時也顯示所有目錄或檔案的總和。
-k或--kilobytes 以KB(1024bytes)為單位輸出。
-m或--megabytes 以MB為單位輸出。
-s或--summarize 僅顯示總計,只列出最後加總的值。
-h或--human-readable 以K,M,G為單位,提高資訊的可讀性。
-x或--one-file-xystem 以一開始處理時的檔案系統為準,若遇上其它不同的檔案系統目錄則略過。
-L<符號連結>或--dereference<符號連結> 顯示選項中所指定符號連結的原始檔大小。
-S或--separate-dirs 顯示個別目錄的大小時,並不含其子目錄的大小。
-X<檔案>或--exclude-from=<檔案> 在<檔案>指定目錄或檔案。
--exclude=<目錄或檔案> 略過指定的目錄或檔案。
-D或--dereference-args 顯示指定符號連結的原始檔大小。
-H或--si 與-h引數相同,但是K,M,G是以1000為換算單位。
-l或--count-links 重複計算硬體連結的檔案。
EG:
顯示目錄或者檔案所佔空間:
[root@localhost test]# du
608 ./test6
308 ./test4
4 ./scf/lib
4 ./scf/service/deploy/product
4 ./scf/service/deploy/info
12 ./scf/service/deploy
16 ./scf/service
4 ./scf/doc
4 ./scf/bin
32 ./scf
8 ./test3
1288 .
cat (顯示檔案的內容)
語法
cat(選項)(引數)
選項
-n或-number:有1開始對所有輸出的行數編號; -b或--number-nonblank:和-n相似,只不過對於空白行不編號; -s或--squeeze-blank:當遇到有連續兩行以上的空白行,就代換為一行的空白行; -A:顯示不可列印字元,行尾顯示“$”; -e:等價於"-vE"選項; -t:等價於"-vT"選項;
引數
檔案列表:指定要連線的檔案列表。
EG:
設ml和m2是當前目錄下的兩個檔案
cat m1 (在螢幕上顯示檔案ml的內容)
cat m1 m2 (同時顯示檔案ml和m2的內容)
cat m1 m2 > file (將檔案ml和m2合併後放入檔案file中)
tac (將檔案已行為單位的反序輸出,即第一行最後顯示,最後一行先顯示。)
語法
tac(選項)(引數)
選項
-a或——append:將內容追加到檔案的末尾; -i或——ignore-interrupts:忽略中斷訊號。
引數
檔案列表:指定要儲存內容的檔案列表。
more (全螢幕的方式按頁顯示文字檔案的內容)
- 按Space鍵:顯示文字的下一屏內容。
- 按Enier鍵:只顯示文字的下一行內容。
- 按斜線符
|
:接著輸入一個模式,可以在文字中尋找下一個相匹配的模式。 - 按H鍵:顯示幫助屏,該屏上有相關的幫助資訊。
- 按B鍵:顯示上一屏內容。
- 按Q鍵:退出rnore命令。
語法
more(語法)(引數)
選項
-<數字>:指定每屏顯示的行數; -d:顯示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”; -c:不進行滾屏操作。每次重新整理這個螢幕; -s:將多個空行壓縮成一行顯示; -u:禁止下劃線; +<數字>:從指定數字的行開始顯示。
引數
檔案:指定分頁顯示內容的檔案。
例項
顯示檔案file的內容,但在顯示之前先清屏,並且在螢幕的最下方顯示完核的百分比。
more -dc file
顯示檔案file的內容,每10行顯示一次,而且在顯示之前先清屏。
more -c -10 file
less (瀏覽文字檔案的內容)
語法
less(選項)(引數)
選項
-e:檔案內容顯示完畢後,自動退出; -f:強制顯示檔案; -g:不加亮顯示搜尋到的所有關鍵詞,僅顯示當前顯示的關鍵字,以提高顯示速度; -l:搜尋時忽略大小寫的差異; -N:每一行行首顯示行號; -s:將連續多個空行壓縮成一行顯示; -S:在單行顯示較長的內容,而不換行顯示; -x<數字>:將TAB字元顯示為指定個數的空格字元。
引數
檔案:指定要分屏顯示內容的檔案。
head (顯示檔案的開頭的內容。在預設情況下,head命令顯示檔案的頭10行內容。)
語法
head(選項)(引數)
選項
-n<數字>:指定顯示頭部內容的行數; -c<字元數>:指定顯示頭部內容的字元數; -v:總是顯示檔名的頭資訊; -q:不顯示檔名的頭資訊。
引數
檔案列表:指定顯示頭部內容的檔案列表。
tail (輸入檔案中的尾部內容)
注意:如果表示位元組或行數的N值之前有一個”+”號,則從檔案開頭的第N項開始顯示,而不是顯示檔案的最後N項。N值後面可以有後綴:b表示512,k表示1024,m表示1 048576(1M)。
語法
tail(選項)(引數)
選項
--retry:即是在tail命令啟動時,檔案不可訪問或者檔案稍後變得不可訪問,都始終嘗試開啟檔案。使用此選項時需要與選項“——follow=name”連用;
-c<N>或——bytes=<N>:輸出檔案尾部的N(N為整數)個位元組內容;
-f<name/descriptor>或;--follow<nameldescript>:顯示檔案最新追加的內容。“name”表示以檔名的方式監視檔案的變化。“-f”與“-fdescriptor”等效;
-F:與選項“-follow=name”和“--retry"連用時功能相同;
-n<N>或——line=<N>:輸出檔案的尾部N(N位數字)行內容。
--pid=<程序號>:與“-f”選項連用,當指定的程序號的程序終止後,自動退出tail命令;
-q或——quiet或——silent:當有多個檔案引數時,不輸出各個檔名;
-s<秒數>或——sleep-interal=<秒數>:與“-f”選項連用,指定監視檔案變化時間隔的秒數;
-v或——verbose:當有多個檔案引數時,總是輸出各個檔名;
--help:顯示指令的幫助資訊;
--version:顯示指令的版本資訊。
引數
檔案列表:指定要顯示尾部內容的檔案列表。
例項
tail file (顯示檔案file的最後10行)
tail +20 file (顯示檔案file的內容,從第20行至檔案末尾)
tail -c 10 file (顯示檔案file的最後10個字元)
cut (顯示行中的指定部分,刪除檔案中指定欄位)
語法
cut(選項)(引數)
選項
-b:僅顯示行中指定直接範圍的內容;
-c:僅顯示行中指定範圍的字元;
-d:指定欄位的分隔符,預設的欄位分隔符為“TAB”;
-f:顯示指定欄位的內容;
-n:與“-b”選項連用,不分割多位元組字元;
--complement:補足被選擇的位元組、字元或欄位;
--out-delimiter=<欄位分隔符>:指定輸出內容是的欄位分割符;
--help:顯示指令的幫助資訊;
--version:顯示指令的版本資訊。
引數
檔案:指定要進行內容過濾的檔案。
指定欄位的字元或者位元組範圍
cut命令可以將一串字元作為列來顯示,字元欄位的記法:
- N-:從第N個位元組、字元、欄位到結尾;
- N-M:從第N個位元組、字元、欄位到第M個(包括M在內)位元組、字元、欄位;
- -M:從第1個位元組、字元、欄位到第M個(包括M在內)位元組、字元、欄位。
上面是記法,結合下面選項將摸個範圍的位元組、字元指定為欄位:
- -b 表示位元組;
- -c 表示字元;
- -f 表示定義欄位。
sort (將檔案進行排序,並將排序結果標準輸出)
語法
sort(選項)(引數)
選項
-b:忽略每行前面開始出的空格字元; -c:檢查檔案是否已經按照順序排序; -d:排序時,處理英文字母、數字及空格字元外,忽略其他的字元; -f:排序時,將小寫字母視為大寫字母; -i:排序時,除了040至176之間的ASCII字元外,忽略其他的字元; -m:將幾個排序號的檔案進行合併; -M:將前面3個字母依照月份的縮寫進行排序; -n:依照數值的大小排序; -o<輸出檔案>:將排序後的結果存入制定的檔案; -r:以相反的順序來排序; -t<分隔字元>:指定排序時所用的欄位分隔字元; +<起始欄位>-<結束欄位>:以指定的欄位來排序,範圍由起始欄位到結束欄位的前一欄位。
引數
檔案:指定待排序的檔案列表。
uniq (報告或忽略檔案中的重複行)
語法
uniq(選項)(引數)
選項
-c或——count:在每列旁邊顯示該行重複出現的次數;
-d或--repeated:僅顯示重複出現的行列;
-f<欄位>或--skip-fields=<欄位>:忽略比較指定的欄位;
-s<字元位置>或--skip-chars=<字元位置>:忽略比較指定的字元;
-u或——unique:僅顯示出一次的行列;
-w<字元位置>或--check-chars=<字元位置>:指定要比較的字元。
引數
- 輸入檔案:指定要去除的重複行檔案。如果不指定此項,則從標準讀取資料;
- 輸出檔案:指定要去除重複行後的內容要寫入的輸出檔案。如果不指定此選項,則將內容顯示到標準輸出裝置(顯示終端)。
例項
刪除重複行:
uniq file.txt
sort file.txt | uniq
sort -u file.txt
只顯示單一行:
uniq -u file.txt sort file.txt | uniq -u
wc (計算數字)
語法
wc(選項)(引數)
選項
-c或--bytes或——chars:只顯示Bytes數;
-l或——lines:只顯示列數;
-w或——words:只顯示字數。
引數
檔案:需要統計的檔案列表。
locat (查詢檔案或目錄)
語法
locate/slocate(選項)(引數)
選項
-d<目錄>或--database=<目錄>:指定資料庫所在的目錄;
-u:更新slocate資料庫;
--help:顯示幫助;
--version:顯示版本資訊。
引數
查詢字串:要查詢的檔名中含有的字串。
例項
搜尋etc目錄下所有以sh開頭的檔案:
locate /etc/sh
搜尋使用者主目錄下,所有以m開頭的檔案:
locate ~/m
搜尋使用者主目錄下,所有以m開頭的檔案,並且忽略大小寫:
locate -i ~/m
find (在指定目錄下查詢檔案)
語法
find(選項)(引數)
選項
-amin<分鐘>:查詢在指定時間曾被存取過的檔案或目錄,單位以分鐘計算;
-anewer<參考檔案或目錄>:查詢其存取時間較指定檔案或目錄的存取時間更接近現在的檔案或目錄;
-atime<24小時數>:查詢在指定時間曾被存取過的檔案或目錄,單位以24小時計算;
-cmin<分鐘>:查詢在指定時間之時被更改過的檔案或目錄;
-cnewer<參考檔案或目錄>查詢其更改時間較指定檔案或目錄的更改時間更接近現在的檔案或目錄;
-ctime<24小時數>:查詢在指定時間之時被更改的檔案或目錄,單位以24小時計算;
-daystart:從本日開始計算時間;
-depth:從指定目錄下最深層的子目錄開始查詢;
-empty:尋找檔案大小為0 Byte的檔案,或目錄下沒有任何子目錄或檔案的空目錄;
-exec<執行指令>:假設find指令的回傳值為True,就執行該指令;
-false:將find指令的回傳值皆設為False;
-fls<列表檔案>:此引數的效果和指定“-ls”引數類似,但會把結果儲存為指定的列表檔案;
-follow:排除符號連線;
-fprint<列表檔案>:此引數的效果和指定“-print”引數類似,但會把結果儲存成指定的列表檔案;
-fprint0<列表檔案>:此引數的效果和指定“-print0”引數類似,但會把結果儲存成指定的列表檔案;
-fprintf<列表檔案><輸出格式>:此引數的效果和指定“-printf”引數類似,但會把結果儲存成指定的列表檔案;
-fstype<檔案系統型別>:只尋找該檔案系統型別下的檔案或目錄;
-gid<群組識別碼>:查詢符合指定之群組識別碼的檔案或目錄;
-group<群組名稱>:查詢符合指定之群組名稱的檔案或目錄;
-help或——help:線上幫助;
-ilname<範本樣式>:此引數的效果和指定“-lname”引數類似,但忽略字元大小寫的差別;
-iname<範本樣式>:此引數的效果和指定“-name”引數類似,但忽略字元大小寫的差別;
-inum<inode編號>:查詢符合指定的inode編號的檔案或目錄;
-ipath<範本樣式>:此引數的效果和指定“-path”引數類似,但忽略字元大小寫的差別;
-iregex<範本樣式>:此引數的效果和指定“-regexe”引數類似,但忽略字元大小寫的差別;
-links<連線數目>:查詢符合指定的硬連線數目的檔案或目錄;
-iname<範本樣式>:指定字串作為尋找符號連線的範本樣式;
-ls:假設find指令的回傳值為Ture,就將檔案或目錄名稱列出到標準輸出;
-maxdepth<目錄層級>:設定最大目錄層級;
-mindepth<目錄層級>:設定最小目錄層級;
-mmin<分鐘>:查詢在指定時間曾被更改過的檔案或目錄,單位以分鐘計算;
-mount:此引數的效果和指定“-xdev”相同;
-mtime<24小時數>:查詢在指定時間曾被更改過的檔案或目錄,單位以24小時計算;
-name<範本樣式>:指定字串作為尋找檔案或目錄的範本樣式;
-newer<參考檔案或目錄>:查詢其更改時間較指定檔案或目錄的更改時間更接近現在的檔案或目錄;
-nogroup:找出不屬於本地主機群組識別碼的檔案或目錄;
-noleaf:不去考慮目錄至少需擁有兩個硬連線存在;
-nouser:找出不屬於本地主機使用者識別碼的檔案或目錄;
-ok<執行指令>:此引數的效果和指定“-exec”類似,但在執行指令之前會先詢問使用者,若回答“y”或“Y”,則放棄執行命令;
-path<範本樣式>:指定字串作為尋找目錄的範本樣式;
-perm<許可權數值>:查詢符合指定的許可權數值的檔案或目錄;
-print:假設find指令的回傳值為Ture,就將檔案或目錄名稱列出到標準輸出。格式為每列一個名稱,每個名稱前皆有“./”字串;
-print0:假設find指令的回傳值為Ture,就將檔案或目錄名稱列出到標準輸出。格式為全部的名稱皆在同一行;
-printf<輸出格式>:假設find指令的回傳值為Ture,就將檔案或目錄名稱列出到標準輸出。格式可以自行指定;
-prune:不尋找字串作為尋找檔案或目錄的範本樣式;
-regex<範本樣式>:指定字串作為尋找檔案或目錄的範本樣式;
-size<檔案大小>:查詢符合指定的檔案大小的檔案;
-true:將find指令的回傳值皆設為True;
-type<檔案型別>:只尋找符合指定的檔案型別的檔案;
-uid<使用者識別碼>:查詢符合指定的使用者識別碼的檔案或目錄;
-used<日數>:查詢檔案或目錄被更改之後在指定時間曾被存取過的檔案或目錄,單位以日計算;
-user<擁有者名稱>:查詢符和指定的擁有者名稱的檔案或目錄;
-version或——version:顯示版本資訊;
-xdev:將範圍侷限在先行的檔案系統中;
-xtype<檔案型別>:此引數的效果和指定“-type”引數類似,差別在於它針對符號連線檢查。
引數
起始目錄:查詢檔案的起始目錄。
例項
根據檔案或者正則表示式進行匹配
列出當前目錄及子目錄下所有檔案和資料夾
find .
在/home
目錄下查詢以.txt結尾的檔名
find /home -name "*.txt"
grep (文字搜尋工具)
選項
-a 不要忽略二進位制資料。
-A<顯示列數> 除了顯示符合範本樣式的那一行之外,並顯示該行之後的內容。
-b 在顯示符合範本樣式的那一行之外,並顯示該行之前的內容。
-c 計算符合範本樣式的列數。
-C<顯示列數>或-<顯示列數> 除了顯示符合範本樣式的那一列之外,並顯示該列之前後的內容。
-d<進行動作> 當指定要查詢的是目錄而非檔案時,必須使用這項引數,否則grep命令將回報資訊並停止動作。
-e<範本樣式> 指定字串作為查詢檔案內容的範本樣式。
-E 將範本樣式為延伸的普通表示法來使用,意味著使用能使用擴充套件正則表示式。
-f<範本檔案> 指定範本檔案,其內容有一個或多個範本樣式,讓grep查詢符合範本條件的檔案內容,格式為每一列的範本樣式。
-F 將範本樣式視為固定字串的列表。
-G 將範本樣式視為普通的表示法來使用。
-h 在顯示符合範本樣式的那一列之前,不標示該列所屬的檔名稱。
-H 在顯示符合範本樣式的那一列之前,標示該列的檔名稱。
-i 忽略字元大小寫的差別。
-l 列出檔案內容符合指定的範本樣式的檔名稱。
-L 列出檔案內容不符合指定的範本樣式的檔名稱。
-n 在顯示符合範本樣式的那一列之前,標示出該列的編號。
-q 不顯示任何資訊。
-R/-r 此引數的效果和指定“-d recurse”引數相同。
-s 不顯示錯誤資訊。
-v 反轉查詢。
-w 只顯示全字符合的列。
-x 只顯示全列符合的列。
-y 此引數效果跟“-i”相同。
-o 只輸出文件中匹配到的部分。
grep命令常見用法
在檔案中搜索一個單詞,命令會返回一個包含“match_pattern”的文字行:
grep match_pattern file_name grep "match_pattern" file_name
在多個檔案中查詢:
grep "match_pattern" file_1 file_2 file_3 ...
輸出除之外的所有行 -v 選項:
grep -v "match_pattern" file_name
標記匹配顏色 --color=auto 選項:
grep "match_pattern" file_name --color=auto
使用正則表示式 -E 選項:
grep -E "[1-9]+"
或
egrep "[1-9]+"
只輸出文件中匹配到的部分 -o 選項:
echo this is a test line. | grep -o -E "[a-z]+\."
line.
echo this is a test line. | egrep -o "[a-z]+\."
line.
dd (複製檔案並對原檔案的內容進行轉換和格式化處理)
語法
dd(選項)
選項
bs=<位元組數>:將 ibs(輸入)與 obs(輸出)設成指定的位元組數;
cbs=<位元組數>:轉換時,每次只轉換指定的位元組數;
conv=<關鍵字>:指定檔案轉換的方式;
count=<區塊數>:僅讀取指定的區塊數;
ibs=<位元組數>:每次讀取的位元組數;
obs=<位元組數>:每次輸出的位元組數;
of=<檔案>:輸出到檔案;
seek=<區塊數>:一開始輸出時,跳過指定的區塊數;
skip=<區塊數>:一開始讀取時,跳過指定的區塊數;
--help:幫助;
--version:顯示版本資訊。
例項
[root@localhost text]# dd if=/dev/zero of=sun.txt bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s
[root@localhost text]# du -sh sun.txt
1.1M sun.txt
file (探測給定檔案的型別)
語法
file(選項)(引數)
選項
-b:列出辨識結果時,不顯示檔名稱; -c:詳細顯示指令執行過程,便於排錯或分析程式執行的情形; -f<名稱檔案>:指定名稱檔案,其內容有一個或多個檔名稱時,讓file依序辨識這些檔案,格式為每列一個檔名稱; -L:直接顯示符號連線所指向的檔案類別; -m<魔法數字檔案>:指定魔法數字檔案; -v:顯示版本資訊; -z:嘗試去解讀壓縮檔案的內容。
引數
檔案:要確定型別的檔案列表,多個檔案之間使用空格分開,可以使用shell萬用字元匹配多個檔案。
例項
顯示檔案型別
[root@localhost ~]# file install.log
install.log: UTF-8 Unicode text
[root@localhost ~]# file -b install.log <== 不顯示檔名稱
UTF-8 Unicode text
[root@localhost ~]# file -i install.log <== 顯示MIME類別。
install.log: text/plain; charset=utf-8
[root@localhost ~]# file -b -i install.log
text/plain; charset=utf-8
stat (顯示檔案的狀態資訊)
語法
stat(選項)(引數)
選項
-L:支援符號連線;
-f:顯示檔案系統狀態而非檔案狀態;
-t:以簡潔方式輸出資訊;
--help:顯示指令的幫助資訊;
--version:顯示指令的版本資訊。
引數
檔案:指定要顯示資訊的普通檔案或者檔案系統對應的裝置檔名。
例項
[root@localhost ~]# ls -l myfile
-rw-r--r-- 1 root root 0 2010-10-09 myfile
[root@localhost ~]# stat myfile
file: “myfile”
Size: 0 Blocks: 8 IO Block: 4096 一般空檔案
Device: fd00h/64768d Inode: 194805815 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2010-12-12 12:22:35.000000000 +0800
Modify: 2010-10-09 20:44:21.000000000 +0800
Change: 2010-10-09 20:44:21.000000000 +0800
[root@localhost ~]# stat -f myfile
File: "myfile"
id: 0 Namelen: 255 type: ext2/ext3
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 241555461 free: 232910771 Available: 220442547
Inodes: Total: 249364480 Free: 249139691
[root@localhost ~]# stat -t myfile
myfile 0 8 81a4 0 0 fd00 194805815 1 0 0 1292127755 1286628261 1286628261 4096
ln (為檔案創件連線) (連線型別分為硬連線和符號連線兩種,預設的連線型別是硬連線。如果要建立符號連線必須使用"-s"選項。)
連線型別分為硬連線和符號連線兩種,預設的連線型別是硬連線。如果要建立符號連線必須使用"-s"選項。
語法
ln(選項)(引數)
選項
-b或--backup:刪除,覆蓋目標檔案之前的備份; -d或-F或——directory:建立目錄的硬連線; -f或——force:強行建立檔案或目錄的連線,不論檔案或目錄是否存在; -i或——interactive:覆蓋既有檔案之前先詢問使用者; -n或--no-dereference:把符號連線的目的目錄視為一般檔案; -s或——symbolic:對原始檔建立符號連線,而非硬連線; -S<字尾備份字串>或--suffix=<字尾備份字串>:用"-b"引數備份目標檔案後,備份檔案的字尾會被加上一個備份字串,
預設的備份字串是符號“~”,使用者可通過“-S”引數來改變它; -v或——verbose:顯示指令執行過程; -V<備份方式>或--version-control=<備份方式>:用“-b”引數備份目標檔案後,備份檔案的字尾會被加上一個備份字串,這個字串不僅可用“-S”引數變更,
當使用“-V”引數<備份方式>指定不同備份方式時,也會產生不同字尾的備份字串; --help:線上幫助; --version:顯示版本資訊。
引數
原始檔:指定連線的原始檔。如果使用-s
選項建立符號連線,則“原始檔”可以是檔案或者目錄。建立硬連線時,則“原始檔”引數只能是檔案;
目標檔案:指定原始檔的目標連線檔案。
例項
將目錄/usr/mengqc/mub1
下的檔案m2.c連結到目錄/usr/liu
下的檔案a2.c
cd /usr/mengqc
ln /mub1/m2.c /usr/liu/a2.c