cat /etc/shells //显示系统所有解释器
进入desktop虚拟机
yum -y install ksh //安装新解释器
vim /etc/profile //修改HISTSIZE=10决定能保存的历史命令数量
.bash_history //清空历史记录文件
sh ksh
bash支持的功能
快捷键 tab 历史记录 别名 重定向 管道
编写shell规范
1,声明解释器 #!/bin/bash
2,脚本功能注释, #此脚本的作用、使用场所、作者等
3,脚本内容,要执行的指令
脚本的执行方式:
1,添加x权限
2,使用bash之类的解释器读取脚本文件,比如bash test1 或者sh test1,新开启子进程(解释器)
3,使用source命令读取脚本文件,比如source test1
source可以省略为 . 不开启子进程(解释器)
可以使用2个脚本验证
#!/bin/bash //使用bash运行不会有进入123目录的效果
mkdir /opt/123 source运行会有
cd /opt/123
#!/bin/bash //使用bash运行不会有任何反映,source运exit 行会退出当前终端
写一个自动配置yum仓库的脚本:
#!/bin/bash
rm -rf /etc/yum.repos.d/*.repo
echo ‘[abc]
name=abc
baseurl=ftp://172.25.254.250/rhel7 //真机yum源
enabled=1
gpgcheck=0’ > /etc/yum.repos.d/abc.repo
classroom的光盘共享,可以做网络yum源
http://172.25.0.254/content/rhel7.0/x86_64/dvd/
增加安装ftp服务(vsftpd)的需求,安装好之后开启服务,且每次开机自动运行ftp服务
yum -y install vsftpd &> /dev/null //安装ftp服务,并将不需要的信息扔掉
systemctl restart vsftpd
systemctl enable vsftpd
systemctl status vsftpd //最后手工查看ftp服务状态
变量:
1,自定义变量,使用大小写字母,数字,下划线,不能以数字开头,不能使用特殊符号
2,系统变量 ,包含环境变量,预定义变量,位置变量,大部分是系统已经定义好的,直接使用
环境变量: PWD当前位置 USER当前用户名 HOSTNAME主机名 SHELL当前用户的解释器 HOME当前用户的家目录 UID当前用户的UID号 PATH系统命令所在地 PS1一级提示符 PS2二级提示符
例:查看当前位置使用 echo $PWD
$* 显示所有位置变量的值
$# 统计位置变量的个数
$$ 当前程序的进程号
$? 上一条指令的执行结果,0是正确,非0是异常
写一个脚本,可以创建abc账户并配置密码123
#!/bin/bash
useradd abc
echo 123 | passwd --stdin abc
改良版:使用位置变量增加脚本灵活度
#!/bin/bash
useradd $1
echo $2 | passwd --stdin $1
如何收集添加账户时的信息提示
#!/bin/bash
useradd $1 &>> /opt/no.txt //将提示信息重定向到文本中
echo $2 | passwd --stdin $1
单引号:用来界定范围,可以屏蔽特殊符号的作用
双引号:用来界定范围
反撇号 $(): 取命令执行的结果
#!/bin/bash
read -p “请输入账户名” u
stty -echo
read -p “请输入密码” p
stty echo
useradd $u &>> /opt/no.txt
echo $p | passwd --stdin $u
stty -echo 关闭回显
stty echo 恢复