linux常用命令(4) --- Vim编辑器与Shell命令脚本

  • 如何使用vim编辑器来编写文档、配置主机名称、网卡参数以及yum仓库;
  • 通过vim编辑器将Linux命令放入合适的逻辑测试语句(if、for、while、case)后最终写出简单使用的shell脚本;
  • 可以通过at命令或配置Crontab计划任务服务让系统自动按时工作,让日常工作更加高效自动化。

1、Vim文本编辑器

  vim是linux操作系统默认安装的一款文本编辑器,vim是vi编辑器的升级版。

vim有三种模式
  命令模式、末行模式和编辑模式。

  • 命令模式:控制光标移动,可对文本进行删除、复制、粘贴等工作;
  • 输入模式:正常的文本录入;
  • 末行模式:保存、退出与设置编辑环境。

命令模式中常用快捷键:

dd     删除(剪切)光标所在整行;
5dd   删除(剪切)从光标处开始的5行;
yy    复制光标所在整行;
5yy   复制从光标处开始的5行;
p   将之前删除或复制过的数据粘贴到光标后;
/  字符串 在文本中从上至下搜索该字符串;
?  字符串 在文本中至下而上搜索该字符串;
n   显示搜索命令定位到的下一个字符串;
N   显示搜索命令定位到的上一个字符串;
u   撤销上一步操作

末行模式中常用命令:

:w 保存
:q 退出
:q! 强制退出(放弃对文本的修改)
:wq! 强化保存退出
:set nu 显示行号
:set nonu 不显示行号
:命令 执行该命令
:整数 跳转至该行

  • 修改主机名称

修改 /etc/hostname文件。

2、shell脚本

  • 查看系统中所有可用的shell解释器
cat /etc/shells
  • 查看当前的shell解释器
echo $SHELL

1)、编写简单的脚本:

#!/bin/bash
#for example by billy
pwd
  • 接收用户参数

格式:命令名 参数1 参数2 ...

SHELL预定义变量:

$0 当前执行shell脚本的程序名
$1-9,${10},${11}... 参数的位置变量
$# 一共有多少个参数
$* 所有位置变量的值
$? 判断上一条命令是否执行成功,0为成功,非0为失败。

2)、判断用户的参数

测试语句格式为:

 [ 条件表达式 ]

细分测试语句有:

  文件测试、逻辑测试、整数值比较、字符串比较

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

操作符

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

例如:
  测试 /opt/test 是否为目录:

[ -d /opt/test ]

显示上一条命令的返回值:

echo $?
  • 逻辑测试

格式:

[ 表达式1 ] 操作符 [ 表达式2 ]

操作符

&&    逻辑与
|| 逻辑或
! 逻辑否

例如:若当前用户不是root,则输出user

[ $USER != root ] && echo "user"
  • 整数值比较

格式

[ 整数1 操作符 整数2 ]

操作符

-eq    等于
-ne   不等于
-gt 大于
-lt 小于
-le 小于等于
-ge 大于等于
  • 字符串比较

格式

[ 字符串1 操作符 字符串2 ]

操作符

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

3)、条件测试语句

条件测试语句能够让shell脚本根据实际工作灵活调整工作内容,例如判断系统的状态后执行指定的工作,或创建指定数量的用户,批量修改用户密码,这些都可以让shell脚本通过条件测试语句完成。
- if 条件语句
类型:单分支结构、双分支结构、多分支结构
关键词:if、then、fi

linux常用命令(4)的更多相关文章

  1. Linux常用命令(一)

    Linux常用命令 1. pwd查看当前路径(Print Working Directory)    [root@CentOS ~]# pwd/root 2. cd .. 返回上一级 .. 表示上一级 ...

  2. linux常用命令的介绍

    本文主要介绍Linux常用命令工具,比如用户创建,删除,文件管理,常见的网络命令等 如何创建账号: 1. 创建用户 useradd -m username -m 表示会在/home 路径下添加创建用户 ...

  3. linux——常用命令与脚本

    linux常用命令 --文件管理pwd --查看当前目录cd --切换当前目录ls --列出当前目录下的所有文件touch --创建文件mkdir --建立目录rmdir --删除空目录rm --删除 ...

  4. DOS 和 Linux 常用命令的对比

    DOS 和 Linux 常用命令的对比 许多在 shell 提示下键入的 Linux命令都与你在 DOS 下键入的命令相似.事实上,某些命令完全相同. 本附录提供了 Windows的 DOS 提示下的 ...

  5. 第一章,Linux常用命令

    20161124 Linux常用命令1.find find /etc/ -size +50k -lsfind /etc/ -size +50k -ls 2> /dev/null查看目录下大于50 ...

  6. linux 常用命令大全

    linux 常用命令大全 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统 ...

  7. Linux 常用命令行

    Linux常用命令行 第一部分: cd命令 第二部分:文件操作 第三部分:压缩包操作

  8. [工作需求]linux常用命令以及vim常用命令

    一.             Linux 常用命令 mkdir dirname新建文件夹 cd ~ 进入自己的家目录 cd dirname 进入名字为dirname的目录: l 显示当前文件夹下的文件 ...

  9. 对于我的linux常用命令的说明

    我所列出的linux常用命令中的选项并不是全部的选项,是一些我们经常用到的linux命令及选项

  10. Linux 常用命令笔记

    Linux 常用命令笔记 1. locate locate:用来定位文件的位置,如:locate a.txt 但是这个命令有延迟,也就是新建的文件不一定能搜索到,如果非要找到新建的文件可以使用 upd ...

随机推荐

  1. NaN情况下无法比较大小

    <pre name="code" class="java">package nan; /** * NaN情况下无法比较大小 * @author ro ...

  2. TelephonyUtils

    <uses-permission android:name="android.permission.CALL_PHONE"/> import java.util.Arr ...

  3. 侧方、s弯道、坡起相关

    侧方: 方向盘上端对准路中箭头直行,当前面箭头头部尖角刚刚消失,停车,挂倒档,倒,当箭头尾部快要消失时右打死,侧身看左后视镜(这时可以稍微踩一下离合控制速度为低速),当出现库底角回正,坐直,当左侧第一 ...

  4. Scala语法01 - 基础语法

  5. Go项目实战:打造高并发日志采集系统(三)

    前文中已经完成了文件的监控,kafka信息读写,今天主要完成配置文件的读写以及热更新.并且规划一下系统的整体结构,然后将之前的功能串起来形成一套完整的日志采集系统. 前情提要 上一节我们完成了如下目标 ...

  6. 购物车实现 <Block实现回调>

    效果图如下: 具体代码实现如下: Model: #import <Foundation/Foundation.h> @interface ShopCarModel : NSObject @ ...

  7. K8S知识点总结

    一.K8S介绍: Kubernetes(k8s)是Google开源的容器集群管理系统.在Docker技术的基础上,为容器化的应用提供部署运行.资源调度.服务发现和动态伸缩等一系列完整功能,提高了大规模 ...

  8. 【C/C++开发】__stdcall,__cdecl,__fastcall的区别

    __stdcall和__cdecl的区别 __stdcall和__cdecl是两种函数名字修饰.(注意是连续的两个下划线) Windows上 windows上不管是C还是C++,默认使用的都是__st ...

  9. char、varchar、nchar、nvarchar四种类型

    char,nchar是定长,如果没达到指定的长度时将自动以英文空格在其后面填充.优势在于速度较高.varchar,nvarchar属于变长,如果没有达到指定的长度时,不会将自动以英文空格在其后面填充. ...

  10. chgrp 命令

    NAME chgrp - change group ownership SYNOPSIS chgrp [OPTION]... GROUP FILE... chgrp [OPTION]... --ref ...