獲得幫助:UNIX系統(tǒng)為每一個(gè)操作、系統(tǒng)調(diào)用和系統(tǒng)函數(shù)都定義了一個(gè)完整的說(shuō)明文文件,在命令(終端)模式下可通過(guò)man命令來(lái)顯示該說(shuō)明。例如:要看命令 ls的說(shuō)明可用
$ man ls
其中$為系統(tǒng)給出的一般用戶的命令行提示符。
1、文件類型
(1).文本文件
(2).二進(jìn)制文件:存儲(chǔ)程序,圖形,圖象,聲音,數(shù)據(jù)的文件。
(3).管道文件:進(jìn)程間傳送信息。
(4).設(shè)備文件:特殊文件,也是UNIX的特色,它是使用和管理各種硬件設(shè)備的文件,如光盤(pán),軟盤(pán)等。
(5).目錄文件:組織管理文件的文件,它只儲(chǔ)存有關(guān)文件名列表以及其他有關(guān)文件的信息。
2、目錄:
常用目錄含義:
/bin 組織二進(jìn)制文件。
/dev 組織外圍設(shè)備。
/etc 組織各種用于系統(tǒng)管理的程序和數(shù)據(jù)。
/include 組織和C語(yǔ)言開(kāi)發(fā)有關(guān)的頭文件。
/lib 組織應(yīng)用開(kāi)發(fā)中的子程序庫(kù)和開(kāi)發(fā)工具。
/usr 組織與用戶有關(guān)的文件。
/tmp 臨時(shí)文件。
有關(guān)目錄常用命令:
mkdir 建立目錄
cd / 改變路徑,用法同DOS基本相同,區(qū)別在于DOS用"\",而
UNIX用"/",且CD與/之間一定要有空格.
mv 將文件移到另一目錄下。
pwd 顯示當(dāng)前所處絕對(duì)路徑。
rmdir 刪除空目錄。
3、文件:
當(dāng)我們列文件目錄時(shí),會(huì)看到
drwxrwxr-x 1 test dba 96 Nov 14 23:04 bin
-r--r--r-- 1 test dba 16127 Oct 12 1999 rote
這里列的是兩個(gè)文件,他們的文件名就是最右邊的字符串,他們分別是bin 和 rote。我們以第一個(gè)文件bin 為例來(lái)講一下各個(gè)字母的含義。左數(shù)第一個(gè)字母表示這個(gè)文件的類型."d"表示為目錄文件。"l"表示鏈接文件。"b"表示塊設(shè)備."c"表示字符設(shè)備。 "p"表示管道文件?梢钥闯,bin 是一個(gè)目錄文件。
然后就是后面的rwxrwxr-x ,它們表示這個(gè)文件的訪問(wèn)權(quán)限,RWX分別表示讀,寫(xiě),執(zhí)行。頭三個(gè)字母RWX表示文件所有者擁有讀寫(xiě)執(zhí)行的權(quán)限,中間三個(gè)字母表示與所有者同組用戶有讀寫(xiě)執(zhí)行權(quán)限,最后三個(gè)字母表示系統(tǒng)中其他用戶有讀,和執(zhí)行權(quán)限,卻沒(méi)有寫(xiě)權(quán)限。
接下來(lái)是數(shù)字1,表示該文件的鏈接數(shù)。
然后是test 表示用戶名。
然后是dba 表示用戶所在組名。
然后是數(shù)字96 表示文件大小。
然后是文件修改日期和文件名。
4、UNIX系統(tǒng)的關(guān)閉
shutdown –g0 –y
表示立即關(guān)機(jī),不做等待。-g后面的數(shù)字表示等待時(shí)間。這時(shí),系統(tǒng)中所有進(jìn)程將被終止,同時(shí)系統(tǒng)將用內(nèi)存緩沖區(qū)中的內(nèi)容對(duì)磁盤(pán)有關(guān)內(nèi)容更新,以保持系統(tǒng)同步。而突然斷電則破壞這一過(guò)程,所以不正常關(guān)機(jī)極易破壞數(shù)據(jù),導(dǎo)致系統(tǒng)崩潰。
在關(guān)閉作為主機(jī)的UNIX系統(tǒng)時(shí),應(yīng)在-g后跟一個(gè)非0的數(shù)字,表示系統(tǒng)關(guān)閉前的等待時(shí)間,一般為分鐘數(shù),對(duì)終端用戶,系統(tǒng)將提示,以便用戶保存現(xiàn)有工作,準(zhǔn)備退出系統(tǒng)。
5、登錄和退出
(1)登錄步驟
login : _______ => 輸入 username
password : _______ => 輸入密碼
(2)退出步驟
logout
或 exit
或
(3)更改帳號(hào)密碼
passwd => 執(zhí)行後將會(huì)出現(xiàn)下列信息
Changing NIS password for user on ice.
Old password: ______ => 輸入舊密碼
New password: ______ => 輸入新密碼(最好6-8字,英文字母與數(shù)字混合)
Retype new password: ______ => 再輸入一次密碼
(4)遠(yuǎn)程登錄
執(zhí)行格式:rlogin hostname [-1 username]
Example:
$ rlogin doc
$ remote login 進(jìn)入主機(jī) doc 中。
$ rlogin doc -l user
使用 user 帳號(hào)進(jìn)入主機(jī) doc 中。
執(zhí)行格式:telnet hostname 或 telnet IP address
Example:
$ telnet doc or $telnet 140.109.20.251
6、文件及目錄操作
(1)列出文件或目錄下的文件
執(zhí)行格式: ls [-atFlgR] [name] ( name 可為文件名或目錄名稱。)
Example :
$ ls 列出目前目錄下的文件名。
$ ls -a 列出包含以.起始的隱藏文件所有文件名。
$ ls -t 依照文件最後修改時(shí)間的順序,依序列出文件名。
$ ls -F 列出目前目錄下的文件名及其類型。"/" 結(jié)尾表示為目錄名稱,
$ ls -l 列出目錄下所有文件的許可權(quán)、擁有者、文件大小、修改時(shí)間及名稱。
$ ls -lg 同上,并顯示出文件的擁有者用戶組名稱。
$ ls -R 顯示出目錄下,以及其所有子目錄的文件名。( recursive listing )
(2)目錄縮寫(xiě):
~ 使用者 login 時(shí)的 working directory ( 起始目錄 )
~username 指定某位 user 的 working directory ( 起始目錄 )
. 目前的工作目錄 ( current working directory )
.. 目前目錄的上一層目錄 ( parent of working directory)
(3)改變工作目錄位置
執(zhí)行格式:cd [name] :name 可為目錄名稱、路徑或目錄縮寫(xiě)。
Example:
$ cd 改變目錄位置,至使用者 login 時(shí)的 working directory (起始目錄)。
$ cd dir1 改變目錄位置,至 dir1 的目錄位置下。
$ cd ~user 改變目錄位置,至使用者的 working directory (起始目錄)。
$ cd .. 改變目錄位置,至目前目錄的上層( 即 parent of working directory)
$ cd ../user 改變目錄位置,至相對(duì)路徑 user 的目錄位置下。
$ cd / 改變目錄位置,至絕對(duì)路徑( Full path ) 的根目錄位置下。
(4)復(fù)制文件
執(zhí)行格式: cp [-r] source destination
Example:
$ cp file1 file2 將文件 file1 復(fù)制成 file2
$ cp file1 dir1 將文件 file1 復(fù)制到目錄 dir1 下,文件名仍為 file1。
$ cp /tmp/file1 . 將目錄 /tmp 下的文件 file1 復(fù)制到現(xiàn)行目錄下,文件名仍為 file1。
$ cp /tmp/file1 file2 將目錄 /tmp 下的文件 file1 復(fù)制到現(xiàn)行目錄下,文件名為 file2□
$ cp -r dir1 dir2 (recursive copy) 復(fù)制整個(gè)目錄。
若目錄 dir2 不存在,則將目錄 dir1,及其所有文件和子目錄,復(fù)制
到目錄 dir2 下,新目錄名稱為 dir1。若目錄 dir2 不存在,則將
dir1,及其所有文件和子目錄,復(fù)制為目錄 dir2。
(5)搬移或更改文件、目錄名稱
執(zhí)行格式: mv source destination
Example:
$ mv file1 file2 將文件 file1,更改文件名為 file2。
$ mv file1 dir1 將文件 file1,移到目錄 dir1 下,文件名仍為 file1。
$ mv dir1 dir2 若目錄 dir2 不存在,則將目錄 dir1,及其所有文件和子目錄,移
到目錄 dir2 下,新目錄名稱為 dir1。若目錄 dir2 不存在,則將
dir1,及其所有文件和子目錄,更改為目錄 dir2。
(6)建立新目錄
執(zhí)行格式: mkdir directory-name
Exmaple :
$ mkdir dir1 建立一新目錄 dir1。
(7)刪除目錄
執(zhí)行格式: rmdir directory-name 或 rm directory-name
Example :
$ rmdir dir1 刪除目錄 dir1,但 dir1 下必須沒(méi)有文件存在,否則無(wú)法刪除。
$ rm -r dir1 刪除目錄 dir1,及其下所有文件及子目錄。應(yīng)謹(jǐn)慎使用此命令。
(8)刪除文件
執(zhí)行格式: rm filename (filename 可為文件名,或文件名縮寫(xiě)符號(hào)。)
Example :
$ rm file1 刪除文件名為 file1 的文件。
$ rm file? 刪除文件名中有五個(gè)字符,前四個(gè)字符為file 的所有文件。
$ rm f* 刪除文件名中,以 f 為字首的所有文件。
(9)文件名的縮寫(xiě)符號(hào)
? 代表文件名稱中的單一字符。
* 代表文件名稱中的一字符串。
(10)列出當(dāng)前所在的目錄位置
執(zhí)行格式: pwd
(11)查看文件內(nèi)容
執(zhí)行格式: cat filename
Example :
$ cat file1 以連續(xù)顯示方式,查看文件名 file1 的內(nèi)容。
執(zhí)行格式: more filename 或 cat filename | more
Example :
$ more file1 以分頁(yè)方式,查看文件名 file1 的內(nèi)容。
$ cat file1 | more 同上。
(12)查看目錄所占磁盤(pán)容量
執(zhí)行格式: du [-s] directory
Example :
$ du dir1 顯示目錄 dir1 的總?cè)萘考捌浯文夸浀娜萘?以 k byte 為容量)。
$ du -s dir1 顯示目錄 dir1 的總?cè)萘俊?
(13) 查看磁盤(pán)使用情況
執(zhí)行格式: df 列出的磁盤(pán)(邏輯盤(pán))空間以段(一般為512字節(jié))為單位
Example :
$ df 列出使用空間數(shù)和文件數(shù)。
$ df -v 列出各磁盤(pán)的原有、占用和可用空間等信息。
$ df –k 列出的磁盤(pán)空間以k字節(jié)為單位。
7、文件傳輸
(1)拷貝文件或目錄至遠(yuǎn)端主機(jī)
執(zhí)行格式: rcp [-r] source hostname:destination
( source 可為文件名、目錄名或路徑,hostname 主機(jī)名,destination 為路徑名稱.
Example :
$ rcp file1 doc:/home/user
將文件 file1,拷貝到主機(jī) doc 路徑 /home/user 目錄下。
$ rcp -r dir1 doc:/home/user
將目錄 dir1,拷貝到主機(jī) doc 路徑/home/user 目錄下。
(2)從遠(yuǎn)端主機(jī),拷貝文件或目錄
執(zhí)行格式: rcp [-r] hostname:source destination
( hostname 為主機(jī)名,source 為路徑名,destination 可為文件名、目錄名或路徑 )。
Example :
$ rcp doc:/home/user/file1 file2
將主機(jī) doc 中,位於 /home/user 目錄下的目錄 dir1,拷貝到目前主機(jī)的目錄下,
目錄名稱仍為 dir1。
$ rcp -r doc:/home/user/dir1 .
將主機(jī) doc 中,位於 /home/user 目錄下的目錄 dir1,拷貝到目前主機(jī)的目錄下,
目錄名稱仍為 dir1。
(3)本地主機(jī)與遠(yuǎn)端主機(jī)之間的文件傳輸
( 必須擁有遠(yuǎn)端主機(jī)的帳號(hào)及密碼,才可進(jìn)行傳輸工作 )
執(zhí)行格式: ftp hostname or ftp ip_address
Example :
ftp doc 與遠(yuǎn)端主機(jī) doc ,進(jìn)行文件傳輸
Name (doc:user-name) : 輸入帳號(hào)
Password (doc:user-name): 輸入密碼
ftp> help 列出 ftp 文件傳輸,可使用的任何命令。
ftp> !ls 列出本地主機(jī),目前目錄下的所有文件名。
ftp> !pwd 列出本地主機(jī),目前所在的工作目錄位置。
ftp> ls 列出遠(yuǎn)端主機(jī)目前目錄下的所有文件名。
ftp> dir 列出遠(yuǎn)端主機(jī)目前目錄下的所有文件名(略同於 UNIX 的 ls -l 指令).
ftp> dir . |more 同上,但每頁(yè)會(huì)暫停(可能不適用 Unix 以外的 ftp)。
ftp> pwd 列出遠(yuǎn)端主機(jī)目前所在的目錄位置。
ftp> cd dir1 更改遠(yuǎn)端主機(jī)的工作目錄位置至 dir1 的下。
ftp> get file1 將遠(yuǎn)端主機(jī)的文件 file1 ,拷貝到本地主機(jī)中。
ftp> put file2 將本地主機(jī)的文件 file2 ,拷貝到遠(yuǎn)端主機(jī)中。
ftp> mget *.c 將遠(yuǎn)端主機(jī)中,副文件名為 c 的所有文件,拷貝到本地主機(jī)中。
ftp> mput *.txt 將本地主機(jī)中,副文件名為 txt 的所有文件,拷貝遠(yuǎn)端主機(jī)中。
ftp> prompt 切換交互式指令(使用 mput/mget 時(shí)不用每個(gè)文件皆詢問(wèn)yes/no)。
ftp> quit 結(jié)束 ftp 工作。
ftp> bye 結(jié)束 ftp 工作。
注: 從PC與主機(jī)間的文件傳輸也可通過(guò)在 PC端的 FTP指令進(jìn)行文件傳輸,指令用法與上所述大致相同。
8、文件/目錄屬性
(1)改變文件或目錄的讀、寫(xiě)、執(zhí)行的權(quán)限
執(zhí)行格式:chmod [-R] mode name
( name 可為文件名或目錄名;mode可為 3 個(gè) 8 進(jìn)制的數(shù)字,或利用ls -l 命令,列出文件或目錄的讀、寫(xiě)、執(zhí)行權(quán)限的文字縮寫(xiě)。)
mode : rwx rwx rwx r:read w:write x:execute
user group other
縮寫(xiě) : (u) (g) (o)
Example :
$ chmod 755 dir1(755=111 101 101=rwx r-x r-x)
將目錄dir1,設(shè)定成任何使用者,皆有讀取及執(zhí)行的權(quán)利,但只有擁有者可做修改。
$ chmod 700 file1
將文件file1,設(shè)定只有擁有者可以讀、寫(xiě)和執(zhí)行。
$ chmod o+x file2
將文件file2,增加擁有者可以執(zhí)行的權(quán)利。
$ chmod g+x file3
將文件file3,增加用戶組使用者可執(zhí)行的權(quán)利。
$ chmod o-r file4
將文件file4,除去其它使用者可讀取的權(quán)利。
(2)改變文件或目錄的所有權(quán)
執(zhí)行格式:chown [-R] username name ( name 可為文件名或目錄名。)
Example :
$ chown user file1
將文件 file1 的所有權(quán),改為使用者 user 所有。
$ chown -R user dir1
將目錄 dir1,及其下所有文件和子目錄的所有權(quán),改為使用者 user 所有。
必須對(duì)文件/目錄有讀寫(xiě)權(quán)限的用戶才能改變文件/目錄的所有權(quán)。
(3)檢查自己所屬的用戶組名稱
執(zhí)行格式:groups
(4)改變文件或目錄所屬的用戶組
執(zhí)行格式:chgrp [-R] groupname name ( name 可為文件名或目錄名 )
Example :
$ chgrp vlsi file1
將文件 file1 的用戶組,改為 vlsi 用戶組。
$ chgrp -R image dir1
將目錄dir1,及其下所有文件和子目錄,改為 image 用戶組。
必須對(duì)文件/目錄有讀寫(xiě)權(quán)限的用戶才能改變文件/目錄的用戶組。
(5)改變文件或目錄的最後修改時(shí)間
執(zhí)行格式:touch name ( name 可為文件或目錄名稱。)
9、文件的連結(jié)(類似于WINDOWS中的快捷方式)
同一文件,可擁有一個(gè)以上的名稱,可將文件做數(shù)個(gè)連結(jié)。
執(zhí)行格式:ln oldname newname ( Hard link )
Example :
$ ln file1 file2 將名稱 file2,連結(jié)至文件 file1。
執(zhí)行格式:ln -s oldname newname ( Symblick link )
Example :
$ ln -s file3 file4 將名稱 file4,連結(jié)至文件file3。
10、文件/目錄的查找和比較
(1)文件的字符串找尋
執(zhí)行格式:grep string file
Example :
$ grep abc file1
尋找文件file1中,列出字符串 abc 所在的整行文字內(nèi)容。
(2)找尋文件或命令的路徑
執(zhí)行格式:whereis command ( 顯示命令的路徑。)
執(zhí)行格式:which command ( 顯示命令的路徑,及使用者所定義的別名。)
執(zhí)行格式:whatis command ( 顯示命令功能的摘要。)
執(zhí)行格式:find search_path -name str -print
( 搜尋指定路徑search_path下,含字符串str的文件或目錄的路徑 。)
Example :
$ find / -name abc -print
自根目錄向下,尋含字符串a(chǎn)bc的文件或目錄的路徑。.
(3)比較文件或目錄的內(nèi)容
執(zhí)行格式:diff [-r] name1 name2 ( name1 name2 可同時(shí)為文件名,或目錄名稱。)
Example :
$ diff file1 file2
比較文件 file1 與 file2 內(nèi),各行的不同處。
$ diff -r dir1 dir2
比較目錄 dir1 與 dir2 內(nèi),各文件的不同處。
11、任務(wù)的控制
UNIX 可在前臺(tái)及后臺(tái)同時(shí)處理多個(gè)進(jìn)程。
一般使用者執(zhí)行命令時(shí),皆是在前臺(tái)交互式地執(zhí)行進(jìn)程,亦可將進(jìn)程
置於后臺(tái)中,以非交互式來(lái)執(zhí)行進(jìn)程。
(1)查看系統(tǒng)的進(jìn)程
執(zhí)行格式:ps [-aux]
Example:
$ ps 或 ps -x (查看系統(tǒng)中,屬於自己的進(jìn)程。)
$ ps -au (查看系統(tǒng)中,所有使用者的進(jìn)程。)
$ ps -aux (查看系統(tǒng)中,包含系統(tǒng)內(nèi)部,及所有使用者的進(jìn)程。)
(2)結(jié)束或終止進(jìn)程
執(zhí)行格式:kill [-9] PID ( PID 為利用 ps 命令所查出的進(jìn)程 ID。)
Example:
$ kill 456 或 kill -9 456
終止進(jìn)程 ID 為 456 的進(jìn)程。
(3)在后臺(tái)執(zhí)行進(jìn)程 的方式
執(zhí)行格式:command & (於 command 後面加入一 "&" 符號(hào)即可。)
Example:
$ cc file1.c &
將編譯 file1.c 文件的工作,置於后臺(tái)執(zhí)行。
執(zhí)行格式:按下 "Control Z" 鍵,暫停正在執(zhí)行的進(jìn)程。鍵入 "bg" 命令,
命令,將所暫停的進(jìn)程,置入后臺(tái)中繼續(xù)執(zhí)行。
Example:
$ cc file2.c
^Z
Stopped
$ bg
(4)查看正在后臺(tái)中執(zhí)行的進(jìn)程
執(zhí)行格式:jobs
(5)結(jié)束或終止在后臺(tái)中的進(jìn)程
執(zhí)行格式:kill $n
(n 為利用 "jobs" 命令,所查看出的后臺(tái)任務(wù)編號(hào))
Example:
$ kill % 終止在后臺(tái)中的第一個(gè) 任務(wù)。
$ kill %2 終止在后臺(tái)中的第二個(gè) 任務(wù)。
11、shell 變量
(1)查看shell變量的設(shè)定值
執(zhí)行格式:set 查看所有shell變量的設(shè)定值。
Example:
$ set
執(zhí)行格式:echo $變量名 顯示指定的shell變量的設(shè)定值。
$ echo $INCLUDE
/usr/test/include
(2)設(shè)定shell變量
執(zhí)行格式:var = value export var
Example:
$ term=vt100
$ export term
設(shè)定shell變量 "term" 為 VT100 終端機(jī)的型式。
(3)刪除shell變量
執(zhí)行格式:unset var
Example:
$ unset INCLUDE
刪除shell變量 "PRINTER" 的設(shè)定值。
12、environment 變量
(1)查看環(huán)境變量的設(shè)定值
執(zhí)行格式:setenv 查看所有環(huán)境變量的設(shè)定值。
Example:
$ setenv
執(zhí)行格式:echo $NAME 顯示指定的環(huán)境變量 "NAME" 的設(shè)定值。
Example:
$echo $PRINTER
顯示環(huán)境變量 "PRINTER" 打印機(jī)名稱的設(shè)定值。
(2)設(shè)定環(huán)境變量
執(zhí)行格式:setenv NAME word
Example:
$ setenv PRINTER sp1
設(shè)定環(huán)境變量 "PRINTER" 打印機(jī)名稱為 sp1。
(3)刪除環(huán)境變量
執(zhí)行格式:unsetenv NAME
Example:
$ unsetenv PRINTER
刪除環(huán)境變量 "PRINTER" 打印機(jī)名稱的設(shè)定值。
13、別名
(1)查看所定義的命令的別名
執(zhí)行格式: alias 查看自己目前定義的所有命令,及所對(duì)應(yīng)的別名名稱。
執(zhí)行格式: alias name 查看指定的別名name所定義的命令。
Example:
$ alias dir (查看別名 dir 所定義的命令)
ls -atl
(2)定義命令的別名
==================
執(zhí)行格式: alias name 'command line'
Example:
$ alias dir 'ls -l'
將命令 "ls - l" 定義別名為 dir。
(3)刪除所定義的別名
====================
執(zhí)行格式: unalias name
Example:
$ unalias dir (刪除別名為 dir 的定義。)
$ unalias * (刪除所有別名的設(shè)定。)
14、命令歷史
(1)設(shè)定命令記錄表的長(zhǎng)度
執(zhí)行格式: set history = n
Example:
$ set history = 40
設(shè)定命令記錄表的長(zhǎng)度為 40 (可記載執(zhí)行過(guò)的前面 40 個(gè)命令)。
(2)查看命令記錄表的內(nèi)容
執(zhí)行格式: history
Example:
$ history
(3)使用命令記錄表
執(zhí)行格式: !!
Example:
$ !! (重覆執(zhí)行前一個(gè)命令)
執(zhí)行格式: !n ( n 為命令記錄表的命令編號(hào)。)
Example:
$ !5 ( 執(zhí)行命令記錄表中第五個(gè)命令。)
執(zhí)行格式: !string ( 重覆前面執(zhí)行過(guò)以 string 為起始字符的命令。)
Example:
$ !cat ( 重覆前面執(zhí)行過(guò),以 cat 為起始字符的命令。)
(4)顯示前一個(gè)命令的內(nèi)容
執(zhí)行格式: !!:p
.更改前一命令的內(nèi)容并執(zhí)行
============================
執(zhí)行格式: ^oldstring ^newstring
將前一命令中 oldstring 的部份,改成 newstring,并執(zhí)行的。
Example:
$ find . -name file1.c -print
^file1.c^core
$ find . -name core -print
注:文件 core 為執(zhí)行程式或命令發(fā)生錯(cuò)誤時(shí),系統(tǒng)所產(chǎn)生的文件。作為調(diào)試(debug)的參考,因其所占空間極大,通常將的刪除。
15、文件的壓縮
為了避免不常用的文件或文件,占用太大的磁盤(pán)空間,請(qǐng)使用者將的壓縮。欲使用壓縮過(guò)的文件或文件前,將其解壓,即可還原成原來(lái)的文件型式。凡是經(jīng)過(guò)壓縮處理的文件,會(huì)在文件名後面附加 " .Z " 的字符,表示此為一壓縮文件。
(1)壓縮文件
執(zhí)行格式:compress filename 壓縮文件
執(zhí)行格式:compressdir directory-name 壓縮目錄
(2)解壓縮還原文件
執(zhí)行格式:uncompress filename解壓文件
執(zhí)行格式:uncompressdir directory-name解壓目錄
管道的使用
================
執(zhí)行格式:command1 | command2
將 command1 執(zhí)行結(jié)果,送到 command2 做為 command2 的輸入。
Example:
$ ls -Rl | more
以分頁(yè)方式,列出目前目錄下所有文件,及子目錄的名稱。
$ cat file1 | more
以分頁(yè)方式,列出文件 file1 的內(nèi)容。
$ ps –ef | grep ora
列出正在執(zhí)行的包含字符串ora的進(jìn)程信息。
16、輸入輸出控制
(1)標(biāo)準(zhǔn)輸入的控制
執(zhí)行格式:command-line < file
將 file 做為 command-line 的輸入。
Example:
$mail -s "mail test"
user@sina.com < file1
將文件 file1 當(dāng)做信件的內(nèi)容,Subject 名稱為 mail test,送給收信人。
(2)標(biāo)準(zhǔn)輸出的控制
執(zhí)行格式:command > filename
將 command 的執(zhí)行結(jié)果,送至指定的 filename 中。
Example:
$ ls -l > list
將執(zhí)行 "ls -l" 命令的結(jié)果,寫(xiě)入文件 list 中。
執(zhí)行格式:command >! filename
同上,若 filename 的文件已經(jīng)存在,則強(qiáng)迫 overwrite。
Example:
$ ls -lg >! list
將執(zhí)行 "ls - lg" 命令的結(jié)果,強(qiáng)迫寫(xiě)入文件 list 中。
執(zhí)行格式:command >& filename
將 command 執(zhí)行時(shí),螢?zāi)簧纤a(chǎn)生的任何訊息,寫(xiě)入指定的 filename 中。
Example:
$ cc file1.c >& error
將編譯 file1.c 文件時(shí),所產(chǎn)生的任何訊息,寫(xiě)入文件 error 中。
執(zhí)行格式:command >> filename
將 command 執(zhí)行結(jié)果,附加(append)到指定的 filename 中。
Example:
$ ls - lag >> list
將執(zhí)行 "ls - lag" 命令的結(jié)果,附加(append)到文件 list 中。
執(zhí)行格式:command >>& filename
將 command 執(zhí)行時(shí),螢?zāi)簧纤a(chǎn)生的任何訊息,附加於指定的 filename中。
Example:
$ cc file2.c >>& error
將編譯 file2.c 文件時(shí),螢?zāi)凰a(chǎn)生的任何訊息,附加於文件 error 中。
17、系統(tǒng)用戶相關(guān)操作
(1)查看系統(tǒng)用戶
執(zhí)行格式: who 或 finger
執(zhí)行格式: w
執(zhí)行格式: finger username or finger username@domainname
(2)改變帳號(hào),進(jìn)入其他使用者的帳號(hào),擁有其使用權(quán)利。
執(zhí)行格式: su
Example:
$ su user 進(jìn)入使用者 user 的帳號(hào)
passwrod: 輸入使用者 user 的密碼,不執(zhí)行初始化文件。
$ su - user 進(jìn)入使用者 user 的帳號(hào)
passwrod: 輸入使用者 user 的密碼,執(zhí)行初始化文件。
(3)查看當(dāng)前用戶名:
執(zhí)行格式: who am i 查看 login 時(shí),自己的 username。
執(zhí)行格式: whoami 查看目前的 username。若已執(zhí)行過(guò) "su"命令(switch user),
則顯示出此 user 的 username。
(4)查看目前系統(tǒng)上所有主機(jī)的使用者:
執(zhí)行格式: rusers
=> 結(jié)束
與某主機(jī)上的終端用戶交談:
執(zhí)行格式: talk username@hostname 或 talk username@ip_address
Example:
1. 可先利用 rusers 指令查看網(wǎng)路上的使用者
2. 假設(shè)自己的帳號(hào)是 u84987 ,在主機(jī) indian 上使用,現(xiàn)在想要與 doc 上的
u84123 交互。
$talk u84123@doc ==> 此時(shí)螢?zāi)簧蠈?huì)出現(xiàn)等待畫(huà)面
在對(duì)方(u84123)螢?zāi)簧蠈?huì)出現(xiàn)下列訊息
Message from Talk_Daemon@Local_host_name at xx:xx
talk: connection requested by u84987@indian
talk: respond with: talk u84987@indian
此時(shí)對(duì)方(u84123) 必須執(zhí)行 talk u84987@indian 即可互相交互。
最後可按結(jié)束。
[i:044ce4a866][/i:044ce4a866]
18、文件編輯器 vi 的使用方法簡(jiǎn)介
vi是在UNIX系統(tǒng)上被廣泛使用的中英文編輯軟件。對(duì)初學(xué)者而言,常因其特殊的使用方法,而不得其門(mén)而入;對(duì)已經(jīng)在使用 vi 的使用者來(lái)說(shuō),也常見(jiàn)因?qū)?vi 的不熟悉或不夠了解,而無(wú)法發(fā)揮出 vi 強(qiáng)大的編輯能力,以下將介紹 vi 的使用方法簡(jiǎn)介。
操作列表:
進(jìn)入 vi
離開(kāi) vi
輸入模式
如何進(jìn)入輸入模式
如何離開(kāi)輸入模式
指令模式
游標(biāo)的移動(dòng)
屏幕的移動(dòng)
刪除、復(fù)制及修改指令介紹(delete、change、yank)
刪除與修改(delete、replace)
搬移與復(fù)制(delete/put、yank/put)
指令重覆
取消前一動(dòng)作(undo)
字符串搜尋
文件的連接與分行
環(huán)境的設(shè)定
ex 指令
其它方面
中文編輯
恢復(fù)編輯時(shí)被中斷的文件
編輯多個(gè)文件
vi 是 visual editor 的縮寫(xiě),是 UNIX 所提供的編輯器的一。它提供使用者一個(gè)
全屏幕的編輯環(huán)境。
..進(jìn)入vi
=======
直接執(zhí)行 vi編輯程式即可:
$vi test
此刻螢?zāi)簧蠒?huì)出現(xiàn) vi 的編輯窗口,同時(shí) vi 會(huì)將文件復(fù)制一份至內(nèi)存中的緩沖區(qū) (buffer) 。 vi會(huì)保留在磁盤(pán)中的文件不變,而先對(duì)緩沖區(qū)的文件案作編輯,編輯完成後,使用者可決定是否要取代原有的文件。
..離開(kāi)vi
=======
若在輸入模式下,則先利用《ESC》進(jìn)入指令模式,而後即可選用下列指令
離開(kāi)vi。
:q! 離開(kāi)vi,并放棄剛在緩沖區(qū)內(nèi)編輯的內(nèi)容。
:wq 將緩沖區(qū)內(nèi)的文件寫(xiě)入磁盤(pán)中,并離開(kāi)vi。
:ZZ 同wq。
:x 同wq。
:w 將緩沖區(qū)內(nèi)的文件寫(xiě)入磁盤(pán)中,但并不離開(kāi)vi。
:q 離開(kāi)vi,若文件被修改過(guò),則會(huì)被要求確認(rèn)是否放棄修改的內(nèi)容。
此指令可與:w 配合使用。
..vi 的操作模式
==============
vi 提供兩種操作模式:輸入模式(insert mode)和指令模式(command mode)
。當(dāng)使用者進(jìn)入 vi 後,即處在指令模式下,此刻鍵入的任何字符皆被視為
指令。在此模式下可進(jìn)行刪除、修改等動(dòng)作。若要輸入文件,則需進(jìn)入輸入
模式。
..輸入模式
=========
如何進(jìn)入輸入模式
a (append) 由游標(biāo)的後加入文件。
A 由該行的末加入文件。
i (insert) 由游標(biāo)的前加入文件。
I 由該行的首加入文件。
o (open) 新增一行於該行的下供輸入文件的用。
O 新增一行於該行的上供輸入文件的用。
如何離開(kāi)輸入模式
《ESC》 結(jié)束輸入模式。
..指令模式
=========
游標(biāo)的移動(dòng)
h 向左移一個(gè)字符。
j 向上移一個(gè)字符。
k 向下移一個(gè)字符。
l 向右移一個(gè)字符。
0 移至該行的首
$ 移至該行的末。
^ 移至該行的第一個(gè)字符處。
H 移至窗口的第一列。
M 移至窗口的中間那列。
L 移至窗口的最後一列。
G 移至該文件的最後一列。
+ 移至下一列的第一個(gè)字符處。
- 移至上一列的第一個(gè)字符處。
( 移至該句的首。 (注一)
) 移至該句的末。
{ 移至該段落的首。 (注二)
} 移至該段落的末。
nG 移至該文件的第 n 列。
n+ 移至游標(biāo)所在位置的後的第 n 列。
n- 移至游標(biāo)所在位置的前的第 n 列。
會(huì)顯示該行的行號(hào)、文件名稱、文件中最末行的行號(hào)、游標(biāo)
所在行號(hào)占總行號(hào)的百分比。
注一:句子(sentence)在vi中是指以『!』、『.』或『?』結(jié)束的一串字。
注二:段落(paragraph)在vi中是指以空白行隔開(kāi)的文字。
..窗口的移動(dòng)
===========
窗口往下卷一頁(yè)。
窗口往上卷一頁(yè)。
窗口往下卷半頁(yè)。
窗口往上卷半頁(yè)。
窗口往下卷一行。
窗口往上卷一行。
..刪除、復(fù)制及修改指令介紹 (此單元較少使用)
=========================
d(delete)、c(change)和y(yank)這一類的指令在 vi 中的指令格式為:
Operator + Scope = command
(運(yùn)算子) (范圍)
運(yùn)算子:
d 刪除指令。刪除文件,但會(huì)將刪除文件復(fù)制到內(nèi)存緩沖區(qū)。
y 將文件(字組、行列、句子或段落)復(fù)制到緩沖區(qū)。
p 放置(put)指令,與 d 和 y 配和使用?蓪⒆钺醖elete或yank的資
料放置於游標(biāo)所在位置的行列下。
c 修改(change)指令,類似delete與insert的組和。刪除一個(gè)字組、句
子等的文件,并插入新鍵文件。
范圍:
e 由游標(biāo)所在位置至該字符串的最後一個(gè)字符。
w 由游標(biāo)所在位置至下一個(gè)字符串的第一個(gè)字符。
b 由游標(biāo)所在位置至前一個(gè)字符串的第一個(gè)字符。
$ 由游標(biāo)所在位置至該行的最後一個(gè)字符。
0 由游標(biāo)所在位置至該行的第一個(gè)字符。
) 由游標(biāo)所在位置至下一個(gè)句子的第一個(gè)字符。
( 由游標(biāo)所在位置至該句子的第一個(gè)字符。
{ 由游標(biāo)所在位置至該段落的最後一個(gè)字符。
} 由游標(biāo)所在位置至該段落的第一個(gè)字符。
整行動(dòng)作
dd 刪除整行。
D 以行為單位,刪除游標(biāo)後的所有字符。
cc 修改整行的內(nèi)容。
yy yank整行,使游標(biāo)所在該行復(fù)制到內(nèi)存緩沖區(qū)。
..刪除與修改
===========
x 刪除游標(biāo)所在該字符。
X 刪除游標(biāo)所在的前一字符。
dd 刪除游標(biāo)所在該行。
r 用接於此指令的後的字符取代(replace)游標(biāo)所在字符。
如: ra 將游標(biāo)所在字符以 a 取代的。
R 進(jìn)入取代狀態(tài),直到《ESC》為止。
s 刪除游標(biāo)所在的字符,并進(jìn)入輸入模式直到《ESC》。
S 刪除游標(biāo)所在的該行文件,并進(jìn)入輸入模式直到《ESC》。
..搬移與復(fù)制
==========
利用 delete 及 put 指令可完成文件搬移的目的。
利用 yank 及 put 指令可完成文件復(fù)制的目的。
yank 和 delete 可將指定的文件復(fù)制到內(nèi)存緩沖區(qū),而藉由 put 指令
可將緩沖區(qū)內(nèi)的文件復(fù)制到螢?zāi)簧稀?
例:
搬移一行 .在該行執(zhí)行 dd
.游標(biāo)移至目的地
.執(zhí)行 p
復(fù)制一行 .在該行執(zhí)行 yy
.游標(biāo)移至目的地
.執(zhí)行 p
..指令重復(fù)
=========
在指令模式中,可在指令前面加入一數(shù)字 n,則此指令動(dòng)作會(huì)重復(fù)執(zhí)行 n
次。
例:
刪除10行 .10dd
復(fù)制10行 .10yy
.游標(biāo)移至目的地
.p
指標(biāo)往下移10行 .10j
..取消前一動(dòng)作(Undo)
===================
即復(fù)原執(zhí)行上一指令前的內(nèi)容。
u 恢復(fù)最後一個(gè)指令的前的結(jié)果。
U 恢復(fù)游標(biāo)該行的所有改變。
..搜尋
=====
在vi中可搜尋某一字符串,使游標(biāo)移至該處。
/字符串 往游標(biāo)的後尋找該字符串。
?字符串 往游標(biāo)的前尋找該字符串。
n 往下繼續(xù)尋找下一個(gè)相同的字符串。
N 往上繼續(xù)尋找下一個(gè)相同的字符串。
..文件的連接
===========
J 句子的連接。將游標(biāo)所在的下一行連接至游標(biāo)該行的後面。
若某行文件太長(zhǎng)亦可將其分成兩行,只要將游標(biāo)移至分開(kāi)點(diǎn),進(jìn)入輸入模式
(可利用 a、i等指令)再按《Enter》即可。
..環(huán)境的設(shè)定
===========
:set nu 設(shè)定文件的行號(hào)。
:set nonu 取消行號(hào)設(shè)定。
:set ai 自動(dòng)內(nèi)縮。
:set noai 取消自動(dòng)內(nèi)縮。
自動(dòng)內(nèi)縮(automatic indentation)
在編輯文件或程式時(shí),有時(shí)會(huì)遇到需要內(nèi)縮的狀況,『:set ai』即提供自
動(dòng)內(nèi)縮的功能,用下例解釋的:
.vi test
.(進(jìn)入編輯窗口後)
this is the test for auto indent
《Tab》start indent ← :set ai (設(shè)自動(dòng)內(nèi)縮)
《Tab》data
《Tab》data
《Tab》data ← :set noai (取消自動(dòng)內(nèi)縮)
the end of auto indent.
.注: 可刪除《Tab》字符。
..ex指令
=======
讀寫(xiě)文件
:w 將緩沖區(qū)的文件寫(xiě)入磁盤(pán)中。
:10,20w test 將第10行至第20行的文件寫(xiě)入test文件。
:10,20w>>test 將第10行至第20行的文件加在test文件的後。
:r test 將test文件的文件讀入編輯緩沖區(qū)的最後。
刪除、復(fù)制及搬移
:10,20d 刪除第10行至第20行的文件。
:10d 刪除第10行的文件。
:$d 刪除整個(gè)編輯緩沖區(qū)。
:10,20co30 將第10行至第20行的文件復(fù)制至第30行的後。
:10,20mo30 將第10行至第20行的文件搬移至第30行的後。
字符串搜尋與取代
s(substitute)指令可搜尋某行列范圍。
g(global)指令則可搜尋整個(gè)編輯緩沖區(qū)的文件。
s指令以第一個(gè)滿足該條件的字符串為其取代的對(duì)象,若該行有數(shù)個(gè)滿足該條
件的字符串,也僅能取代第一個(gè),若想取代所有的字符串則需加上g參數(shù)。
:1,$s/old/new/g 將文件中所有的『old』改成『new』。
:10,20s/^/ / 將第10行至第20行文件的最前面插入5個(gè)空白。
:$s/old/new/g 將編輯緩沖區(qū)中所有的『old』改成『new』。
..恢復(fù)編輯時(shí)被中斷的文件
=======================
在編輯過(guò)程中,若系統(tǒng)當(dāng)?shù)艋蜻B線中斷,而緩沖區(qū)的文件并還未
被寫(xiě)回磁盤(pán)時(shí),當(dāng)再度回到系統(tǒng),執(zhí)行下列指令即可回復(fù)中斷前
的文件內(nèi)容。
$vi -r filename
..編輯多個(gè)文件
=============
vi亦提供同時(shí)編輯多個(gè)文件的功能,方法如下:
$vi file1 file2 ..