shell命令概述

命令的格式

COMMAND [OPTIONS…] [ARGUMENTS…]

  • 选项:用于启用或关闭命令的某个或某些功能
    • 短选项:-c 例如:-l, -h
    • 长选项:–word 例如:–all, --human-readable
  • 参数:命令的作用对象,比如文件名,用户名等
  • 注意:
    • 多个选项以及多参数和命令之间使用空白字符分隔
    • 取消和结束命令执行:Ctrl+c,Ctrl+d
    • 多个命令可以用;符号分开
    • 一个命令可以用\分成多行

命令的类别

在shell中可执行的命令有两类 :内部命令,外部命令

内部命令

由shell自带的,而且通过某命令形式提供,当操作系统启动时就会自动加载道内存中。

命令描述
help能够查看内部命令列表,如果命令前有*,则表示该命令被禁用。
enable cmd启用内部命令
enable –n cmd禁用内部命令
enable –n所有禁用的内部命令

外部命令

在文件系统路径下有对应的可执行程序文件,通过$PATH环境变量的配置找到命令。

判断命令是内部命令还是外部命令

type cmd 查看命令是内部命令还是外部命令,带路径的是外部命令,不带路径的是内部命令(shell buitlin)。例子如下:

[root@centos7 data]#type help
help is a shell builtin
[root@centos7 data]#type echo
echo is a shell builtin
[root@centos7 data]#type who
who is /usr/bin/who
[root@centos7 data]#type date
date is /usr/bin/date
[root@centos7 data]#type ls
ls is aliased to `ls --color=auto'

说明help和echo是内部命令,who和date是内部命令,代码中的ls是别名。

内部命令是集成在shell中的,外部命令是存储在磁盘文件中的。内部命令会跟着系统启动而加载到内存中,外部命令随着调用会加载到内存中,通过hash表可以查看到。
有的命令除了有内部命令,还会有外部命令,例如echo(通过执行命令:type -a echo可以看到),但是系统在执行命令时内部命令要优先于外部命令(别名除外,别名优先级最高)

外部命令位置查找

which cmd 通过which能够查找到命令的位置
whereis cmd 通过whereis能够查到环境变量里包含该命令的所有目录

shell执行命令时,查找命令的顺序依次是:别名>内部命令>hash表中执行过的外部命令>$PATH中的外部命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值