1.6其他快捷命令 h/j/k/l
控制光标移动(左下上右) ^
将光标移至行首 $
将光标移至行尾 G
将光标移至文件尾 gg
将光标移至文件头 ctrl + f
向下翻页 ctrl + b
向上翻页 u
撤销操作 x
删除光标所在位置内容 dd
删除光标所在行 D
删除光标所在位置到所在行结尾 yy
复制光标所在行 p
在光标所在位置将复制或删除内容粘贴
二、shell编程入门 2.1 Shell的概念及其作用
Shell 是一款 Linux 系统下,用于用户命令与 Linux 内核连接的软件,是一款命令解释器,能够识别用户输入的各种命令,并传递给操作系统。大多数 Linux 版本默认情况下使用的 Shell 版本是BASH。
2.2Shell 脚本
Shell 脚本,严格上叫做 BASH 编程, 依赖于 Vim 编辑器,作为文本保存在 Linux 上,一定以.sh结尾Shell 解释器支持变量、命令行参数、交互式输入、函数模块及流控语句等
[root@RHEL6 ~]# bash test.sh hello world
This script is test.sh ///$0
The parameter number is 2,they are hello world
The first is hello ///$1
The second is world ///$2
2.4.3 整数值测试(比较大小,不能用 > /dev/null
if [ $? -eq 0 ]
then
echo "Host $1 is online"
else
echo "Host $1 is offline"
fi
[root@RHEL6 ~]# bash ping.sh 192.168.100.1
Host 192.168.100.1 is online
[root@RHEL6 ~]# bash ping.sh 192.168.100.2
Host 192.168.100.2 is offline
-------------------------------------------------------------------------------------
[root@RHEL6 ~]# cat Grade.sh
#!/bin/bash
read -p "Enter your score(0-100):" GRADE
if [ $GRADE -ge 80 ];then
echo "The grade is excellent!!"
elif [ $GRADE -ge 60 ]&&[ $GRADE -lt 80 ];then
echo "The grade is pass"
else
echo "The grade is failure"
fi
[root@RHEL6 ~]# bash Grade.sh
Enter your score(0-100):88
The grade is excellent!!
[root@RHEL6 ~]# bash Grade.sh
Enter your score(0-100):59
The grade is failure
2.5.2 for语句--循环语句
1)根据取值列表,循环执行命令,循环彻底后结束
2)语法结构:
for 变量 in {list}
do
循环体
done
[root@RHEL6 ~]# cat user.txt
tom
jack
lilei
lucy
[root@RHEL6 ~]# cat for.sh
#!/bin/bash
for USER in `cat /root/user.txt`
do
id $USER &> /dev/null
if [ $? -eq 0 ];then
echo "$USER exists"
else
useradd $USER &> /dev/null
echo "1234" | passwd --stdin $USER &> /dev/null
if [ $? -eq 0 ];then
echo "$USER,Create success"
else
echo "$USER,Create failure"
fi
fi
done
[root@RHEL6 ~]# bash for.sh
tom exists
jack,Create success
lilei,Create success
lucy exists
2.5.3 while语句--循环语句
1)用于进行条件判断,当条件不满足时,结束命令!
2)语法结构:
while 表达式
do
循环体
done
[root@RHEL6 ~]# cat while.sh
#!/bin/bash
NUMBER=$(expr $RANDOM % 1000)
TIMES=0
while true
do
read -p "Please input a number(0-999):" INT
let TIMES++
if [ $INT -gt $NUMBER ];then
echo "too big"
elif [ $INT -lt $NUMBER ];then
echo "too small"
else
echo "It is right,the number is $NUMBER"
echo "TIMES=$TIMES"
exit 0
fi
done
Please input a number(0-999):959
too small
Please input a number(0-999):960
It is right,the number is 960
TIMES=2
2.5.4 case语句--判断语句
1)用于对条件表达式进行判断,执行满足条件表达式的语句
2)语法结构:
case 变量 in
条件表达式 1)
语句;;
条件表达式 2)
语句;;
*)
语句;;
esac
[root@RHEL6 ~]# cat case.sh
#!/bin/bash
read -p "Please input a char:" KEY
case $KEY in
[a-z]|[A-Z])
echo "This is a char"
;;
[0-9])
echo "This is a num"
;;
*)
echo "This is a special char"
esac
[root@RHEL6 ~]# bash case.sh
Please input a char:9
This is a num
[root@RHEL6 ~]# bash case.sh
Please input a char:h
This is a char
[root@RHEL6 ~]# bash case.sh
Please input a char:!
This is a special char