Shell 的命令种类和 source 命令的用法 命令的用法

Shell 的命令种类

内部命令

  • shell 解释器本身包含的命令,在文件系统中没有相应的可执行文件,不能用“sudo”。
  • 如:cd 、echo 、source 等。
  • 在执行内部命令时,不需要创建新进程
  • source 命令也称为“点命令”,可以用点符号(“ . ”)代替
  • shell 函数 : 以 shell 语言书写的一系列程序代码,可以像其他命令一样被引用

外部命令

  • 独立于 Shell 的可执行程序,在文件系统中有相应的可执行文件
  • 如: ls , find , locate , grep , ifconfig 等
  • 命令行会创建一个当前 Shell 的复制进程来执行它,执行过程存在进程的创建和销毁
  • 子进程改变的环境变量只影响本进程,而不会影响父进程($PWD)
    在这里插入图片描述

Shell 执行命令的顺序

顺序

  • 别名
  • 关键字
  • 函数
  • 内部命令
  • 外部命令

在同名时,别名的优先级最高,而外部命令的优先级最低
内部命令 “ type ”



注释、退出状态 和 逻辑操作

注释

  • 以 “ # ” 开头的文本表示注释, Shell 解释器将忽略 “ # ” 之后的所有内容
  • 如果要将 “ # ” 作为普通字符对待,需在其之前加 “ \ ” 进行转义, 或使用引号对其进行引用
# echo this will not show       //这是不会显示出来的

echo # this will not show       // 只有 在“#”后面的才不被显示出来

echo \# this is common text     
//输出结果为 # this is common text 

退出状态

  • 每一条 Shell 命令在退出时都会返回一个整数值给命令行 Shell
  • “ 退出状态 ” 用于指示命令的运行情况: 成功还是失败。 如果失败,是什么原因导致的失败
  • 一般约定以 0 表示成功, 非零值表示失败
  • 使用特殊变量 “ $? ” 可以查看上一条命令的退出状态值
echo this should 
// 输出结果为 succeed.
// 输出结果为 this should succeed 

echo $?
// 输出结果为 0

rm /tmp
// 输出结果为 rm: cannot remove '/tmp': Permission denied

echo ?
// 输出结果为 1


逻辑操作

  • 一般情况下,脚本程序中的各命令是从上到下顺序执行的,不论上一条命令执行是否成功(退出状态为 0 ),下一条命令都能得到执行
  • 各条命令可以分行书写; 也可以在一行中书写,但各命令之间要以 “ ; ” 分隔开来,执行时按从左到右的顺序依次执行
  • 除了使用 “ ; ” 连接命令之外,还可以使用逻辑与(“ && ”) 运算符和逻辑或运算符(“ || ”)连接两条命令。 “ ! ” 亦可用
  • “ && ” 和 “ || ” 均具有短路特性



source 命令

source 命令是一个内置的 shell 命令,用于从当前 shell 会话中的文件读取和执行命令。
source 命令通常用于保留 、 更改当前 shell 中的环境变量。
简而言之, source 是一个脚本,将会在当前 shell 中运行 execute 命令。


source 命令可以用于:

  • 刷新当前的 shell 环境
  • 在当前环境中使用 source 执行 Shell 脚本
  • 从脚本中导入环境中一个 Shell 函数
  • 从另一个 Shell 脚本中读取变量

source 命令的语法
source 命令它需要一个文件,如果提供了参数,那么将用作传递脚本的位置参数。

source fileName [Arguments]

也可以使用 “ . ” 代替 source 命令:

. fileName [Arguments]

shell 命令用法


以下内容来源([source命令的用法](https://zhuanlan.zhihu.com/p/357335122))

在这里插入图片描述

在这里插入图片描述
总结
source 命令在当前 shell 中执行脚本 而 exec 命令在新的 shell 中运行

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值