Shell的作用 —— 命令解释器
Bash 是一个用于GNU操作系统的shell,也就是命令解释器,这个名字是Borune-Again SHell的缩写.
重定向
重定向输入 | < | 从指定的文件读取数据,而不是从键盘输入 |
重定向输出 | > | 将输出结果保存到指定的文件(覆盖原有内容) |
>> | 将输出结果追加到指定的文件 | |
标准错误输出 | 2> | 将错误信息保存到指定的文件(覆盖原有内容) |
2>> | 将错误信息追加到指定的文件中 | |
混合输出 | &> | 将标准输出、标准错误的内容保存到同一个文件中 |
管道操作符号”|”
将左侧的命令输出结果,作为右侧命令的处理对象
[root@localhost ~]# grep "bash$" /etc/passwd root:x:0:0:root:/root:/bin/bash teacher:x:500:500:BENET Linux Teacher:/home/teacher:/bin/bash [root@localhost ~]# grep “bash$” /etc/passwd | awk -F: ‘{print $1,$7}’ root /bin/bash teacher /bin/bash
Shell变量
系统变量(位置变量,预定义变量)
# Shell常见的变量之一系统变量,主要是用于对参数判断和命令返回值判断时使用,系统变量详解如下: $0 当前脚本的名称; $n 当前脚本的第n个参数,n=1,2,…9; $* 当前脚本的所有参数(不包括程序本身); $# 当前脚本的参数个数(不包括程序本身); $? 令或程序执行完后的状态,返回0表示执行成功; $$ 程序本身的PID号。
环境变量
#Shell常见的变量之二环境变量,主要是在程序运行时需要设置,环境变量详解如下: PATH 命令所示路径,以冒号为分割; HOME 打印用户家目录; SHELL 显示当前Shell类型; USER 打印当前用户名; ID 打印当前用户id信息; PWD 显示当前所在路径; TERM 打印当前终端类型; HOSTNAME 显示当前主机名; PS1 定义主机命令提示符的; HISTSIZE 历史命令大小,可通过 HISTTIMEFORMAT 变量设置命令执行时间; RANDOM 随机生成一个 0 至 32767 的整数; HOSTNAME 主机名
用户变量(自定义变量)
# 常见的变量之三用户变量,用户变量又称为局部变量,主要用在Shell脚本内部或者临时局部使用,系统变量详解如下: a=rivers 自定义变量A; Httpd_sort=httpd-2.4.6-97.tar 自定义变量N_SOFT; BACK_DIR=/data/backup/ 自定义变量BACK_DIR; IPaddress=10.0.0.1 自定义变量IP1;
赋值时使用的引号
双引号:允许通过$符号引用其他变量值
单引号:禁止引用其他变量值,$视为普通字符
反撇号:命令替换,提取命令执行后的输出结果
整数变量的运算
expr 变量1 运算符 变量2 [运算符 变量3] ...
常用运算符
加法运算:+
减法运算: -
乘法运算: \*
除法运算: /
求模(取余)运算: %
案例welcome.sh
1.编写welcome.sh
#!/bin/bash echo "Welcome!" echo "My hostname is ${BEGINCOLOR}`hostname`$ENDCOLOR" echo "IP address is ${BEGINCOLOR} `ifconfig ens160 |grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}'|head -n1 ` $ENDCOLOR" echo "OS version is ${BEGINCOLOR} `cat /etc/redhat-release ` $ENDCOLOR" echo "CPU type is ${BEGINCOLOR}`lscpu|grep "Model name" |cut -d: -f2|tr -s " " `$ENDCOLOR" echo "Kernel version is ${BEGINCOLOR} `uname -r ` $ENDCOLOR" echo "Time is `date '+%Y%m%d %H:%M:%S'`"
2.运行
[root@hfj ~]# . /root/welcome.sh