初识Shell
一、从这里开始起飞!
1.1 脚本文件的书写格式
shell脚本文件简单来说就是将Linux或者Unix系统命令写入一个文件,这个文件就是shell脚本文件,所以编写的文件只可以在Linux或者Unix系统中使用。脚本是一个普通的文件,可以用绝大多数的文g本编辑器来对文件进行编辑,比如Vim,gedit等都可以进行编辑。
脚本文件的后缀是“.sh”
脚本格式:首先脚本文件的第一行需要使用shebang(#!)符号指定一个脚本解释器,例如:#! /bin/bash、 #! /bin/sh等,该行会被#注释,所以不会成为命令来执行,但是计算机也可以通过注释信息来获取是用什么解释器来进行解释的。
1.2 脚本文件执行方式
1)脚本文件本身没有执行权限,需要管理员进行提升权限。
[root@localhost ~]# vim first.sh
#!/bin/bash
echo "Hello !"
[root@localhost ~]# ./first.sh
-bash: ./first.sh: Permission denied
提示没有执行权限
但是可以使用bash和sh来对脚本进行读取内容
[root@localhost ~]# bash first.sh
Hello !
[root@localhost ~]# sh first.sh
Hello !
2)对脚本进行提权
[root@localhost ~]# chmod +x first.sh
[root@localhost ~]# ./first.sh
Hello !
其中chmod是修改文件权限的命令,+x是给予运行权限的命令
3)是否在子程序下面运行
./ 是在子程序下运行
. 是不开启子程序运行
在脚本运行的时候可以使用ctrl+z或者ctrl+c来终止脚本运行,但是这两个也是有着不同的用法
- CTRL+c:强制中断程序的执行
- CTRL+z:的是将任务中断,但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态
1.3 如何在脚本中实现输入与输出
1)echo
- 用法一:echo “这是我要输出的内容”
- 用法二:echo“IPADDR=172.16.10.10” >> /etc/sysconfig/network-scripts/ifcfg-ens32
echo输出的时候可以定义字体的颜色或者是排列顺序,如有需要则自行百度
2)printf
- printf “%d” 12 基础用法
3)read命令读取用户输入信息
- 语法:read 【选项】【变量名】
- -p:显示提示信息
- -t:设置读入数据超时时间
- -s:静默模式,显示输入内容
- -r:支持读取\,默认read命令将\认为是转移字符
4)$:读取变量符号
[root@localhost ~]# read cj
123
[root@localhost ~]# echo $cj
123
相当于c语言中的“&”符号
创建用户脚本编写
[root@localhost ~]# vim user_add.sh
#!/bin/bash
read -p "请输入用户名:" user
read -s -p "请输入密码" pass
useradd "$user"
echo "$pass" | passwd --stdin "$user"
[root@localhost ~]# chmod +x user_add.sh
[root@localhost ~]# ./user_add.sh
请输入用户名:chaijin
请输入密码Changing password for user chaijin.
passwd: all authentication tokens updated successfully.
[root@localhost ~]#
此时就可以自动创建成功用户