| 一 、有關線上查詢的指令 | Tru64 V5 Utilities & Commands Tru64 System Administration V5 |
格式:man command
command 為 UNIX 所接受的命令
#
man man
#
man pwd
*另外有一常用指令 #
man sectionnumber command
2.man -k keyword 列出和 keyword 相關的所有線上使用手冊內容。
Example:
#
man -k editor
3.who 查詢目前進入系統的使用者。
#
who
#
w
4.finger 查詢目前進入系統的使用者。
#
finger
5.date 顯示現在之年、月、日、時間及星期。
#
date
Mon Jan 18 11:43 CST 2005
6.quota 使用者可使用之磁碟空間(Kbyte)及檔案個數查詢。
#
quota -v
7.du 顯示每一個檔案或目錄所佔的 block 數。
格式: du [option] [dirname]
Option:
-s 僅顯示使用 block 數的總和
Example:
#
du
#
du -s
二 、有關檔案和目錄的指令
1.pwd 列出現在的工作目錄
#
pwd
所顯示如下行所示
/usr/user/wly
2.ls 列出目錄內的檔案名稱
格式:ls [options][directory][file]
options:
-a 印出全部的檔案。
-l 列出檔名外,並加上各種資訊。
-F 加此參數則會在目錄檔後加上/,執行檔後加上*,鏈結檔後加上@,其餘為一般檔案。
-g 列出檔案的所屬群體名稱。
-t 列出的檔名依日期排序,若沒指定則依檔名排序。
examples:
#
ls
dir1 file.1
#
ls -a
. .login file.1 dir1
.. .cshrc file.2 dir2
#
ls -lg
total 4
drwxr-xr-x 3 wly student 2048 Oct 14 10:30 bin
-rwxr-xr-x 1 wly student 233 Sep 11 09:38 letter
#
第一行total 4 表示 bin,letter 所佔的記憶體容量(以block為單位)
有關每個目錄、檔案的資訊,說明如下:
| - rwxr-xr-x | 1 | w8717017 | student | 233 | Sep 11 09:38 | letter |
| (1) (2) | (3) | (4) | (5) | (6) | (7) | (8) |
(1)檔案型態
d 表目錄
c 表字元式特殊檔案
b 表區塊式特殊檔案
l 表鏈結檔案數
- 表一般檔案
s 表 socket 檔
(2)使用權:表示誰有權去讀取及使用此檔案,從左至右3字元為一組, 分成自己、群體及其它三部份,其中
r 表讀取
w 表寫入
x 表執行
- 表對應項目的動作不被執行
(3)鏈結次數:是指鏈結至該檔的數目,以目錄而言,表示在檔案系統中的目錄個數。
(4)檔案擁有者:該檔的擁有者。
(5)檔案所屬群體:該檔的所屬群體。
(6)字元個數:即檔案大小,以位元(byte)為單位。
(7)最後一次修改的日期與時間:為檔案最後一次修改的日期與時間。
(8)檔案名稱
3. mkdir 建立目錄
格式:mkdir directory1 [directory2 ...]
#
mkdir dir1 dir2
4.cd 改變目前的工作目錄
格式:cd [directory]
#
cd dir1
5.mv 移動或更改檔案名稱
格式:mv [options] file1 file2
mv [options] file dir
options:
-i 可避免覆蓋原有的檔案。
-f 強制覆蓋原有的檔案。
examples:
#
mv file.1 file.2
#
mv -i file.2 file.2
#
mv -f file.2 file.3
6. rm 刪除檔案
格式:rm [options] file1 file2 file3 ...
options:
-i 刪除檔案前會先詢問
-f 強制刪除檔案
-r 刪除目錄及其下所有檔案、子目錄
examples:
#
rm file.1 file.2 file.3
#
rm -r dir1
*用 rm 刪除的檔案將永久的被刪除,救不回來。
7. rmdir 刪除目錄
格式:rmdir directory
#
rmdir dir1
*被刪除的目錄必須是空的亦即不包含任何檔案或次目錄。
8.cp 複製檔案
格式:cp [options] file1 file2
cp [options] dir1 dir2
cp [options] file directory
options:
-i 可避免覆蓋原有的檔案
-r 拷備目錄及其下所有檔案、子目錄
examples:
#
cp file.1 file.2
#
cp file.1 dir1
#
cp -r dir1 dir2
9. chmod 更改檔案使用權
格式:chmod mode filename ...
mode 有 兩 種
.絕對模式為一8進位數字
400 即 r-- --- --- (100 000 000)僅檔案擁有者可讀取
777 即 rwx rwx rwx (111 111 111)任何人都可對該檔做讀取、寫入、執行等動作
700 即 rwx --- --- (111 000 000)僅檔案擁有者可讀取寫入、執行
.符號模式 其格式如下:
[who] op permission [op permission] ..
who 可以是
u 檔案擁有者的存取權
g 檔案所屬群體的存取權
o 其它使用者的存取權
a 全部使用者的存取權
*如果省略此參數,則預設值為 a
op可以是
+ 開放存取權
- 取消存取權
= 設定存取權
permission 可以是
r 讀取權
w 寫入權
x 執行權
examples:
#
chmod o-w file 開放 file 寫入權給其它使用者
#
chmod 700 file 僅檔案擁有者可對 file 做讀取、寫入、 執行的動作
三、顯示檔案內容
1.cat 顯示檔案內容,類似於 DOS 的type。格式:cat [options] filename
options:
-n 產生行號
-s 檔案中連續空白行,僅輸出一行
examples:
#
cat -n file.1
#
cat -s file.2
2. more 顯示檔案內容, 每次僅顯示一個螢幕之檔案內容。
格式:more [options] filename
options:
+line number 從第 n 行開始顯示
+/pattern 從含有 pattern 的前兩行開始顯示
-d 設定列印行數
在more中常用之指令如下:
space 鍵 往下捲動一個螢幕
enter 鍵 往下捲動一行,鍵入數字後,再按 enter 可向下捲動指定之行數
q 鍵停止輸出
#
more -d20 more.man 一次顯示 20 行
#
more +50 more.man 從第 50 行開始顯示
#
more +/terminal more.man 從含有 terminal 的前兩行開始顯示
3.head 從檔首開始顯示n行資料。
格式:head [-n] [file]
Example:
#
head file1 顯示前 10 行資料,如果沒有指定列數,預設值為 10 行。
#
head -20 file1 顯示前 20 行資料。
4.tail 從檔尾向前算起顯示 n 行資料。
格式:tail [-/+n][files]
Option:
+ 從第 n 行開始顯示。
- 從檔尾向前算起顯示 n 行資料。
Example:
#
tail -20 file 1
#
history |tail -5
<Back to Top>
四、有關列印的指令
1. lp 送印指令格式:lp [options] filename ....
options:
-Pprinter 指定印表機,若省略此參數,則指預設印表機lp
(目前中心的列表機有 lp系統印表機 )
-m 當檔案列印完畢,會送一個訊息給使用者
-#n 列印n份
examples:
#
lp file
#
lp file.1 file.2 file.3
#
man lp | lpr -m
#
cat file.1 file.2 | lp -#3
2. lpq 查詢 printer queue ,當你的檔案送印後,可用此指令查詢是否送印成功
格式:lpq [options]
options:
-Pprinter 指定印表機,若省略此參數,則指預設印表機 lp
examples:
#
lpq
#
lpq -Plp
3. lprm 取消已送印的檔案
格式:lprm [options] job#
options:
-Pprinter 印表機,若省略此參數,則為預設印表機 lp
-username 將此user欲列印的檔案取消,若省略此參數,則指自己
examples:
lpq -Plp
Rank Owner Job Files Total Size
1st user1 235 test.1 38 bytes
2nd user1 236 test.2 38 bytes
3rd user1 237 test.3 300 bytes
#
lprm -Plp 236 237
4.pr 調整檔列印格式, 先產生在螢幕, 確定無誤後再用 lp 送印表機列印。
格式:pr [option][filename]
Option:
-ln 設定頁長
-n 產生 n 欄的報表。
+n 從第 n 頁開始列印。
-h 下一個參數當報表表頭。
Example:
#
pr -150 -h "THE OUTPUT REPORT" file1
產生頁長為 50, 表頭為"THE OUTPUT REPORT"的報表。
五、有關搜尋的指令
1.which 查詢某一個執行檔位於 path 的那一個目錄下。Example:
#
which vi
/usr/ucb/vi
2.find 尋找檔案
格式:find path expression
Option:
-name filename 如有 filename 匹配現在檔案名稱則為真。 -print 顯示檔案名稱。
-type
d表目錄;
f表一般檔案;
c表字元特殊檔案;
b表區域特殊檔案;
l符號連結檔。
-exec command
-size n
-user
Example:
#
find 找出使用者目錄底下所有.c的檔案。
#
find 將使用者目錄下所有檔案大小為0的檔案刪除。
#
find 將使用者目錄下所有目錄檔案列出。
3.grep 從某一檔案中, 找出符合條件的資料列。
格式: grep [option] pattern filename
Option:
-c 只顯示符合條件的列數
-i 忽略大小寫
-n 顯示時加行號
-v 顯示不符合條件的列資料
-w 將 pattern 視為一個字 (Word) 來處理
#
ps -aux |grep elm 找出 process 中,含有 elm 字眼的 process
#
grep -n meeting * 在目前目錄下,找出含有 meeting 字眼的檔案並列出是在該檔的第幾行。
grep的一些應用:
(1)#
grep 'thing' file1 列出該行中含有 thing 字眼的料,
該行可能含有 thing, things,somethings 只要含有 thing 即將其印出。
(2)#
grep 's.nd' file1 可代換為任一字元,只要是以 s 開頭 nd結尾的字,
都將其印出, ex:sand or send。
(3)#
grep '[l -s]end' file1 列出以l, m, n...s字元開頭,
end結束的資料行, ex:lend、mend、send。
(4)#
grep '[Mm]end' file1 列出含Mend or mend 的列資料。
(5)#
grep '^some' file1 列出以 some 為行開頭的資料行, ex:someone or somewhere。
(6)#
grep '\' file1 列出含有!的資料行。
六、檔案資料處理的指令
1.wc 計算檔案的列數, 字數及字元數格式:wc [option][filename]
Option:
-l 只計算列數(Line)
-w 只計算字數(Word)
-c 只計算字元數(Character)
Example:
#
wc file1
#
who |wc -l
2.diff 比較兩個文字檔案的差別。
格式:diff finename1 filename2
Option:
- 從標準輸入讀取。
-b 忽略前置空格。
-d 按字典順序, 僅字母數字空格才有效。
-n 以數值來做排序。
-r revers反方向順序排序。
-o 將output存於下個引數中指定的檔案, 否則 sort 會將排序結果送到螢幕顯示。
-tc 欄位間以字元 c 來分開。
+1[-2] 跳過n1個欄位, 至第 n2 的欄位為止, 做排序。
Example:
#
sort -b +1n file1
3.strings 找出執行檔或資料檔內有那些 ASCII 字元。
格式:stings [-][-o][-number] filename.....
Option:
- 檢查檔案內所有的內容, 若不包含此選項則只有檢查執行檔內有初始化部份的內容而已。
-o 列出所找到的ASCII字元在檔案內的位置。
-number 當連續的 ASCII 字元大於 number 數時才將其列出, 若未特別設定時預設值為 4。
Example:
#
strings -o a.out
七、節省輸出入時間之指令
1.history 將你所下過的指令記錄下來格式:history [options]
options:
-r 以反方向顯示所下過的指令
n 顯示前n次所下過的指令
examples:
#
history
#
history -r
#
history 5
#
history -r 5
(1)set history=n 設定 history 記錄命令的量
#
set history=50
*從目前開始,直到退離系統,保留最後 50 個命令。
*如果你想讓此命令永遠有效,可將此命令加入 .cshrc 這個檔案內,然後執行。
#
source .cshrc
(2)如何利用 history 記錄的命令
#
history
1 w
2 date
3 vi .cshrc
4 pwd
5 ls -al
6 history
#
!! 執行前一次的命令,即 history
#
!4 執行第四次的命令,即 pwd
#
!vi 執行最近一次的 vi 命令,即vi .cshrc
#
!?ls? 執行最近一次命令中含有 ls 的命令,即 ls -al
#
!5 /usr 執行第五次的命令並加 /usr,即 ls -al /usr
2. alias
(1)alias 將命令用一別名取代
格式:alias alias_name command
examples:
#
alias ls 'ls -al'
#
ls
*執行 ls 視同執行'ls -al' 。
*可將 alias 的設定加入.cshrc檔內,讓每次進系統時,這些設定永遠有效。
(2)unalias 取消 alias 的設定
格式:unalias alias_name
examples:
#
unalias ls
(3)亦可將數個命令結合起來取一個別名
格式:alias alias_name 'command;command;....'
examples:
#
alias status 'date;uptime'
(4) alias 用 \!* 來傳參數
examples:
#
alias L 'ls -l \!* | more'
#
L /tmp 視同執行'ls -l /tmp | more',/tmp取代 alias L中的 \!*
3.其它
(1) 改變目錄和檔名的捷徑
. 表目前所在的目錄
.. 表目前所在目錄的上一層目錄
使用者的根目錄
/ 根目錄
*以上可配合 ls,rm,mv,cp...等指令,靈活運用
examples:
#
cd .
#
cd ..
#
mkdir
(2)檔名字元取代
* 取代一組字元
? 取代一個字元
[ ] 可於[ ]內列舉適當取代的字元
- 在[ ]內指定範圍
examples:
#
ls -l *.c 列出現在目錄中所有 .c 的檔案。
#
ls [a-z]* 列出現在目錄中所有以 a,b,...,z 開頭的檔案 。
#
cp [abc]* dir 將以 a,b,c 為首的檔案拷備至dir目錄下。
(3)指令更正
格式: ^incorrect^correct
*針對前一次的指令作更改
example:
#
pc file.1 file.2
pc: Command not found.
#
^pc^cp
cp file.1 file.2
*針對history所記錄的指令作更改
examples:
#
!3:s/.cshrc/myfile 將第3次命令中的 .cshrc 改為 myfile
#
vi myfile
*先確定指令更改無誤後再執行
#
!3:p:s/.cshrc/myfile 加上參數 p,可先確認更改動作是否無
#
!! 誤,確定後 vi myfile,再使用 !! 執行
#
vi myfile
#
!!
八、有關程式執行的指令
UNIX 是一個多人多工的作業系統, 它可以供多位使用者同時處理數個作業 (Job)。
Foreground jobs:必須等此命令執行完, 系統才允許你輸入下一個命令。
Background jobs:不必等此命令執行完, 系統即出現提示符號, 提示你輸入下 一個命令且命令後面必須加 "&" 符號。
1.command& 將欲執行的命令(程式), 放到背景作業執行。
Example:
#
fc myprog.f&
#
who |sort > list
*如果在 .cshrc 檔內有 set notify 的命令, 則系統會以[Done]來顯示背景作業己執行完畢。
2.job 列出在此系統上所有的 Background job
Example:
#
mail user1
Ctrl-z
#
cat > file.1
Ctrl-z
#
vi
Ctrl-z
#
jobs
[1] Stopped mail user1
[2] - Running cat > file.1
[3] ± Stopped vi
(1)(2) (3) (4)
(1) job number 工作代號
(2) + 表示 current job
- 表示 next current
(3) 每個 job 目前執行的狀況
(4) job 的作業內容
3.fg 啟動被暫停的 job, 並改為前景作業
格式: fg %job_number
Example:
#
fg 啟動 current job, 改為前景作業
#
fg %1 啟動 job1, 改為前景作業或 %%1 亦可
4.bg 啟動被暫停的 job, 並改為背景作業
格式:bg %job_number
Example:
#
bg 啟動 current job, 改為背景作業
#
bg %1 啟動 job1, 改為背景作業或 %%1& 亦可
5.stop 暫停一個正在執行的 job
格式: stop %job_number
Example:
#
stop %2
6.ps 顯示目前系統 process 狀況。
格式: ps [option]
Option:
-a 顯示全部的 process。
-u 顯示 process 的使用者。
-l 顯示 process 更多的訊息。
-w 可以把指令行很長的程序顯示出來, 由方於螢幕寬度有限,
超過部份系統會自動切掉, w 愈多顯示的長度就愈長。
Example:
#
ps
PID TT STAT TIME COMMAND
12536 P2 S 0:00 -csh(csh)
12539 P2 TW 0:00 mail user1
12540 P2 TW 0:00 cat
12541 P2 TW 0:00 vi
12549 P2 R 0:00 ps
說明:
PID 每一個 process 的編號
TT 終端機編號
STAT process 目前的狀況
R running
T stopped
I idle
P page wait
S sleep
TIME 使用的 CPU 的時間
7.kill 刪除一個 job。
格式:kill %job-number 或 kill pid
Example:
#
kill %3
#
kill 8122
*如果尚無法清除此 job 則可則改用以 kill -9 取代 kill指令。
#
kill -9 8122
九、輸出入轉向
在 UNIX 系統中, 大多數的指令, 內定行鍵盤輸入資料, 而將輸出顯示在終端機螢幕上,
.將輸出原本應顯示在終端機螢幕上的程式, 改為輸出給一個指定的檔案,例如:
#
date > state。
.將一程式的輸出, 當成另一程式的輸入資料。
1.>重定標準輸出的方向
格式:command >newfile
Example:
#
ls -al > list
*將 ls- al 命令的輸出放在名為 list 的檔案中。
*若將輸出轉向一個已存在的檔案時, 會把原檔案內容蓋掉, 為避免此種情況發生,
請於事先下 set noclobber 命令, 或將此命令加入 .cshrc 檔, 然後再執行
#
source .cshrc。
#
set noclobber
#
date > list
list: file exists
*可用 >! 強迫 overwrite。
#
date > !list
2. >> 重定和附加標準輸出。
格式:command>>file
透過 ">>" 符號, 可將一個命令的輸出附加於一個檔案之後。
Example:
#
date > list.new 將 date 命令的輸出放在 list.new 的檔案中。
#
pwd >> list.new 再將 pwd 命令的輸出附加在list.new 的檔案中
3. < 重定標準輸入的方向
格式:command < file
透過"<"符號來重導命令的輸入設備。
Example:
#
mailx user1 < letter
4. tee 類似一個 T 型管, 將標準輸入傳送再標準輸出, 並且存入檔案。
格式:tee [option] [filename]
Option:
-i 忽略中斷要求。
-a 將輸出附加在檔案案之後。
Example:
#
date | tee stat1 stat2 stat3 將 date 指令的
output 分別存在 stat1、stat2、sata3 而且顯示在螢幕上。
5.程式的連結
#
ls -al > file.list 將 ls -al 的輸出放在名為 file.list 檔案
#
pr <file.list> temp 再將此檔透過pr做文件處理, 並將處理完後的資料放在 temp 檔
#
lp < temp 將 temp 檔列印出來
6.| 連結命令
格式: command | command
某個命令的輸出可以直接作為另一個命令的輸入。
#
ps -aux | more
7.其他應用
(1)用 cat 建立新檔
#
cat > work.txt
......
......
按 Ctrl-d 結束
#
(2)用 cat 合併檔案
#
cat file1 file2 > files
將 file1 及 file2 的內容合併在 files
#
cat file3 >> files
將 file3 的內容附加在 files 之後。
(3)用 cat 拷備檔案
#
cat file1 > file2 相當於 #
cp file1 file2
十、其它
1.split將檔案分割。格式:split [-n][filename]
Option:
-n 預設值為 1000 行。
Example:
#
split -66 document
將檔案 document 分割成 66 行一個檔, 其檔名分別為 xaa, xab, xac....。
2.stty 設定終端機的操作模式。
格式:stty [option]
#
stty -a 顯示所有設定值
#
stty intr ^c 設定按 Ctrl+c 為中斷
#
stty erase ^H 設定按 Del 鍵為刪除前一個字
3.file 決定檔案的類別
格式:file filename
Example:
#
file *
4.compress 壓縮程式, 壓縮後的檔案以原檔名加上".Z"為名。
5.uncompress 解壓縮程式。
#
compress base.dat 產生 base.dat.Z 的壓縮檔
#
uncompress base.dat.Z 將 base.dat.Z 還原
6.bc 計算器
#
bc
2^10
1024
^D
#
其運算元有+、-、*、/、%、^, 分別表示加、減、乘、除、餘數、次方。