2014年6月18日 星期三

unix 系統基本指令



[控制鍵]: 首先要了解在下命令時一些控制鍵的用法 :

  Ctrl-U 刪除整行命令行
  Ctrl-W 刪除命令行的最後一個字(Word)
  Ctrl-C 中斷程式或 shell script
  Ctrl-Z 暫停程式或 shell script
  Ctrl-S 暫停往下顯示
  Ctrl-Q 繼續往下顯示
  Ctrl-O 不要程式的輸出, 但不中斷程式
  Ctrl-D 終止檔案輸入(EOF), 或 Logout

與檔案目錄有關的特殊字元

  .  現在目錄 (一個句點)
  .. 上一層目錄 (兩個句點)
  ~ User 之主目錄 (老鼠尾巴)
  ?  檔名之單一字元 (問號)
  *  檔名之所有字元 (星號)

以下摘錄 unix 較常用之命令, 其中也包含了部份 csh 之 Built-in commnad :

ls 顯示目錄內容, 同 DOS 之 DIR
  ls -al  詳細顯示此目錄內的所有檔案 (包含以 . 開頭之隱藏檔)
  ls *.c  顯示此目錄內的所有結尾為 .c 的檔案 (unix 無所謂附檔名)

cd切換目錄
  cd  切換目錄至您的主目錄
  cd ..  切換目錄至上一層目錄
  cd /usr/bin  切換目錄至 /usr/bin

pwd 顯示現在目錄的路徑

mkdir 建一子目錄
  mkdir prg  在現目錄下建一子目錄 prg
  mkdir prg/c  在子目錄 prg 下建一子目錄 c

rmdir 刪除一子目錄
  rmdir prg  刪除子目錄 prg , 但 prg 須為空目錄

file 顯示檔案型態
  file *  顯示目錄內所有的檔案型態

cp 拷貝檔案
  cp /usr/skel/* .  將 /usr/skel下的所有檔案拷貝至現目錄下, 不包括子目錄
  及隱藏檔 cp -r /usr/demo .  將 /usar/demo 下的檔案及子目錄拷貝至現目錄下

chmod 改變檔案許可權
  chmod u+x main  將檔案 main 加上自己可執行的許可
  chmod 744 main  將檔案 main 變為自己可讀寫可執行, 別人只可讀

man 顯示命令用法
  man find  顯示 find 的使用說明
  man man   顯示 man 這個指令的使用說明

more 以頁顯示方式顯示檔案(參考 less 指令)
  more aa

less 以頁顯示方式顯示檔案(參考 more 指令)
  less aa          直接分頁查看 aa 檔案內容.
  cat aa | less    將 aa 的檔案內容整個 pipe 給 less 當作輸入檔案.

  註: 使用 less 可以按 PgUp/PgDn 上下回捲內容, 按 / 可搜尋關鍵字.

cat 顯示檔案或建立檔案
  cat aa  顯示檔案 aa
  cat >aa  由鍵盤輸入建一檔案 aa, 結束按 CTRL-Z 或 CTRL-D

rm 刪除檔案
  rm abc  刪除檔案 abc
  rm -r c  刪除目錄 c 及其下之檔案和子目錄
  rm -rf c 同 rm -r c , 但刪除時將不再一一詢問是否刪除.

mv 搬移檔案
  mv * ../prg  將所有檔案移至上層目錄之子目錄 prg 下

ps 顯示系統運作狀況
  ps  顯示您的 Process
  ps -aux  較詳細的顯示系統內的所有 Process(BSD 系列 UNIX 系統)
  ps -ef   同 ps -aux (SVR4 系列 UNIX 系統適用.

jobs 顯示在背景(background)執行, 或暫停的 process

bg 將現正在執行的 process 移至背景(background)執行
  Ctrl-Z  先將在執行的 process 暫停
  bg  方可下 bg 命令將此 Job 移至 background 執行

fg 將現正在背景執行的 process 移至前景(foreground)執行
  fg %2  將 Job2 移至 foregroung 執行

alias 將一命令定別名
  alias dir 'ls -al'  如此鍵入 dir 即和 ls -al 一樣

unalias 取消某個別名之設定
  unalias dir

write 送一個訊息給正在上線使用的 User

wall 送一個訊息給正所有在上線使用的 User

at 使一串指令在所指定的時間執行
  at 6:00 tomorrow < file1   在明天早晨 6:00 開始執行批次檔 file1

atq 顯示有那些 Job 在 Queue 中

atrm 刪除 at_queue 中的 Job
  atrm 124  刪除 queue 中的 Job_number 124

batch 使一串指令在 Background 執行 (執行速度會較慢)
  batch < file3  執行批次檔 file3

history 顯示前幾次所鍵入的命令(預設是 40 個)

!! 重覆上一命令

passwd 更改密碼

chfn 更改 full name

clear 清除終端機螢幕

date 顯示日期(可以特殊日期格式顯示)

df 顯示磁碟使用量

du 顯示目錄下所使用的磁碟空間
  du .  顯示現目錄下之各子目錄使用 Block 數
  du -s . 只顯示現目錄以下所使用的 Block 總計

env 顯示目前所有的環境變數

setenv 指定變數值於 shell 中, 供子 shell 使用
  setenv LD_LIBRARY_PATH /usr/openwin/lib

set 顯示或定義變數
  set term=vt100

unset 取消某個變數的定義
  unset term

stty 設定終端機
  stty pass8 rows 24

finger 顯示遠端主機 login 狀況
  finger @dec2

rehash 若有新的命令檔存入 path 所指定的目錄時, 使 hash table 重建

head 顯示檔首(行、Block、字元)
  head -5 mbox  顯示 mbox 前五行, 若未指定預設是 10 行

tail 顯示檔尾(行、Block、字元)
  tail -100 file1

kill 刪除 process 或 job
  kill -9 1340  刪除 process 1340 , 必須是自已的 process
  kill %1 刪除第一個 Job (background 或 暫停)

rcp 與遠端主機間的檔案拷貝
  rcp file1 mail:/home/user/user1  將 file1 拷貝至 mail_host 的
  /home/user/user1

rsh 執行遠端主機的命令
  rsh sparc20 ls -al 執行 sparc20 的命令

rlogin Login至遠端主機
  rlogin sparc14

split 將大檔案分割成數個小檔案
  split -100 big_file sf  將 big_file 以每100行為一個檔案寫至
  sfaa sfab ...

sort 排序檔案內容
  sort file1 > file2  將 file1 由小到大排序至 file2
  sort -t: +2 file3 > file4   將 file3 以 : 作欄分界, 以第三欄排序至 file4

cut 挑出檔案的部份欄資料
  cut -f1,5 -d. file1 >file2  將 file1 以 . 作欄分界, 挑出第一、五欄寫至 file2

source 執行一 shell script file
  source .cshrc

tar 產生或解開檔案庫
  tar -cvf bin.tar ./bin    將 ./bin 下之檔案及其子目錄製成一檔案庫 bin.tar
  tar -xvf bin.tar          將檔案庫 bin.tar 解開成
  tar -cvzf test.tgz ./aaa  將 ./aaa 目錄下所有檔案使用 gzip 方式壓到 test.tgz 檔中.
  tar -xvzf test.tgz        將 test.tgz 檔中所有檔案解壓出來.

umask 設定以後建立檔案及目錄的存取權利
  umask 077 使其它 User 皆無法讀寫執行您的檔案及目錄

wc 計算檔案長度

w 顯示誰 Login 至本系統

find 找尋檔案
  find . -atime +7 -print  找尋現目錄下的所有子目錄及檔案, 其最後一次讀取
                           為 7 天以上者
  find /usr -name "*.h" -print  找尋 /usr下的所有子目錄及檔案, 其檔名為
                                .h結尾者

uuencode 將二進位檔以編碼方式變成一 ASCII 檔
  uuencode file_a file_b >file_c  將 file_a 編碼並以 file_b 為 Label 寫至
                                  file_c

uudecode 將 uuencode 過的檔案回復為原來的內容
  uudecode file_c  解碼後的檔案其檔名為 file_b

compress 將檔案壓縮以減少空間
  compress file1 >file1.Z

uncompress 將壓縮過的檔案回復
  uncompress file1.Z

cmp 比較兩個本文檔或非本文檔不同的地方

diff 比較兩個本文檔不同的地方

sh 開一個 Bourne Shell 命令解譯器

grep 在本文檔中找尋字串
  grep 'how are you' file1
  ps -aux |grep user1  找尋所有 process 中有 user1

ln 連結檔案或目錄
  ln file1 file2 將原先檔案 file1 連結一份至 file2
  ln -s /usr/games games  將 /usr/grams 連結成現目錄下之子目錄 games

bc 線上電子計算機.
  bc 3*71        計算 3 乘以 71 的結果.

gzip 壓縮軟體 GNU zip.
  gzip aaa.tar        把 aaa.tar 壓成 aaa.tar.gz
  gzip -d aaa.tar.gz  把 aaa.tar.gz 解壓成 aaa.tar

Reference: http://www2.thu.edu.tw/~cc/network_team/unix/command.htm

沒有留言:

張貼留言