首頁  >  文章  >  運維  >  如何在維運過程中對Shell內建命令

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

坏嘻嘻
坏嘻嘻原創
2018-09-17 09:55:061402瀏覽

   這篇文章帶給大家的內容是關於如何在維運過程中對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指令會立即終止最內的for、while和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會連續的和pat

1、 *可以匹配任何內容,通常出現在case中的最後一個模式以作為默認,或作為萬能條件。   在匹配模式中,可以使用Shell的元字元(*,?,[…]);字元|可以指定兩種模式之間的」邏輯或」關係,例如:  pat
1
|pat2   表示pat1或pat2
cd指令





一般格式:

cd directory
  該指令會使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=&#39;abc def&#39;y=&#39;$x&#39;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

  该命令可用于编辑命令历史记录中的命令。可以指定从first到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,只列出指定作业的详细信息。

以上是如何在維運過程中對Shell內建命令的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn