명령의 실행 과정
시스템이 외부 명령을 처음 실행할 때, 시스템은 먼저 해시 캐시 테이블에서 명령을 검색합니다. PTAH 경로를 찾은 후 Hasa 캐시에 추가합니다. 이 명령을 다시 실행하면 Hash 경로에서 직접 실행됩니다. 존재하는 경우 PATH 아래의 경로에서 계속 검색합니다. 해시 테이블은 명령 호출 속도를 향상시킬 수 있습니다.
명령 우선 순위
별칭 ------------------------- -- 별칭
builtin--------------------------------내부 명령
hash------ ------ ------------캐시 테이블
ˆ ˆ ˆ ˆ $PATH --------------- 실행 가능한 프로그램 또는 스크립트(외부 명령)
내부 명령 및 외부 명령
내부 명령은 셸에 내장되어 있습니다.
외부 명령은 시스템 설치 시 기본적으로 설치되며, 파일 시스템 아래에 해당 경로가 있습니다.
명령어가 맞는지 확인하세요. 내부 명령 또는 외부 명령 입력 [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
별칭 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🎜명령 실행 파일을 보려면 which
를 사용하세요. 🎜rrreee🎜내부 명령이 비활성화되면 계속해서 해시 테이블 검색, (PATH.Until) bash 우선순위에 따라 PATH에 /bin/pwd
실행 파일이 있으면 실행됩니다. 🎜🎜🎜🎜비활성화된 내부 명령을 보거나🎜rrreee🎜또는 위와 같이 help
명령을 사용하여 확인하세요🎜🎜🎜🎜🎜4 HASH 캐시 테이블🎜🎜🎜은 해시 테이블을 표시하고 지우는 데 사용됩니다. , 명령을 실행할 때 시스템은 먼저 해시 테이블을 쿼리합니다. 🎜🎜🎜🎜🎜명령 캐시 보기 hash
🎜rrreeerrreee🎜🎜🎜해시 테이블에 콘텐츠 추가 hash -p 경로 명령
🎜rrreee🎜🎜🎜명령 인쇄 해시 테이블 hash -t 명령
🎜rrreee🎜🎜🎜경로 해시 테이블에서 지정된 명령 삭제hash -d 명령
🎜rrreee🎜🎜🎜모든 명령 삭제 해시 테이블hash -r
🎜rrreee🎜🎜🎜명령 경로 보기 which
🎜rrreee🎜🎜5. 외부 명령🎜🎜🎜외부 명령은 실행 파일입니다. 외부 명령을 실행하면 시스템은 파일 디렉터리에 있는 해당 실행 파일을 실행합니다. 🎜🎜🎜🎜🎜명령 경로 나열🎜rrreeerrreee🎜🎜🎜명령의 모든 경로 나열 여러 bash에 동일한 명령이 있는 경우 해당 명령에는 여러 경로가 있습니다. 🎜rrreee🎜🎜🎜 명령 및 도움말 설명서의 경로 나열🎜rrreee🎜🎜위 내용은 LInux 시스템 동작 설명의 기본 명령어 분류의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!