Linux 便笺技巧专栏
原创
©著作权归作者所有:来自51CTO博客作者gblfy的原创作品,请联系作者获取转载授权,否则将追究法律责任
文章目录
一、 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获取
添加
子网ip段是192.168.92,后面的3-255自定义即可
如果想调整网段,调整完成后点击应用即可
2.3. GATEWAY获取
DNS1=网关即可
2.4. 重新网卡
#centos7.x RedHat7.x
systemctl restart network
#centos6.x RedHat6.x
service
2.5. 重新连接
客户端重新连接
三、主机名调整
3.1. 临时有效主机名
3.2. 永久有效主机名
vi /etc/hostname
添加主机名
# 重启服务器
reboot
#防火墙临时关闭
#开机不启动防火墙临时关闭
四、防火墙调整
4.1. 临时关闭防火墙
4.2. 开机不启动防火墙
systemctl disable firewalld
五、shell脚本
5.1. shell格式
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直接生成较大列表时
- 测试条件为“真”,则进入循环,测试条件为“假”,则退出循环
基本格式:
测试条件:
- 格式: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判断
单分支
案例
#!/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
6.5. shell输出
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
7.3. 追加日志
执行脚本过程中,记录日志,输出到指定文件
* * * * * root sh /root/showTime.sh >>