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. hk clearing participant & Exchange Participant of SEHK

    https://www.hkex.com.hk/-/media/HKEX-Market/Services/Clearing/Securities/Infrastructure/CCASS-3-Term ...

  2. java代码实现简体繁体转换

    汉字分为简体和繁体字,这是众所周知的,虽然繁体字中国大陆这边用的并不会太多,但时不时的还是会使用到.那么,如何做到简体字和繁体字的转换呢?其实很简单,这里附上一个java版本的简繁体转换,用网上找的接 ...

  3. pip安装django出错 Could not install packages due to an EnvironmentError: [Errno 13]

    pip install django 下载安装Django报错, 按照提示的建议改为 pip install --user django 安装完成

  4. [ML] Feature Selectors

    SparkML中关于特征的算法可分为:Extractors(特征提取).Transformers(特征转换).Selectors(特征选择)三部分. Ref: SparkML中三种特征选择算法(Vec ...

  5. Button加在UITableViewHeaderFooterView的self.contentView上导致不能响应点击

    你有没有遇到过Button加在UITableViewHeaderFooterView的self.contentView上导致不能响应点击的情况,下面记录一下我遇到的原因和解决方法: 代码如下: - ( ...

  6. redis单机版无法启动java程序解决

    1.注释掉 bind 127.0.0.1 2.kill-9 杀死进行 3.redis-server + 配置文件进行重启,

  7. 配置lumen的log为daily模式

    1.首先添加服务提供者类LogServiceProvider <?php namespace App\Providers; use Illuminate\Support\ServiceProvi ...

  8. Redis Guide

    1. Redis简介 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.它支持字符串.哈希表.列表.集合.有序集合,位图,hyperloglogs等数 ...

  9. 使用rabbit mq.模拟dubbo,使MQ异步调用代码写起来像是同步方法.

    最近在改造老系统,遇到了需要使用rabbitMq的场景.在以前使用的过程中需要在发送端和消费端各种配置,感觉比较麻烦,然后突然想到了dubbo中@Reference注解的形式,可不可以做一个类似的架子 ...

  10. Apriori算法--Python实现

    # -*- coding: utf-8 -*- """ Created on Mon Nov 05 22:50:13 2018 @author: ZhuChaochao ...