《Linux就该这么学》学习笔记(三)

目录

vim编辑器

vim常用快捷键

vim末行模式常用命令

shell脚本

shell脚本的执行 

shell接收用户参数

shell判断用户参数

if条件语句

for条件语句

while条件语句

case条件语句

计划任务服务


vim编辑器

        在热门Linux操作系统中一般都会默认安装vim编辑器,vim是vi编辑器的升级版,vim编辑器有三种模式——命令模式末行模式编辑模式

        命令模式:控制光标移动可对文本进行删除、复制、粘贴等工作。

        输入模式:正常的文本输入。

        末行模式:保存、退出与设置编辑环境       

三者的转化:

        命令模式输入i、o、a进入编辑模式,使用ESC退回命令模式

        命令模式输入:(冒号)进入末行模式,使用ESC退回命令模式

vim常用快捷键

命令作用
dd删除光标所在处的一行
5dd删除从光标开始的5行
yy复制光标所在行
5yy复制从光标开始的5行
p将之前删除或复制过的内容粘贴到光标处
/字符串从上至下搜索字符串
?字符串从下至上搜索字符串
n显示搜索命令定位的下一个字符串
N显示搜索命令定位的上一个字符串
u撤销上一步的操作

vim末行模式常用命令

命令作用
:w保存
:q退出
:q!强制退出(放弃修改)
:wq!强制退出并保存
:set nu显示行号
:set nonu不显示行号
:命令执行该命令
: 整数跳转到该行

shell脚本

        shell脚本应该包括脚本声明注释信息可执行语句

        脚本声明(#!):告诉系统用何种shell来解释

        注释信息(#): 对可执行语句及其功能做介绍,可不写

        可执行语句:执行的具体命令

写一个简单脚本显示当前工作路径列出目录下的所有文件与属性

        

#!/bin/bash
#For Example

pwd
ls -la

shell脚本的执行 

        shell脚本可以通过三种方式执行:

        1.脚本文件路径: ./example.sh

        2.sh脚本文件路径:sh example.sh

        3.source脚本文件路径:source example.sh

其中脚本文件路径的方式执行需要为文件增加权限,sh和source则不需要

//直接执行权限不够
user@myubuntu:~/shell$ ./example.sh
bash: ./example.sh: 权限不够

//为sh文件添加执行权限
user@myubuntu:~/shell$ chmod u+x example.sh
user@myubuntu:~/shell$ ./example.sh
/home/user/shell
总用量 20
drwxrwxr-x  2 user user 4096 11月 11 15:15 .
drwxr-x--- 29 user user 4096 11月 11 15:15 ..
-rwxrw-r--  1 user user   38 11月 11 15:15 example.sh
-rw-rw-r--  1 user user   26 11月  6 20:34 tr2.txt
-rw-rw-r--  1 user user   13 11月  6 20:19 tr.txt

shell接收用户参数

        shell内设了接收用户参数的位置变量以及一些预定义的变量

$0当前执行脚本的文件名
$1-9,${10},${11}...参数的位置变量
$#参数的个数
$*所有位置变量的值
$?

上一条命令是否执行成功,0为成功,非0为失败

        

user@myubuntu:~/shell$ cat example.sh
#!/bin/bash
#For Example

echo "当前脚本名称$0"
echo "共有$#参数,分别为$*"
echo "第一个参数为$1,第三个参数为$3"


user@myubuntu:~/shell$ sh example.sh 1 2 3 4 5
当前脚本名称example.sh
共有5参数,分别为1 2 3 4 5
第一个参数为1,第三个参数为3

shell判断用户参数

        shell脚本可以测试待定表达式是否成立,测试语句可细分为:文件测试、逻辑测试、数值比较、字符串比较

文件测试:[操作符 文件或目录名]

操作符作用
-d测试是否为目录
-e测试是否存在
-f判断是否为文件
-r测试当前用户是否有权限读
-w测试当前用户是否有权限写
-x测试当前用户是否有权限执行

逻辑测试:[表达式1] 操作符 [表达式2]

操作符作用
&&逻辑与,“而且”
||逻辑或,“或者”
逻辑非

数值比较:[整数1 操作符 整数2]

操作符作用
-eq判断是否等于
-ne判断是否不等
-gt大于(greater than )
-lt小于 (less than)
-le小于等于
-ge大于等于

字符串比较:[字符串1 操作符 字符串2]

操作符作用
=比较字符串是否相等
!=比较字符串是否不相等
-z判断字符串内容是否为空 

if条件语句

if有单分支、双分支、多分支结构

单分支结构:

if 条件测试
then
命令序列
fi

双分支结构:

if 条件测试
then
命令序列1
else
命令序列2
fi

多分支结构:

if 条件测试1
then
命令序列1
elif 条件测试2
then
命令序列2
else
命令序列3
fi

for条件语句

for 变量名 in 取值列表
do 命令序列
done

while条件语句

while 条件测试操作
do 命令序列
done

case条件语句

case 变量值 in
模式1)
    命令序列1
     ;;
模式2)
    命令序列2
    ;;
.....
*)
    默认命令序列
    ;;  

计划任务服务

        使用计划任务服务可以让各个服务、命令在指定时间段运行、停止。计划任务分为“一次性”和“长期性”。

        一次性任务由atd服务/进程实现,计划的管理操作是“at”命令,具体可用参数如下:

参数作用
at <时间>安排一次性任务
atq或at -l查看任务列表
at -c 序号预览任务与设置环境
atrm 序号删除任务

使用at创建计划有交互式和非交互式

//交互式 使用ctrl+d退出并保存任务
user@myubuntu:~/shell$ at 23:30
warning: commands will be executed using /bin/sh
at Fri Nov 11 23:30:00 2022
at> ls -al 
at> <EOT>
job 2 at Fri Nov 11 23:30:00 2022

//使用echo加管道实现非交互式
user@myubuntu:~/shell$ echo "ls -al" | at  22:00
warning: commands will be executed using /bin/sh
job 3 at Fri Nov 11 22:00:00 2022

        长期计划任务使用cron服务,具体方法如下:

        创建修改任务:crontab -e [-u 用户名]

        查看任务:crontab -l [-u 用户名]

        删除任务:crontab -r [-u 用户名]

        在创建编辑任务时有一个固定格式:“  分钟 小时 日期 月份 星期 命令 ”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值