Linux学习笔记4-Vim编辑器与Shell命令脚本

Vim文本编辑器

  1. 是什么?
    在Linux系统中配置应用服务,实际上就是修改他的配置文件,需要通过文本编辑器完成。热门Linux系统中都会默认安装vim文本编辑器,是vi编辑器的升级版。
  2. 优势
    分为三种模式——命令模式,末行模式,编辑模式
    有多种不同的命令快捷键组合
  3. 模式介绍
    命令模式:控制光标移动,可对文本进行删除,复制,粘贴工作
    输入模式:文本录入
    末行模式:保存,退出,设置编辑环境
    命令模式 — : —> 末行模式— Esc键 —> 命令模式
    命令模式 — a,i,o等 —> 输入模式 — Esc键 —> 命令模式
  4. 快捷键介绍
    命令模式下
命令 作用
dd 删除光标所在整行
5dd 删除从光标处开始的5行
yy 复制光标所在的整行
5yy 复制从光标处开始的5行
p 将之前删除或复制的数据粘贴到光标后
/字符串 在文本中从上之下搜索该字符串
?字符串 在文本中从下至上搜索该字符串
n 显示搜索命令定位到的下一个字符串
N 显示搜索命令定位到的上一个字符串
u 撤销上一部的操作

末行模式下

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

5. 文件位置
/etc/hostname : 主机名称
/etc/sysconfig/networl-scripts:网卡配置文件
网卡类型:TYPE
地址分配模式:BOOTPROTO
网卡名称:NAME
是否启动:ONBOOT
IP地址:IPADDR
子网掩码:NETWAY
网关地址:GATEWAY
DNS地址:DNS1
etc/yum.repos.d:yum仓库的配置文件
etc/shells : 查看可用的Shell解释器信息

Shell脚本

  1. 是什么?
    人与计算机硬件的翻译官
    将各种命令通过逻辑语句组合而成的程序
  2. 工作形式
    交互式:用户输入一条命令,Shell解释并执行一条
    批处理:用户事先缩写一个Shell脚本,包含诸多命令,Shell会一次性执行完
  3. 查看当前Shell解释器
  echo $SHELL
  1. 脚本结构
    脚本声明:告知系统用何种shell来解释
    注释信息:对可执行语句或程序功能作介绍,可以不写
    可执行语句:执行的具体命令
  2. 执行方式
    脚本文件路径:./文件名称 ./Example.sh (需要对shell文件增加权限 chmod u+x Example.sh)
    sh 脚本文件路径: sh Example.sh
    source 脚本文件路径:source Example.sh
  3. 带参数执行
    Shell预定义变量
变量名 定义
S0 当前执行Shell脚本的程序名
S1-9,S{10},S{11}…. 参数的位置变量
S# 一共有多少个参数
S* 所有位置变量的值
S? 判断上一条命令是否执行成功,0为成功,非0为失败
#Example.sh
echo "当前脚本名称为$0"
echo "总共有$#个参数,分别为$*"
echo "第一个参数为$1,第5个为$5"

#result -- sh Example.sh one two three fource five six
当前脚本名称为Example.sh
总共有6个参数,分别为one two three four five six
第一个参数为one,第5个为five
  1. 判断用户的参数——测试语句
    文件测试:[ 操作符 文件或目录名 ] (中括号内首尾位置要有空格)
操作符 作用
-d 测试是否为目录
-e 测试文件或目录是否存在
f 判断是否为文件
r 测试当前用户是否有权限读取
w 测试当前用户是否有权限写入
-x 测试当前用户是否有权限执行

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

操作符 作用
&& 逻辑与,而且
|| 逻辑或,或者
! 逻辑否

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

操作符 作用
-eq 判断是否等于
-ne 判断是否不等于
-gt 判断是否大于
lt 判断是否小于
le 判断是否等于或小于
-ge 判断是否大于或等于

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

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

2. 条件测试语句


  • 单分支结构
    if —>条件成立 ——> then 命令序列 ——> fi
    if—>条件不成立——>fi
  • 双分支结构
    if 条件测试操作
    then 命令序列1
    else 命令序列2
    fi
  • 多分支结构
    if 条件测试操作1
    then 命令序列1
    elif 条件测试操作2
    then 条件序列2
    else
    命令序列3
    fi
  • read 命令用于将用户的输入参数赋值给指定变量,read -p [ 提示语句 ] 变量名
  • for条件语句
    for 变量名 in 取值列表
    命令序列
    done
  • while条件语句
    while 条件测试操作
    do
    命令序列
    done
  • case条件语句
    case 变量值 in
    模式1)
    命令序列1
    模式2)
    命令序列2
    *)
    默认命令序列
    esac

3. 计划任务服务

  • 一次性任务 - 由atd服务/进程实现,计划的管理操作是at命令

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


  • 长期任务 - 由cron服务/进程实现
  • 创建,编辑计划任务:crontab -e [-u 用户名]
    固定格式:分钟 小时 日期 月份 星期 命令
  • 查看计划任务:crontab -l [-u 用户名]
  • 删除计划任务:crontab -r [-u 用户名]

字段 说明
分钟 取值为从0到59之间的整数
小时 取值为从0到23 之间的任意整数
日期 取值为从1到31之间的任意整数
月份 取值为从1到12之间的任意整数
星期 取值为从0到7之间的任意整数,其中0与7均为星期日
命令 要执行的命令或程序脚本

猜你喜欢

转载自blog.csdn.net/ims_php/article/details/80679967