コマンドの実行プロセス
システムが外部コマンドを初めて実行するとき、システムは最初にコマンドを検索します。 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
命名别名只在当前进程中有效
如果想永久有效,要定义在配置文件中
仅对当前用户:~/.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 #立即生效
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
命令查看
用来显示和清除哈希表,执行命令的时候,系统将先查询哈希表。
查看命令的缓存 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
名前付きエイリアスは現在のプロセスでのみ有効ですすべてのユーザーに対して有効: /etc/bashrc永続的にしたい場合、設定ファイルで定義する必要があります
現在のユーザーのみ: ~/.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
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 サイトの他の関連記事を参照してください。