运维笔记8
Shell
命令的种类
外部命令
可以利用
type
命令来查看命令是否为内部命令,外部命令储存在磁盘上,载入需要比较长的时间。内部命令
enable
命令可以用来查看内部命令,内部命令在系统上电之后就被自动载入内存,所以执行速度快。
命令的格式
COMMAND [OPTIONS...] [ARGUMENTS...]
选项:用于启用或关闭命令的某个或某些功能。
- 短选项:
-c
例如:-l
,-h
- 长选项:
--word
例如:--all
,--human-readable
- 短选项:
参数:命令的作用对象,比如文件名用户名等
注意
- 多个选项以及多参数和命令之间使用空白字符分割
- 取消和结束命令执行:
Ctrl+c
,Ctrl+d
- 多个命令可以使用
;
号隔开 - 一个命令可以用
\
分成多行
管理内部命令的办法
enable
命令可以用来管理内部命令。enable -n [command]
命令可以用来禁用该命令。enable [command]
命令可以用来恢复命令,是命令使能。enable -n
可以用来查看所有被禁用的命令。
系统执行命令的过程(按照如下顺序执行)
检查别名
alias
内部是否有和输入命令相同的命令,有的话使用该命令。否则进行下一步。alias [name]=["command"]
可以用来定义命令的别名alias
。使用这种方法定义别名alias
仅仅是暂时性的,如果重新登录或者重启系统,该别名会失效,如果想要使别名alias
永久有效,需要使用下面的操作。如果想要使别名
alias
永久性生效,需要将别名写入/etc/.bashrc
文件中,这个会设置所有用户的别名,如果仅仅想要设置特定用户的别名,需要在该用户的家目录下寻找.bashrc
文件,将别名写入该文件。如果要使得这个文件的修改立刻生效,有如下几种方法
- 重启终端或者重启系统。
- 使用
source .bashrc
或. .bashrc
命令可以使得配置文件生效。其中source
命令与.
命令等价。
使用
unalias
命令可以删除别名。使用
\[aliasname]
可以忽略别名。
判断命令是否为内部命令,否则执行下一步。
判断hash表里是否有该命令,有的话按照hash表找到命令所在位置,执行命令,否则进行下一步。
- 使用
hash
命令可以查看命令的缓存情况,并可以查看命令的命中次数,即缓存的命中率,利用了存储器的局部性原理。 - 使用
hash -d [command]
命令可以删除hash表里面的命令。 - 使用
hash -r
命令可以删除hash表中所有的命令。 - hash表中记录了外部命令所在的路径。
- 使用
判断是否命令存储在外存中,否则执行下一步。其中
$PATH
记录了命令在外存中的位置。发送命令找不到提示。
命令的等待、命令的终止与单行多命令的写法
多命令写在单行内
[command1];[command2];[command3]
命令终止
可以使用快捷键
ctrl + c
或者ctrl + d
。命令的等待
可以使用
sleep [n]
命令来等待,n
表示等待的时间,以秒为单位。