Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Erläuterung der grundlegenden Befehlsklassifizierung des Linux-Systembetriebs

Erläuterung der grundlegenden Befehlsklassifizierung des Linux-Systembetriebs

巴扎黑
巴扎黑Original
2017-07-17 09:33:301343Durchsuche

Erläuterung der grundlegenden Befehlsklassifizierung des Linux-Systembetriebs

1. Das Konzept des Befehls

  • Ausführungsprozess des Befehls

    Wenn das System einen externen Befehl ausführt Zum ersten Mal ist die Hash-Cache-Tabelle leer. Das System sucht zunächst nach dem Befehl im PTAH-Pfad. Anschließend wird der Pfad zum Hasa-Cache hinzugefügt und dann direkt ausgeführt aus dem Hash-Pfad. Wenn er nicht vorhanden ist, wird er direkt aus dem Pfad unter PATH ausgeführt, und die Hash-Tabelle kann die Aufrufrate des Befehls verbessern.

  • Befehlspriorität

    Alias ​​---------------------- ---- ----------------Alias ​​​​
      eingebaut----------------------- --------- -Interner Befehl
        hash---------------------------------------Cache-Tabelle
          $PATH-- -------- ----Ausführbare Programme oder Skripte (externe Befehle)

  • Interne Befehle und externe Befehle

    Intern Befehle sind diejenigen, die mit der Shell geliefert werden
    Externe Befehle werden standardmäßig bei der Installation des Systems installiert und haben entsprechende Pfade im Dateisystem

  • Überprüfen Sie, ob der Befehl ist ein interner Befehl oder ein externer Befehl type [commnd]

    [root@centos6 ~]# type cat                  #判断cat命令,外部命令显示文件路径
    cat is /bin/cat
    [root@centos6 ~]# type cd                   #判断cd命令
    cd is a shell builtin

    2. Alias ​​​​des Befehls

    Der benannte Alias ​​ist nur im aktuellen Prozess gültig
    Wenn Sie möchten, dass es dauerhaft gültig ist, muss es in der Konfigurationsdatei definiert werden
    Nur für aktuellen Benutzer: ~/.bashrc
    Gültig für alle Benutzer: /etc/bashrc

  • Alle Aliase im Prozess anzeigenalias

    [root@centos6 ~]#alias
    alias cp='cp -i'
    alias l.='ls -d .* --color=auto'
    alias ll='ls -l --color=auto'
    alias ls='ls --color=auto'
    ......
  • Alias ​​definierenalias NAME="VALUE"

    [root@centos6 ~]#alias aubin=cat
    [root@centos6 ~]#aubin test
    hello world
  • Alias ​​löschen

    [root@centos6 ~]#unalias aubin
    [root@centos6 ~]#aubin test
    -bash: aubin: command not found
  • Paar definierenAktueller Benutzer Permanenter Alias ​​

    [root@centos6 ~]#vim .bashrc 
    # .bashrc
    # User specific aliases and functions
    alias rm='rm -i'
    alias cp='cp -i'
    alias mv='mv -i'
    alias aubin=cat                                # <<<-----此处定义别名
    # Source global definitions
    if [ -f /etc/bashrc ]; then
        . /etc/bashrc
    fi
    [root@centos6 ~]#. .bash                       #立即生效
  • Definition Angegeben Benutzer Gültiger Alias ​​

    [root@centos6 ~]#cd ~ li
    [root@centos6 li]#vim .bashrc                 #编辑用户目录下的.bashrc
  • Definieren Sie alle Benutzergültige Aliase

    [root@centos6 ~]#vim /etc/bashrc
    alias aubin=cat                                # <<<-----加入定义别名
    [root@centos6 ~]#. /etc/bashrc                 #立即生效

    3. Interne Befehle

Shell-Programm findet heraus, wo der Befehl eingegeben werden muss. Das entsprechende ausführbare Programm oder Code wird von der Shell analysiert und an den Kernel übermittelt, um Ressourcen zuzuweisen und auszuführen.

  • Alle internen Befehle anzeigen

    [root@centos6 ~]#help
    [root@centos6 ~]#enable
    enable .
    enable :
    enable [
    enable alias
    enable bg
    enable bind
    ......
  • Interne Befehle deaktivieren und aktivierenenable

    [root@centos6 li]#enable -n cd                 #禁用内部命令
    [root@centos6 li]#enable cd                    #启用内部命令
  • Interne Befehle deaktivieren Ungültig

    [root@centos6 li]#enable -n pwd
    [root@centos6 li]#enable -n                    #查看禁用的内部命令或如下图用help
    enable -n pwd

    Sie können auch help die deaktivierten Befehle überprüfen [*, bevor der Befehl den Befehl darstellt wurde verwendet]
    黄色方框 中命令前的*代表命令已禁用
    Sie können es weiterhin verwenden, nachdem Sie den internen Befehl deaktiviert haben enable -n pwd

    [root@centos6 li]#pwd
    /home/li

    Verwenden Sie which, um die Ausführungsdatei des Befehls anzuzeigen

    [root@centos6 li]#which pwd
    /bin/pwd

    Wenn der interne Befehl deaktiviert ist, durchsuchen Sie die Hash-Tabelle weiter und (PATH) entsprechend der Bash-Priorität, bis die ausführbare Datei von in)/bin/pwdPATH gefunden wird .

  • Deaktivierte interne Befehle anzeigen

    [root@centos6 li]#enable -n
    enable -n cd
    enable -n pwd

    oder verwenden Sie den Befehl help wie oben gezeigt, um


4.HASH-Cache-Tabelle

wird zum Anzeigen und Löschen der Hash-Tabelle verwendet. Bei der Ausführung des Befehls fragt das System zunächst die Hash-Tabelle ab.

  • Befehlscache anzeigen

    hash

    [root@centos6 ~]# hash
      hits  command
       3    /usr/bin/cal
       1    /usr/bin/yum
    [root@centos6 ~]# 查看详细的Hash表
    [root@centos6 ~]#hash -l
    builtin hash -p /bin/dd dd
    builtin hash -p /usr/bin/yum yum
  • Inhalt zur Hash-Tabelle hinzufügen

    hash -p path command

    [root@centos6 ~]#将cat定义一个别名存在hash表
    [root@centos6 ~]#hash -p /bin/cat aubin  
    [root@centos6 ~]#aubin test
    hello world
  • Drucken Sie den Pfad des Befehls in der Hash-Tabelle aus

    hash -t command

    [root@centos6 ~]#hash -t aubin
    /bin/cat
  • Löschen Sie den angegebenen Befehl in der Hash-Tabelle

    hash -d command

    [root@centos6 ~]#hash -d aubin
  • Alle Befehle in der Hash-Tabelle löschen

    hash -r

    [root@centos6 ~]# hash -r
  • Pfad des Befehls anzeigen

    which

    [root@centos6 ~]# which cat            #查看命令的路径,以第一个路径为准
    /bin/cat
    [root@centos6 ~]# which -a cat         #查看命令所有路径,一个命令可能有多个路径
    /bin/cat
    /usr/local/bin/cat

    5. Externer Befehl

    Ein externer Befehl ist eine ausführbare Datei. Wenn ein externer Befehl ausgeführt wird, führt das System die entsprechende ausführbare Datei aus das Dateiverzeichnis.

  • Listen Sie den Pfad des Befehls auf

    [root@centos6 /]#which echo                    #列出命令的路径
    /bin/echo
    [root@centos6 /]#which cp                      #which列出文件路径会显示别名
    alias cp='cp -i'
        /bin/cp
    [root@centos6 /]#which --skip-alias cp         #列出文件路径而不显示别名
    /bin/cp
  • Listen Sie alle Pfade des Befehls auf, über die mehrere Bash verfügen Derselbe Befehl, der Befehl hat mehrere Pfade.

    [root@centos6 /]#which -a echo              
    /bin/echo
  • Listen Sie die Pfade zu Befehlen und Hilfehandbüchern auf

    [root@centos6 /]#whereis echo
    echo: /bin/echo /usr/share/man/man1/echo.1.gz /usr/share/man/man1p/echo.1p.gz

Das obige ist der detaillierte Inhalt vonErläuterung der grundlegenden Befehlsklassifizierung des Linux-Systembetriebs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn