UNIX Basics

登入工作站 | 更改密碼 | 檔案目錄處理 | 改變檔案權限 | vi 的使用


登錄工作站

執行格式:

telnet hostname

telnet ip-address


Example:

telnet sun1.fg.tp.edu.tw

telnet 203.64.52.1

目前可用的工作站如下:sun1, sun2


登入步驟

login : _______ => 輸入 username

password : _______ => 輸入密碼

登出步驟

% logout 或

% exit 或

% <CTRL><d>


更改帳號密碼

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

Changing password for user on 'hostname'.

Old password: ______ => 輸入舊密碼

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

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


檔案或目錄處理


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

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

Example :

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

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

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

ls -F 列出目前目錄下之檔名及其類型。"/" 結尾表示為目錄名稱, "*" 結尾表示為執行檔,"@" 結尾表示為 symblic link。

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

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

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


目錄之縮寫

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

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

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

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


改變工作目錄位置

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

pwd 檢視現用哪一個目錄


複製檔案

執行格式: 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。


搬移或更改檔案、目錄名稱

執行格式: 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。


建立新目錄


執行格式: mkdir directory-name

Exmaple :

mkdir dir1 建立一新目錄 dir1。

刪除目錄

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

Example :

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

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


刪除檔案

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

Example :

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

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

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


檔名的縮寫符號

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

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


查看自己的 disk quota 使用狀況

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


執行格式: quota -v

Example :

quota -v 將會顯示下列訊息

Filesystem      usage   quota   limit   timeleft  files quota  limit timeleft
/home/u1/d9352701  9344   8192  12288  1.9 days    160   0   0

欄位解說:

usage : 目前的磁碟用量。

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

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


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

執行格式: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,除去其它使用者可讀取之權利。


改變檔案或目錄之擁有權

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

Example :

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

%chown -R user dir1
 將目錄 dir1,及其下所有檔案和子目錄之擁有權,改為使用者 user 所有。


檢查自己所屬之群組名稱

執行格式:groups


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

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

Example :

%chgrp vlsi file1
 將檔案 file1 之群組擁有權,改為 vlsi 群組。


%chgrp -R image dir1
 將目錄dir1,及其下所有檔案和子目錄,改為 image 群組。


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

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


vi 使用簡介

  1. 當要建立或編輯一個文字檔, 可用此命令, 例鍵入 vi aaa 得如下之畫面 :

_    <--- 游標所在位置
~
~
~
~
~    <--- 這些代表空行
~
~
~
~
~
~
~

"aaa" [New file]

 

  1. 此時若要輸入字元, 需先鍵入命令 a、A、i、I、o、O 中的其中一個然後再輸入本文, 其中若鍵入 <┘將新增一行並可繼續輸入, 輸入完畢後要按下 ESC 鍵, 此時若要結束 存檔鍵入 :wq 即可。
  1. 以上程序包含了 vi 的主要三個模式 :

基本的 vi 命令

命  令 意  義
vi filename 編輯或建立檔案
vi +18 filename 開啟檔案到第 18 行
vi +/"mustard greens" filename 開啟檔案到第一個出現 "mustard green" 處
vi -r filename 編輯上次編輯中斷的檔案
view filename 開啟檔案為僅讀
h 向左移一個字元
j 向下移一個字元
k 向上移一個字元
l 向右移一個字元
ESC 進入命令狀態
w 向右移一個字
W 向右移一個字(通過標點符號)
b 向左移一個字
B 向左移一個字(通過標點符號 )
Return 向下移一行
Backspace(倒退鍵) 向左移一個字元
Space Bar(空白鍵) 向右移一個字元
H 移至螢幕頂端
M 移至螢幕中間
L 移至螢幕底部
Ctrl-F 向前捲動一個螢幕
Ctrl-D 向前捲動半個螢幕
Ctrl-B 向後捲動一個螢幕
Ctrl-U 向後捲動半個螢幕
a 在游標右方插入字元
A 在行尾游標右方插入字元
i 在游標左方插入字元
I 在行首游標左方插入字元
o 在游標下面插入一行
O 在游標上面插入一行
cw 改變字 (一個字當中游標的右方部份)
cc 改變行
C 改變一行中游標右方的部份
s 以字串代替游標所在的字元
r 以另一字元代替游標所在的字元
r-Return 將行切斷
J 將目前行和下一行連結
xp 將游標所在字元與右邊字元對調
∼  改變字母大小寫
u 取消前一個命令
U 取消對行所作的所有改變
:u 取消前一個最後一行命令
x 刪除字元
dw 刪除字 (一個字當中游標的右方部份)
dd 刪除行
D 刪除本行中游標右邊的部份
:5,10 d 刪除第 5 行到第 10 行
yy yank 或複製行
Y yank 或複製行
:5,10y 將第 5 行到第 10 行 yank 起來
P 將 yanked 或要刪除的行放在目前行的上面
p 將 yanked 或要刪除的行放在目前行的下面
:2,6 co 8 複製第 2 行到第 6 行並置於第 8 行後
:4,5 m 6 將第 4 行到第 5 行搬移至第 6 行後
:set nu (或 set number) 設定行號
:set nonu (或 set nonumber) 隱藏行號
G 到檔案的最後一行
21G 到第 21 行
/string/ 搜尋字串
?string? 往回搜尋字串
n 找尋字串下一次出現的地方
N 找尋字串上一次出現的地方
s/search-string/replace-string/g 搜尋字串並替換字串
^ 表示行的最前頭
. 表示目前之行
$ 表示檔案最後一行
% 表示整個編輯緩衝區
Ctrl-L 清除螢幕
:r filename 讀取檔案於游標所在行以後
:34 r filename 34 行以後讀入檔案
:w 儲存檔案
:w filename 儲存於所指定的檔案
:wq 儲存內容並跳出 vi
ZZ 儲存內容並跳出 vi
:q! 跳出 vi 但不儲存內容

 


Last update : Tuesday, 2000-09-26