LINuxシステムの基本的なコマンド分類動作説明

巴扎黑
リリース: 2017-07-17 09:33:30
オリジナル
1393 人が閲覧しました

LINuxシステムの基本的なコマンド分類動作説明

1. コマンドの概念

  • コマンドの実行プロセス

    システムが外部コマンドを初めて実行するとき、システムは最初にコマンドを検索します。 PTAH パスを見つけて、Hash キャッシュに追加します。存在する場合は、そのパスから直接実行されます。存在する場合は、PATH 配下のパスから検索を継続します。ハッシュ テーブルを使用すると、コマンドの呼び出し率が向上します。

  • コマンドの優先順位

    エイリアス -------------------------------------- -- Alias
    builtin -------------------------- 内部コマンド
    hash ----------- ------ ------------キャッシュテーブル
    ^ ^ ^ ^ $PATH --------------- 実行可能プログラムまたはスクリプト (外部コマンド)

  • 内部コマンドと外部コマンド

    内部コマンドはシェルに組み込まれています
    外部コマンドはシステムのインストール時にデフォルトでインストールされ、ファイルシステムの下に対応するパスがあります

  • コマンドが内部コマンドまたは外部コマンド type [commnd ]type [commnd]

    [root@centos6 ~]# type cat                  #判断cat命令,外部命令显示文件路径
    cat is /bin/cat
    [root@centos6 ~]# type cd                   #判断cd命令
    cd is a shell builtin
    ログイン後にコピー

    2.命令的别名

    命名别名只在当前进程中有效
    如果想永久有效,要定义在配置文件中
      仅对当前用户:~/.bashrc
      对所有用户有效:/etc/bashrc

  • 查看进程中所有的别名 alias

    [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 NAME="VALUE"

    [root@centos6 ~]#alias aubin=cat
    [root@centos6 ~]#aubin test
    hello world
    ログイン後にコピー
  • 删除别名

    [root@centos6 ~]#unalias aubin
    [root@centos6 ~]#aubin test
    -bash: aubin: command not found
    ログイン後にコピー
  • 定义对当前用户永久生效的别名

    [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                       #立即生效
    ログイン後にコピー
  • 定义指定用户生效的别名

    [root@centos6 ~]#cd ~ li
    [root@centos6 li]#vim .bashrc                 #编辑用户目录下的.bashrc
    ログイン後にコピー
  • 定义所有用户生效的别名

    [root@centos6 ~]#vim /etc/bashrc
    alias aubin=cat                                # <<<-----加入定义别名
    [root@centos6 ~]#. /etc/bashrc                 #立即生效
    ログイン後にコピー

    3.内部命令

shell程序找到键入命令所对应的可执行程序或代码,由shell分析后提交给内核分配资源并将其运行起来。

  • 查看所有的内部命令

    [root@centos6 ~]#help
    ログイン後にコピー
    [root@centos6 ~]#enable
    enable .
    enable :
    enable [
    enable alias
    enable bg
    enable bind
    ......
    ログイン後にコピー
  • 内部命令的禁用与启用enable

    [root@centos6 li]#enable -n cd                 #禁用内部命令
    [root@centos6 li]#enable cd                    #启用内部命令
    ログイン後にコピー
  • 禁用内部命令失效

    [root@centos6 li]#enable -n pwd
    [root@centos6 li]#enable -n                    #查看禁用的内部命令或如下图用help
    enable -n pwd
    ログイン後にコピー

    也可以help查已经被禁用的命令【命令前的*代表命令已经用】
    黄色方框 中命令前的*代表命令已禁用
    禁用内部命令enable -n pwd后依然可以使用

    [root@centos6 li]#pwd
    /home/li
    ログイン後にコピー

    使用which查看命令的执行文件

    [root@centos6 li]#which pwd
    /bin/pwd
    ログイン後にコピー

    当内部命令禁用后,按照bash优先级继续搜索Hash表、(PATH。直到在)PATH中发现/bin/pwd的可执行文件则将其运行。

  • 查看禁用的内部命令

    [root@centos6 li]#enable -n
    enable -n cd
    enable -n pwd
    ログイン後にコピー

    或者如上图所示使用help命令查看


4.HASH缓存表

用来显示和清除哈希表,执行命令的时候,系统将先查询哈希表。

  • 查看命令的缓存 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
    ログイン後にコピー
  • 向Hash表中增加内容 hash -p path command

    [root@centos6 ~]#将cat定义一个别名存在hash表
    [root@centos6 ~]#hash -p /bin/cat aubin  
    [root@centos6 ~]#aubin test
    hello world
    ログイン後にコピー
  • 打印Hash表中命令的路径 hash -t command

    [root@centos6 ~]#hash -t aubin
    /bin/cat
    ログイン後にコピー
  • 删除Hash表中指定命令 hash -d command

    [root@centos6 ~]#hash -d aubin
    ログイン後にコピー
  • 删除Hash表中所有命令hash -r

    [root@centos6 ~]# hash -r
    ログイン後にコピー
  • 查看命令的路径 which

    [root@centos6 ~]# which cat            #查看命令的路径,以第一个路径为准
    /bin/cat
    [root@centos6 ~]# which -a cat         #查看命令所有路径,一个命令可能有多个路径
    /bin/cat
    /usr/local/bin/cat
    ログイン後にコピー

    2. コマンドのエイリアス

    名前付きエイリアスは現在のプロセスでのみ有効です

    永続的にしたい場合、設定ファイルで定義する必要があります

    現在のユーザーのみ: ~/.bashrc
    すべてのユーザーに対して有効: /etc/bashrc
  • プロセス内のすべてのエイリアスを表示 alias
  • [root@centos6 /]#which echo                    #列出命令的路径
    /bin/echo
    ログイン後にコピー

  • エイリアスを定義するalias NAME="VALUE"
  • [root@centos6 /]#which cp                      #which列出文件路径会显示别名
    alias cp='cp -i'
        /bin/cp
    [root@centos6 /]#which --skip-alias cp         #列出文件路径而不显示别名
    /bin/cp
    ログイン後にコピー

  • エイリアスを削除する
[root@centos6 /]#which -a echo              
/bin/echo
ログイン後にコピー
🎜🎜🎜現在のユーザーに対して永続的に有効なエイリアスを定義する🎜
[root@centos6 /]#whereis echo
echo: /bin/echo /usr/share/man/man1/echo.1.gz /usr/share/man/man1p/echo.1p.gz
ログイン後にコピー
🎜🎜🎜指定されたユーザーに有効なエイリアスを定義します🎜rrreee🎜🎜🎜すべてのユーザーに有効なエイリアスを定義します🎜rrreee🎜🎜3. 内部コマンド🎜🎜🎜🎜 🎜シェル プログラムは、入力されたコマンドに対応する実行可能プログラムまたはコードを見つけます。これはシェルによって分析され、カーネルに送信されてリソースが割り当てられ、実行されます。 🎜🎜🎜🎜🎜すべての内部コマンドを表示する 🎜rrreeerrreee🎜🎜🎜 内部コマンドを無効化および有効化する enable🎜rrreee🎜🎜🎜 内部コマンドを無効化する 無効化🎜rrreee🎜 も使用できますhelp無効なコマンドを確認してください [コマンドの前の*は、コマンドが使用されていることを意味します]🎜黄色のボックス内のコマンドの前にある * は、コマンドが無効であることを意味します🎜内部コマンド enable -n を無効にしても引き続き使用できますpwd 🎜rrreee🎜 コマンドの実行ファイルを表示するには that を使用します🎜rrreee🎜 内部コマンドが無効になっている場合、ハッシュ テーブルの検索を続けます ((PATH. まで) PATH に /bin/pwd の実行ファイルがあれば実行されます。 🎜🎜🎜🎜無効な内部コマンドを表示🎜rrreee🎜するか、上記のように help コマンドを使用して表示します🎜🎜🎜🎜🎜4. ハッシュ キャッシュ テーブル🎜🎜🎜は、ハッシュ テーブルの表示とクリアに使用されます。 , コマンドを実行すると、システムはまずハッシュ テーブルにクエリを実行します。 🎜🎜🎜🎜🎜コマンドキャッシュを表示しますhash🎜rrreeerrreee🎜🎜🎜ハッシュテーブルにコンテンツを追加しますhash -p path command🎜rrreee🎜🎜🎜コマンドを出力しますハッシュ テーブル hash -t コマンドのパス🎜rrreee🎜🎜🎜ハッシュ テーブル内の指定されたコマンドを削除しますhash -d コマンド🎜rrreee🎜🎜🎜ハッシュ テーブル内のすべてのコマンドを削除しますハッシュ テーブルhash -r🎜rrreee🎜🎜🎜 コマンドのパスを表示しますthat🎜rrreee🎜🎜5. 外部コマンド🎜🎜🎜 外部コマンドは実行可能ファイルです。外部コマンドを実行すると、システムはファイル ディレクトリ内の対応する実行可能ファイルを実行します。 🎜🎜🎜🎜🎜コマンドのパスをリストします。 🎜rrreeerrreee🎜🎜🎜 コマンドのすべてのパスをリストします。 複数の bash に同じコマンドがある場合、コマンドには複数のパスがあります。 🎜rrreee🎜🎜🎜コマンドとヘルプマニュアルへのパスをリストします🎜rrreee🎜🎜

以上がLINuxシステムの基本的なコマンド分類動作説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート