这是我参与11月更文挑战的第21天,活动详情查看:2021最后一次更文挑战
Shell 编程基础命令
Shell 是操作系统的最外层, Shell 可以合并编程语言以及控制进程和文件,以及启动和控制其它程序。
Shell 通过提示您输入向操作系统解释该输入,然后处理来自操作系统的任何结果输出来管理与 操作系统之间的交互。
Shell 就是一个用户跟操作系统之间的一个命令解释器。
Linux Shell 的种类
常见的有
- Bourne Shell (/usr/bin/bash 或 /bin/sh)
- Bourne Again Shell (/bin/bash)
- C Shell (/usr/bin/csh)
- K Shell (/usr/bin/ksh)
- Shell for Root(/sbin/sh)等
最常用的Shell 是 Bash 也就是 Bourne Again Shell
Shell 文件
*.sh
[root@VM-24-6-centos ~]# echo $BASH
/bin/bash
编写第一个 Shell 脚本
vi first_shell.sh
# df -h # 磁盘管理命令
#!/bin/bash #表明这是一个Shell脚本
#Filename: first_shell.sh # 注解
#auto echo hello world
#by authors damowang 2021
echo "Hello World"
mkdir -p /tmp/2021/11/30 # 创建目录
运行脚本
$ chmod o+x first_shell.sh # 增加权限
$ ./first_shell.sh # 运行脚本
Hello World
# 或
$ /bin/bash first_shell.sh # 不需要增加权限
Shell 编程中的变量
A=123 # 前面是变量名, 后面是变量值
# 引用变量可以使用 $A
shell 变量可分为两类: 局部变量和环境变量
局部变量只在创建它们的 shell 脚本中使用
环境变量可以在创建它们的shell及其派生出来的任意子进程中使用
vi var.sh
#!/bin/bash
# define path variables
# 定义变量,不能有空格
A=123
echo "This is my first shell var $A"
执行
[root@VM-24-6-centos shell_test]# vi var.sh
[root@VM-24-6-centos shell_test]# /bin/bash var.sh
This is my first shell var 123
Shell 常见的系统变量
$0 # 当前程序的名称
$n # 当前程序的第n个参数,n=1,2,...9
$* # 当前程序的所有参数(不包括程序本身)
$# # 当前程序的参数个数(不包括程序本身)
$? # 命令或程序执行完后的状态,一般返回0表示执行成功 , 判断上一个命令是否执行成功
$UID # 当前用户的ID
$PWD # 当前所在的目录