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