1.shell环境及特性
a.定义:shell在Linux内核与用户之间的解释器程序,通常指/bin/bash
负责向内核翻译及传达用户程序指令
相当于操作系统的外壳
b.使用方式:
交互式--命令行
非交互式--脚本
c.shell种类
切换shell环境:
更改登陆shell:usermod chsh
手动执行目标shell程序
d.操作历史命令
history工具:
-history
-history -c 清空历史
!78 调用历史记录中的第78条命令
!str执行最近一次以str开头的历史命令
2.IO设备与重定向
a.交互式硬件设备
标准输入:从该设备接受用户输入的数据 0
标准输出:从改设备向用户输出数据 1
标准错误:通过该设备报告执行中的出错信息 2
ls -lh /etc/hah /etc/ >/tmp/test.test 2>&1
3.shell脚本
作为命令字:指定脚本的路径,需要x权限
作为参数:不需要x权限
sh 脚本路径
source 脚本路径
.脚本路径
调试shell脚本:sh -x 脚本路径
4.简单脚本示例
安装vsftpd服务,启动并设置为开机自启
vim /root/ftpon.sh
#!/bin/bash
yum install vsftpd -y
service vsftpd start
chkconfig vsftpd on
5.shell变量
定义赋值变量,注意等号两边不能有空格,不要使用关键字和特殊字符
X=12 定义变量X,赋值为12
var1=centos 定义变量var1,赋值为centos
取消变量:退出变量的shell环境时,变量会自动失效
手动取消变量 unset 变量名
unset X
使用env查看环境变量,使用set查看所有变量
6.预定义变量
$0:shell自身
$$:这个程式PID
$?:执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)
$#:这个程式的参数个数
$*:所有变量
$!:最近一个后台进程的PID号
$PS1:shell环境的一级提示符,即命令提示符,\u用户名\h主机名\W工作目录\$权限标识符
$PS2:表示二级提示符,出现在强制换行,at任务编辑等场景
7.位置变量
$1:变量1
$2:变量2
$10:变量10
8.三种引号对变量赋值的影响
双引号:可以定义一个完整字符串,也允许在范围内通过$调用其他变量的值,大多数情况下可以省略,但包含空格等特殊字符时不能省略
单引号:禁用扩展,范围内的特殊字符均视为普通字符
反撇号`或者$():使用反撇号或者$()时,可以将命令执行时的标准输出作为字符串存储,因为称为命令替换,
例如:
KVER=`uname -r`
rpm -qf `which man`
9.使用read从键盘读取变量值
read -p "请输入一个数字:" i
10.stty终端显示控制
在某些情况下,比如输入密码时,建议将关闭回显功能stty -echo,取完变量时再开启回显功能stty echo,取完变量时再开启回显功能stty echo,
例如:
#!/bin/bash
read -p "请输入用户名:" username
stty -echo
read -p "请输入密码:" password
stty echo
echo "username is $username,password is $password"
领取专属 10元无门槛券
私享最新 技术干货