如何在運維過程中對Shell內建命令

? ?本篇文章給大家帶來的內容是關于如何在運維過程中對Shell內建命令,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

:命令

  一般格式為: :
  這實際上是一個空命令。同常用來滿足必須有命令出現的需求。

if?who?|?grep?jack?>?/dev/null?;then ????:else ????echo?"jack?is?not?logged?in"fi

  :命令會返回為0的退出狀態

.命令

  一般格式 . file
  .命令會使Shell文件讀取并執行指定的文件,就好像將文件中的命令直接輸入一樣。注意:file并不是非得可執行的,只要可讀就行了。另外,Shell使用path變量查找file。

.progdefs

  執行progdefs中的命令,file并不是在子Shell中執行的,當file中的命令執行完畢之后,其中所設置及修改的變量依然有效。

alias命令

  一般格式:

alias?name=String?  [name=string...]<br>


  alias命令會將string分配給別名name。當name用作命令時,Shell會將其替換為string,然后執行命令行替換。(=前后不能有空格)
  下列格式:

alias?name?<br>

  會打印出name的別名,不使用參數的alias會列出所有的別名,alias會返回為0的退出狀態碼,除非給出的name沒有別名。

bg命令

一般格式:

bg?job_id

  如果啟用了作業控制,有job_id標識的作業會被置入后臺,如果沒有給出參數,則會將最近掛起的作業置入

break命令

  一般格式:

break

  break命令會立即終止最內的forwhile和until循環。程序接著從循環之后的命令繼續執行。
如果使用格式:

break?n

  內部第n層的循環自動被終止。

case命令

一般格式:

case?value?in ?????????pat<sub>1</sub>)?command ???????????????command ???????????????···???????????????command;; ?????????pat<sub>2</sub>)?command ???????????????command ???????????????···???????????????command;; ?????????pat<sub>3</sub>)?command ???????????????command ???????????????···???????????????command;; ????esac

  value會連續的和pat1、*可以匹配任何內容,通常出現在case中的最后一個模式以作為默認,或者作為萬能條件。
  在匹配模式中,可以使用Shell的元字符(*,?,[…]);字符|可以指定兩種模式之間的”邏輯或”關系,例如:
  pat1|pat2   表示pat1或pat2

cd命令

一般格式:

  該命令會使Shell將dircetory作為當前目錄,如果忽略目錄,Shell會將HOME變量中保存的目錄設為當前目錄。
  如果Shell變量CDPATH為空,directory必須是一個完整的目錄路徑或當前目錄的相對路徑。
  如果CDPATH不為空且directory并非完整路徑,Shell會在CDPATH所保存的一系列由冒號分隔的目錄中查找包含directory的目錄。
  示例:

cd?documents/memos??????//切換到documents的memos目錄cd??????????????????????//切換到HOME目錄

  cd命令會將Shell變量PWD設置成新的當前目錄,將OLDPWD設置成上一個目錄

continue命令

  在for,while或until循環中執行該命令跳過循環中continue之后的語句,然后執行下一次循環>。
  如果使用格式:

continue?n

  會跳過最內的第n層循環中剩下的語句,然后執行下一次循環。

echo命令

  一般格式:

echo?args

  該命令會將args寫入標準輸出。args中每個單詞之間由空格符分隔。在最后的會加上一個換行符。如果忽略args,結果就是往下跳一行。

eval命令

  一般格式:

eval?args

  該命令會是Shell對args求值,然后執行求值結果,這實際上可以實現對命令行的二次掃描。
  示例:

x='abc?def'y='$x'echo?$yxeval?echo?$yabc?def

exec命令

  一般格式:

exec?command?args

  該命令會執行指定的command,并將args作為參數,和其他命令不同,command會替換當前進程(也就是說并不會創建新的進程)執行command之后,就不會再返回調用exec程序了。
  如果只指定了I/O重定向,就會更改Shell的輸入或輸出。
  示例:

exec?/bin/sh?????????????使用sh替換當前進程

exit命令

  一般格式:exit n
  該命令會立即終止當前Shell程序,該程序的退出狀態碼是整數n的值,如果沒有使用n,則使用exit命令之前那條命令的退出狀態碼。
  注意,直接在登錄Shell中執行exit,其效果相當于登出系統。

export命令

  一般格式:

export?variables

  該命令可以導出指定的變量,也就是說,這些變量的值會被傳入到子Shell

false命令

  一般格式:

false

   該命令會返回非0的退出狀態碼

fc命令

  一般格式:

fc?-e?editor?-lnr?first?lastfc?-s?old=new?first

  該命令可用于編輯命令歷史記錄中的命令??梢灾付◤膄irst到last的命令范圍,first和last可以是命令編號或字符串,其中負數被視為相對于當前命令編號的偏移量,而字符串指定了以該字符串起始的最近的那條命令。命令會被讀入編輯器,然后在退出編輯器時執行,如果沒有指定編輯器,就用Shell變量的FCEDIT的值,如果沒有設置FEDCIT,就使用ed。
  -1選項可以列出范圍在first和last之間的命令(也就是說不調用編輯器)。如果選擇了-n選項,這些命令前面不會出現命令編號。
  -r選項會顛倒命令出現的次序。
  如果沒有指定last,則默認使用first的值。如果也沒有指定first,默認編輯上一條命令,列出前16條命令。
  -s選項會執行選中的命令,無需事先編輯。

fg命令

  一般格式:

fg?job_id

  如果啟用了作業控制,由job_id指定的作業被帶回前臺,如果沒有指定參數,將最近掛起的作業或者最近置入后臺的作業帶回前臺。

jobs命令

  該命令會打印當前活躍的作業的列表,如果指定了-l選項,還會列出沒想作業的詳細信息(包括其進程和ID)如果指定了-p選型,則只會列出進程ID
  如果提供了可選的作業的id,只列出指定作業的詳細信息。

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享