Linux基礎之-Bash命令優先順序,linux-bash優先順序

來源:互聯網
上載者:User

Linux基礎之-Bash命令優先順序,linux-bash優先順序

一. Bash簡介

命令直譯器,也就是 Bourne Again Shell,起源於shell。shell俗稱殼,它是指UNIX系統下的一個命令解析器;主要用於使用者和系統的互動。UNIX系統上有很多種Shell。首個shell,即Bourne Shell,於1978年在V7(AT&T的第7版)UNIX上推出。後來,又演變出C shell、bash等不同版本的shell。

Bash由於易用和免費,在日常工作中被廣泛使用。同時,Bash也是大多數Linux系統預設的Shell。在一般情況下,人們並不區分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同樣也可以改為#!/bin/bash。#!告訴系統其後路徑所指定的程式即是解釋此指令檔的Shell程式。

二. 命令的優先順序

1. 擷取一個命令執行的優先順序別,至上往下

  alias

    compound commands

      function

        build_in

          hash

            $PATH

              error:command not found

2. 命令的分類

  alias(別名):是為了簡化輸出給一個長參數命令的整合,別名的定義方法 alias la='ls -al' 取消別名 unalias la;

  built_in(內部命令):bash內建的命令 功能簡單,內部命令的協助在builtin(1)裡;

  外部命令:就是一個小程式存在於/bin/ /sbin/ /usr/bin 等地方。

3. 命令的優先順序驗證

 a 驗證別名優先於內部命令和外部命令

 

  結論,命令的執行搜尋順序:別名 (alias可以查看)——bash內部命令——$PATH 中按冒號分割的每個路徑中去搜尋
  b 驗證別名優先於複合命令(compound command)

  c 驗證複合命令優先於函數(function)

  d 驗證函式優先於內建命令

  結論,命令的執行搜尋順序:別名 (alias可以查看)——複合命令——函數——bash內部命令——$PATH 中按冒號分割的每個路徑中去搜尋

  e 驗證hash優先於$PATH

  最終驗證結論為:命令的執行搜尋順序:別名 (alias可以查看)——複合命令——函數——內建命令——bash內部命令——$PATH 中按冒號分割的每個路徑中去搜尋

 

 

 

參考資料

1. http://www.cnblogs.com/linhaifeng/p/6592572.html#_labelTop

2. http://www.cnblogs.com/skywang12345/archive/2013/05/30/3106570.html#a12

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.