命令执行机制
输入命令后回车:提请shell程序找到键入命令所对应的可执行程序或代码,分析后提交给内核分配资源使其得以运行
内部命令:shell自带,集成在/bin/bash文件中,可用enable 或help查看,内存存储
enable -n命令名:禁用该内部命令
enable命令名:启用该内部命令
enable -n:查看所有被禁用的命令
外部命令:文件路径下对应的可执行程序文件,磁盘存储
which命令名:查看命令所在路径
whereis命令名:查看命令所在路径及其帮助文档所在路径
*可用type+命令名判断命令是否是内部命令(例如:pwd is a shell builtin)
Hash缓存表(有效提升命令执行效率):
*缓存(cache):将刚使用的硬盘数据存放在内存中,下次使用是内存取出无需硬盘查找,hash是缓存的一种表现形式
*Cache is King!(缓存为王)->redis,memcached等
hash:显示hash缓存(hash -l)
hash -p path name:将命令全路径path起别名为name
hash -t name:打印name路径
hash -d name:清除name缓存
hash -r:清除所有缓存
命令别名:
alias:显示当前shell进程所有可用的命令别名
aliasname=‘value‘:临时定义别名name,其相当于执行命令value
配置文件中别名定义:永久有效(~/.bashrc->当前用户,/etc/bashrc->所有用户)
*文件修改后使用source ~/.bashrc或. ~/.bashrc生效
unaliasname:取消name别名
*别名出现与原命令同名的情况时,可以通过\aliasname,”aliasname”,’aliasname’,commandaliasname,/path/aliasname(只针对外部命令)等执行原命令
系统初始hash表为空,外部命令执行时,默认从$PATH路径下寻找该命令,找到后执行并记录到hash表(内存存储)中,再次使用时shell首先查看hash表,存在直接执行,不存在再去$PATH路径下寻找
命令寻找过程:alias->内部->hash表(记录外部命令的路径)->$PATH变量对应路径查找
Linux帮助
whatis:
显示命令的简短描述
刚安装完系统无法使用
基于数据库(makewhatis:centos6创建,mandb:centos7创建)
等同于man –f
内部命令:help command 或man bash
外部命令:command --help(-h),man command,info command 或相关文档
man命令:
手册页存放在/usr/share/man
几乎每个命令都有man页面
Man页面分组称为章节(例如man 5 passwd)
配置文件:/etc/man.config /etc/man_db.conf
info:
man常用与命令参考,GNU工具info适用于文档参考
没有参数,列出所有页面
Info页面结构类似与网站
每一页分为“节点“(*)