2015年2月5日 星期四

Shell指令

<持續新增整理中>

sh
 以子程序執行bash
 (執行後變數不會存在)
 -n : 讀取指令,但是不執行
 -v : 讀取指令時,將指令同時輸出到螢幕上
 -x : 在執行程式時,將指令和參數輸出到螢幕上

e.g.  sh sh01.sh

man
 指令查詢及說明

  左上角的代號:
   1. 使用者在shell環境中可用的指令
   2. 系統核心可以呼叫的函式與工具
   3. 一些常用的函數(function)與函式庫(library),大部分為C的函式庫(libc)
   4. 裝置檔案的說明,通常在/dev下的檔案
   5. 設定檔或者是某些檔案的格式
   6. 遊戲(games)
   7. 慣例與協定等,例如Linux檔案系統、網路協定、ASCII code等等的說明
   8. 系統管理員可用的管理指令
   9. 跟kernel有關的文件

grep
 分析、搜尋字串

  -c : 計算找到"字串"的次數
  -r : 遞迴讀取所有資料夾下的檔案
  -v : 反向選擇,即沒有包含"字串"

alias
  替指令命名別名

  e.g.  alias lm='ls -al'

history
  列出使用過的指令
  (~/.bash_history)

mkdir
  建立新目錄

  -p : 建立多層目錄(遞迴建立)

rmdir
  刪除空目錄

  -p : 連同上層空目錄一起刪除

unset
  取消變數或函式

  -v : 取消變數
  -f : 取消函式

set
  沒有參數時,顯示所有 shell 變數
  有參數時,設定shell的屬性

export
  自定變數轉換成環境變數
  e.g. export PATH

read
  讀取鍵盤輸入

  -p : 後面接提示字元
  -t : 後面接等待秒數

  e.g.
   read -p "input:" input0
   #input0 = 鍵盤的輸入

touch
  修改檔案時間或建置新檔
  當檔案不存在,則建立新檔案
  當檔案存在,預設將三個時間(access time/ modification time/ status time)都更新為目前時間

  -a : 只更改access time
  -c: 只修改檔案的時間

last
  顯示最近登入的使用者

chmod
  更改權限
  
  rwx : 讀、寫、執行 
  ugoa : user, group, other, all

  e.g. chmod 770 file1
  e.g. chmod u=rwx,go=rx file2
  e.g. chmod a+w file3

● time(1)
  計算指令時間

  e.g. time [options] command [arguments...]

● time(2)
  得到時間(秒數計算)



========================
● Ctrl + C
  終止目前命令

● Ctrl + D
 輸入結束(EOF)

● Ctrl + S
  暫停螢幕輸出

● Ctrl + Q
  恢復螢幕輸出

● Ctrl + Z
  暫停目前的指令

● Ctrl + M
  Enter

● Ctrl +U
  將整列命令刪除

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

● ` `內的指令會先被執行

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

語法
if [  ]; then
     ##########
  elif [  ]; then
     ##########
  else
     ##########
  fi

case $變數  in
  "變數內容")
    ;;  #結尾需兩個
  "變數內容")
    ;;
   *)
     ;;
esac

function fname() {

}

while [  ]
do
    ####
done

until [  ]
do
   ####
done

for var in CON1 CON2...
do
    ####
done

for (( 初始值; 限制值; 執行步階 ))
do
    ####
done


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

● $0 : 程式本身
● $1 : 程式的第一個參數
● $# : 程式的參數個數
● $@ : 代表「 "$1" "$2" "$3"」  所有參數
● $? : 前一個程式的回傳值

==============================
 檔案:
● /etc/shell  :  定義可以用的shell



參考:

鳥哥的Linux 私房菜

manual page

沒有留言:

張貼留言