內鍵命令和外部命令

命令的基本格式

COMMAND  [OPTIONS…]  [ARGUMENTS…] 

      命令 (COMMAND)

      OPTIONS(選項):用于啟用或關閉命令的某個或某些功能

         短選項:-c  例如:-l、 -h、 -t、 -a   等

         長選項:- -word  例如:- -all、 – -help、  – -update 等

      ARGUMENTS(參數):命令的作用對象,如文件名、用戶名等

     [ ]:為可選項


命令的執行過程


  輸入命令回車后,系統提請特定的shell程序找到鍵入命令所對應的可執行程序或代碼,并由其分析后提交給內核分配資源將其運行起來


SHELL


   在Linux系統中,Shell提供了用戶與內核進行交互操作的接口,它接收用戶輸入的命令并把它送人內核去操作,因此,shell也被稱為Linux的命令解釋器

   顯示系統使用的shell

        echo  $SHELL

        內鍵命令和外部命令

   顯示當前系統使用的所有shell

       cat  /etc/shells

       內鍵命令和外部命令

內部命令和外部命令


   在shell中可執行的命令分為內鍵命令和外部命令

      內鍵命令:集成在系統shell類型中(如bash),通過某命令形式提供,不同的shell類型所含的內鍵命令不同

           help   內鍵命令列表

           enable   查看該系統shell類型中的所有內鍵命令

           enable  command   啟用內部命令

           enable  -n  command   禁用內部命令

           enable  -n   查看系統禁用內部命令

           例如:

           內鍵命令和外部命令

     外部命令:在當前系統的某文件系統路徑下有對應的可執行程序文件,表現成磁盤一個一個的獨立文件,以文件路徑的形式存在(如:usr/sbin/ifconfig)

           例如:

           內鍵命令和外部命令

    查看指定的命令是內鍵命令還是外部命令

          type  COMMAND

          type  -a  COMMAND  查看命令的全部類型

          type  -P  COMMAND  查看外部命令的文件路徑

          例如:

          內鍵命令和外部命令


內鍵命令和外部命令的優先級

     內鍵命令:集成在系統shell類型中(如bash),系統開機就在內存中了,內鍵命令的執行直接系統調用

     外部命令:系統文件系統路徑下對應的可執行程序文件,外部命令的執行依靠于系統$PATH變量下的文件路徑,其中外部命令的文件路徑存放在其中,    對應的外部文件卻沒有存放在其中,在不知道具體文件路徑的情況下,系統嚴格按照$PATH變量下的文件路徑一級一級進行尋找,找尋不到就無法執行,    除非告知具體文件路徑才可執行

     echo  $PATH

     內鍵命令和外部命令

     當外部命令執行過一次后,外部命令相對應的文件路徑就緩存到內存里了,重啟之后就不在了

     內鍵命令和外部命令

     當把緩存到內存里的外部命令刪除后,外部命令就無法執行了,所以緩存進內存里的不是外部命令的文件而是外部命令的文件路徑

     綜上所述,內鍵命令的優先于外部命令


原創文章,作者:huliyuqiangwei,如若轉載,請注明出處:http://www.www58058.com/76577

(0)
huliyuqiangweihuliyuqiangwei
上一篇 2017-05-22
下一篇 2017-05-23

相關推薦

  • 第四周作業(正則表達式)

    grep: Global search REgular expression and Print out the line.         作用:文本搜索工具,根據用戶指定的“模式(過濾條件)”對目標文本逐行進行匹配檢查;打印匹配到的行;    &…

    Linux干貨 2016-12-28
  • 設計模式(七)組合模式Composite(結構型)

    1. 概述 在數據結構里面,樹結構是很重要,我們可以把樹的結構應用到設計模式里面。 例子1:就是多級樹形菜單。 例子2:文件和文件夾目錄 2.問題 我們可以使用簡單的對象組合成復雜的對象,而這個復雜對象有可以組合成更大的對象。我們可以把簡單這些對象定義成類,然后定義一些容器類來存儲這些簡單對象。客戶端代碼必須區別對象簡單對象和容器對象,而實際上大多數情況下用…

    Linux干貨 2015-07-01
  • 基于Keepalived實現LVS雙主高可用集群

    前言 前面說過基于heartbeat的LVS高可用方案,今天帶來另一種解決方案:基于Keepalived實現LVS雙主高可用集群。什么是Keepalived呢,keepalived觀其名可知,保持存活,在網絡里面就是保持在線了, 也就是所謂的高可用或熱備,用來防止單點故障的發生。本文將詳細講述Keepalived工作原理及高可用解決方案的實現。 相關介紹 K…

    Linux干貨 2015-06-16
  • 淺述sed命令

    1、sed工作原理       sed(stream editor)是一種流編輯器,本身也是一個管道命令,可以分析編輯標準輸入(standard input),包括對數據進行替換、刪除、新增、選取特定行等等。運行時以行為單位,每次只處理一行的內容,因此它又被稱為行編輯器。sed還可與正則表達式配合使用,從而簡…

    Linux干貨 2016-08-10
  • 關于 進程和性能監控

            Linux系統狀態的查看及管理工具:     pstree, ps, pidof, pgrep, top, htop, glance,pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup pstree命…

    系統運維 2016-09-11
  • N22-第三周作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 # who|cut -d' ' -f1|sort|uniq # root 2、取出最后登錄到當前系統的用戶的相關信息。 # last|head -n 1 # …

    Linux干貨 2016-08-29
欧美性久久久久