文章目录
- 一、 vi 专栏
- 二、固定ip设置
- 2.1. 自动获取改为静态
- 2.2. IDADDR获取
- 2.3. GATEWAY获取
- 2.4. 重新网卡
- 2.5. 重新连接
- 三、主机名调整
- 3.1. 临时有效主机名
- 3.2. 永久有效主机名
- 四、防火墙调整
- 4.1. 临时关闭防火墙
- 4.2. 开机不启动防火墙
- 五、shell脚本
- 5.1. shell格式
- 5.2. shell执行
- 5.3. shell中的变量
- 六、shell逻辑判断表达式
- 6.1. for循环
- 6.2. while循环
- 6.3. if判断
- 6.4. 后台运行shell
- 6.5. shell输出
- 七、crontab
- 7.1. crontab 简述与格式
- 7.2. 常用命令
- 7.3. 追加日志
一、 vi 专栏
说明 | 快捷键 |
---|---|
显示行数 | 按左上角esc :set nu |
跳转首行 | gg |
跳转末尾 | G |
跳转当前行首 | Home |
跳转当前行末 | End |
跳转指定行 | 按左上角esc :行号 |
复制当前行 | yy |
粘贴到下一行 | p |
删除当前行以及下面所有行 | 999+dd |
查找关键词 | /关键词 按回车 按n查找下一个 |
保存编辑 | 按左上角esc :wq |
退出编辑,不保存 | 按左上角esc :q! |
二、固定ip设置
2.1. 自动获取改为静态
cd /etc/sysconfig/network-scripts/
vi ifcfg-ens33将dhcp改为static
2.2. IDADDR获取
添加
IPADDR=ip地址
GATEWAY=
DNS1=
子网ip段是192.168.92,后面的3-255自定义即可
如果想调整网段,调整完成后点击应用即可
2.3. GATEWAY获取
DNS1=网关即可
2.4. 重新网卡
#centos7.x RedHat7.x
systemctl restart network#centos6.x RedHat6.x
service networkrestart
2.5. 重新连接
客户端重新连接
三、主机名调整
3.1. 临时有效主机名
hostname 主机名
3.2. 永久有效主机名
vi /etc/hostname
添加主机名# 重启服务器
reboot#防火墙临时关闭#开机不启动防火墙临时关闭
四、防火墙调整
4.1. 临时关闭防火墙
systemctl stop firewalld
4.2. 开机不启动防火墙
systemctl disable firewalld
五、shell脚本
5.1. shell格式
#!/bin/bash
5.2. shell执行
# 第1种
sh xx.sh# 第2种
bash xx.sh# 第3种
chmod u+x xx.sh
./xx.sh# 第4种 配置环境变量.
xx.sh
5.3. shell中的变量
- 变量不需要声明,初始化也不需要指定类型
- 变量命名:只能使用数字、字母和下划线,且不能以数字开头
- 变量赋值:通过“=”进行复制,在变量、等号和值之间不能出现空格!
六、shell逻辑判断表达式
6.1. for循环
格式1:适用于有规律的for循环
for((i=0;i<10;i++))
do
循环体。。。
done
案例:
#!/bin/bash
for((i=0;i<10;i++))
do
echo $i
done
格式2:适用于没有规律的for循环
for i in 1 3 5
do
循环体。。。
done
案例2:
#!/bin/bash
for i in 1 3 5 7
do
echo $i
done
6.2. while循环
- 适用于循环次数未知,或不便于使用for直接生成较大列表时
- 测试条件为“真”,则进入循环,测试条件为“假”,则退出循环
基本格式:
whlie 测试条件
do
循环体。。。
done
测试条件:
- 格式:test EXPR 或者 [ EXPR ] 中括号和表达式之间的空格不能少
- 整型测试: -gt(大于)、-lt(小于)、-ge(大于等于)、-le(小于等于)、-eq(等于)、-ne(不等于)
- 字符串测试:=(等于)、!=(不等于)
整型测试:
#!/bin/bash
while test 2 -gt 1
do
echo yes
sleep 1
done
推荐使用第2种
#!/bin/bash
while [ 2 -gt 1 ]
do
echo yes
sleep 1
done
字符串测试:
#!/bin/bash
while [ "qbc" = "qbc" ]
do
echo yes
sleep 1
done
6.3. if判断
单分支
#格式:
if 测试条件
then选择分支
fi
案例
#!/bin/bash
flag=1
if [ $flag -eq 1 ]
thenecho one
fi
双分支
#格式:
if 测试条件
then选择分支1
else选择分支2
fi
案例
#!/bin/bash
flag=1
if [ $flag -eq 1 ]
thenecho one
elseecho "not support"
fi
多分支
#格式:
if 测试条件
then选择分支1
elif 测试条件
then选择分支2...
else选择分支n
fi
案例
#!/bin/bash
flag=2
if [ $flag -eq 1 ]
thenecho one
elif [ $flag -eq 2 ]
thenecho two
elseecho "not support"
fi
6.4. 后台运行shell
nohup xxx.sh &
6.5. shell输出
标准输出1
标准错误输出2
重定向>
追加>>
nohup bash xxx.sh >/dev/null 2>&1 &
1是正确输出,可以省略
2是错误输出
&1 是引用标准输出1
七、crontab
7.1. crontab 简述与格式
格式1:适用于有规律的for循环
crontab作用于周期性白执行的命令 :每天凌晨1点去“偷菜”格式:
# For details see man 4 crontabs# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
7.2. 常用命令
# 查看crontab服务状态
systemctl status crond# 启动crontab服务
systemctl start crond# 关闭crontab服务
systemctl stop crond#添加定时任务
vim /etc/crontab
案例:
输出日期时间,格式为yyyy-MM-dd HH:mm:ss
#!/bin/bash
showTime= date "+%Y%m%d %H:%M:%S"
echo $showTime
#查看crontab执行日志
tail -f /var/log/cron
7.3. 追加日志
执行脚本过程中,记录日志,输出到指定文件
* * * * * root sh /root/showTime.sh >> showtime.log