文章目录

一、 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

Linux 便笺技巧专栏_for循环

2.2. IDADDR获取

添加

IPADDR=ip地址
GATEWAY=
DNS1=

Linux 便笺技巧专栏_for循环_02


子网ip段是192.168.92,后面的3-255自定义即可

如果想调整网段,调整完成后点击应用即可

2.3. GATEWAY获取

Linux 便笺技巧专栏_bash_03


Linux 便笺技巧专栏_总结_04


DNS1=网关即可

2.4. 重新网卡
#centos7.x RedHat7.x
systemctl restart network

#centos6.x RedHat6.x
service
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种 配置环境变量.
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 ]
then
echo one
fi

双分支

#格式:
if 测试条件
then
选择分支1
else
选择分支2
fi

案例

#!/bin/bash
flag=1
if [ $flag -eq 1 ]
then
echo one
else
echo "not support"
fi

多分支

#格式:
if 测试条件
then
选择分支1
elif 测试条件
then
选择分支2
...
else
选择分支n
fi

案例

#!/bin/bash
flag=2
if [ $flag -eq 1 ]
then
echo one
elif [ $flag -eq 2 ]
then
echo two
else
echo "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
七、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

案例:
输出日期时间,格式为yyyy-MM-dd HH:mm:ss

#!/bin/bash
showTime= date "+%Y%m%d %H:%M:%S"
echo $showTime
#查看crontab执行日志
tail
7.3. 追加日志

执行脚本过程中,记录日志,输出到指定文件

* * * * * root sh /root/showTime.sh >>

Linux 便笺技巧专栏_总结_05