1. 命令的执行顺序:
#cmd1
#cmd2
与cmd1;cmd2 效果一下。
________________________________________________________________________
2.echo 中的 “” ‘’ 区别
#echo ni hao 输出 ni hao,
#echo "ni hao $1" 输出 ni hao,解释$1,其中“ni hao” 是一个整体,但是不能解释特殊符号,例如 !#
#echo 'ni hao $1' 输出 ni hao 不解释$1。原样输出。
echo -n " ni hao "#忽略换行符。
[root@gzdxt123 ~]# echo -n "ni hao"
ni hao[root@gzdxt123 ~]#
echo -e " 1\t2\t3"
123
-e 将转义序列(字符)作为参数解释。
echo 中的输出彩色字体:
echo -e "\e[1;31m this is red \e[0m]"
31 是红色,32绿色,33×××,34蓝色,35洋红,36青色,37白色,30黑色,0重置
echo 中设置字体背景色
echo -e "\e[1;42m this is red \e[0m]"
41 红色 42 绿色 43 ××× 44 蓝色 45 洋红 46青色 47白色 40 黑色 0 重置
________________________________________________________________________
3.环境变量
环境变量:一些特殊的变量会被shell环境和操作系统环境存储一些特别的值,这类变量称为环境变量。
环境变量与普通脚步中的变量的区别在与,环境变量未在当前脚步中声明就可以直接饮用。例如$PATH $PWD $HOSTNAME $UID $HOME
可以利用/etc/profile 定义新的环境变量
#xxx="xxx:xxx:"
#export xxx
env 打印与当前终端相关的环境变量。
查看某一个进程执行中使用的环境变量。
cat /proc/$PID/environ
其中查询PID 可以利用pgrpe xxx 获得进程ID号。
获取一个变量的长度
#var=123456
#echo$(#var)
#6
________________________________________________________________________
4.shell中加减乘除
+法:
$no1=4
$no2=5
let no3=no1+no2
自己加:let no1++
自己减:let no1--
利用[]
no3=$[ no1 + no2 ]
利用expr
no3=`expr 1 + 1 `
no3=$(expr $no1 + 5)
shell中的循环与判断
*法和/法
利用bc命令
echo "4 * 5.5" |bc 乘法
echo " 4 / 5.5" |bc 除法
________________________________________________________________________
5 .标准输入与标准输出与错误输出
默认 cat b > a.txt 等于 cat b 1> a.txt
出现错误 会输出到屏幕 也就是2
把 对的 错的 都追加到a.txt
cat b 2>&1 >a.txt 其中&表示同时。
________________________________________________________________________
6. EOF文件块。
fdisk /dev/sdf <<EOF
n
EOF
解决了交互式输入的问题,其中第一个<<EOF 与EOF之间的内容会被当做标准输入
cat > /etc/xxx.txt <<EOF
this is test
EOF
xxx.txt 会写入 this is test.利用cat EOF提供的标准输入内容追加到xxx.txt
alias命令:
作用:查询一个内容每次都需要输入很长的命令,可以利用alias代劳解决
alias install= 'yum -y install'
这个别名定义写入当前用户的.bashrc 那么每次登陆都会生效。
这个别名定义写入/etc/profile 所有用户每次登陆都会生效。(等于新建了一个环境变量)
________________________________________________________________________
7. 增加脚步的调试功能。
sh -xv b.sh
查看b.sh 的执行过程,利于排查脚步中的错误。一次性执行
-xv 写入 b.sh 的开头 #!/bin/bash -xv 每次脚步都显示执行过程。
在shell中生成子shell。
out=$(cat b.txt)
利用read 读取键盘。
#read -n 2 var
#echo $var 从键盘读取2个字符存入var
#read -s var 不显示键盘的输入存入var
#read -p "enter passwd" 显示提示信息
#read -t 30 var 在30秒内键入的字符存入var
#read -d ":" var
当输入:时前面的字符存入var. hello: hello别存入var中
________________________________________________________________________
8.shell中的循环和判断。
for x in txt
do
done
把txt中的分别值分别轮询一遍。结束
for disk in disk_less
do
mkfs.ext2 disk
done
disk_less中的列表中的磁盘分别执行格式化。
while
do
done
while 循环把“真”作为条件,当“假”的时候退出脚本。
while
de=5
[ $de -le 5 ]
do
touch /root/$de.txt
de=`expr $de + 1`
done
if语句
if cond
then
command
fi
if cond
then
command
else
commadn
fi
if cond
then
command
elif cond
then
command
else
command
fi
-gt 大于
-lt 小于
-ge 大于或等于
-le 小于或等于
-eq 等于
-ne 不等于
-a and和 &&
-o or或者 ||
字符串比较: [[ $comm1 = $comm2]] -z 表示空字符 -n 表示非空字符