天天看點

UNIX系統操作入門

1..登入步驟

=========

login : _______ => 輸入 username

password : _______ => 輸入密碼

2..退出步驟

=========

% logout

或 % exit

或 % <CTRL><d>

3.更改帳号密碼

============

% passwd => 執行後将會出現下列訊息

Changing NIS password for user on ice.

Old password: ______ => 輸入舊密碼

New password: ______ => 輸入新密碼(最好6-8字,英文字母與數字混合)

Retype new password: ______ => 再輸入一次密碼

4.線上指令說明

============

執行格式: man command-name

Example: % man ls

5.進入遠端電腦系統

================

執行格式:rlogin hostname [-1 username]

Example:

%rlogin doc

remote login 進入工作站 doc 中。

%rlogin doc -l user

使用 user 帳号進入工作站 doc 中。

執行格式:telnet hostname 或 telnet IP address

Example:

%telnet doc or %telnet 140.109.20.251

6.檔案或目錄處理

==================

6.1.列出檔案或目錄下之檔案名稱

執行格式: ls [-atFlgR] [name] ( name 可為檔案名或目錄名稱。)

Example :

ls 列出目前目錄下之檔案名。

ls -a 列出包含以.起始的隐藏檔所有檔案名。

ls -t 依照檔案最後修改時間之順序,依序列出檔案名。

ls -F 列出目前目錄下之檔案名及其類型。"/" 結尾表示為目錄名稱,

"*" 結尾表示為執行檔,"@" 結尾表示為 symblic link。

ls -l 列出目錄下所有檔案之許可權、擁有者、檔案大小、修改時間及名稱。

ls -lg 同上,并顯示出檔案之擁有者群組名稱。

ls -R 顯示出目錄下,以及其所有子目錄之檔案名。( recursive listing )

6.2.目錄之縮寫:

===========

~ 使用者 login 時的 working directory ( 起始目錄 )

~username 指定某位 user 的 working directory ( 起始目錄 )

.. 目前的工作目錄 ( current working directory )

.. 目前目錄的上一層目錄 ( parent of working directory)

6.3.改變工作目錄位置

================

執行格式: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 ) 之目錄位置下。

6.4.複制檔案

========

執行格式: cp [-r] source destination

Example:

cp file1 file2 将檔案 file1 複制成 file2

cp file1 dir1 将檔案 file1 複制到目錄 dir1 下,檔案名仍為 file1。

cp /tmp/file1 . 将目錄 /tmp 下的檔案 file1 複制到現行目錄下,檔案名仍為 file1。

cp /tmp/file1 file2 将目錄 /tmp 下的檔案 file1 複制到現行目錄下,檔案名為 file2□

cp -r dir1 dir2 (recursive copy) 複制整個目錄。

若目錄 dir2 不存在,則将目錄 dir1,及其所有檔案和子目錄,複制到目錄 dir2 下,新目錄名稱為 dir1。若目錄 dir2 不存在,則将dir1,及其所有檔案和子目錄,複制為目錄 dir2。

6.5.移動或更改檔案、目錄名稱

========================

執行格式: 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.6.建立新目錄

==========

執行格式: mkdir directory-name

Exmaple :

mkdir dir1 建立一新目錄 dir1。

6.7.删除目錄

========

執行格式: rmdir directory-name 或 rm directory-name

Example :

rmdir dir1 删除目錄 dir1,但 dir1 下必須沒有檔案存在,否則無法删除。

rm -r dir1 删除目錄 dir1,及其下所有檔案及子目錄。

6.8.删除檔案

========

執行格式: rm filename (filename 可為檔案名,或檔案名縮寫符号。)

Example :

rm file1 删除檔案名為 file1 之檔案。

rm file? 删除檔案名中有五個字元,前四個字元為file 之所有檔案。

rm f* 删除檔案名中,以 f 為字首之所有檔案。

6.9.檔案名的縮寫符号

==============

? 代表檔案名稱中之單一字元。

* 代表檔案名稱中之一字串。

6.10.列出目前所在之目錄位置

======================

執行格式: pwd

7.檢視檔案内容

============

執行格式: cat filename

Example :

cat file1 以連續顯示方式,檢視檔案名 file1 之内容。

執行格式: more filename 或 cat filename | more

Example :

more file1 以分頁方式,檢視檔案名 file1 之内容。

cat file1 | more 同上。

8.檢視目錄所占磁盤容量

====================

執行格式: du [-s] directory

Example :

du dir1 顯示目錄 dir1 的總容量及其次目錄的容量(以 k byte 為容量)。

du -s dir1 顯示目錄 dir1 的總容量。

9.檢視自己的 disk quota 使用狀況

==============================

disk quota : 工作站磁盤空間的使用限額。

執行格式: quota -v

Example :

quota -v 将會顯示下列訊息

Filesystem usage quota limit timeleft files quota limit timelef.

/home/ice/u01

9344 8192 12288 1.9 days 160 0 0

欄位解說:

usage : 目前的磁盤用量。

quota : 你的磁盤使用額度。當你的 usage 超過 quota 時,雖然可以繼續使用,但是必須七天之内降到 quota 以下,否則即使用量沒有超 limit(最高限額),也無法再寫入或複制任何檔案。

limit : 最高使用額度。當你的 usage 達到 limit 時,無法再寫入或複制任何檔案。

10.檔案模式之設定

==============

10.1.改變檔案或目錄之讀、寫、執行之允許權

======================================

執行格式:chmod [-R] mode name

( name 可為檔案名或目錄名;mode可為 3 個 8 位元之數字,或利用ls -l 指令,列出檔案或目錄之讀、寫、執行允許權之文字縮寫。)

mode : rwx rwx rwx r:read w:write x:execute

user group other

縮寫 : (u) (g) (o)

Example :

%chmod 755 dir1

将目錄dir1,設定成任何使用者,皆有讀取及執行之權利,但隻有擁有者可做修改。

%chmod 700 file1

将檔案file1,設定隻有擁有者可以讀、寫和執行。

%chmod o+x file2

将檔案file2,增加擁有者可以執行之權利。

%chmod g+x file3

将檔案file3,增加群組使用者可執行之權利。

%chmod o-r file4

将檔案file4,除去其它使用者可讀取之權利。

10.2.改變檔案或目錄之擁有權

========================

執行格式:chown [-R] username name ( name 可為檔案名或目錄名。)

Example :

%chown user file1

将檔案 file1 之擁有權,改為使用者 user 所有。

%chown -R user dir1

将目錄 dir1,及其下所有檔案和子目錄之擁有權,改為使用者 user 所有。

10.3.檢查自己所屬之群組名稱

======================

執行格式:groups

10.4.改變檔案或目錄之群組擁有權

============================

執行格式:chgrp [-R] groupname name ( name 可為檔案名或目錄名 )

Example :

%chgrp vlsi file1

将檔案 file1 之群組擁有權,改為 vlsi 群組。

%chgrp -R image dir1

将目錄dir1,及其下所有檔案和子目錄,改為 image 群組。

10.5.改變檔案或目錄之最後修改時間

==============================

執行格式:touch name ( name 可為檔案或目錄名稱。)

11.檔案之連結

==========

同一檔案,可擁有一個以上之名稱,可将檔案做數個連結。

執行格式:ln oldname newname ( Hard link )

Example :ln file1 file2

将名稱 file2,連結至檔案 file1。

執行格式:ln -s oldname newname ( Symblick link )

Example :ln -s file3 file4

将名稱 file4,連結至檔案file3。

12.檔案之字串找尋

==============

執行格式:grep string file

Example :grep abc file1

尋找檔案file1中,列出字串 abc 所在之整行文字内容。

13.找尋檔案或指令之路徑

====================

執行格式:whereis command ( 顯示指令之路徑。)

執行格式:which command ( 顯示指令之路徑,及使用者所定義之别名。)

執行格式:whatis command ( 顯示指令功能之摘要。)

執行格式:find search-path -name filename -print

( 搜尋指定路徑下,某檔案之路徑 。)

Example :

%find / -name file1 -print ( 自根目錄下,尋找檔案名為 file1 之路徑。.

14.比較檔案或目錄之内容

====================

執行格式:diff [-r] name1 name2 ( name1 name2 可同時為檔案名,或目錄名稱。)

Example :

%diff file1 file2

比較檔案 file1 與 file2 内,各行之不同處。

%diff -r dir1 dir2

比較目錄 dir1 與 dir2 内,各檔案之不同處。

15.檔案列印輸出

============

使用者可用 .login 檔中之 setenv PRINTER,來設定列印資料時的列印機名。

printername :sp1 或 sp2 (1005 教室)

Example :

%setenv PRINTER sp2 設定自 sp2 列印資料。

15.1.一般檔案之列印

==============

執行格式:lpr [-Pprinter-name] filename

%lpr file1 或 lpr -Psp2 file1

自 sp2,列印檔案 file1。

執行格式:enscript [-Pprinter-name] filename

%enscript file3 或 enscript -Psp1 file3

自 sp1 列印檔案 file3。

15.2.troff 檔案之列印

==================

執行格式:ptroff [-Pprinter-name] [-man][-ms] filename

%ptroff -man /usr/local/man/man1/ptroff.1

以 troff 格式,自 Apple laser writer 列印 ptroff 指令之使用說明。

%ptroff -Psp2 -man /usr/man/man1/lpr1

以 troff 格式,自 sp2 列印 lpr 指令之使用說明。

16.列印機控制指令

==============

16.1.檢查列印機狀态,及列印工作順序編号和使用者名稱

================================================

執行格式:lpq [-Pprinter -name]

%lpq 或 lpq -Psp1

檢查 sp1 列印機之狀态。

16.2.删除列印機内之列印工作 ( 使用者僅可删除自己的列印工作 )

========================

執行格式:lprm [-Pprinter -name] username 或 job number

%lprm user 或 lprm -Psp1 user

删除 sp1 中,使用者 user 的列印工作,此時使用者名稱必須為 user。

%lprm -Psp2 456

删除 sp2 編号為 456 之列印工作。

17.Job 之控制

===========

UNIX O.S.,可於 foregrourd 及 background 同時處理多個 process。

一般使用者執行指令時,皆是在 foreground 交談式地執行 process,亦可将 process置於 background 中,以非交談式來執行 process。

17.1.檢視系統之 process

====================

執行格式:ps [-aux]

Example:

%ps 或 ps -x (檢視系統中,屬於自己的 process。)

%ps -au (檢視系統中,所有使用者的 process。)

%ps -aux (檢視系統中,包含系統内部,及所有使用者的 process。)

17.2.結束或終止 process

====================

執行格式:kill [-9] PID ( PID 為利用 ps 指令所查出之 process ID。)

Example:

%kill 456 或 kill -9 456

終止 process ID 為 456 之 process。

17.3.在 background 執行 process 的方式

===================================

執行格式:command & (於 command 後面加入一 "&" 符号即可。)

Example:

%cc file1.c &

将編譯 file1.c 檔案之工作,置於 background 執行。

執行格式:按下 "Control Z" 鍵,暫停正在執行的 process。鍵入 "bg" 指令,

指令,将所暫停的 process,置入 background 中繼續執行。

Example:

%cc file2.c

^Z

Stopped

%bg

17.4.檢視正在 background 中執行的 process

======================================

執行格式:jobs

17.5.結束或終止在 background 中的 process

======================================

執行格式:kill %n

(n 為利用 "jobs" 指令,所檢視出的 background job 編号)

Example:

%kill % 終止在 background 中的第一個 job。

%kill %2 終止在 background 中的第二個 job。

18.shell varialbe

==============

18.1.檢視 shell variable 之設定值

==============================

執行格式:set 檢視所有 shell variable 之設定值。

%set

執行格式:echo $variable-name 顯示指定的 shell variable 之設定值。

%echo $PRINTER

sp1

18.2.設定 shell variable

=====================

執行格式:set var = value

Example:

%set term=vt100

設定 shell variable "term" 為 VT100 終端機之型式。

18.3.删除 shell variable

=====================

執行格式:unset var

Example:

%unset PRINTER

删除 shell variable "PRINTER" 之設定值。

19.environment variable

=====================

19.1.檢視 environment variable 之設定值

====================================

執行格式:setenv 檢視所有 environment variable 之設定值。

Example: %setenv

執行格式:echo $NAME 顯示指定的 environment variable "NAME" 之設定值。

Example:

%echo $PRINTER

顯示 environment variable "PRINTER" 列印機名稱之設定值。

19.2.設定 environment variable

===========================

執行格式:setenv NAME word

Example:

%setenv PRINTER sp1

設定 environment variable "PRINTER" 列印機名稱為 sp1。

19.3.删除 environment variable

===========================

執行格式:unsetenv NAME

Example:

%unsetenv PRINTER

删除 environment variable "PRINTER" 列印機名稱之設定值。

20.alias

=====

20.1.檢視所定義的指令之 alias

==========================

執行格式: alias 檢視自己目前定義之所有指令,及所對應之 alias 名稱。

執行格式: alias name 檢視指定之 alias 名稱所定義之指令。

Example:

%alias dir (檢視别名 dir 所定義之指令)

ls -atl

20.2.定義指令之 alias

==================

執行格式: alias name 'command line'

Example:

% alias dir 'ls -l'

将指令 "ls - l" 定義别名為 dir。

20.3.删除所定義之 alias

====================

執行格式: unalias name

Example:

%unalias dir (删除别名為 dir 之定義。)

%unalias * (删除所有别名之設定。)

21.history

=======

21.1.設定指令記錄表之長度

======================

執行格式: set history = n

Example:

%set history = 40

設定指令記錄表之長度為 40 (可記載執行過之前面 40 個指令)。

21.2.檢視指令記錄表之内容

======================

執行格式: history

21.3.使用指令記錄表

================

執行格式: !!

Example: %!! (重覆執行前一個指令)

執行格式: !n ( n 為指令記錄表之指令編号。)

Example: %!5 ( 執行指令記錄表中第五個指令。)

執行格式: !string ( 重覆前面執行過以 string 為起始字元之指令。)

Example: %!cat ( 重覆前面執行過,以 cat 為起始字元之指令。)

21.4.顯示前一個指令之内容

======================

執行格式: !!:p

21.5.更改前一指令之内容并執行之

============================

執行格式: ^oldstring ^newstring

将前一指令中 oldstring 的部份,改成 newstring,并執行之。

Example:

%find . -name file1.c -print

^file1.c^core

%find . -name core -print

注:檔案 core 為執行程式或指令發生錯誤時,系統所産生的檔案。作為偵錯(debug)之□,因其所占空間極大,通常将之删除。

22.資料之壓縮

==========

為了避免不常用的檔案或資料,占用太大的磁盤空間,請使用者将之壓縮。欲使用壓縮過的檔案或資料前,将之反壓縮,即可還原成原來之資料型式。凡是經過壓縮處理之檔案,會在檔案名後面附加 " .Z " 之字元,表示此為一壓縮檔案。

22.1.壓縮資料

==========

執行格式:compress filename 壓縮檔案

執行格式:compressdir directory-name 壓縮目錄

22.2.解壓縮還原資料

================

執行格式:uncompress filename 反壓縮檔案

執行格式:uncompressdir directory-name 反壓縮目錄

23.pipe-line 之使用

================

執行格式:command1 | command2

将 command1 執行結果,送到 command2 做為 command2 的輸入。

Example:

%ls -Rl | more

以分頁方式,列出目前目錄下所有檔案,及子目錄之名稱。

%cat file1 | more

以分頁方式,列出檔案 file1 之内容。

24.I/O control

===========

24.1.标準輸入之控制

================

執行格式:command-line < file

将 file 做為 command-line 之輸入。

Example:

%mail -s "mail test" [email protected] < file1

将檔案 file1 當做信件之内容,Subject 名稱為 mail test,送給收信人。

24.2.标準輸出之控制

================

執行格式:command > filename

将 command 之執行結果,送至指定的 filename 中。

Example: %ls -l > list

将執行 "ls -l" 指令之結果,寫入檔案 list 中。

執行格式:command >! filename

同上,若 filename 之檔案已經存在,則強迫 overwrite。

Example: %ls -lg >! list

将執行 "ls - lg" 指令之結果,強迫寫入檔案 list 中。

執行格式:command >& filename

将 command 執行時,螢幕上所産生的任何訊息,寫入指定的 filename 中。

Example: %cc file1.c >& error

将編譯 file1.c 檔案時,所産生之任何訊息,寫入檔案 error 中。

執行格式:command >> filename

将 command 執行結果,附加(append)到指定的 filename 中。

Example: %ls - lag >> list

将執行 "ls - lag" 指令之結果,附加(append)到檔案 list 中。

執行格式:command >>& filename

将 command 執行時,螢幕上所産生的任何訊息,附加於指定的 filename中。

Example: %cc file2.c >>& error

将編譯 file2.c 檔案時,螢幕所産生之任何訊息,附加於檔案 error 中。

25.檢視系統中的使用者:

===================

執行格式: who 或 finger

執行格式: w

執行格式: finger username or finger username@domainname

26.改變自己的 username 進入其他使用者的帳号,擁有其使用權利。

=========================================================

執行格式: su username

Example:

%su user 進入使用者 user 之帳号

passwrod: 輸入使用者 user 之密碼

27.檢視 username:

==============

執行格式: who am i 檢視 login 時,自己的 username。

執行格式: whoami 檢視目前的 username。若已執行過 "su"指令(switch user),則顯示出此 user 之 username。

28.檢視目前系上所有工作站的使用者:

===============================

執行格式: rusers

<CTRL><C> => 結束

29.與某工作站上的使用者交談:

=========================

執行格式: talk username@hostname 或 talk username@ip_address

Example:

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 即可互相交談。

最後可按<CRTL><C>結束。

30.檢查遠端電腦系統是否正常

========================

執行格式:ping hostname 或 ping IP-Address

Example:%ping doc