linux 常用命令

linux常用命令練習

1.1 登錄和退出

Linux 啓動後,給出login 命令,等待用戶登錄。
Login: <輸入用戶名>
Password: <輸入密碼>
如果是正確的用戶名和密碼,那麼你就會進入Linux 的外殼, 外殼給出命令提示符,等待你輸入命令(不要隨意以r o o t身份登錄,以避免對系統造成意外的破壞)
使用l o g o u t命令或exit命令退出外殼。


1.2 Linux 系統的外殼
    外殼是一種命令解釋器,它提供了用戶和操作系統之間的交互接口。外殼是面向命令行的, 而X Window 則是圖形界面。你在命令行輸入命令,外殼進行解釋,然後送往操作系統執行。
    外殼可以執行Linux 的系統內部命令,也可以執行應用程序。你還可以利用外殼編程,執行復雜的命令程序。
    Linux 提供幾種外殼程序以供選擇。常用的有Bourne 外殼( b s h )、C外殼( c s h )和Korn 外殼( k s h )。各個外殼都能提供基本的功能,又有其各自的特點。
    Bourne 外殼是由Steven Bourne 編寫的,是UNIX 的缺省外殼。Bourne 外殼的外殼編程能力很強。但它不能處理命令的用戶交互特徵。bash 是Bourne 外殼的增強版。
    C外殼是由加利福尼亞大學伯克利分校的Bill Joy編寫的。它能提供Bourne 外殼所不能處理的用戶交互特徵,如命令補全、命令別名、歷史命令替換等。很多人認爲, C 外殼的編程能力不如Bourne 外殼,但它的語法和C語言類似,所以C程序員將發現C 外殼很順手。tcsh 是C外殼的增強版本和C外殼完全兼容。
    K o r n外殼是由Dave Korn 編寫的。Korn 外殼融合了C 外殼和Bourne 外殼的優點,並和Bourne外殼完全兼容。Korn 外殼的效率很高,其命令交互界面和編程交互界面都很不錯。
Public Domain Korn 外殼( p d k s h )是Korn 外殼的增強版。


    bash 是大多數L i n u x系統的缺省外殼。它克服了Bourne 外殼的缺點,又和Bourne 外殼完全兼容。B a s h有以下的特點:
補全命令行。當你在bash 命令提示符下輸入命令或程序名時,你不必輸全命令或程序名,按Tab 鍵,b a s h將自動補全命令或程序名。
通配符。在b a s h下可以使用通配符* 和?。*可以替代多個字符,而?則替代一個字符。
歷史命令。bash 能自動跟蹤你每次輸入的命令,並把輸入的命令保存在歷史列表緩衝區。緩衝區的大小由HISTSIZE 變量控制。當你每次登錄後,home 目錄下的.bash_history 文件將初始化你的歷史列表緩衝區。你也能通過history 和fc 命令執行、編輯歷史命令。
別名。在b a s h下,可用alias 和unalias 命令給命令或可執行程序起別名和清除別名。這樣你可以用自己習慣的方式輸入命令。


輸入/輸出重定向。輸入重定向用於改變命令的輸入,輸出重定向用於改變命令的輸出。輸出重定向更爲常用,它經常用於將命令的結果輸入到文件中,而不是屏幕上。輸入重定向的命令是<,輸出重定向的命令是>。


管道。管道用於將一系列的命令連接起來。也就是把前面的命令的輸出作爲後面的命令的輸入。管道的命令是 | 。


提示符。bash 有兩級提示符。第一級提示符就是你登錄外殼時見到的,缺省爲$。你可以通過重新給p s 1變量賦值來改變第一級提示符。當b a s h需要進一步提示以便補全命令時,會顯示第二級提示符。第二級提示符缺省爲>,你可以通過重新給p s 2變量賦值來改變第二級提示符。一些特殊意義的字符也可以加入提示符賦值中。


作業控制。作業控制是指在一個作業執行過程中,控制執行的狀態。你可以掛起一個正在執行的進程,並在以後恢復該進程的執行。按下Ctrl+Z 掛起正在執行的進程,用b g命令使進程恢復在後臺執行,用f g命令使進程恢復在前臺執行。


1.3 外殼的常用命令

下面簡單介紹外殼下的常用命令。
    1.3.1 更改帳號密碼
語法: p a s s w d
Old password: <輸入舊密碼>
New password: <輸入新密碼(最好爲6~8字,英文字母與數字混合) >
Retype new password: <再輸入一次密碼>


    1.3.2 聯機幫助
語法: man 命令
例如:
man ls


    1.3.3 遠程登錄

語法:rlogin 主機名[-1 用戶名]
例如:
rlogin doc 遠程登錄到工作站doc 中。
rlogin doc -l user 使用user 帳號登錄到工作站doc 中。
語法:telnet 主機名或telnet IP地址
例如:
telnet doc
telnet 140.109.20.251


    1.3.4 文件或目錄處理
列出文件或目錄下的文件名。
語法: ls [-atFlgR] [name]
name :文件名或目錄名。
例如:
ls        列出目前目錄下的文件名。

ls -a     列出包括以.開始的隱藏文件的所有文件名。

ls -t     依照文件最後修改時間的順序列出文件名。

ls -F     列出當前目錄下的文件名及其類型。以/ 結尾表示爲目錄名,以* 結尾表示爲

可執行文件,以@ 結尾表示爲符號連接。
ls -l     列出目錄下所有文件的權限、所有者、文件大小、修改時間及名稱。

ls -lg    同上,並顯示出文件的所有者工作組名。

ls -R     顯示出目錄下以及其所有子目錄的文件名。


    1.3.5 改變工作目錄
語法:cd [name]
n a m e:目錄名、路徑或目錄縮寫。
例如:
cd           改變目錄位置至用戶登錄時的工作目錄。
cd dir1      改變目錄位置至d i r 1目錄下。
cd ~user     改變目錄位置至用戶的工作目錄。
cd ..        改變目錄位置至當前目錄的父目錄。
cd ../user   改變目錄位置至相對路徑user 的目錄下。
cd /../..    改變目錄位置至絕對路徑的目錄位置下。
cd ~         改變目錄位置至用戶登錄時的工作目錄。


    1.3.6 複製文件
語法: cp [-r] 源地址目的地址
例如:
cp file1 file2         將文件file1 複製成f i l e 2。

cp file1 dir1          將文件file1 複製到目錄dir1 下,文件名仍爲f i l e 1。

cp /tmp/file1 .        將目錄/tmp 下的文件file1 複製到當前目錄下,文件名仍爲f i l e 1。

cp /tmp/file1 file2    將目錄/tmp 下的文件file1 複製到當前目錄下,文件名爲f i l e 2。

cp -r dir1 dir2        複製整個目錄。


    1.3.7 移動或更改文件、目錄名稱
語法: mv 源地址目的地址
例如:
mv file1 file2     將文件f i l e 1更名爲f i l e 2。
mv file1 dir1      將文件f i l e 1移到目錄dir1 下,文件名仍爲f i l e 1。
mv dir1 dir2       將目錄dir1 更改爲目錄d i r 2。


    1.3.8 建立新目錄
語法: mkdir 目錄名
例如:
mkdir dir1 建立一新目錄d i r 1。


    1.3.9 刪除目錄
語法: rmdir 目錄名或rm 目錄名
例如:
rmdir dir1 刪除目錄d i r 1,但dir1 下必須沒有文件存在,否則無法刪除。
rm -r dir1 刪除目錄d i r 1及其子目錄下所有文件。


    1.3.10 刪除文件
語法: rm 文件名
例如:
rm file1    刪除文件名爲file1 的文件。
rm file?    刪除文件名中有五個字符且前四個字符爲file 的所有文件。
rm f*       刪除文件名中以f 爲字首的所有文件。


    1.3.11 列出當前所在的目錄位置
語法: p w d


    1.3.12 查看文件內容
語法: cat 文件名
例如:
cat file1    以連續顯示方式,查看文件名file1 的內容。


    1.3.13 分頁查看文件內容
語法: more 文件名或cat 文件名| more
例如:
more file1        以分頁方式查看文件名file1 的內容。

cat file1 | more  以分頁方式查看文件名file1 的內容。


    1.3.14 查看目錄所佔磁盤容量
語法: du [-s] 目錄
例如:
du dir1    顯示目錄dir1 的總容量及其子目錄的容量(以KB 爲單位)。
du -s dir1 顯示目錄dir1 的總容量。


    1.3.15 文件傳輸
語法: rcp [-r] 源地址主機名:目的地址
       源地址文件名、目錄名或路徑。
       主機名工作站名。目的地址路徑名稱。
例如:
rcp file1 doc:/home/user 將文件f i l e 1拷貝到工作站doc 路徑/home/user 下。
rcp -r dir1 doc:/home/user 將目錄d i r 1拷貝到工作站doc 路徑/home/user 下。


2. 自遠程工作站,拷貝文件或目錄
語法: rcp [-r] 主機名:源地址目的地址
主機名工作站名。
源地址路徑名。
目的地址、文件名、目錄名或路徑。
例如:
rcp doc:/home/user/file1 file2 將工作站d o c路徑/home/user 下的目錄d i r 1,拷貝到當前工
作站的目錄下,目錄名仍爲d i r 1。
rcp -r doc:/home/user/dir1 . 將工作站doc 路徑/home/user 下的目錄d i r 1,拷貝到當前工
作站的目錄下,目錄名仍爲d i r 1。


3. 本地工作站與遠程工作站之間的文件傳輸
必須擁有遠程工作站的帳號及密碼,纔可進行傳輸工作。
語法: ftp 主機名或ftp ip地址
例如:
ftp doc  , Name (doc:user-name): <輸入帳號> ,Password (doc:user-password): <輸入密碼>

                 與遠程工作站doc 之間進行文件傳輸。
ftp> help        列出ftp 文件傳輸時可使用的命令。
ftp> !ls         列出本地工作站當前目錄下的所有文件名。
ftp> !pwd        列出本地工作站當前所在的目錄位置。
ftp> ls          列出遠程工作站當前目錄下的所有文件名。
ftp> dir         列出遠程工作站當前目錄下的所有文件名。
ftp> dir . |more 分頁列出遠程工作站當前目錄下的所有文件名。
ftp> pwd         列出遠程工作站當前所在的目錄位置。
ftp> cd dir1     更改遠程工作站的工作目錄位置至dir1 之下。
ftp> get file1   將遠程工作站的文件f i l e 1拷貝到本地工作站中。
ftp> put file2   將本地工作站的文件f i l e 2拷貝到遠程工作站中。
ftp> mget *.c    將遠程工作站中擴展文件名爲c 的所有文件拷貝到本地工作站中。
ftp> mput *.txt  將本地工作站中擴展文件名爲txt 的所有文件拷貝到遠程工作站中。
ftp> prompt      切換交互式指令(使用mput/mget 時不是每個文件皆詢問y e s / n o )。
ftp> quit        結束ftp 工作。
ftp> bye         結束ftp 工作。

注意從PC與工作站間的文件傳輸也可透過在PC端的FTP指令進行文件傳輸,指令用
法與上述指令大致相同。


    1.3.16 文件權限的設定
1. 改變文件或目錄的讀、寫、執行權限
語法:chmod [-R] mode name
n a m e :文件名或目錄名。
mode: 3個8位數字或r w x的組合。r- r e a d (讀),w - w r i t e (寫),x - e x e c u t e (執行),u - u s e r (當前用戶),g - g r o u p(組),o - o t h e r(其他用戶)。
例如:
chmod 755 dir1      對於目錄d i r 1,設定成任何使用者皆有讀取及執行的權利,但只有所有者可

                    做修改。

chmod 700 file1     對於文件f i l e 1,設定只有所有者可以讀、寫和執行的權利。
chmod u+x file2     對於文件f i l e 2,增加當前用戶可以執行的權利。
chmod g+x file3     對於文件f i l e 3,增加工作組使用者可執行的權利。
chmod o-r file4     對於文件f i l e 4,刪除其他使用者可讀取的權利。


2. 改變文件或目錄的所有權
語法:chown [-R] 用戶名name
n a m e:文件名或目錄名。
例如:
chown user file1        將文件file1 改爲用戶user 所有。
chown -R user dir1     將目錄d i r 1及其子目錄下面的所有文件改爲用戶user 所有。


    1.3.17 檢查自己所屬的工作組名稱
語法:groups


    1.3.18 改變文件或目錄工作組所有權

語法:chgrp [-R] 工作組名name
n a m e:文件名或目錄名
例如:
chgrp vlsi file1    將文件file1 的工作組所有權改爲vlsi 工作組所有。
chgrp -R p_w_picpath dir1 將目錄d i r 1及其子目錄下面的所有文件,改爲p_w_picpath 工作組所有。


    1.3.19 改變文件或目錄的最後修改時間
語法:touch name
n a m e:文件名或目錄名。


    1.3.20 文件的鏈接
同一文件,可擁有一個以上的名稱,也就是把一個文件進行鏈接。
語法:ln 老文件名新文件名
例如:
ln file1 file2 將文件f i l e 2鏈接至文件f i l e 1。
語法:ln -s 老文件名新文件名
例如:
ln -s file3 file4 將文件file4 鏈接至文件f i l e 3。


    1.3.21 文件中字符串的查尋
語法:grep string file
例如:
grep abc file1 尋找文件f i l e 1中包含字符串abc 所在行的文本內容。


    1.3.22 查尋文件或命令的路徑
語法:whereis command    顯示命令的路徑。

語法:which command      顯示命令的路徑,及使用者所定義的別名。

語法:whatis command     顯示命令功能的摘要。

語法:find search-path -name filename -print 搜尋指定路徑下某文件的路徑。
例如:
find / -name file1 -print 自根目錄下尋找文件file1 的路徑。


    1.3.23 比較文件或目錄的內容
語法:diff [-r] name1 name2
name1 name2:可同時爲文件名或目錄名。
例如:
diff file1 file2      比較文件file1 與file2 內各行的不同之處。
diff -r dir1 dir2     比較目錄dir1 與dir2 內各文件的不同之處。


    1.3.24 文件打印輸出
用戶可用.login 文件中的setenv PRINTER來設定打印機名。
例如:
setenv PRINTER sp 設定自sp 打印機打印資料。


    1.3.25 一般文件的打印
語法:lpr [-P打印機名] 文件名
例如:
lpr file1 或lpr -Psp file1 自sp打印機打印文件f i l e 1。
語法:enscript [-P打印機名] 文件名
例如:
enscript file3 或enscript -Psp file3 自sp打印機打印文件f i l e 3。


    1.3.26 troff 文件的打印
語法:ptroff [-P打印機名] [-man][-ms] 文件名
例如:
ptroff -Psp -man /usr/man/man1/lpr1 以troff 格式,自sp 打印機打印lpr1 命令的使用說明。


    1.3.27 打印機控制命令
1.檢查打印機狀態、打印作業順序號和用戶名
語法:lpq [-P 打印機名]
例如:
lpq 或lpq -Psp 檢查sp 打印機的狀態。
2. 刪除打印機內的打印作業( 用戶僅可刪除自己的打印作業)
語法:lprm [-P打印機名] 用戶名或作業編號
例如:
lprm user或lprm -Psp user 刪除s p打印機中用戶user 的打印作業,此時用戶名必須爲u s e r。
lprm -Psp 456 刪除sp 打印機上編號爲456 的打印作業。


    1.3.28 進程控制

1.查看系統中的進程
語法:ps [-aux]
例如:
ps或ps -x      查看系統中,屬於自己的進程。
ps -au         查看系統中,所有用戶的進程。
ps -aux        查看系統中,包含系統內部的及所有用戶的進程。
2. 結束或終止進程
語法:kill [-9] PID
PID:利用ps 命令所查出的進程號。
例如:
kill 456或kill -9 456 終止進程號爲456 的進程。
3. 在後臺執行進程的方式
語法:命令&
例如:
cc file1.c & 將編譯file1.c 文件的工作置於後臺執行。
語法:按下C o n t r o l + Z鍵,暫停正在執行的進程。鍵入bg命令,將暫停的進程置於後臺繼
續執行。
例如:
cc file2.c
^ Z
Stopped
bg
4. 查看正在後臺中執行的進程
語法:jobs
5. 結束或終止後臺中的進程
語法:kill %n
n:利用jobs命令查看出的後臺作業號
例如:
kill %     終止在後臺中的第一個進程。
kill %2    終止在後臺中的第二個進程。


    1.3.29 外殼變量
1. 查看外殼變量的設定值
語法:set
語法:echo $變量名
2. 設定外殼變量
語法:set var = value
例如:
set term=vt100 設定外殼變量term爲VT100 型終端。
3. 刪除外殼變量
語法:unset var
例如:
unset PRINTER 刪除外殼變量PRINTER 的設定值。
查看所有環境變量的設定值。
顯示指定的環境變量N A M E的設定值。


    1.3.30 環境變量
1. 查看環境變量的設定值
語法:setenv
語法:echo $NAME
例如:
echo $PRINTER 顯示環境變量PRINTER 的設定值。
2. 設定環境變量
語法:setenv NAME word
例如:
setenv PRINTER sp 設定環境變量PRINTER 爲sp。
3. 刪除環境變量
語法:unsetenv NAME
例如:
unsetenv PRINTER 刪除環境變量P R I N T E R的設定值。


    1.3.31 別名
1. 查看所定義的命令的別名
語法: alias         查看自己目前定義的所有命令,及所對應的別名。

語法: alias name    查看指定的name 命令的別名例如
alias dir 查看別名dir 所定義的命令。
ls -atl
2. 定義命令的別名
語法: alias name‘command line’
例如:
alias dir ‘ls -l’
將命令ls - l 定義別名爲d i r。
3. 刪除所定義的別名
語法: unalias name
例如:
unalias dir 刪除別名dir 的定義。
unalias * 刪除所有別名的設定。


    1.3.32 歷史命令
1. 設定命令記錄表的長度
語法: set history = n
例如:
set history = 40 設定命令記錄表的長度爲40 (可記錄執行過的前面40 個命令)。
2. 查看命令記錄表的內容
語法: history
3. 使用命令記錄表
語法: !string    重複前面執行過的以string 爲起始字符串的命令。
例如: !cat        重複前面執行過的以cat 爲起始字符串的命令。
語法: !! 重複執行前一個命令。
語法: ! n
n:命令記錄表的命令編號。
4. 顯示前一個命令的內容
語法: ! !:p
5. 更改前一個命令的內容並執行
find . -name file1.c -print
^ f i l e 1 . c ^ c o r e
find . -name core -print
語法: ^oldstring ^newstring 將前一個命令中oldstring 的部份改成n e w s t r i n g並執


    1.3.33 文件的壓縮
1. 壓縮文件
語法:compress 文件名
語法:compressdir 目錄名
2. 解壓縮文件
語法:uncompress 文件名
語法:uncompressdir 目錄名


    1.3.34 管道命令的使用
語法:命令1 | 命令2 將命令1的執行結果送到命令2,做爲命令2的輸入。
例如:
ls -Rl | more 以分頁方式列出當前目錄及其子目錄下所有文件的名稱。
cat file1 | more 以分頁方式列出文件file1 的內容。


2.3.35 輸入/輸出控制
1. 標準輸入的控制
語法:命令< 文件    將文件做爲命令的輸入。

例如:
mail -s “mail test” [email protected] < file1     將文件file1 當做信件的內容,主
題名稱爲mail test,送給收信人。
2. 標準輸出的控制
語法:命令> 文件    將命令的執行結果送至指定的文件中。
例如:
ls -l > list 將執行“ls -l” 命令的結果寫入文件list 中。
語法:命令>! 文件    將命令的執行結果送至指定的文件中,若文件已經存在,則覆蓋。
例如:
ls -lg >! list 將執行“ls - lg” 命令的結果覆蓋寫入文件list 中。
語法:命令>& 文件    將命令執行時屏幕上所產生的任何信息寫入指定的文件中。
例如:
cc file1.c >& error 將編譯file1.c 文件時所產生的任何信息寫入文件error 中。
語法:命令>> 文件    將命令執行的結果附加到指定的文件中。
例如:
ls - lag >> list 將執行“ls - lag” 命令的結果附加到文件list 中。
語法:命令>>& 文件    將命令執行時屏幕上所產生的任何信息附加到指定的文件中。
例如:
cc file2.c >>& error 將編譯file2.c 文件時屏幕所產生的任何信息附加到文件error 中。


    1.3.36 查看系統中的用戶
語法: who 或finger
語法: w
語法: finger 用戶名 或 finger 用戶名@域名


    2.3.38 查看用戶名
    2.3.37 改變用戶名
語法: su 用戶名
例如:
進入用戶user 的帳號。su user
password : <輸入用戶user 的密碼>
查看登錄時的用戶名。語法: who am i
查看當前的用戶名。若已執行過su命令,則顯示出此用戶的用戶名。

語法: w h o a m i


     3.39 查看當前系統上所有工作站的用戶
語法: rusers
按Ctrl+C> 結束


    2.3.40 與某工作站上的用戶交談
語法: talk 用戶名@主機名 或 talk 用戶名@ IP地址
例如:
1) 可先利用rusers 指令查看網絡上的用戶;
2) 假設自己的帳號是u84987 ,在工作站indian 上使用,現在想要與doc 上的u84123 交
談。
talk u84123@doc
此時屏幕上將會出現等待畫面
在對方( u84123)屏幕上將會出現下列信息:
Message from Talk_Daemon@Local_host_name at xx:xx
talk: connection requested by u84987@indian
talk: respond with: talk u84987@indian
此時對方(u84123) 必須執行talk u84987@indian 即可互相交談。
最後可按Ct r l + C結束。


    2.3.41 檢查遠程系統是否正常
語法:ping 主機名 或 ping IP地址
例如:
ping doc


    2.3.42 電子郵件的使用簡介
1. 將文件當做電子郵件的內容送出
語法:mail -s “主題”用戶名@地址< 文件
例如:
mail -s “program” user < file.c     將file.c當做mail的內容,送至user,主題program。
2. 傳送電子郵件給本系統用戶
語法:mail 用戶名
3. 傳送電子郵件至外地用戶
語法: mail 用戶名@接受地址
例如:
mail [email protected]
Subject : mail test
: 鍵入信文內容
:
:
按下Ctrl+D 鍵或. 鍵結束正文。
連按兩次Ctrl + C鍵則中斷工作,不送此信件。
Cc( Carbon copy) : 複製一份正文,給其他的收信人。
3. 檢查所傳送的電子郵件是否送出,或滯留在郵件服務器中
語法:/usr/lib/sendmail -bp
若屏幕顯示爲“Mail queue is empty” 的信息,表示mail 已送出。
若爲其他錯誤信息,表示電子郵件因故尚未送出。

分享: sg_trans.gif sg_trans.gif  


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章