:set shift> 可以通过编辑配置/etc/vimrc使某些针对程序员功能自动生效。
其他快捷命令:
^ 将光标移至行首;
$ 将光标移至行尾;
G 将光标移至文件尾;
gg 将光标移至文件头;
ctrl +f 向下翻页;
ctrl + b 向上翻页;
u 撤销操作;
x 删除光标所在位置内容;
dd 删除光标所在行;
D 删除光标所在位置到所在行结尾;
yy 复制光标所在行;
p 在光标所在位置将复制或删除内容粘贴
配置主机名/etc/hosts文件 ,为了便于局域网内管理某台特定主机
[root@localhost ~]# vim /etc/hosts
192.168.1.200 wdw.com wdw
配置一下网卡信息和DNS信息
Vim /etc/resolve.conf----配置DNS 这个文件是用来存放DNS配置 的 网卡配置的DNS会在这同步 ,这写 的不会在网卡同步
[root@localhost ~]# vim /etc/resolv.conf
nameserver 8.8.8.8
[root@localhost ~]# nslookup www.baidu.com 解析百度的地址
二、Shell编程
shell就是翻译 将命令翻译给内核
交互式:用户每输入一条命令立即执行---->不进行重定向就是显示在屏幕
非交互式:输出重定向
批处理:用户编写好完整shell脚本一次执行
1.脚本文件文件一定以.sh结尾
#/bin/bash #是注释 第一行注释shell版本 一般第二行注释脚本要做的事
pwd
ls -al
写完有俩种错误:
第一种:
[root@localhost ~]# nvli.sh
-bash: nvli.sh: command not found 路径不正确
默认情况所有的命令都是通过PATH寻找命令
第二种:
[root@localhost ~]# . /nvli.sh
-bash: /nvli.sh: No such file or directory 权限不够
-rw-r--r--. 1 root root 22 May 18 20:50 nvli.sh
[root@localhost ~]# chmod u+x nvli.sh
也可以bash/sh来执行
2.接收用户的参数
$是shell里的保留字 $# 是统计个数
#/bin/bash
echo "name=$0"
echo "come to=$# they are $*"
echo "No1=$1 No4=$4"
~
[root@localhost ~]# ./nvli.sh one two tree four five six seven
name=./nvli.sh
they are one two tree four five six seven
No1=one No4=four
形参和实参的传递
3.判断用户的参数条件
成立返回数字0条件不成立返回(非零)随机数
判断语句:两种形式
test命令!----> test参数表达式
[]命令----> [ 表达式 1 参数 表达式 2 ]
判断种类:
1.文件测试---判断文件是否存在,并且是什么类型
操作符 作用
-d 测试文件是否为目录类型
-e 测试文件是否存在
-f 判断是否为一般文件
-L 链接文件
-r 测试当前用户是否有权限读取
-w 测试当前用户是否有权限写入
-x 测试当前用户是否有权限执行
[root@localhost ~]# test -f nvl.sh
[root@localhost ~]# echo $? $?输出判断结果
1
[root@localhost ~]# [ -L nvli.sh ]
[root@localhost ~]# echo $?
1
2.逻辑测试 与或非
与&& 符号两边的表达式同时成立才是真
或|| 有一个成立就是真
非! 对表达式取反
3.整数值测试:比较大小不能用> < =
操作符 作用
-eq 是否等于
-ne 是否不等于
-gt 是否大于
-lt 是否小于
-le 是否等于或小于
-ge 是否大于或等于
4.字符串测试:比较区别
操作符 作用
= 比较字符串内容是否相同
!= 比较字符串内容是否不同
-z 判断字符串内容是否为空
5.流量控制语句
5.1. if
DNS="/WDW"
if [ ! -e $DNS ]
then
mkdir -p $DNS
fi
~
~
ping -c 2 -W 3 $1 &> /wdw/wdw &---后台运行
if [ $? -eq 0 ]
then
echo "Host $1 is online"
else
echo "be not online"
echo "error"
fi
~
echo "name=$0"
echo "come to=$# they are $*"
echo "No1=$1 No4=$4"
if [ $1 != one ]
then
echo "error"
elif [ $1 = two ]
then
echo "correct"
else
echo "really"
5.2. cose 判断语句
#/bin/bash
read -p "possbly is :" KEY --读取从键盘输入的内容 给一个名字
case "$KEY" in
[A-Z] | [a-z]) 单括号内是一个判断
echo "This is char"
;; 结束一个判断
[0-9])
echo "This is number"
;;
*) * 表示其他
echo "This is other"
esac
5.3. for
#/bin/bash
read -p "input a password :" PASSWD
for USER in `cat users.txt`
do
id $USER &> /null
if [ $? -eq 0 ]
then
echo "Exist"
else
useradd $USER &> /null
echo "$PASSWD" | passwd --stdin $USER &> /null
if [ $? -eq 0 ]
then
echo "$USER,creation success"
else
echo "$USER,creation failure"
fi
fi
done
5.3.while
进行条件判断,当条件不满足时结束!
#/bin/bash
NUMBER=$(expr $RANDOM % 1000) #RANDOM 是产生随机数的环境变量
TIME=0 #Counter expr命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串echo "number between0-999 : "
while true
do
read -p "input a number :" INT
let TIME++
if [ $INT -eq $NUMBER ] ; then
echo "Right ,number=$NUMBER"
echo "Time=$TIME"
echo 0
elif [ $INT -gt $NUMBER ] ; then
echo "big"
else
echo "small"
fi
done
三、定时任务
3.1.计划任务:分为一次性和长期性 --在指定的时间段自动启动或者停止某些服务或者命令,实现自动化运维
1.一次性任务 :at时间---设定
[root@wdw ~]# at 10:00
at> /etc/init.d/httpd restart ctel +D结束
[root@wdw ~]# at -l #查看
3 2018-05-19 10:00 a root
[root@wdw ~]# atrm 3 #删除
[root@wdw ~]# at -l
[root@wdw ~]#
2.长期性任务:默认使用crond服务
crontab -e 添加 编辑计划任务
crontab -u 编辑他人的任务(root使用)