1、alias
alias命令用來設置指令的別名。我們可以使用該命令可以將一些較長的命令進行簡化。使用alias時,用戶必須使用單引號”將原來的命令引起來,防止特殊字符導致錯誤。
alias命令的作用只局限于該次登入的操作。若要每次登入都能夠使用這些命令別名,則可將相應的alias命令存放到bash的初始化文件/etc/bashrc中。
語法
alias(選項)(參數)
選項
-p:打印已經設置的命令別名。
參數
命令別名設置:定義命令別名,格式為“命令別名=‘實際命令’”。
實例
alias 的基本使用方法為:
alias 新的命令=’原命令 -選項/參數’
例如:alias l=‘ls -lsh’將重新定義ls命令,現在只需輸入l就可以列目錄了。直接輸入 alias 命令會列出當前系統中所有已經定義的命令別名。
要刪除一個別名,可以使用 unalias 命令,如 unalias l。
查看系統已經設置的別名:
alias -p
alias cp=’cp -i’
alias l.=’ls -d .* –color=tty’
alias ll=’ls -l –color=tty’
alias ls=’ls –color=tty’
alias mv=’mv -i’
alias rm=’rm -i’
alias which=’alias | /usr/bin/which –tty-only –read-alias –show-dot –show-tilde’
2、unalias
unalias命令用來取消命令別名,是為shell內建命令。如果需要取消任意一個命令別名,則使用該命令別名作為指令的參數選項即可。如果使用-a選項,則表示取消所有已經存在的命令別名。
語法
unalias(選項)(參數)
選項
-a:取消所有命令別名。
參數
命令別名:指定要取消的命令別名。
實例
使用unalias命令將已經設置的命令別名”cc”取消,輸入如下命令:
unalias cc??????????? #取消已經設置的命令別名
上面的命令執行后,系統會將指定的命令別名取消掉。如果用戶再使用該命令別名時,系統將提示如下信息:
cc:no input files
因此,當使用該指令將命令別名取消后,將不能夠再進行使用。否則,將出現錯誤提示。
3、basename
basename命令用于打印目錄或者文件的基本名稱。basename和dirname命令通常用于shell腳本中的命令替換來指定和指定的輸入文件名稱有所差異的輸出文件名稱。
語法
basename(選項)(參數)
選項
–help:顯示幫助;
–version:顯示版本號。
參數
文件:帶路徑信息的文件;
后綴:可選參數,指定要去除的文件后綴字符串。
實例
1、要顯示一個shell變量的基本名稱,請輸入:
basename $WORKFILE
此命令顯示指定給shell變量WORKFILE的值的基本名稱。如果WORKFILE變量的值是/home/jim/program.c文件,則此命令顯示program.c。
要構造一個和另一個文件名稱相同(除了后綴)的文件名稱,請輸入:
OFILE=`basename $1 .c`.o
此命令指定給 OFILE 文件第一個位置上的參數($1)的值,但它的 .c 后綴更改至 .o。如果 $1 是 /home/jim/program.c 文件,則 OFILE 成為 program.o。因為 program.o 僅是一個基本文件名稱,它標識在當前目錄中的文件。
- bc
bc命令是一種支持任意精度的交互執行的計算器語言。bash內置了對整數四則運算的支持,但是并不支持浮點運算,而bc命令可以很方便的進行浮點運算,當然整數運算也不再話下。
語法
bc(選項)(參數)
選項
-i:強制進入交互式模式;
-l:定義使用的標準數學庫;
-w:對POSIX bc的擴展給出警告信息;
-q:不打印正常的GNU bc環境信息;
-v:顯示指令版本信息;
-h:顯示指令的幫助信息。
參數
文件:指定包含計算任務的文件。
實例
算術操作高級運算bc命令它可以執行浮點運算和一些高級函數:
echo “1.212*3” | bc
3.636
設定小數精度(數值范圍)
echo “scale=2;3/8” | bc
0.37
參數scale=2是將bc輸出結果的小數位設置為2位。
進制轉換
#!/bin/bash
abc=192
echo “obase=2;$abc” | bc
執行結果為:11000000,這是用bc將十進制轉換成二進制。
#!/bin/bash
abc=11000000
echo “obase=10;ibase=2;$abc” | bc
執行結果為:192,這是用bc將二進制轉換為十進制。
計算平方和平方根:
echo “10^10” | bc
echo “sqrt(100)” | bc
6、clock
clock: 顯示硬件時鐘
-s, –hctosys以硬件時鐘為準,校正系統時鐘
-w, –systohc以系統時鐘為準,校正硬件時鐘
7、cal
cal命令用于顯示當前日歷,或者指定日期的日歷。
語法
cal(選項)(參數)
選項
-l:顯示單月輸出;
-3:顯示臨近三個月的日歷;
-s:將星期日作為月的第一天;
-m:將星期一作為月的第一天;
-j:顯示“julian”日期;
-y:顯示當前年的日歷。
參數
月:指定月份;
年:指定年份。
實例
單獨執行cal命令會打印出日歷:
8、cd
cd命令用來切換工作目錄至dirname。 其中dirName表示法可為絕對路徑或相對路徑。若目錄名稱省略,則變換至使用者的home directory(也就是剛login時所在的目錄)。另外,~也表示為home directory的意思,.則是表示目前所在的目錄,..則表示目前目錄位置的上一層目錄。
語法
cd (選項) (參數)
選項
-p 如果要切換到的目標目錄是一個符號連接,直接切換到符號連接指向的目標目錄
-L 如果要切換的目標目錄是一個符號的連接,直接切換到字符連接名代表的目錄,而非符號連接所指向的目標目錄。
– 當僅實用”-“一個選項時,當前工作目錄將被切換到環境變量”OLDPWD”所表示的目錄。
實例
cd??? 進入用戶主目錄;
cd ~? 進入用戶主目錄;
cd –? 返回進入此目錄之前所在的目錄;
cd ..? 返回上級目錄(若當前目錄為“/“,則執行完后還在“/”;”..”為上級目錄的意思);
cd ../..? 返回上兩級目錄;
cd !$? 把上個命令的參數作為cd參數使用。
9、cp
cp命令用來將一個或多個源文件或者目錄復制到指定的目的文件或目錄。它可以將單個源文件復制成一個指定文件名的具體的文件或一個已經存在的目錄下。cp命令還支持同時復制多個文件,當一次復制多個文件時,目標文件參數必須是一個已經存在的目錄,否則將出現錯誤。
語法
cp(選項)(參數)
選項
-a:此參數的效果和同時指定”-dpR”參數相同;
-d:當復制符號連接時,把目標文件或目錄也建立為符號連接,并指向與源文件或目錄連接的原始文件或目錄;
-f:強行復制文件或目錄,不論目標文件或目錄是否已存在;
-i:覆蓋既有文件之前先詢問用戶;
-l:對源文件建立硬連接,而非復制文件;
-p:保留源文件或目錄的屬性;
-R/r:遞歸處理,將指定目錄下的所有文件與子目錄一并處理;
-s:對源文件建立符號連接,而非復制文件;
-u:使用這項參數后只會在源文件的更改時間較目標文件更新時或是名稱相互對應的目標文件并不存在時,才復制文件;
-S:在備份文件時,用指定的后綴“SUFFIX”代替文件的默認后綴;
-b:覆蓋已存在的文件目標前將目標文件備份;
-v:詳細顯示命令執行的操作。
參數
源文件:制定源文件列表。默認情況下,cp命令不能復制目錄,如果要復制目錄,則必須使用-R選項;
目標文件:指定目標文件。當“源文件”為多個文件時,要求“目標文件”為指定的目錄。
實例
如果把一個文件復制到一個目標文件中,而目標文件已經存在,那么,該目標文件的內容將被破壞。此命令中所有參數既可以是絕對路徑名,也可以是相對路徑名。通常會用到點.或點點..的形式。例如,下面的命令將指定文件復制到當前目錄下:
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
交互式地將目錄/usr/men中的以m打頭的所有.c文件復制到目錄/usr/zh中
cp -i /usr/men m*.c /usr/zh
我們在Linux下使用cp命令復制文件時候,有時候會需要覆蓋一些同名文件,覆蓋文件的時候都會有提示:需要不停的按Y來確定執行覆蓋。文件數量不多還好,但是要是幾百個估計按Y都要吐血了,于是折騰來半天總結了一個方法:
cp aaa/* /bbb
復制目錄aaa下所有到/bbb目錄下,這時如果/bbb目錄下有和aaa同名的文件,需要按Y來確認并且會略過aaa目錄下的子目錄。
cp -r aaa/* /bbb
這次依然需要按Y來確認操作,但是沒有忽略子目錄。
cp -r -a aaa/* /bbb
依然需要按Y來確認操作,并且把aaa目錄以及子目錄和文件屬性也傳遞到了/bbb。
\cp -r -a aaa/* /bbb
成功,沒有提示按Y、傳遞了目錄屬性、沒有略過目錄。
10、cat
cat命令連接文件并打印到標準輸出設備上,cat經常用來顯示文件的內容,類似于下的type命令。
注意:當文件較大時,文本在屏幕上迅速閃過(滾屏),用戶往往看不清所顯示的內容。因此,一般用more等命令分屏顯示。為了控制滾屏,可以按Ctrl+S鍵,停止滾屏;按Ctrl+Q鍵可以恢復滾屏。按Ctrl+C(中斷)鍵可以終止該命令的執行,并且返回Shell提示符狀態。
語法
cat(選項)(參數)
選項
-n或-number:有1開始對所有輸出的行數編號;
-b或–number-nonblank:和-n相似,只不過對于空白行不編號;
-s或–squeeze-blank:當遇到有連續兩行以上的空白行,就代換為一行的空白行;
-A:顯示不可打印字符,行尾顯示“$”;
-e:等價于”-vE”選項;
-t:等價于”-vT”選項;
參數
文件列表:指定要連接的文件列表。
實例
設ml和m2是當前目錄下的兩個文件
cat m1 (在屏幕上顯示文件ml的內容)
cat m1 m2 (同時顯示文件ml和m2的內容)
cat m1 m2 > file (將文件ml和m2合并后放入文件file中)
11、clear
clear命令用于清除當前屏幕終端上的任何信息。相當于ctrl+l
語法
clear
實例
直接輸入clear命令當前終端上的任何信息就可被清除。
12、date
date命令是顯示或設置系統時間與日期。
很多shell腳本里面需要打印不同格式的時間或日期,以及要根據時間和日期執行操作。延時通常用于腳本執行過程中提供一段等待的時間。日期可以以多種格式去打印,也可以使用命令設置固定的格式。在類UNIX系統中,日期被存儲為一個整數,其大小為自世界標準時間(UTC)1970年1月1日0時0分0秒起流逝的秒數。
語法
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)
13、dd
dd命令用于復制文件并對原文件的內容進行轉換和格式化處理。dd命令功能很強大的,對于一些比較底層的問題,使用dd命令往往可以得到出人意料的效果。用的比較多的還是用dd來備份裸設備。但是不推薦,如果需要備份oracle裸設備,可以使用rman備份,或使用第三方軟件備份,使用dd的話,管理起來不太方便。
建議在有需要的時候使用dd 對物理磁盤操作,如果是文件系統的話還是使用tar backup cpio等其他命令更加方便。另外,使用dd對磁盤操作時,最好使用塊設備文件。
語法
dd(選項)
選項
bs=<字節數>:將ibs(輸入)與歐巴桑(輸出)設成指定的字節數;
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
該命令創建了一個1M大小的文件sun.txt,其中參數解釋:
if 代表輸入文件。如果不指定if,默認就會從stdin中讀取輸入。
of 代表輸出文件。如果不指定of,默認就會將stdout作為默認輸出。
bs 代表字節為單位的塊大小。
count 代表被復制的塊數。
/dev/zero 是一個字符設備,會不斷返回0值字節(\0)。
14、df
df命令用于顯示磁盤分區上的可使用的磁盤空間。默認顯示單位為KB??梢岳迷撁顏慝@取硬盤被占用了多少空間,目前還剩下多少空間等信息。
語法
df(選項)(參數)
選項
-a或–all:包含全部的文件系統;
–block-size=<區塊大小>:以指定的區塊大小來顯示區塊數目;
-h或–human-readable:以可讀性較高的方式來顯示信息;
-H或–si:與-h參數相同,但在計算時是以1000 Bytes為換算單位而非1024 Bytes;
-i或–inodes:顯示inode的信息;
-k或–kilobytes:指定區塊大小為1024字節;
-l或–local:僅顯示本地端的文件系統;
-m或–megabytes:指定區塊大小為1048576字節;
–no-sync:在取得磁盤使用信息前,不要執行sync指令,此為預設值;
-P或–portability:使用POSIX的輸出格式;
–sync:在取得磁盤使用信息前,先執行sync指令;
-t<文件系統類型>或–type=<文件系統類型>:僅顯示指定文件系統類型的磁盤信息;
-T或–print-type:顯示文件系統的類型;
-x<文件系統類型>或–exclude-type=<文件系統類型>:不要顯示指定文件系統類型的磁盤信息;
–help:顯示幫助;
–version:顯示版本信息。
參數
文件:指定文件系統上的文件。
15、dirname
dirname命令去除文件名中的非目錄部分,僅顯示與目錄有關的內容。dirname命令讀取指定路徑名保留最后一個/及其后面的字符,刪除其他部分,并寫結果到標準輸出。如果最后一個/后無字符,dirname 命令使用倒數第二個/,并忽略其后的所有字符。dirname 和 basename 通常在 shell 內部命令替換使用,以指定一個與指定輸入文件名略有差異的輸出文件名。
語法
dirname(選項)(參數)
選項
–help:顯示幫助;
–version:顯示版本號。
16、du
u命令也是查看使用空間的,但是與df命令不同的是Linux du命令是對文件和目錄磁盤使用的空間的查看,還是和df命令有一些區別的。
語法
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 重復計算硬件鏈接的文件。
17、echo
echo命令用于在shell中打印shell變量的值,或者直接輸出指定的字符串。linux的echo命令,在shell編程中極為常用, 在終端下打印變量value的時候也是常常用到的,因此有必要了解下echo的用法echo命令的功能是在顯示器上顯示一段文字,一般起到一個提示的作用。
語法
echo(選項)(參數)
選項
-e:激活轉義字符。
使用-e選項時,若字符串中出現以下字符,則特別加以處理,而不會將它當成一般文字輸出:
\a 發出警告聲;
\b 刪除前一個字符;
\c 最后不加上換行符號;
\f 換行但光標仍舊停留在原來的位置;
\n 換行且光標移至行首;
\r 光標移至行首,但不換行;
\t 插入tab;
\v 與\f相同;
\\ 插入\字符;
\nnn 插入nnn(八進制)所代表的ASCII字符;
參數
變量:指定要打印的變量。
18、enable
enable命令用于臨時關閉或者激活指定的shell內部命令。若要執行的文件名稱與shell內建命令相同,可用enable -n來關閉shell內建命令。若不加-n選項,enable可重新啟動關閉的命令。
linux shell命令執行時,shell總是先在自己的shell builtin中查找該命令,如果找到則執行該命令;如果找不到該命令,則會從環境變量$PATH指定的路徑中依次去查找待執行的命令。因為了解了這一點,所以看起來好像沒有辦法編寫用戶自己的命令來替代shell builtin命令。幸運的是,有了enable命令我們就能做到了。
語法
enable(選項)(參數)
選項
-n:關閉指定的內部命令;
-a:顯示所有激活的內部命令;
-f:從指定文件中讀取內部命令。
參數
內部命令:指定要關閉或激活的內部命令。
實例
使用enable命令顯示所有激活的內部命令:
[root@localhost ~]# enable -a
enable .
enable :
enable [
enable alias
enable bg
enable bind
enable break
enable builtin
enable caller
enable cd
enable command
enable compgen
enable complete
enable continue
enable declare
enable dirs
enable disown
enable echo
enable enable
enable eval
enable exec
enable exit
enable export
enable false
enable fc
enable fg
enable getopts
enable hash
enable help
enable history
enable jobs
enable kill
enable let
enable local
enable logout
enable popd
enable printf
enable pushd
enable pwd
enable read
enable readonly
enable return
enable set
enable shift
enable shopt
enable source
enable suspend
enable test
enable times
enable trap
enable true
enable type
enable typeset
enable ulimit
enable umask
enable unalias
enable unset
enable wait
19、file
file命令用來探測給定文件的類型。file命令對文件的檢查分為文件系統、魔法幻數檢查和語言檢查3個過程。
語法
file(選項)(參數)
選項
-b:列出辨識結果時,不顯示文件名稱;
-c:詳細顯示指令執行過程,便于排錯或分析程序執行的情形;
-f<名稱文件>:指定名稱文件,其內容有一個或多個文件名稱時,讓file依序辨識這些文件,格式為每列一個文件名稱;
-L:直接顯示符號連接所指向的文件類別;
-m<魔法數字文件>:指定魔法數字文件;
-v:顯示版本信息;
-z:嘗試去解讀壓縮文件的內容。
參數
文件:要確定類型的文件列表,多個文件之間使用空格分開,可以使用shell通配符匹配多個文件。
20、fdisk
fdisk命令用于觀察硬盤實體使用情況,也可對硬盤分區。它采用傳統的問答式界面,而非類似DOS fdisk的cfdisk互動式操作界面,因此在使用上較為不便,但功能卻絲毫不打折扣。
語法
fdisk(選項)(參數)
選項
-b<分區大小>:指定每個分區的大??;
-l:列出指定的外圍設備的分區表狀況;
-s<分區編號>:將指定的分區大小輸出到標準輸出上,單位為區塊;
-u:搭配”-l”參數列表,會用分區數目取代柱面數目,來表示每個分區的起始地址;
-v:顯示版本信息。
參數
設備文件:指定要進行分區或者顯示分區的硬盤設備文件。
21、free
free命令可以顯示當前系統未使用的和已使用的內存數目,還可以顯示被內核使用的內存緩沖區。
語法
free(選項)
選項
-b:以Byte為單位顯示內存使用情況;
-k:以KB為單位顯示內存使用情況;
-m:以MB為單位顯示內存使用情況;
-o:不顯示緩沖區調節列;
-s<間隔秒數>:持續觀察內存使用狀況;
-t:顯示內存總和列;
-V:顯示版本信息。
22、gedit
gedit 圖形終端下打開文件編輯器
相關命令:vim,nano
用法:
gedit [選項…] [文件…] – 編輯文本文件
幫助選項:
-?, –help???????????????????? 顯示幫助選項
–help-all???????????????????? 顯示全部幫助選項
–help-gtk???????????????????? 顯示 GTK+ 選項
–help-bonobo-activation?????? 顯示 Bonobo 激活選項
–help-gnome?????????????????? 顯示 GNOME 選項
–help-gnome-session?????????? 顯示會話管理選項
–help-gnome-ui??????????????? 顯示 GNOME GUI 選項
應用程序選項:
–encoding=ENCODING??????????? 設置打開在命令行中列出的文件時所用的字符編碼
–new-window?????????????????? 在已存在的 gedit 實例中創建一個最上層窗口
–new-document???????????????? 在已存在的 gedit 實例中創建一個新文檔
–display=顯示?????????????? 要使用的 X 顯示
23、history
history命令用于顯示指定數目的指令命令,讀取歷史命令文件中的目錄到歷史命令緩沖區和將歷史命令緩沖區中的目錄寫入命令文件。
該命令單獨使用時,僅顯示歷史命令,在命令行中,可以使用符號!執行指定序號的歷史命令。例如,要執行第2個歷史命令,則輸入!2。
歷史命令是被保存在內存中的,當退出或者登錄shell時,會自動保存或讀取。在內存中,歷史命令僅能夠存儲1000條歷史命令,該數量是由環境變量HISTSIZE進行控制。
語法
history(選項)(參數)
選項
-c:清空當前歷史命令;
-a:將歷史命令緩沖區中命令寫入歷史命令文件中;
-r:將歷史命令文件中的命令讀入當前歷史命令緩沖區;
-w:將當前歷史命令緩沖區命令寫入歷史命令文件中。
參數
n:打印最近的n條歷史命令。
24、hash
查詢緩存hash命令,可以查看最近使用的命令
[root@localhost ~]# hash
命中??? 命令
1??? /usr/bin/printenv
2??? /usr/bin/ls
- /usr/bin/clear
25、hostname
hostname命令用于顯示和設置系統的主機名稱。環境變量HOSTNAME也保存了當前的主機名。在使用hostname命令設置主機名后,系統并不會永久保存新的主機名,重新啟動機器之后還是原來的主機名。如果需要永久修改主機名,需要同時修改/etc/hosts和/etc/sysconfig/network的相關內容。
語法
hostname(選項)(參數)
選項
-v:詳細信息模式;
-a:顯示主機別名;
-d:顯示DNS域名;
-f:顯示FQDN名稱;
-i:顯示主機的ip地址;
-s:顯示短主機名稱,在第一個點處截斷;
-y:顯示NIS域名。
參數
主機名:指定要設置的主機名。
26、hexdump
hexdump命令一般用來查看“二進制”文件的十六進制編碼,但實際上它能查看任何文件,而不只限于二進制文件。
語法
hexdump [選項] [文件]…
選項
-n length 只格式化輸入文件的前length個字節。
-C 輸出規范的十六進制和ASCII碼。
-b 單字節八進制顯示。
-c 單字節字符顯示。
-d 雙字節十進制顯示。
-o 雙字節八進制顯示。
-x 雙字節十六進制顯示。
-s 從偏移量開始輸出。
-e 指定格式字符串,格式字符串包含在一對單引號中,格式字符串形如:’a/b “format1” “format2″‘。
每個格式字符串由三部分組成,每個由空格分隔,第一個形如a/b,b表示對每b個輸入字節應用format1格式,a表示對每a個輸入字節應用format2格式,一般a>b,且b只能為1,2,4,另外a可以省略,省略則a=1。format1和format2中可以使用類似printf的格式字符串,如:
%02d:兩位十進制
%03x:三位十六進制
%02o:兩位八進制
%c:單個字符等
還有一些特殊的用法:
%_ad:標記下一個輸出字節的序號,用十進制表示。
%_ax:標記下一個輸出字節的序號,用十六進制表示。
%_ao:標記下一個輸出字節的序號,用八進制表示。
%_p:對不能以常規字符顯示的用 . 代替。
同一行如果要顯示多個格式字符串,則可以跟多個-e選項。
27、help
help命令用于顯示shell內部命令的幫助信息。help命令只能顯示shell內部的命令幫助信息。而對于外部命令的幫助信息只能使用man或者info命令查看。
語法
help(選項)(參數)
選項
-s:輸出短格式的幫助信息。僅包括命令格式。
參數
內部命令:指定需要顯示幫助信息的shell內部命令。
28、id
id命令可以顯示真實有效的用戶ID(UID)和組ID(GID)。UID 是對一個用戶的單一身份標識。組ID(GID)則對應多個UID。id命令已經默認預裝在大多數Linux系統中。要使用它,只需要在你的控制臺輸入id。不帶選項輸入id會顯示如下。結果會使用活躍用戶。
當我們想知道某個用戶的UID和GID時id命令是非常有用的。一些程序可能需要UID/GID來運行。id使我們更加容易地找出用戶的UID以GID而不必在/etc/group文件中搜尋。如往常一樣,你可以在控制臺輸入man id進入id的手冊頁來獲取更多的詳情。
語法
id [-gGnru][–help][–version][用戶名稱]
選項
-g或–group 顯示用戶所屬群組的ID。
-G或–groups?? 顯示用戶所屬附加群組的ID。
-n或–name ? 顯示用戶,所屬群組或附加群組的名稱。
-r或–real ? 顯示實際ID。
-u或–user ? 顯示用戶ID。
-help ?????? 顯示幫助。
-version ??? 顯示版本信息。
29、info
info命令是Linux下info格式的幫助指令。
就內容來說,info頁面比man page編寫得要更好、更容易理解,也更友好,但man page使用起來確實要更容易得多。一個man page只有一頁,而info頁面幾乎總是將它們的內容組織成多個區段(稱為節點),每個區段也可能包含子區段(稱為子節點)。理解這個命令的竅門就是不僅要學習如何在單獨的Info頁面中瀏覽導航,還要學習如何在節點和子節點之間切換??赡軇傞_始會一時很難在info頁面的節點之間移動和找到你要的東西,真是具有諷刺意味:原本以為對于新手來說,某個東西比man命令會更好些,但實際上學習和使用起來更困難。
語法
info(選項)(參數)
選項
-d:添加包含info格式幫助文檔的目錄;
-f:指定要讀取的info格式的幫助文檔;
-n:指定首先訪問的info幫助文件的節點;
-o:輸出被選擇的節點內容到指定文件。
參數
幫助主題:指定需要獲得幫助的主題,可以是指令、函數以及配置文件。
實例
在info后面輸入命令的名稱就可以查看該命令的info幫助文檔了:
info info
面介紹一下它的幾個常用快捷鍵。
?鍵:它就會顯示info的常用快捷鍵。
N鍵:顯示(相對于本節點的)下一節點的文檔內容。
P鍵:顯示(相對于本節點的)前一節點的文檔內容。
U鍵:進入當前命令所在的主題。
M鍵:敲M鍵后輸入命令的名稱就可以查看該命令的幫助文檔了。
G鍵:敲G鍵后輸入主題名稱,進入該主題。
L鍵:回到上一個訪問的頁面。
SPACE鍵:向前滾動一頁。
BACKUP或DEL鍵:向后滾動一頁。
Q:退出info。
命令
????? 顯示幫助窗口
在幫助窗口中:
Ctrl-x 0????????? 關閉幫助窗口
Ctrl-x Ctrl-c??? 關閉整個 Info
q????? 退出 info
n ?????打開與本 Node 關聯的下一個 Node
p????? 打開與本 Node 關聯的前一個 Node
u????? 打開與本 Node 關聯的上一個 Node
l????? 回到上一次訪問的 Node
m或g?? 選擇一個菜單項(Node 的名字)
輸入指定菜單的名字后按回車,打開指定菜單項關聯的 Node
空格鍵 下一頁(PageDown 也可以,下一頁從當前頁的最后兩行開始算起)
下一個 Node (若當前頁在 Node 文檔的末尾)
Del 鍵 上一頁(PageUp 也可以,上一頁從當前頁的開始兩行開始算起)
上一個 Node (若當前頁 Node 文檔的開始)
b 或 t 或 Home?? 文檔的開始(b 是 begining 的意思)
e 或 End???????? 文檔的末尾(b 是 ending 的意思)
Ctrl-l??? 刷新當前頁,若當前文檔顯示情況有問題時
Ctrl-g??? 取消所鍵入的指令
30、ifconfig
ifconfig命令被用于配置和顯示Linux內核中網絡接口的網絡參數。用ifconfig命令配置的網卡信息,在網卡重啟后機器重啟后,配置就不存在。要想將上述的配置信息永遠的存的電腦里,那就要修改網卡的配置文件了。
語法
ifconfig(參數)
參數
add<地址>:設置網絡設備IPv6的ip地址;
del<地址>:刪除網絡設備IPv6的IP地址;
down:關閉指定的網絡設備;
<hw<網絡設備類型><硬件地址>:設置網絡設備的類型與硬件地址;
io_addr<I/O地址>:設置網絡設備的I/O地址;
irq<IRQ地址>:設置網絡設備的IRQ;
media<網絡媒介類型>:設置網絡設備的媒介類型;
mem_start<內存地址>:設置網絡設備在主內存所占用的起始地址;
metric<數目>:指定在計算數據包的轉送次數時,所要加上的數目;
mtu<字節>:設置網絡設備的MTU;
netmask<子網掩碼>:設置網絡設備的子網掩碼;
tunnel<地址>:建立IPv4與IPv6之間的隧道通信地址;
up:啟動指定的網絡設備;
-broadcast<地址>:將要送往指定地址的數據包當成廣播數據包來處理;
-pointopoint<地址>:與指定地址的網絡設備建立直接連線,此模式具有保密功能;
-promisc:關閉或啟動指定網絡設備的promiscuous模式;
IP地址:指定網絡設備的IP地址;
網絡設備:指定網絡設備的名稱。
31、init
init命令是Linux下的進程初始化工具,init進程是所有Linux進程的父進程,它的進程號為1。init命令是Linux操作系統中不可缺少的程序之一,init進程是Linux內核引導運行的,是系統中的第一個進程。
語法
init(選項)(參數)
選項
-b:不執行相關腳本而直接進入單用戶模式;
-s:切換到單用戶模式。
參數
運行等級:指定Linux系統要切換到的運行等級。
實例
幾個常用的命令
查看系統進程命令:ps -ef | head
查看init的配置文件:more /etc/inittab
查看系統當前運行的級別:runlevel
運行級別
到底什么是運行級呢?簡單的說,運行級就是操作系統當前正在運行的功能級別。這個級別從0到6 ,具有不同的功能。你也可以在/etc/inittab中查看它的英文介紹。
#0? 停機(千萬不能把initdefault 設置為0)
#1? 單用戶模式
#2? 多用戶,沒有 NFS(和級別3相似,會停止部分服務)
#3? 完全多用戶模式
#4? 沒有用到
#5? x11(Xwindow)
#6? 重新啟動(千萬不要把initdefault 設置為6)
32、ls
ls命令用來顯示目標列表,在Linux中是使用率較高的命令。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]:使用不同的顏色高亮顯示不同類型的。
參數
目錄:指定要顯示列表的目錄,也可以是具體的文件。
33、ln
ln命令用來為文件創件連接,連接類型分為硬連接和符號連接兩種,默認的連接類型是硬連接。如果要創建符號連接必須使用”-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
在執行ln命令之前,目錄/usr/liu中不存在a2.c文件。執行ln之后,在/usr/liu目錄中才有a2.c這一項,表明m2.c和a2.c鏈接起來(注意,二者在物理上是同一文件),利用ls -l命令可以看到鏈接數的變化。
在目錄/usr/liu下建立一個符號鏈接文件abc,使它指向目錄/usr/mengqc/mub1
ln -s /usr/mengqc/mub1 /usr/liu/abc
執行該命令后,/usr/mengqc/mub1代表的路徑將存放在名為/usr/liu/abc的文件中。
擴展知識
Linux具有為一個文件起多個名字的功能,稱為鏈接。被鏈接的文件可以存放在相同的目錄下,但是必須有不同的文件名,而不用在硬盤上為同樣的數據重復備份。另外,被鏈接的文件也可以有相同的文件名,但是存放在不同的目錄下,這樣只要對一個目錄下的該文件進行修改,就可以完成對所有目錄下同名鏈接文件的修改。對于某個文件的各鏈接文件,我們可以給它們指定不同的存取權限,以控制對信息的共享和增強安全性。
文件鏈接有兩種形式,即硬鏈接和符號鏈接。
硬鏈接
建立硬鏈接時,在另外的目錄或本目錄中增加目標文件的一個目錄項,這樣,一個文件就登記在多個目錄中。如圖所示的m2.c文件就在目錄mub1和liu中都建立了目錄項。
創建硬鏈接后,己經存在的文件的I節點號(Inode)會被多個目錄文件項使用。一個文件的硬鏈接數可以在目錄的長列表格式的第二列中看到,無額外鏈接的文件的鏈接數為l。
在默認情況下,ln命令創建硬鏈接。ln命令會增加鏈接數,rm命令會減少鏈接數。一個文件除非鏈接數為0,否則不會從文件系統中被物理地刪除。
對硬鏈接有如下限制:
不能對目錄文件做硬鏈接。
不能在不同的文件系統之間做硬鏈接。就是說,鏈接文件和被鏈接文件必須位于同一個文件系統中。
符號鏈接
符號鏈接也稱為軟鏈接,是將一個路徑名鏈接到一個文件。這些文件是一種特別類型的文件。事實上,它只是一個文本文件(如圖中的abc文件),其中包含它提供鏈接的另一個文件的路徑名,如圖中虛線箭頭所示。另一個文件是實際包含所有數據的文件。所有讀、寫文件內容的命令被用于符號鏈接時,將沿著鏈接方向前進來訪問實際的文件。
符號連接
與硬鏈接不同的是,符號鏈接確實是一個新文件,當然它具有不同的I節點號;而硬鏈接并沒有建立新文件。
符號鏈接沒有硬鏈接的限制,可以對目錄文件做符號鏈接,也可以在不同文件系統之間做符號鏈接。
用ln -s命令建立符號鏈接時,源文件最好用絕對路徑名。這樣可以在任何工作目錄下進行符號鏈接。而當源文件用相對路徑時,如果當前的工作路徑與要創建的符號鏈接文件所在路徑不同,就不能進行鏈接。
符號鏈接保持了鏈接與源文件或目錄之間的區別:
刪除源文件或目錄,只刪除了數據,不會刪除鏈接。一旦以同樣文件名創建了源文件,鏈接將繼續指向該文件的新數據。
在目錄長列表中,符號鏈接作為一種特殊的文件類型顯示出來,其第一個字母是l。
符號鏈接的大小是其鏈接文件的路徑名中的字節數。
當用ln -s命令列出文件時,可以看到符號鏈接名后有一個箭頭指向源文件或目錄,例如lrwxrwxrwx … 14 jun 20 10:20 /etc/motd->/original_file其中,表示“文件大小”的數字“14”恰好說明源文件名original_file由14個字符構成。
34、lsblk
lsblk命令用于列出所有可用塊設備的信息,而且還能顯示他們之間的依賴關系,但是它不會列出RAM盤的信息。塊設備有硬盤,閃存盤,cd-ROM等等。lsblk命令包含在util-linux-ng包中,現在該包改名為util-linux。這個包帶了幾個其它工具,如dmesg。要安裝lsblk,請在此處下載util-linux包。Fedora用戶可以通過命令sudo yum install util-linux-ng來安裝該包。
選項
-a, –all??????????? 顯示所有設備。
-b, –bytes????????? 以bytes方式顯示設備大小。
-d, –nodeps???????? 不顯示 slaves 或 holders。
-D, –discard??????? print discard capabilities。
-e, –exclude <list> 排除設備 (default: RAM disks)。
-f, –fs???????????? 顯示文件系統信息。
-h, –help?????????? 顯示幫助信息。
-i, –ascii????????? use ascii characters only。
-m, –perms????????? 顯示權限信息。
-l, –list?????????? 使用列表格式顯示。
-n, –noheadings???? 不顯示標題。
-o, –output <list>? 輸出列。
-P, –pairs????????? 使用key=”value”格式顯示。
-r, –raw??????????? 使用原始格式顯示。
-t, –topology?????? 顯示拓撲結構信息。
35、ltrace
ltrace命令是用來跟蹤進程調用庫函數的情況。
語法
ltrace [option …] [command [arg …]]
選項
-a 對齊具體某個列的返回值。
-c 計算時間和調用,并在程序退出時打印摘要。
-C 解碼低級別名稱(內核級)為用戶級名稱。
-d 打印調試信息。
-e 改變跟蹤的事件。
-f 跟蹤子進程。
-h 打印幫助信息。
-i 打印指令指針,當庫調用時。
-l 只打印某個庫中的調用。
-L 不打印庫調用。
-n, –indent=NR 對每個調用級別嵌套以NR個空格進行縮進輸出。
-o, –output=file 把輸出定向到文件。
-p PID 附著在值為PID的進程號上進行ltrace。
-r 打印相對時間戳。
-s STRLEN 設置打印的字符串最大長度。
-S 顯示系統調用。
-t, -tt, -ttt 打印絕對時間戳。
-T 輸出每個調用過程的時間開銷。
-u USERNAME 使用某個用戶id或組ID來運行命令。
-V, –version 打印版本信息,然后退出。
-x NAME treat the global NAME like a library subroutine.
36、ldd
ldd命令用于打印程序或者庫文件所依賴的共享庫列表。
語法
ldd(選項)(參數)
選項
–version:打印指令版本號;
-v:詳細信息模式,打印所有相關信息;
-u:打印未使用的直接依賴;
-d:執行重定位和報告任何丟失的對象;
-r:執行數據對象和函數的重定位,并且報告任何丟失的對象和函數;
–help:顯示幫助信息。
參數
文件:指定可執行程序或者文庫。
其他介紹
首先ldd不是一個可執行程序,而只是一個shell腳本
37、mv
mv命令用來對文件或目錄重新命名,或者將文件從一個目錄移到另一個目錄中。source表示源文件或目錄,target表示目標文件或目錄。如果將一個文件移到一個已經存在的目標文件中,則目標文件的內容將被覆蓋。
mv命令可以用來將源文件移至一個目標文件中,或將一組文件移至一個目標目錄中。源文件被移至目標文件有兩種不同的結果:
如果目標文件是到某一目錄文件的路徑,源文件會被移到此目錄下,且文件名不變。
如果目標文件不是目錄文件,則源文件名(只能有一個)會變為此目標文件名,并覆蓋己存在的同名文件。如果源文件和目標文件在同一個目錄下,mv的作用就是改文件名。當目標文件是目錄文件時,源文件或目錄參數可以有多個,則所有的源文件都會被移至目標文件中。所有移到該目錄下的文件都將保留以前的文件名。
注意事項:mv與cp的結果不同,mv好像文件“搬家”,文件個數并未增加。而cp對文件進行復制,文件個數增加了。
語法
mv(選項)(參數)
選項
–backup=<備份模式>:若需覆蓋文件,則覆蓋前先行備份;
-b:當文件存在時,覆蓋前,為其創建一個備份;
-f:若目標文件或目錄與現有的文件或目錄重復,則直接覆蓋現有的文件或目錄;
-i:交互式操作,覆蓋前先行詢問用戶,如果源文件與目標文件或目標目錄中的文件同名,則詢問用戶是否覆蓋目標文件。用戶輸入”y”,表示將覆蓋目標文件;輸入”n”,表示取消對源文件的移動。這樣可以避免誤將文件覆蓋。
–strip-trailing-slashes:刪除源文件中的斜杠“/”;
-S<后綴>:為備份文件指定后綴,而不使用默認的后綴;
–target-directory=<目錄>:指定源文件要移動到目標目錄;
-u:當源文件比目標文件新或者目標文件不存在時,才執行移動操作。
參數
源文件:源文件列表。
目標文件:如果“目標文件”是文件名則在移動文件的同時,將其改名為“目標文件”;如果“目標文件”是目錄名則將源文件移動到“目標文件”下。
38、mkdir
mkdir命令用來創建目錄。該命令創建由dirname命名的目錄。如果在目錄名的前面沒有加任何路徑名,則在當前目錄下創建由dirname指定的目錄;如果給出了一個已經存在的路徑,將會在該目錄下創建一個指定的目錄。在創建目錄時,應保證新建的目錄與它所在目錄下的文件沒有重名。
注意:在創建文件時,不要把所有的文件都存放在主目錄中,可以創建子目錄,通過它們來更有效地組織文件。最好采用前后一致的命名方式來區分文件和目錄。例如,目錄名可以以大寫字母開頭,這樣,在目錄列表中目錄名就出現在前面。
在一個子目錄中應包含類型相似或用途相近的文件。例如,應建立一個子目錄,它包含所有的數據庫文件,另有一個子目錄應包含電子表格文件,還有一個子目錄應包含文字處理文檔,等等。目錄也是文件,它們和普通文件一樣遵循相同的命名規則,并且利用全路徑可以唯一地指定一個目錄。
語法
mkdir (選項)(參數)
選項
-Z:設置安全上下文,當使用SELinux時有效;
-m<目標屬性>或–mode<目標屬性>建立目錄的同時設置目錄的權限;
-p或–parents 若所要建立目錄的上層目錄目前尚未建立,則會一并建立上層目錄;
–version 顯示版本信息。
參數
目錄:指定要創建的目錄列表,多個目錄之間用空格隔開。
39、man
man命令是Linux下的幫助指令,通過man指令可以查看Linux中的指令幫助、配置文件幫助和編程幫助等信息。
語法
man(選項)(參數)
選項
-a:在所有的man幫助手冊中搜索;
-f:等價于whatis指令,顯示給定關鍵字的簡短描述信息;
-P:指定內容時使用分頁程序;
-M:指定man手冊搜索的路徑。
參數
數字:指定從哪本man手冊中搜索幫助;
關鍵字:指定要搜索幫助的關鍵字。
40、nano
nano是一個字符終端的文本編輯器,有點像DOS下的editor程序。它比vi/vim要簡單得多,比較適合Linux初學者使用。某些Linux發行版的默認編輯器就是nano。
nano命令可以打開指定文件進行編輯,默認情況下它會自動斷行,即在一行中輸入過長的內容時自動拆分成幾行,但用這種方式來處理某些文件可能會帶來問題,比如Linux系統的配置文件,自動斷行就會使本來只能寫在一行上的內容折斷成多行了,有可能造成系統不靈了。因此,如果你想避免這種情況出現,就加上-w選項吧。
語法
nano [選項] [[+行,列] 文件名]…
選項
-h, -????????? –help????????????????? 顯示此信息
+行,列???????????????????????????????? 從所指列數與行數開始
-A???????????? –smarthome???????????? 啟用智能 HOME 鍵
-B???????????? –backup??????????????? 儲存既有文件的備份
-C <目錄>????? –backupdir=<目錄>????? 用以儲存獨一備份文件的目錄
-D???????????? –boldtext????????????? 用粗體替代顏色反轉
-E???????????? –tabstospaces????????? 將已輸入的制表符轉換為空白
-F???????????? –multibuffer?????????? 啟用多重文件緩沖區功能
-H???????????? –historylog??????????? 記錄與讀取搜索/替換的歷史字符串
-I???????????? –ignorercfiles???????? 不要參考nanorc 文件
-K???????????? –rebindkeypad????????? 修正數字鍵區按鍵混淆問題
-L???????????? –nonewlines??????????? 不要將換行加到文件末端
-N???????????? –noconvert???????????? 不要從 DOS/Mac 格式轉換
-O???????????? –morespace???????????? 編輯時多使用一行
-Q <字符串>??? –quotestr=<字符串>???? 引用代表字符串
-R???????????? –restricted??????????? 限制模式
-S???????????? –smooth??????????????? 按行滾動而不是半屏
-T <#列數>???? –tabsize=<#列數>?????? 設定制表符寬度為 #列數
-U???????????? –quickblank??????????? 狀態行快速閃動
-V???????????? –version?????????????? 顯示版本資訊并離開
-W???????????? –wordbounds??????????? 更正確地偵測單字邊界
-Y <字符串>??? –syntax=<字符串>?????? 用于加亮的語法定義
-c???????????? –const???????????????? 持續顯示游標位置
-d???????????? –rebinddelete????????? 修正退格鍵/刪除鍵混淆問題
-i???????????? –autoindent? ??????????自動縮進新行
-k???????????? –cut?????????????????? 從游標剪切至行尾
-l???????????? –nofollow????????????? 不要依照符號連結,而是覆蓋
-m???????????? –mouse???????????????? 啟用鼠標功能
-o <目錄>????? –operatingdir=<目錄>?? 設定操作目錄
-p???????????? –preserve????????????? 保留XON (^Q) 和XOFF (^S) 按鍵
-q???????????? –quiet???????????????? 沉默忽略啟動問題, 比如rc 文件錯誤
-r <#列數>???? –fill=<#列數>????????? 設定折行寬度為 #列數
-s <程序>????? –speller=<程序>??????? 啟用替代的拼寫檢查程序
-t???????????? –tempfile????????????? 離開時自動儲存,不要提示
-u???????????? –undo????? ????????????允許通用撤銷[試驗性特性]
-v???????????? –view????????????????? 查看(只讀)模式
-w???????????? –nowrap??????????????? 不要自動換行
-x???????????? –nohelp??????????????? 不要顯示輔助區
-z???????????? –suspend?????????????? 啟用暫停功能
-$???????????? –softwrap???????????? ?啟用軟換行
-a, -b, -e,
-f, -g, -j???????????????????????????? (忽略,為與pico 相容)
用法
光標控制
移動光標:使用用方向鍵移動。
選擇文字:按住鼠標左鍵拖到。
復制、剪貼和粘貼
復制一整行:Alt+6
剪貼一整行:Ctrl+K
粘貼:Ctrl+U
如果需要復制/剪貼多行或者一行中的一部分,先將光標移動到需要復制/剪貼的文本的開頭,按Ctrl+6(或者Alt+A)做標記,然后移動光標到 待復制/剪貼的文本末尾。這時選定的文本會反白,用Alt+6來復制,Ctrl+K來剪貼。若在選擇文本過程中要取消,只需要再按一次Ctrl+6。
搜索
按Ctrl+W,然后輸入你要搜索的關鍵字,回車確定。這將會定位到第一個匹配的文本,接著可以用Alt+W來定位到下一個匹配的文本。
翻頁
Ctrl+Y到上一頁
Ctrl+V到下一頁
保存
使用Ctrl+O來保存所做的修改
退出
按Ctrl+X
如果你修改了文件,下面會詢問你是否需要保存修改。輸入Y確認保存,輸入N不保存,按Ctrl+C取消返回。如果輸入了Y,下一步會讓你輸入想要保存的文件名。如果不需要修改文件名直接回車就行;若想要保存成別的名字(也就是另存為)則輸入新名稱然后確 定。這個時候也可用Ctrl+C來取消返回。
41、ntpdate
ntpdate命令是用來設置本地日期和時間。它從指定的每個服務器獲得了一些樣本,并應用標準 NTP 時鐘過濾器和選擇算法來選擇最好的樣本。
此 ntpdate 命令使用以下方法進行時間調整:
如果它確定時鐘偏差超過 0.5 秒,它通過調用 settimeofday 子例程設置時鐘時間。在引導時間,這是一個首選的方法。
如 果它確定時鐘偏差小于 0.5 秒,它通過調用 adjtime 子例程和偏移量來調整時鐘時間。此方法傾向于用犧牲一些穩定性來保持漂移時鐘更加準確。 當不是通過運行一個守護程序而是從 cron 命令有規則的運行ntpdate 命令時,每一小時或兩小時執行一次可以保證足夠的走時精度,從而避免調整時鐘。
使用很多服務器可以大幅度改善 ntpdate 命令的可靠性與精度。盡管能使用單一服務器,但您能通過提供至少三個或四個服務器以獲得更好的性能。
如果一個類似 xntpd 守護程序的 NTP 服務器守護程序正在同一主機上運行,命令將拒絕ntpdate 設置日期。
你必須有 root 權限才能在主機上運行這個命令。
語法
ntpdate [ -b] [ -d] [ -s] [ -u] [ -aKeyid] [ -eAuthenticationDelay] [ -kKeyFile] [ -oVersion] [ -pSamples] [ -tTimeOut] Server…
選項
-aKeyid? 使用 Keyid 來認證全部數據包。
-b?? 通過調用 settimeofday 子例程來增加時鐘的時間。
-d?? 指定調試方式。判斷 ntpdate 命令會產生什么結果(不產生實際的結果)。結果再現在屏幕上。這個標志使用無特權的端口。
-eAuthenticationDelay 指定延遲認證處理的時間秒數。
-kKeyFile 當不使用缺省值 /etc/ntp.keys 文件時,為包含密鑰的文件指定一個不同的名稱。 請參閱文件KeyFile的描述。
-oVersion????? 當輪詢它的發出數據包時,指定使用的 NTP 版本實現。 Version 的值可以是 1,2,3。缺省值是 3。
-pSamples??? 指定從每個服務器獲取的樣本的數目。 Samples 的值在 1 和 8 之間,并包括 1 和 8。它的缺省值是 4。
-s??? 指定日志操作 syslog 設施的使用,而不是使用標準輸出。 當運行 ntpdate 命令和 cron命令時,它是很有用的。
-tTimeOut???? 指定等待響應的時間。給定 TimeOut 的值四舍五入為 0.2 秒的倍數。缺省值是 1 秒。
-u?? 指定使用無特權的端口發送數據包。 當在一個對特權端口的輸入流量進行阻攔的防火墻后是很有益的, 并希望在防火墻之外和主機同步。防火墻是一個系統或者計算機,它控制從外網對專用網的訪問。
42、poweroff
poweroff命令用來關閉計算機操作系統并且切斷系統電源。
語法
poweroff(選項)
選項
-n:關閉操作系統時不執行sync操作;
-w:不真正關閉操作系統,僅在日志文件“/var/log/wtmp”中;
-d:關閉操作系統時,不將操作寫入日志文件“/var/log/wtmp”中添加相應的記錄;
-f:強制關閉操作系統;
-i:關閉操作系統之前關閉所有的網絡接口;
-h:關閉操作系統之前將系統中所有的硬件設置為備用模式。
43、passwd
passwd命令用于設置用戶的認證信息,包括用戶密碼、密碼過期時間等。系統管理者則能用它管理系統用戶的密碼。只有管理者可以指定用戶名稱,一般用戶只能變更自己的密碼。
語法
passwd(選項)(參數)
選項
-d:刪除密碼,僅有系統管理者才能使用;
-f:強制執行;
-k:設置只有在密碼過期失效后,方能更新;
-l:鎖住密碼;
-s:列出密碼的相關信息,僅有系統管理者才能使用;
-u:解開已上鎖的帳號。
參數
用戶名:需要設置密碼的用戶名。
知識擴展
與用戶、組賬戶信息相關的文件
存放用戶信息:
/etc/passwd
/etc/shadow
存放組信息:
/etc/group
/etc/gshadow
用戶信息文件分析(每項用:隔開)
例如:jack:X:503:504:::/home/jack/:/bin/bash
jack //用戶名
X //口令、密碼
503 //用戶id(0代表root、普通新建用戶從500開始)
504 //所在組
: //描述
/home/jack/ //用戶主目錄
/bin/bash //用戶缺省Shell
組信息文件分析
例如:jack:$!$:???:13801:0:99999:7:*:*:
jack //組名
$!$ //被加密的口令
13801 //創建日期與今天相隔的天數
0 //口令最短位數
99999 //用戶口令
7 //到7天時提醒
* //禁用天數
* //過期天數
44、pwd
pwd命令以絕對路徑的方式顯示用戶當前工作目錄。命令將當前目錄的全路徑名稱(從根目錄)寫入標準輸出。全部目錄使用/分隔。第一個/表示根目錄,最后一個目錄是當前目錄。執行pwd命令可立刻得知您目前所在的工作目錄的絕對路徑名稱。
語法
pwd(選項)
選項
–help:顯示幫助信息;
–version:顯示版本信息。
45、rename
rename命令用字符串替換的方式批量改變文件名。
語法
rename(參數)
參數
原字符串:將文件名需要替換的字符串;
目標字符串:將文件名中含有的原字符替換成目標字符串;
文件:指定要改變文件名的文件列表。
46、rm
rm命令可以刪除一個目錄中的一個或多個文件或目錄,也可以將某個目錄及其下屬的所有文件及其子目錄均刪除掉。對于鏈接文件,只是刪除整個鏈接文件,而原有文件保持不變。
注意:使用rm命令要格外小心。因為一旦刪除了一個文件,就無法再恢復它。所以,在刪除文件之前,最好再看一下文件的內容,確定是否真要刪除。rm命令可以用-i選項,這個選項在使用文件擴展名字符刪除多個文件時特別有用。使用這個選項,系統會要求你逐一確定是否要刪除。這時,必須輸入y并按Enter鍵,才能刪除文件。如果僅按Enter鍵或其他字符,文件不會被刪除。
語法
rm (選項)(參數)
選項
-d:直接把欲刪除的目錄的硬連接數據刪除成0,刪除該目錄;
-f:強制刪除文件或目錄;
-i:刪除已有文件或目錄之前先詢問用戶;
-r或-R:遞歸處理,將指定目錄下的所有文件與子目錄一并處理;
–preserve-root:不對根目錄進行遞歸操作;
-v:顯示指令的詳細執行過程。
參數
文件:指定被刪除的文件列表,如果參數中含有目錄,則必須加上-r或者-R選項。
47、rmdir
rmdir命令用來刪除空目錄。當目錄不再被使用時,或者磁盤空間已到達使用限定值,就需要刪除失去使用價值的目錄。利用rmdir命令可以從一個目錄中刪除一個或多個空的子目錄。該命令從一個目錄中刪除一個或多個子目錄,其中dirname佬表示目錄名。如果dirname中沒有指定路徑,則刪除當前目錄下由dirname指定的目錄;如dirname中包含路徑,則刪除指定位置的目錄。刪除目錄時,必須具有對其父目錄的寫權限。
注意:子目錄被刪除之前應該是空目錄。就是說,該目錄中的所有文件必須用rm命令全部,另外,當前工作目錄必須在被刪除目錄之上,不能是被刪除目錄本身,也不能是被刪除目錄的子目錄。
雖然還可以用帶有-r選項的rm命令遞歸刪除一個目錄中的所有文件和該目錄本身,但是這樣做存在很大的危險性。
語法
rmdir(選項)(參數)
選項
-p或–parents:刪除指定目錄后,若該目錄的上層目錄已變成空目錄,則將其一并刪除;
–ignore-fail-on-non-empty:此選項使rmdir命令忽略由于刪除非空目錄時導致的錯誤信息;
-v或-verboes:顯示命令的詳細執行過程;
–help:顯示命令的幫助信息;
–version:顯示命令的版本信息。
參數
目錄列表:要刪除的空目錄列表。當刪除多個空目錄時,目錄名之間使用空格隔開。
48、runlevel
runlevel命令用于打印當前Linux系統的運行等級。
語法
runlevel
知識擴展
linux操作系統自從開始啟動至啟動完畢需要經歷幾個不同的階段,這幾個階段就叫做runlevel,同樣,當linux操作系統關閉時也要經歷另外幾個不同的runlevel,下面我們就準備詳細介紹一下runlevel,并向您展示一些小技巧來讓您的linux系統避免不必要的重啟動。
runlevel可以認為是系統狀態,形象一點,您可以認為runlevel有點象微軟的windows操作系統中的Normal,safemode,和command prompt only。進入每個runlevel都需要啟動或關閉相應的一系列服務(services),這些服務(services)以初始化腳本的方式放置于目錄/etc/rc.d/rc?.d/或者/etc/rc?.d下面(?代表runlevel的對應序號)。
在大多數的linux發行版本中,通常有8個runlevel:
0 停機
1 單用戶模式
2 多用戶,沒有 NFS
3 完全多用戶模式
4 沒有用到
5 圖形界面
6 重新啟動
S s Single user mode
多數的桌面的linux系統缺省的runlevel是5,用戶登陸時是圖形界面,而多數的服務器版本的linux系統缺省的runlevel是3,用戶登陸時是字符界面,runlevel 1和2除了調試之外很少使用,runlevel s和S并不是直接給用戶使用,而是用來為Single user mode作準備。
linux的運行模式比起windows的啟動模式的優勢在于:你可以在系統空閑時使用init命令切換你現在使用的runlevel,另外,當你關閉或者啟動linux系統時你已經不知不覺中切換你的runlevel,系統關機進程需要調用runlevel(0或6)來關閉所有正在運行中的進程。
49、reboot
reboot命令用來重新啟動正在運行的Linux操作系統。
語法
reboot(選項)
選項
-d:重新開機時不把數據寫入記錄文件/var/tmp/wtmp。本參數具有“-n”參數效果;
-f:強制重新開機,不調用shutdown指令的功能;
-i:在重開機之前,先關閉所有網絡界面;
-n:重開機之前不檢查是否有未結束的程序;
-w:僅做測試,并不真正將系統重新開機,只會把重開機的數據寫入/var/log目錄下的wtmp記錄文件。
50、touch
touch命令有兩個功能:一是用于把已存在文件的時間標簽更新為系統當前的時間(默認方式),它們的數據將原封不動地保留下來;二是用來創建新的空文件。
語法
touch(選項)(參數)
選項
-a:或–time=atime或–time=access或–time=use? 只更改存取時間;
-c:或–no-create? 不建立任何文件;
-d:<時間日期> 使用指定的日期時間,而非現在的時間;
-f:此參數將忽略不予處理,僅負責解決BSD版本touch指令的兼容性問題;
-m:或–time=mtime或–time=modify? 只更該變動時間;
-r:<參考文件或目錄>? 把指定文件或目錄的日期時間,統統設成和參考文件或目錄的日期時間相同;
-t:<日期時間>? 使用指定的日期時間,而非現在的時間;
–help:在線幫助;
–version:顯示版本信息。
參數
文件:指定要設置時間屬性的文件列表。
51、tty
用來查看當前終端設備
52、type
type命令用來顯示指定命令的類型,判斷給出的指令是內部指令還是外部指令。
命令類型:
alias:別名。
keyword:關鍵字,Shell保留字。
function:函數,Shell函數。
builtin:內建命令,Shell內建命令。
file:文件,磁盤文件,外部命令。
unfound:沒有找到。
語法
type(選項)(參數)
選項
-t:輸出“file”、“alias”或者“builtin”,分別表示給定的指令為“外部指令”、“命令別名”或者“內部指令”;
-p:如果給出的指令為外部指令,則顯示其絕對路徑;
-a:在環境變量“PATH”指定的路徑中,顯示給定指令的信息,包括命令別名。
參數
指令:要顯示類型的指令。
53、tree
tree命令以樹狀圖列出目錄的內容。
語法
tree(選項)(參數)
選項
-a:顯示所有文件和目錄;
-A:使用ASNI繪圖字符顯示樹狀圖而非以ASCII字符組合;
-C:在文件和目錄清單加上色彩,便于區分各種類型;
-d:先是目錄名稱而非內容;
-D:列出文件或目錄的更改時間;
-f:在每個文件或目錄之前,顯示完整的相對路徑名稱;
-F:在執行文件,目錄,Socket,符號連接,管道名稱名稱,各自加上”*”,”/”,”@”,”|”號;
-g:列出文件或目錄的所屬群組名稱,沒有對應的名稱時,則顯示群組識別碼;
-i:不以階梯狀列出文件和目錄名稱;
-l:<范本樣式> 不顯示符號范本樣式的文件或目錄名稱;
-l:如遇到性質為符號連接的目錄,直接列出該連接所指向的原始目錄;
-n:不在文件和目錄清單加上色彩;
-N:直接列出文件和目錄名稱,包括控制字符;
-p:列出權限標示;
-P:<范本樣式> 只顯示符合范本樣式的文件和目錄名稱;
-q:用“?”號取代控制字符,列出文件和目錄名稱;
-s:列出文件和目錄大??;
-t:用文件和目錄的更改時間排序;
-u:列出文件或目錄的擁有者名稱,沒有對應的名稱時,則顯示用戶識別碼;
-x:將范圍局限在現行的文件系統中,若指定目錄下的某些子目錄,其存放于另一個文件系統上,則將該目錄予以排除在尋找范圍外。
參數
目錄:執行tree指令,它會列出指定目錄下的所有文件,包括子目錄里的文件。
54、stat
stat命令用于顯示文件的狀態信息。stat命令的輸出信息比ls命令的輸出信息要更詳細。
語法
stat(選項)(參數)
選項
-L:支持符號連接;
-f:顯示文件系統狀態而非文件狀態;
-t:以簡潔方式輸出信息;
–help:顯示指令的幫助信息;
–version:顯示指令的版本信息。
參數
文件:指定要顯示信息的普通文件或者文件系統對應的設備文件名。
55、shred
shred是一條終端命令,功能是重復覆蓋文件,使得即使是昂貴的硬件探測儀器也難以將數據復原,(參見”shred –help”)。這條命令的功能足夠適合實現文件粉碎的功效。
shred –help
用法:shred [選項]… 文件…
多次覆蓋文件,使得即使是昂貴的硬件探測儀器也難以將數據復原。
長選項必須使用的參數對于短選項時也是必需使用的。
-f, –force 必要時修改權限以使目標可寫
-n, –iterations=N 覆蓋N 次,而非使用默認的3 次
–random-source=文件 從指定文件中取出隨機字節
-s, –size=N 粉碎數據為指定字節的碎片(可使用K、M 和G 作為單位)
-u, –remove 覆蓋后截斷并刪除文件
-v, –verbose 顯示詳細信息
-x, –exact 不將文件大小增加至最接近的塊大小
-z, –zero 最后一次使用0 進行覆蓋以隱藏覆蓋動作
–help 顯示此幫助信息并退出
–version 顯示版本信息并退出
如果指定文件為”-“,粉碎標準輸出的數據。
如果加上–remove (-u)選項表示刪除文件。默認的方式是不刪除文件,因為
覆蓋像/dev/hda 等的設備文件是很普遍的,而這些文件通常不應刪除。當覆蓋
一般文件時,絕大多數人都會使用–remove 選項。
警告:請注意使用shred 時有一個很重要的條件:
文件系統會在原來的位置覆蓋指定的數據。傳統的文件系統符合此條件,但許多現代
的文件系統都不符合條件。以下是會令shred 無效或不擔保一定有效的文件系統的
例子:
* 有紀錄結構或是日志式文件系統,如AIX 及Solaris 使用的文件系統 (以及
JFS、ReiserFS、XFS、Ext3 等)
* 會重復寫入數據,及即使一部份寫入動作失敗后仍可繼續的文件系統,如使用
RAID 的文件系統
* 會不時進行快照記錄的文件系統,像Network Applicance 的NFS 服務器
* 文件系統是存放于緩存位置,比如NFS 第三版用戶端
* 壓縮文件系統
在Ext3 文件系統中,以上免責聲明僅適用于啟用了data=journal 模式的情況,
此時文件日志記錄了附加的元數據 shred 的作用將受到影響。在data=ordered(默認)
或data=writeback 模式下shred 仍然有效。
Ext3 日志模式可通過向/etc/fstab 的掛載選項中添加data=something 進行設置,
您可以查看mount 的man 頁面以獲得詳細信息。
另外,文件系統備份和遠程鏡像可能會
包含不能被刪除的文件副本,這將會
允許碎片文件被恢復。
使用方法舉例如下:
粉碎一個名為test.txt的文件命令是:
$shred test.txt
粉碎多個文件的命令是:
$shred test1.txt test2.txt
這兩條命令的效果是文件依舊存在,但不再是原來的文件了,對比測試可以通過先編輯一個文本文件后保存,然后使用shred命令覆蓋此文件,再打開該文本文件即可看出內容不再是原有內容了。如果想要覆蓋的同時刪除文件(這才是粉碎的表現么),加上參數 -u,命令變為:
$shred –u test.txt
覆蓋一個掛載分區的文件命令是:
$shred /dev/hda0??????? //覆蓋IDE接口的第一個磁盤設備的第一分區
$shred /dev/sda2??????? //覆蓋SCSI或SATA接口的第一個磁盤設備的第三分區
在終端下使用shred命令來進行文件粉碎操作實在不方便,得益于Nautilus的可擴展性,我們可以給Ubuntu的Nautilus添加右鍵菜單來執行shred操作:
在終端下輸入命令安裝Nautilus-actions(中文名被漢化為“Nautilus動作配置”):
$sudo apt-get install nautilus-actions
然后單擊“系統” –> “首選項” –> “Nautilus動作配置” ->單擊“Define a new action”按鈕
然后在“添加新動作”窗口中輸入以下信息:
Context Label: Shred粉碎???????????????????????????? //你可以隨便想一個名字,這里是顯示在右鍵菜單的名字
Tool tip: Shred粉碎機??????????? ?????????//一樣可以隨便想一個描述,這是停留在右鍵菜單的提示
Icon: gtk-dialog-warning?????????????????? //可以單擊Browse或者下拉菜單中選擇一個圖標
路徑: shred
參數: -f -u -v -z %M
然后單擊“Record all the modified”標簽卡,如果只需要這個粉碎右鍵菜單出現在僅處理文件的時候,那么就單擊“僅文件”單選框,同理如果需要出現在僅處理文件夾的時候就單擊“僅文件夾”單選框,如果需要文件和文件夾上右鍵都能出現該粉碎菜單,那么單擊“Both”單選框。另外勾選“Appears if selection has multiple files or folders”復選框
在單擊“確定”按鈕之后返回“Nautilus動作”窗口,單擊“關閉”按鈕之后再在終端中輸入命令:
$nautilus –q???? //關閉Nautilus進程
$nautilus???????? //啟動Nautilus進程
這時候再進入主文件夾對一個文件右擊,菜單中將出現“Shred粉碎”
56、startx
startx命令用來啟動X Window,實際上啟動X Window的程序為xinit。
語法
startx(參數)
參數
客戶端及選項:X客戶端及選項;
服務器及選項:X服務器及選項。
57、source
source命令也稱為“點命令”,也就是一個點符號(.)。source命令通常用于重新執行剛修改的初始化文件,使之立即生效,而不必注銷并重新登錄。
58、shutdown
shutdown命令用來系統關機命令。shutdown指令可以關閉所有程序,并依用戶的需要,進行重新開機或關機的動作。
語法
shutdown(選項)(參數)
選項
-c:當執行“shutdown -h 11:50”指令時,只要按+鍵就可以中斷關機的指令;
-f:重新啟動時不執行fsck;
-F:重新啟動時執行fsck;
-h:將系統關機;
-k:只是送出信息給所有用戶,但不會實際關機;
-n:不調用init程序進行關機,而由shutdown自己進行;
-r:shutdown之后重新啟動;
-t<秒數>:送出警告信息和刪除信息之間要延遲多少秒。
參數
[時間]:設置多久時間后執行shutdown指令;
[警告信息]:要傳送給所有登入用戶的信息。
59、strace
strace命令是一個集診斷、調試、統計與一體的工具,我們可以使用strace對應用的系統調用和信號傳遞的跟蹤結果來對應用進行分析,以達到解決問題或者是了解應用工作過程的目的。當然strace與專業的調試工具比如說gdb之類的是沒法相比的,因為它不是一個專業的調試器。
strace的最簡單的用法就是執行一個指定的命令,在指定的命令結束之后它也就退出了。在命令執行的過程中,strace會記錄和解析命令進程的所有系統調用以及這個進程所接收到的所有的信號值。
語法
strace? [? -dffhiqrtttTvxx? ] [ -acolumn ] [ -eexpr ] …
[ -ofile ] [-ppid ] …? [ -sstrsize ] [ -uusername ]
[ -Evar=val ] …? [ -Evar? ]…
[ command [ arg …? ] ]
strace? -c? [ -eexpr ] …? [ -Ooverhead ] [ -Ssortby ]
[ command [ arg…? ] ]
選項
-c 統計每一系統調用的所執行的時間,次數和出錯的次數等.
-d 輸出strace關于標準錯誤的調試信息.
-f 跟蹤由fork調用所產生的子進程.
-ff 如果提供-o filename,則所有進程的跟蹤結果輸出到相應的filename.pid中,pid是各進程的進程號.
-F 嘗試跟蹤vfork調用.在-f時,vfork不被跟蹤.
-h 輸出簡要的幫助信息.
-i 輸出系統調用的入口指針.
-q 禁止輸出關于脫離的消息.
-r 打印出相對時間關于,,每一個系統調用.
-t 在輸出中的每一行前加上時間信息.
-tt 在輸出中的每一行前加上時間信息,微秒級.
-ttt 微秒級輸出,以秒了表示時間.
-T 顯示每一調用所耗的時間.
-v 輸出所有的系統調用.一些調用關于環境變量,狀態,輸入輸出等調用由于使用頻繁,默認不輸出.
-V 輸出strace的版本信息.
-x 以十六進制形式輸出非標準字符串
-xx 所有字符串以十六進制形式輸出.
-a column 設置返回值的輸出位置.默認 為40.
-e expr 指定一個表達式,用來控制如何跟蹤.格式:[qualifier=][!]value1[,value2]…
qualifier只能是 trace,abbrev,verbose,raw,signal,read,write其中之一.value是用來限定的符號或數字.默認的 qualifier是 trace.感嘆號是否定符號.例如:-eopen等價于 -e trace=open,表示只跟蹤open調用.而-etrace!=open 表示跟蹤除了open以外的其他調用.有兩個特殊的符號 all 和 none. 注意有些shell使用!來執行歷史記錄里的命令,所以要使用\\.
-e trace=set 只跟蹤指定的系統 調用.例如:-e trace=open,close,rean,write表示只跟蹤這四個系統調用.默認的為set=all.
-e trace=file 只跟蹤有關文件操作的系統調用.
-e trace=process 只跟蹤有關進程控制的系統調用.
-e trace=network 跟蹤與網絡有關的所有系統調用.
-e strace=signal 跟蹤所有與系統信號有關的 系統調用
-e trace=ipc 跟蹤所有與進程通訊有關的系統調用
-e abbrev=set 設定strace輸出的系統調用的結果集.-v 等與 abbrev=none.默認為abbrev=all.
-e raw=set 將指定的系統調用的參數以十六進制顯示.
-e signal=set 指定跟蹤的系統信號.默認為all.如 signal=!SIGIO(或者signal=!io),表示不跟蹤SIGIO信號.
-e read=set 輸出從指定文件中讀出 的數據.例如: -e read=3,5
-e write=set 輸出寫入到指定文件中的數據.
-o filename 將strace的輸出寫入文件filename
-p pid 跟蹤指定的進程pid.
-s strsize 指定輸出的字符串的最大長度.默認為32.文件名一直全部輸出.
-u username 以username的UID和GID執行被跟蹤的命令
60、screen
Screen是一款由GNU計劃開發的用于命令行終端切換的自由軟件。用戶可以通過該軟件同時連接多個本地或遠程的命令行會話,并在其間自由切換。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了統一的管理多個會話的界面和相應的功能。
會話恢復
只要Screen本身沒有終止,在其內部運行的會話都可以恢復。這一點對于遠程登錄的用戶特別有用——即使網絡連接中斷,用戶也不會失去對已經打開的命令行會話的控制。只要再次登錄到主機上執行screen -r就可以恢復會話的運行。同樣在暫時離開的時候,也可以執行分離命令detach,在保證里面的程序正常運行的情況下讓Screen掛起(切換到后臺)。這一點和圖形界面下的VNC很相似。
多窗口
在Screen環境下,所有的會話都獨立的運行,并擁有各自的編號、輸入、輸出和窗口緩存。用戶可以通過快捷鍵在不同的窗口下切換,并可以自由的重定向各個窗口的輸入和輸出。Screen實現了基本的文本操作,如復制粘貼等;還提供了類似滾動條的功能,可以查看窗口狀況的歷史記錄。窗口還可以被分區和命名,還可以監視后臺窗口的活動。 會話共享 Screen可以讓一個或多個用戶從不同終端多次登錄一個會話,并共享會話的所有特性(比如可以看到完全相同的輸出)。它同時提供了窗口訪問權限的機制,可以對窗口進行密碼保護。
GNU’s Screen 官方站點:http://www.gnu.org/software/screen/
語法
# screen [-AmRvx -ls -wipe][-d <作業名稱>][-h <行數>][-r <作業名稱>][-s ][-S <作業名稱>]
選項
-A 將所有的視窗都調整為目前終端機的大小。
-d <作業名稱> 將指定的screen作業離線。
-h <行數> 指定視窗的緩沖區行數。
-m 即使目前已在作業中的screen作業,仍強制建立新的screen作業。
-r <作業名稱> 恢復離線的screen作業。
-R 先試圖恢復離線的作業。若找不到離線的作業,即建立新的screen作業。
-s 指定建立新視窗時,所要執行的shell。
-S <作業名稱> 指定screen作業的名稱。
-v 顯示版本信息。
-x 恢復之前離線的screen作業。
-ls或–list 顯示目前所有的screen作業。
-wipe 檢查目前所有的screen作業,并刪除已經無法使用的screen作業。
常用screen參數
screen -S yourname -> 新建一個叫yourname的session
screen -ls -> 列出當前所有的session
screen -r yourname -> 回到yourname這個session
screen -d yourname -> 遠程detach某個session
screen -d -r yourname -> 結束當前session并回到yourname這個session
在每個screen session 下,所有命令都以 ctrl+a(C-a) 開始。
C-a ? -> 顯示所有鍵綁定信息
C-a c -> 創建一個新的運行shell的窗口并切換到該窗口
C-a n -> Next,切換到下一個 window
C-a p -> Previous,切換到前一個 window
C-a 0..9 -> 切換到第 0..9 個 window
Ctrl+a [Space] -> 由視窗0循序切換到視窗9
C-a C-a -> 在兩個最近使用的 window 間切換
C-a x -> 鎖住當前的 window,需用用戶密碼解鎖
C-a d -> detach,暫時離開當前session,將目前的 screen session (可能含有多個 windows) 丟到后臺執行,并會回到還沒進 screen 時的狀態,此時在 screen session 里,每個 window 內運行的 process (無論是前臺/后臺)都在繼續執行,即使 logout 也不影響。
C-a z -> 把當前session放到后臺執行,用 shell 的 fg 命令則可回去。
C-a w -> 顯示所有窗口列表
C-a t -> time,顯示當前時間,和系統的 load
C-a k -> kill window,強行關閉當前的 window
C-a [ -> 進入 copy mode,在 copy mode 下可以回滾、搜索、復制就像用使用 vi 一樣
C-b Backward,PageUp
C-f Forward,PageDown
H(大寫) High,將光標移至左上角
L Low,將光標移至左下角
0 移到行首
$ 行末
w forward one word,以字為單位往前移
b backward one word,以字為單位往后移
Space 第一次按為標記區起點,第二次按為終點
Esc 結束 copy mode
C-a ] -> paste,把剛剛在 copy mode 選定的內容貼上
61、uname
uname命令用于打印當前系統相關信息(內核版本號、硬件架構、主機名稱和操作系統類型等)。
語法
uname(選項)
選項
-a或–all:顯示全部的信息;
-m或–machine:顯示電腦類型;
-n或-nodename:顯示在網絡上的主機名稱;
-r或–release:顯示操作系統的發行編號;
-s或–sysname:顯示操作系統名稱;
-v:顯示操作系統的版本;
-p或–processor:輸出處理器類型或”unknown”;
-i或–hardware-platform:輸出硬件平臺或”unknown”;
-o或–operating-system:輸出操作系統名稱;
–help:顯示幫助;
–version:顯示版本信息。
62、w
w命令用于顯示已經登陸系統的用戶列表,并顯示用戶正在執行的指令。執行這個命令可得知目前登入系統的用戶有那些人,以及他們正在執行的程序。單獨執行w命令會顯示所有的用戶,您也可指定用戶名稱,僅顯示某位用戶的相關信息。
語法
w(選項)(參數)
選項
-h:不打印頭信息;
-u:當顯示當前進程和cpu時間時忽略用戶名;
-s:使用短輸出格式;
-f:顯示用戶從哪登錄;
-V:顯示版本信息。
參數
用戶:僅顯示指定用戶。
63、wall
wall命令用于向系統當前所有打開的終端上輸出信息。通過wall命令可將信息發送給每位同意接收公眾信息的終端機用戶,若不給予其信息內容,則wall命令會從標準輸入設備讀取數據,然后再把所得到的數據傳送給所有終端機用戶。
語法
wall(參數)
參數
消息:指定廣播消息。
64、whatis
whatis命令是用于查詢一個命令執行什么功能,并將查詢結果打印到終端上。
whatis命令在用catman -w命令創建的數據庫中查找command參數指定的命令、系統調用、庫函數或特殊文件名。whatis命令顯示手冊部分的頁眉行。然后可以發出man命令以獲取附加的信息。whatis命令等同于使用man -f命令。
65、whereis
whereis命令用來定位指令的二進制程序、源代碼文件和man手冊頁等相關文件的路徑。
whereis命令只能用于程序名的搜索,而且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。如果省略參數,則返回所有信息。
和find相比,whereis查找的速度非???,這是因為linux系統會將 系統內的所有文件都記錄在一個數據庫文件中,當使用whereis和下面即將介紹的locate時,會從數據庫中查找數據,而不是像find命令那樣,通 過遍歷硬盤來查找,效率自然會很高。 但是該數據庫文件并不是實時更新,默認情況下時一星期更新一次,因此,我們在用whereis和locate 查找文件時,有時會找到已經被刪除的數據,或者剛剛建立文件,卻無法查找到,原因就是因為數據庫文件沒有被更新。
語法
whereis(選項)(參數)
選項
-b:只查找二進制文件;
-B<目錄>:只在設置的目錄下查找二進制文件;
-f:不顯示文件名前的路徑名稱;
-m:只查找說明文件;
-M<目錄>:只在設置的目錄下查找說明文件;
-s:只查找原始代碼文件;
-S<目錄>只在設置的目錄下查找原始代碼文件;
-u:查找不包含指定類型的文件。
參數
指令名:要查找的二進制程序、源文件和man手冊頁的指令名。
66、which
which命令用于查找并顯示給定命令的絕對路徑,環境變量PATH中保存了查找命令時需要遍歷的目錄。which指令會在環境變量$PATH設置的目錄里查找符合條件的文件。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。
語法
which(選項)(參數)
選項
-n<文件名長度>:制定文件名長度,指定的長度必須大于或等于所有文件中最長的文件名;
-p<文件名長度>:與-n參數相同,但此處的<文件名長度>包含了文件的路徑;
-w:指定輸出時欄位的寬度;
-V:顯示版本信息。
參數
指令名:指令名列表。
67、whoami
whoami命令用于打印當前有效的用戶名稱,相當于執行id -un命令。
語法
whoami(選項)
選項
–help:在線幫助;
–version:顯示版本信息。
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/94439