歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix命令 >> Unix常用命令(附件vi命令使用)

Unix常用命令(附件vi命令使用)

日期:2017/2/28 10:47:22   编辑:Unix命令
unix命令

Unix常用命令(附件vi命令使用)


UNIX常用命令

以下只說明各常用指令的基本用法, 若需詳細說明, 請用 man 去讀詳細的 manual.

1.關於檔案/目錄處理的命令

ls——列目錄
這是最基本的檔案指令。 ls 的意義為 "list",也就是將某一個目錄或是某一個檔案的內容顯示出來。
格式:ls -1ACFLRabcdfgilmnopqrstux -W[sv] [files]
例:
#ls (不跟任何參數以簡單格式列出當前目錄中所有檔案)
#ls bin (簡單格式列出名為bin的文件或目錄下的所有檔案)
#ls /u/ilasII_GB/lib (全路徑,列出lib目錄下的所有檔案)
ls 的常用參數如下:
-a : 在 UNIX 中若一個目錄或檔案名字的第一個字元為 "." , 則使用 ls
將不會顯示出這個檔案的名字,我們稱此類檔案為隱藏檔。如 .profile、.tcshrc等
如果我們要察看這類檔案,則必須在其後加上參數 -a 。
-l : 這個參數代表使用 ls 的長( long )格式,可以顯示更多的資訊,如檔案存取權,檔案擁有者( owner ),檔案歸屬組,檔案大小,檔案最後更新時間,甚而 symbolic link 的檔案是 link 那一個檔等等。顯示結果如下所示:
drwxrwxrwx 30 root bin 1024 May 23 10:38 u
drwxrwxrwx 2 root sys 512 Jul 28 1999 uacn
drwxrwxrwx 5 root sys 512 Jul 27 1999 udk
lrwxrwxrwx 1 root sys 11 Jul 27 1999 unix -> /stand/unix
drwxrwxrwx 35 root auth 1024 Apr 3 13:45 usr
在開始的10個字符上系統給出文件的用戶權限。該序列分成四個域。第一個字符為類型域,第2、3、4個字符為用戶主域,第5、6、7個字符為同組用戶域,第8、9、10個字符為其它用戶域,域中字符的含義如下:
 在類型域中:
d 表示此文件是一個目錄
- 表示此文件是一個普通文件
b 表示此文件是一個特殊的塊設備I/O文件
c 表示此文件是一個特殊的字符設備I/O文件
l 表示此文件是一個連接文件。在其文件名稱後緊跟與它連接的文件路徑及名稱。如:
unix -> /stand/unix
 在“用戶主”、“同組用戶”、“其它用戶”域中:
r 表示有讀權限。含義是可以拷貝或顯示該文件或目錄中的內容。
w 表示有寫權限。含義是可以改變或修改該文件。
x 表示有執行權限。含義是可以執行該文件或用cd命令進入該目錄,在該目錄中建
立文件或子目錄等。
- 表示無權限。

chmod——變更檔案模式( change mode )
這個指令是用來更改檔案的存取模式( access mode )。在 UNIX 一個檔案上有可讀(r)可寫(w)可執行(x)三種模式,分別針對該檔案的所有者( owner )、同組者( group member )( 你可以 ls -lg來觀看某一檔案的所屬的 group ),以及其他人( other )。一個檔案如果改成可執行模式則系統就將其視為一個可執行檔,而一個目錄的可執行模式代表使用者有進入該目錄之權利。chmod 就是用來變更一些檔案的模式。
格式:chmod [ -fR ] mode filename ...
主要參數的意義如下:
-f(Force): chmod 不會理會失敗的動作。
-R(Recurive): 會將所有子樹下的所有子目錄及檔案改為你所要改成的模式。
Mode:指改變模式。包括三個方面:
A. 為哪些用戶改變
u——用戶本身
g——同組用戶
o——其他用戶
B. 如何改變
+——增加權限
-——去掉權限
C. 什麼權限
r——讀權限
w——寫權限
x——執行權限
例:
#chmod g0+w file1
修改前file1的權限為:-rwxr--r--
修改後file1的權限為:-rwxrw-rw-
也可以用一個三位八進位數字來表示對某些對象的存取權。
例:
#chmod 666 * (所有用戶都可讀、寫)
#chmod 777 * (所有用戶都可讀、寫、執行)

cat——串聯顯示命令
例:#cat file1 (將文件file1的內容在屏幕上不停地顯示出來)
Cat命令還可以用來建立文件,如:
#cat>newfile
this is a text
Ctrl+D
即建立newfile文件,內容為:this is a text
#cat file1 file2 >file3 (將file1,file2兩個文件接起來生成文件file3)
#cat f1 f2>>f3 (將f1,f2兩文件接在f3文件的尾)

more——分屏顯示文件內容
more 可以將所觀察的檔案根據分屏顯示出來,並根據使用者的要求換頁或卷行。
如果使用者要在某一個檔案中搜尋一個特定的字串,則按 / 然後跟著打所要搜尋的單字即可進行搜尋。
如果你在使用中覺得已經看到了所要看的部份,可以按'q'離開 more 的使用。
在使用中按'v' 亦可以使用編輯器來編輯所觀看的檔案。
格式: more filename

cd——改變當前目錄
格式:cd dirname
例:
#cd (到用戶的“家”目錄)
#cd /usr (將目前目錄轉移到/usr目錄,也即進入/usr)
#cd .. (返回上一級目錄)
#cd ../.. (返回上一級目錄的上一級目錄)

cp——拷貝
這個指令的意義是復制("COPY") , 也就是將一個或多個檔案復制成另
一個檔案或者是將其復制到另一個目錄去。
格式: cp [-fip] source_file target_file (拷貝文件)
cp [-r|-R][-fip] source_file... target_file (拷貝目錄)
常用參數如下:
-i : 此參數是當已有檔名為 f2 的檔案時,若迳自使用 cp 將會將原來 f2的內容掩蓋過去,因此在要蓋過之前必須先詢問使用者一下。如使用者的回答是y(yes)才執行復制的動作。
-r : 此參數是用來做遞回復制用,可將一整顆子樹都復制到另一個目錄中。

cp 的用法例舉如下:
#cp f1 f2 (將名為 f1 的檔案復制一份名為 f2 的檔案)
#cp f1 f2 f3 ... dir (將檔案 f1 f2 f3 ... 復制一份放到目錄 dir 裡面)
#cp -r dir1 dir2 ( 將 dir1 的全部內容全部復制到 dir2 裡面)

mv——移動或改名
mv 的意義為 move , 主要是將一檔案改名或移至另一個目錄。
格式: mv [-fi] source_file... target_file
主要參數:
-i : -i 的含義與 cp 的相同,均是 interactive詢問之意。
-f: 強迫( force )執行 。所有其他的參數遇到 -f 均失效。
例:
#mv f1 f2 (將名為 f1 的檔案變更成名為 f2 的檔案)
#mv dir1 dir2 ( 將名為 dir1 的目錄變更成名為 dir2 的目錄)
#mv f1 f2 f3 ... dir (將檔案 f1 f2 f3 ... 都移至目錄 dir 裡面)


rm——刪除
rm 的意義是 remove ,也就是用來刪除一個檔案。在 UNIX 中一個被刪除的檔案除非是系統恰好有做備份,否則是無法像 DOS 裡面一樣還能夠恢復。所以在做 rm 動作的時候使用者應該要特別小心。
格式: rm [-fiRr] file...
主要參數:
-f : 將會使得系統在刪除時,不提出任何警告訊息。
-i : 在除去檔案之前均會詢問是否真要除去。
-r : 遞歸式的刪除。
注意:
不要隨便使用 rm -rf , 否則有一天你會"欲哭無淚"......
例:
rm f1 (刪除名為f1的檔案)
rm -r dir1 (刪除名為dir1的目錄及其下的所有檔案)
rm -i sendmarc1 (刪除名為sendmarc1的文件前先提示,待回答(Y/N)?)如下:
remove sendmarc1 ? y

mkdir——創建目錄
mkdir 是一個讓使用者建立一個目錄的指令。你可以在一個目錄底下使用
midir 建立一個子目錄。
格式:mkdir dirname1 [ dirname2 ... ]
例:
#cd /u/ilasII_GB (將當前路徑置換為/u/ilasII_GB)
# mkdir ilasbak (在/u/ilasII_GB目錄下創建一個名為ilasbak的子目錄)

rmdir——刪除目錄
rmdir 是用來將一個"空的"目錄刪除。如果一個目錄下面沒有任何檔案,你就可以用 rmdir 指令將其除去。
格式:
rmdir dirname1 [ dirname2 .... ]
如果一個目錄底下有其他的檔案, rmdir 將無法將這個目錄刪除,除非使用 rm 指令的 -r 選項。
例 :
rmdir ilasbak (刪除名為ilasbak的空目錄)

pwd——顯示當前路徑
例如:
#pwd
/u/ilasII_GB/database (顯示當前路徑為:/u/ilasII/database)

2.關於進程處理的命令:

ps——顯示目前你的 process 或系統 processes 的狀況
格式:
ps [-aAdefl] [-G groups] [-o format] [-p pids] [-t termlist] [-u users] [-U users] [-g pgrplist]
常用參數:
-a 列出所有用戶的 process 狀況。
-u 顯示 user - oriented 的 process 狀況 。
-x 顯示包括沒有 terminal 控制的 process 狀況 。
-w 使用較寬的顯示模式來顯示 process 狀況 。
例:
#ps -ae (顯示所有進程的進程號及狀態)
#ps -u ilasnt1 (顯示用戶ilasnt1的進程狀態)
PID TTY TIME CMD
1194 ttyp0 00:00:00 sh
#ps -t tty1a (顯示設備tty1a上的進程)
如上所示:我們可以經由 ps 取得目前 processes 的狀況,如 PID(進程號) , TTY(設備名)、TIME(時間)、CMD(程序名) 等。

kill——殺進程
kill 指令的用途是送一個信號給某一個進程。因為大部份送的都是用來殺掉進程 ,因此稱為 kill 。
格式:
kill [ -SIGNAL ] pid ...
kill -l
SIGNAL :為一個訊號的數字,從 0 到 31 ,其中 9 是 SIGKILL ,也就是一般用來殺掉一些無法正常終止進程的訊號。
你也可以用 kill -l 來察看可代替 signal 號碼的數目字。

3.用戶操作指令

Who——查詢目前有那些人在線
例:
#who
ilasnt1 ttyp0 May 24 10:23
root ttyp3 May 24 11:27
root ttyp4 May 24 09:39

w——查詢目前有那些人在線上,同時顯示出那些人目前的工作
例:
#w
12:17pm up 3:59, 3 users, load average: 2.03, 2.02, 2.00
User Tty Login@ Idle JCPU PCPU What
ilasnt1 ttyp0 10:23am 1:54 1 - -sh
root ttyp3 11:27am 2 1 - w
root ttyp4 9:39am 38 1 - -sh

chgrp——改變組的屬性
格式:
chgrp [-R] group file...
例:
#chgrp library file1 file2… (將file1、file2…等的用戶組改為library)

chown——改變文件或目錄的所有者
格式:
chown [-R] owner[:group] file...
例:
#chown ilasnt1 ilasII_GB (將ilasII_GB的用戶主改為ilasnt1)

passwd——更改用戶口令
格式:
passwd 用戶名 (後面不跟用戶名,為修改root的口令)

4.網路指令
UNIX 提供網路的連接,使得你可以在各個不同的機器上做一些特殊的事情。有些工作可以利用 UNIX 的網路指令,在你的位子上連到各個不同的機器上工作。如此一來,即使你在寢室,也能輕易的連至系上或計中來工作,不用像以前的人必須泡在冷冰冰的機房面。
這些網路的指令如下所述:

telnet——仿真終端程序
telnet 是一個提供 user 經由網路連到 remote host。
格式:
telnet [ hostname | ip-address ] [ port ]
其中:
hostname:為一個像 ccsun1 或是 ccsun1.cc.nctu.edu.cn 的 name address;
ip-address:則為一個由四個小於 255 的數字組成的IP地址,如 140.113.17.173 、210.26.147.1等。
Port:為一些特殊的程式所提供給外界的溝通點。如對方沒要求,則不需要此項。
例:
#telnet ccsun1
#telnet 140.113.17.173

ftp——文件傳輸協議
ftp 的意義是 File Transfer Program ,是一個很常應用在網路檔案傳輸的
程序。
格式:
ftp [ hostname | ip-address ]
其中 hostname | ip-address 的意義同telnet 。
在進入 ftp 之後,如果與 remote host 連接上了,它將會詢問你用戶名
與密碼,如果輸入對了就可以開始進行檔案傳輸。
ftp中常用命令:
ascii:將傳輸模式設為 ascii 模式。通常用於傳送文字檔。
binary:將傳輸模式設為 binary 模式,通常用於傳送執行檔,壓縮檔與影像檔等。
cd remote-directory:將 remote host(遠方)上的工作目錄改變。
lcd [ directory ]:更改 local host (本地)的工作目錄。
ls [ remote-directory ] [ local-file ]:列出 remote host 上的檔案。
get remote-file [ local-file ]:取得遠方的檔案。
mget remote-files :可使用通用字元一次取得多個檔案。
put local-file [ remote-file]: 將 local host 的檔案送到 remote host。
mput local-files :可使用通用字元一次將多個檔案放到 remote host 上。
help [ command ]: 線上輔助指令。
mkdir directory-name :在 remote host 造一個目錄。
prompt 更改交談模式,若為 on 則在 mput 與 mget 時每作一個檔案之傳
輸時均會詢問。
quit/bye 離開ftp .

5.其他指令

vi——編輯命令
任何用戶最常做的事要數創建和編輯文件,包括文檔、報告和文字,vi(Visual Editor)是一個有效而相對簡單的全熒幕編輯,使用vi,只要記著少量基本指令,就可以開始起步,再學習其他更復雜的指令,而系統管理員則使用vi管理和維護系統。
vi是包含在SCO System V作業系統中的全熒幕編輯,其實,vi不獨存在於SCO UNIX內,而是UNIX內相當普及的文件編輯。開啟文件無論是開啟新檔或修改舊文件,都可以使用vi。
格式:
#vi filename
如果文件是新的,就會在熒幕底部看到一個信息,告訴用戶正在創建新文件。如果文件早已存在,vi則會顯示文件的首二十四行,用戶可再用游標(cursor)移動文件。
這是執行Vi後的屏幕樣式:


上面是一個經vi開啟的模擬文件,一行開始處的波折號(~)表示文件的結尾。 vi使用了兩種狀態,一是指令態(Command Mode),另一是插入態(Insert Mode)。當vi處於指令態時,打入的內容會視作指令來解釋;另一方面,當vi處於插入態時,就可以打入正文(text)給文件。
大多數vi指令是單字符,將插入狀態改變為指令態,按〈Esc〉鍵;而由命令態轉為插入態,則可以使用下面的插入令,直接打入,無需再按〈Return〉鍵。
 插入
i 在游標處插入正文
I 在一行開始處插入正文(在當前第一個非空字符前插入)
a 在游標後追加正文
A 在行尾追加正文
o(小寫歐) 在游標下面新開一行
O(大寫歐) 在游標上面新開一行
要記著一點,在插入態處,不能打入指令,必需先按〈Esc〉鍵,返回指令態。假若戶用不知身處何態,也可以按〈Esc〉鍵,不管處於何態,都會返回指令態。
 存盤及退出
在修改文件時,如何存檔及退出指定文件都非常重要。在vi內,行使存檔或退出的指令時,要先按冒號(:),改變為指令態,用戶就可以看見在熒幕左下方,出現冒號(:),顯示vi已經改為指令態,可以進行存檔或退出等工作。
下面就是一些這方面常用的指令。
:q! 放棄任何改動而退出vi,也就是強行退出
:w 存檔
:wq 存檔並退出vi
:x 與wq的工作一樣
:zz 與wq的工作一樣刪除正文
 刪除
刪除或修改正文都是利用插入態,故此,下面所提及的指令只需在插入態內,直接選入指令即行。
x 刪除游標處字符(Character)
nx 刪除游標處後n個字符
nX 刪除游標處前n個字符
ndw 刪除游標處下n個單詞(word)
dd 刪除整行
d$或D 刪除由游標至該行最末
u 恢復前一次所做的刪除
 修改正文
當使用vi修改正文,加減字符時,就會采用另一組在插入態操作的指令。
— r char由char代替游標處的字符
—Rtext〈Esc〉由text代替游標處的字符
—cwtext〈Esc〉由text取代游標處的單詞
—Ctext〈Esc〉由text取代游標處至該行結尾處
—cc使整行空白,但保留游標位置,讓你開始打入
—如刪除指令一樣,在指令前打入的數,表示執行該指令多少次。
 正文模式檢索
要檢索文件,必需在指令態下進行。所謂「模式」,就是一個特定字符串,其中可含空格符。
/str〈Return〉 向前搜尋str直至文件結尾處
?str〈Return〉 往後搜尋str直至文件開首處
n 同一方向上重復檢索
N 相反方向上重復檢索
vi纏繞整個文件,不斷檢索,直至找到與模式相匹配的下一個出現。其他如果要在 vi執行期間,轉到shell執行,使用驚歎號(!)執行系指令,例如在vi期間,列出當前目錄內容,可以打入:!If
另一方面,用戶可以在主目錄中創建.exrc環境文件,用set打入選項,每次調用vi時,就會讀入.exrc中的指令與設置。下面是.exrc環境文件的實例:
set wrapmarging=8
set showmode
set autoindent
set number

備份命令:tar(c)
tar 是對非特權用戶最易用和最可靠的實用程序(utility),從歸檔介質上保留和恢復文件,亦能從多文件歸檔中抽取單個文件。
tar 歸檔使用文件和目錄的相對或絕對路徑名。
打入 tar,即會顯示所有變量選項;
如:
tar -{txruc}[0-9vfbkelmnopwAFLTP] [tapefile] [blocksize] [tapesize] files...
Key Device Block Size(K) Tape
0 /dev/rfd048ds9 18 360 No
1 /dev/rfd148ds9 18 360 No
2 /dev/rfd096ds15 10 1200 No
3 /dev/rfd196ds15 10 1200 No
4 /dev/rfd0135ds9 18 720 No
5 /dev/rfd1135ds9 18 720 No
6 /dev/rfd0135ds18 18 1440 No
7 /dev/rfd1135ds18 18 1440 No
8 /dev/rStp0 20 0 Yes
9 /dev/rctmini 20 0 Yes
10 /dev/rdsk/fp03d 18 720 No
11 /dev/rdsk/fp03h 18 1440 No
12 /dev/rdsk/fp03v21 10 20330 No
其中:
“cv”是創建歸檔;
“cv#”用於來自 /etc/default/tar 的設備號 #;
“rv”追加已有歸檔;
“uv”更新在已有歸檔上的文件;
“tv”顯示歸檔內容表;
“xv”從歸檔中抽取文件;
“f”從指定文件中讀入或寫出;
“L”使 tar跟隨符號連接繼續追查下去,默認情況下則會忽略符號連接。
例:
(1)要歸檔指定文件,而復蓋盤上的已有數據,指令如下:
$cd pub
$tar cv8 ascii greek (8為磁帶機)
volume end at 1199k, block factor=5k
seek=0k a ascii 3k
seek=3k a greek 1k
(2)要列出 tar 歸納的內容:
$tar tv8
rwxrwxrwx201/50 1731 Apr 11 00:58 1997 web50/WEB/srchbib.htm
rwxrwxrwx201/50 1002 Apr 11 00:58 1997 web50/WEB/readinfo.htm
rwxrwxrwx201/50 1070 Apr 11 00:58 1997 web50/WEB/stflag.gif
rwxrwxrwx201/50 45 Mar 22 01:27 1997 web50/WEB/cgi-bin/ILASPROF
rwxr-xr-x201/50 136799 Apr 10 04:10 1998 web50/WEB/cgi-bin/openhold

注意:創建 tar 歸檔,使用相對路徑名,否則,恢復另一系統就會蓋寫其他系統的文件。如:
#tar cv8 /etc/motd
#cd /tmp
#tar xv8
x /etc/motd, 943 bytes,2k

Df——顯示硬盤空間使用情況
磁盤空間以塊為單位進行分配,典型的塊是512字節。
例:
#df -v
Mount Dir Filesystem blocks used free %used
/ /dev/root 2123740 990450 1133290 47%
/stand /dev/boot 100000 19796 80204 20%
/u /dev/u 15000000 12529568 2470432 84%

Du——檢測一個目錄和(遞歸地)所有它的子目錄中的文件占用的磁盤空間,用塊大小標識。
例:
#du
#du -s 只顯示整個目錄占用的空間

Find——從指定路徑開始查找帶有規定特征的文件
例:
#find / -name ilas.ini (從根目錄開始遞歸地尋找出名為ilas.ini的文件,並將它所在目錄顯示在屏幕上)

Date——顯示系統日期
例:
#date
Thu May 24 14:31:49 CST 2001

Format——軟盤格式化
例:
#format /dev/rfd096ds15 (格式化5寸高密軟盤(A驅動器)

Haltsys——緊急關機
格式:#haltsys 回車 (此時未執行關閉數據庫等,最好用Shutdown)

Shutdown——多用戶情況下關機
格式:
#shutdown -g0 -y -i0

Copyright © Linux教程網 All Rights Reserved