Linux的小白之路3
  BHLdDyfgCFl1 2023年11月13日 26 0

第四章vim编辑器与shell脚本

Vim编辑器

aio插入模式

Esc末行模式

:wq



a 在光标的下一位进行操作

I 直接插入

O 光标下一行



Esc 进入命令模式

命令模式中最常用的一些命令



P paste






脚本

两种运行脚本

1.bash 脚本名.sh //通用

2. ./脚本名.sh //一般没有权限

chmod u+x example.sh //增加权限



脚本声明 #!/bin/bash


脚本注释 #这是注释


脚本命令 ls pwd


脚本名以.sh结尾


Shell脚本自带

$0 脚本程序的名称

$# 总共接收到几个参数

$* 接收到的参数是什么/

$1,$3,$5 指的是分别接收第一三五的参数

$? 返回上次命令的返回值



在运行 bash 脚本名 后加参数信息





判断用户参数

-f 判断文件存不存在

-d判断目录存不存在

判断一个文件存不存在

[ -f /etc/aaa ] //存在

Echo $? //返回上一次命令的值

0 //0为true、非零的、1为false



逻辑

逻辑与&& 前面成功,则执行后面

逻辑或|| 前面失败,则执行后面

逻辑非! 取反


[ $USER = root ] &&echo "123" ||echo "321"




整数、数值比较运算符

[ 5 > 5 ] // 0 为什么?

在Linux里<、>与重定向冲突、=与赋值冲突

-eq 是否等于 =

-gt 大于 >

-lt 小于 <

-le 等于小于 <=

-ge 大于等于 >=

-ne 不等于  !=


制作一个提醒内存不足的小程序

free -m | grep Mem: | awk ‘{print $4}’

//提取以M为单位的值

awk ‘{print $4}’ //手动提取

  提取第四列的信息


[ `free -m | grep Mem: | awk ‘{print $4}’` -lt 1024 ] && echo ”buzu”|| echo ”zu”

`执行命令`


字符串比较运算符

变量比较

= 是否相同

!= 比较字符串是否不同

-z 判断是否为空值

[ -z $a]


-e 是否存在


脚本

if判断

If [] ; then


Fi


#!/bin/bash

ping -c 3 -i 0.2 -w 3 $1 &> /dev/null

if [ $? -eq 0 ]

        then

                echo "host $1 yes"

        else

                echo "host $1 no!!!"

Fi

For do done循环

For 参数in 参数

do

可以内嵌if

done


While循环

$()=``

Let 名++ //let代表每次加一

Exit 0 //终止 循环



Case 测试语句

| || ) ()

Case 变量值 in

1)   //if

语句

;;

2)   //elif

语句

;;

*) //else

结束esac


#!/bin/bash

read -p "enter: " key

case "$key" in

[a-z]|[A-Z])

echo "zimu"

;;

[0-9])

echo "shuzi"

;;

*)

echo "no"

esac

4.4计划任务

一次性计划 at

有周期性计划 crond

一次性at

At 17:00

At> reboot // 17点重启

At> ctrl +d //用来保存

创建一个2分钟后执行的

at now +2 MINUTE


MINUTE 分钟

HOUr 小时

DAY 天

MONTH 月


At 时间 //创建一个计划任务

at -l 查看计划

At -c 编号 查看这个计划是什么命令

At -rm 编号 //删除这个计划


-f 指定包含命令的任务文件

-q 指定新任务名称

-l 显示待执行任务列表

-d 删除指定待执行任务

-m 任务执行后给用户发邮件


周期性crond

Crond 服务名称

Crontab 配置工具


分 时 日 月 星期 命令


参数 作用

-e 编辑计划任务

-u 指定用户名称

-l 列出任务列表

-r 删除计划任务


Crontab -e


如果没有信息 以空位占位 *


分 时 日 月 星期 命令

不能直接加命令 //写完整路径格式的命令

Whereis reboot



分 时 日 月 星期 命令


分钟 取值为0~59的整数

小时 取值为0~23的任意整数

日期 取值为1~31的任意整数

月份 取值为1~12的任意整数

星期 取值为0~7的任意整数,

其中0与7均为 星期日


分 时 日 月 星期 命令

30  3  5  9  *  /命令 /每年的九月五号3点30


30  3  *  9  2  /命令 /每年的9月第二个星期3点30


30  3  *  *  2  /命令 /每个礼拜二3点30

30  */2  *  *  *  /命令 每隔两小时30分执行


30  2  3-5  *  *  /命令 每月的3到5号两点30分


30  2  3,5,7  *  *  /命令 每月的3 5 7号两点30分


30  *  *  */2  *  /命令 每隔两个月30分钟


10,30  *  *  *  *  /命令 每个小时的10分钟和30分钟


,分隔

* */2:每隔两天

-至

命令:路径加名称



回车是第二条计划

一行是一条


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  bYdMetjCLs2g   2023年11月28日   21   0   0 bash
  wwLZeziuqjLR   2023年12月08日   99   0   0 Dockercentosbash
  mjtHZIki74si   2023年12月06日   30   0   0 ubuntubash
  hHWnOnebRjW2   2023年11月27日   23   0   0 PostgreSQLsqlbash
  vxoexqgjyiCS   2023年11月25日   19   0   0 linuxbash数组
  O3FLR83nwSoe   2023年11月22日   27   0   0 nginxHTTPbash