Linux命令
Linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和外部命令。
-
命令格式
COMMAND [OPTIONS…] [ARGUMENTS…]
OPTIONS 选择 包括长选项和短选项 长选项:–all 短选项:-a
ARGUMENTS 参数 命令作用的对象,不如文件名,用户名等一个命令可以有多个选项 比如 ls -a -l /etc
取消命令Ctrl+c
多个命令之间用;隔开
一个命令可以用 \ 分行
-
内置Shell命令与外部命令
内置Shell命令
shell自带的命令称为内置Shell命令,可以通过help命令(help本身也是Shell内置命令)来查看Shell内置命令列表;
enable cmd 可以启用内部命令;
enable -n cmd 可以禁用内部命令;
enable -n 可以查看所有被禁用命令。
禁用内置命令不代表这个命令不可用,如果这个命令同时还是外部命令,那禁用这个命令后,系统会去外部查找这个命令。比如echo这个命令。我们可以使用type来查看这个命令是Shell内置还是外部命令。
可见echo是内部命令,这时我们禁用这个命令后在用那个type看看。
这时它不再是内部命令而变成了外部命令。
外部命令
在文件系统路径下有对应的可执行程序文件
可使用which -a或者whereis来查看一个命令的路径
-
Hash缓存表
什么是Hash缓存表?
Hash缓存表是用来缓存用户执行过的外部命令,当执行一个命令时,系统首先判断它是内部命令还是外部命令,如果是内部命令直接使用,如果是外部命令,则去查找Hash缓存表,如果有缓存则直接调用,如果没有则去PATH路径下查找。
hash常见用法
hash 显示hash缓存的所有命令,包括命中次数
hash -l 显示hash缓存的所有命令,包括相关详细信息如路径,命令类型
hash -p path name 将命令的全路径取个别名为name
hash -t name 打印缓存中的name路径
hash -d name 清楚名为name的缓存
hash -r 清除hash表中所有的缓存
-
别名 alias
使用alias命令可以查看所有的命令别名,alias NAME=”echo”,当用户执行NAME时相当于执行了echo命令。
直接这样写别名是不能永久生效的,需要去配置文件写,
仅对当前用户有效:~/.bashrc
对所有用户有效:/etc/bashrc
配置好后不会立即生效,需要重新登录或者使用source或者 . 来重新读取配置文件 比如 . /etc/bashrc。
unalias命令可以取消别名 -a 可以取消所有别名
如果别名和原命重名而需要执行原命令时,可用”\command”或者’command’ 或/PATH/command
-
命令执行优先级
别名(alias)>内置Shell命令>缓存(hash)>外部命令($PATH)
原创文章,作者:657188918,如若转载,请注明出处:http://www.178linux.com/80585