linux base

Shell 基础
Shebang
- Unix系统中,会将Shebang(#!)后面的内容作为解释器指令。
- #!/bin/sh 指的就是bash 解释器。
注意事项:
1.如果脚本未制定Shebang, 脚本执行是会默认当前shell解释器去解释脚本, 即$SHELL.
2.如果Shebang指定了解释器,脚本执行时文件名会作为参数传递给解释器.
3.如果Shebang指定解释器,但脚本没有可执行权限,会报"bad interpreter: Permission Denied."
4.如果Shebang指定的解释器不是一个可执行文件,那么指定的解释器会被忽略,转而交给当前SHELL去执行脚本.
5.如果Shebang指定的解释器不存在,会报"bad interpreter: No such file or directory".
6.Shebang之后的解释器要写绝对路径,脚本不会在$PATH中寻找解释器.
7.如果指定解释器执行脚本,则会忽略脚本中Shebang后面指定的解释器。

Shell脚本的执行方式
- bash script.sh 或者 sh script.sh, 文件本身没有执行权限(x)或者脚本没有指定Shebang重点推荐。
- 使用 绝对/相对 路径执行脚本,脚本需要有可执行权限.
- source script.sh 或者 . script.sh 执行脚本. source与.同意.
- sh < script.sh 将脚本通过数据流重定向(少用).

Shell 语言
- shell是一种弱类型语言,无需声明变量类型,直接定义使用即可,如python.

history - 历史命令
history -c 清空历史命令
history -r ~/.bash_history 恢复历史命令
$HISTSIZE - 历史记录数
$HISTFILE - 存放用户执行的历史命令,写入文件
! hisId - 执行历史命令
!! - 执行上次历史命令

Shell 变量
- 变量的定义与赋值,变量与值之间不能由空格.
- 变量类型,bash默认的所有变量都是string类型.

不同的执行方式,不同的shell环境
- 每次调用bash/sh 执行脚本,都会开启一个子shell,因此不会保留当前shell的变量.
- sourc/. 在当前shell环境中执行脚本,会保留变量.

linux 反引号
- linux中反引号中命令的执行结果会被保存下来.

环境变量设置
- 环境变量一般指export内置命令导出的变量,用于定义shell的运行环境,保证shell的正确执行.
- Shell通过环境变量确定用户名、PATH路径、文件系统等.

posted @ 2022-10-10 14:17  yuexiuping  阅读(84)  评论(0编辑  收藏  举报