vim命令及shell命令

目录

vim命令

vim三种工作模式

光标的跳转

复制粘贴

剪切删除

撤销回滚替换

翻页

其他

shell编程命令

判断用户的参数

可用的整数比较运算符

常见的字符串比较运算符

if条件测试语句

for条件循环语句


vim命令

vim三种工作模式

Vim编辑器中设置了三种模式: 命令模式、编辑模式、末行模式,每种模式分别又支持多种不同的命令快捷键,大大提高了工作效率,而且用户在习惯之后也会觉得相当顺手。要想高效率地操作文本,就必须先搞清这三种模式的操作区别以及模式之间的切换方法。

光标的跳转

Shift + g | G                    // 将光标跳转到文件最后一行

gg                                   // 将光标跳转到文件的第一行

Ngg                                // 将光标跳转到指定的行(N为阿拉伯数字)

Shift + 4 | $                    // 将光标跳转到当前所在行的行末

Shift + 6 | ^ | 0               // 将光标跳转到当前所在行的行首

复制粘贴

yy                                  // 复制光标所在行的整行内容

P(大写P)                  // 将复制的内容粘贴到光标所在行的上一行

p(小写p)                   // 将复制的内容粘贴到光标所在行的下一行

Nyy|yNy                       // 将光标所在行整行内容及下面N-1行内容复制 (N为阿拉伯数字)

剪切删除

dd                                // 将光标所在行一整行内容,剪切(删除)

Ndd | dNd                    // 将光标所在行及下面N-1行内容剪切(N为阿拉伯数字)

Shift + d | D                 // 将光标所在字符及后面整行内容剪切(删除)

x                                  // 删除当前光标所在字符

Shift + x | X                 // 将光标所在当前字符的前一个字符删除

d + Shift + g | dG        // 将光标所在行及后面所有行内容删除

撤销回滚替换

u                                 // 撤销上一次操作

Ctrl + r                        // 恢复上一次撤销的操作

r                                 // 替换光标当前所在的一个字符

Shift + r | R                // 从光标所在字符开始进行替换直到按ESC结束

翻页

Ctrl + b                      // 向前翻页

Ctrl + f                       // 向后翻页

其他

:命令               //执行该命令

:整数                //跳转到改行

:set nu                //显示行号

:set nonu                //不显示行号

?字符串                //在文本中从下到上搜索该字符串

/字符串                //在文本中从上到下搜索该字符串

shell编程命令

处理方式:交互式+批处理

echo $SHELL

/bin/bash

判断用户的参数

文件测试所用参数

文件测试所用的参数
运算符作用
-d测试文件是否为目录类型
-e测试文件是否存在
-f判断是否为一般文件
-r测试当前用户是否有权限读取
-w测试当前用户是否有权限写入
-x测试当前用户是否有权限执行
  • && 逻辑与,当前面的命令执行成功后,才会执行后面的命令。返回 0 为真,else为假
  • ||    逻辑或,当前面的命令执行失败后,才会执行后面的命令。返回 0 为真,else为假
  • !  逻辑非,把条件测试中的结果取相反值

可用的整数比较运算符

可用的整数比较运算符
运算符作用

示例

-eq是否等于

liyanqiu@192 ~ % [10 -eq 10]  

zsh: bad pattern: [10

liyanqiu@192 ~ % [ 10 -eq 10 ]

liyanqiu@192 ~ % echo $?

0

-ne是否不等于
-gt是否大于
-lt是否小于
-le是否等于或小于
-ge是否大于或等于

[root@192 ~]# free -mtotal        used        free      shared  buff/cache   available
Mem:            1638        1279          35          11         418         359
Swap:           2047         140        1907
[root@192 ~]# free -m |grep -i mem
Mem:            1638        1327          47           9         356         310
[root@192 ~]# free -m |grep -i mem |awk '{print $4}'   //-i忽略大小写
47
[root@192 ~]# FreeMem = `free -m |grep -i mem |awk '{print $4}'`。//FreeMem = 有空格导致报错,使用反引号``把命令执行的结果返回给FreeMem
bash: FreeMem: 未找到命令...
[root@192 ~]# FreeMem=`free -m |grep -i mem |awk '{print $4}'`
[root@192 ~]# echo $FreeMem 
44补充知识点:
\    \后面的一个变量变为单纯的字符串
''    转义其中所有的变量为字符串
""    保留变量属性,不进行转义处理
``    把其中的命令执行后,返回结果

查看内存是否小于1024 ,若小于则输出:mem is less

[root@192 ~]# [ $FreeMem -lt 1024 ] && echo "mem is less"
mem is less

常见的字符串比较运算符

常用的字符串比较运算符
运算符作用示例
=比较字符串内容是否相同
!=比较字符串内容是否不同
-z判断字符串内容是否为空判断String字符串是否为空:

if条件测试语句

单语句

---格式:

if 条件测试操作

then 命令序列1

fi

#需求:检查/medim/cdrom目录是否存在,若不存在则创建目录,存在则结束命令。[root@192 ~]# cat mkcdrom.sh 
#! /bin/bash
DIR=/medim/cdrom
if [ ! -e $DIR ]            #-e 目录等于,! -e 目录不等于,即不存在
then 
mkdir -p  $DIR            #递归创建目录/medim/cdrom
fi
[root@192 ~]# /bin/bash mkcdrom.sh 
[root@192 ~]# ls -l mkcdrom.sh 
-rw-r--r--. 1 root root 71 10月 31 22:35 mkcdrom.sh
[root@192 ~]# 

双语句

---格式:

if 条件测试操作

then 命令序列1

else 命令序列2

fi

[root@192 ~]# cat chkhost.sh 
#! /bin/bash
ping -c 3 -i 0.2  -W 0.5 8.8.8.8 >/dev/null        #-c指定ping的次数,-i指定ping间隔,-W 指定超时等候时间 ,>执行命令后的结果输出写入到/dev/null中
if [ $? -eq 0 ]        #如果ping不通,返回非零数值,ping的通返回0 ,-eq:判断是否等于0
then
echo "host 8.8.8.8 is online"
else
echo "host 8.8.8.8 is offline"
fi[root@192 ~]# /bin/bash chkhost.sh 
host 8.8.8.8 is online
[root@192 ~]# ping 8.8.8.8 -c 2
PING 8.8.8.8 (8.8.8.8) 56(84) 比特的数据。
64 比特,来自 8.8.8.8: icmp_seq=1 ttl=53 时间=38.4 毫秒
64 比特,来自 8.8.8.8: icmp_seq=2 ttl=53 时间=41.2 毫秒--- 8.8.8.8 ping 统计 ---
已发送 2 个包, 已接收 2 个包, 0% packet loss, time 1003ms
rtt min/avg/max/mdev = 38.442/39.826/41.211/1.384 ms
[root@192 ~]# 

多语句

---格式:

if 条件测试操作1

then 命令序列1

elif 条件测试操作2

then 命令序列2

else

        命令序列3

fi

#成绩(85-100],great ,(59-85],pass ,否则fail[root@192 ~]# cat chkscore.sh 
#! /bin/bash
read -p "please input your score (0-100):" GRADE
if [ $GRADE -ge 85 ]&&[ $GRADE -le 100 ]; 
thenecho "grate,very good!"
elif [ $GRADE -ge 59 ]&&[ $GRADE -le 85 ];
thenecho "pass,ok !"
elseecho "fail not ok !"
fi
[root@192 ~]# /bin/bash chkscore.sh 
please input your score (0-100):90
grate,very good!
[root@192 ~]# /bin/bash chkscore.sh 
please input your score (0-100):70
pass,ok !
[root@192 ~]# /bin/bash chkscore.sh 
please input your score (0-100):10
fail not ok !
[root@192 ~]# 

for条件循环语句

for 变量名 in 取值列表

do 

        命令序列

done

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/461278.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Z 检验和 T 检验之间的区别

目录 一、说明 二、什么是假设检验? 三、假设检验基础 3.1 假设检验的基本概念 3.2 、执行假设验证的步骤 3.3 临界值、P 值 3.4 方向假设 3.5 非方向假设检验s 四、什么是 Z 检验统计量? 五、Z 检验示例 5.1 单样本 Z 检验 5.2 双样本 Z 检…

Qt限制QGraphicsScene QGraphicsItem内部的移动范围

用过QGraphicsView的都知道,原点一般设定在view和item的中心,所以帮助文档和这个网友说的不一定跟我们对的上: 关于Qt限制QGraphicsScene内部Item的移动范围_qgraphicsitem限制移动范围-CSDN博客 首先,设定view的scenerect&…

【Redis】浅析Redis大Key

目录 1、什么是Redis大Key 2、大 Key 是怎么产生的 3、大 Key 导致的问题 4、如何快速找到 Redis 大 Key 5、大 Key 优化策略 6、总结 我们在使用 Redis 的过程中,如果未能及时发现并处理 Big keys(下文称为“大Key”),可能…

Jedis操作和springboot整合redis

Jedis-springboot整合redis Jedis 引入jedis依赖 注意事项 测试相关数据类型 Key String List set hash zset 案例 spring boot整合redis 引入相关依赖 在application.properties中配置redis 配置 创建redis配置类 创建测试类 Jedis 引入jedis依赖 <depen…

GenAI 生态系统现状:不止大语言模型和向量数据库

自 20 个月前 ChatGPT 革命性的推出以来&#xff0c;生成式人工智能&#xff08;GenAI&#xff09;领域经历了显著的发展和创新。最初&#xff0c;大语言模型&#xff08;LLMs&#xff09;和向量数据库吸引了最多的关注。然而&#xff0c;GenAI 生态系统远不止这两个部分&#…

HTML、JavaScript和CSS实现注册页面设计

目录 一、实现要求 二、实现页面图 1、注册页面 2.用户ID、用户名、口令验证成功后显示页面 三、用户ID、用户名、口令、确定口令验证逻辑js代码 1、验证用户ID 2、验证用户名 3、验证口令密码 四、总结 五、代码仓库 一、实现要求 综合使用HTML、JavaScript和CSS进…

Vue前端开发:事件绑定方式

事件定义 在Vue中&#xff0c;当一个元素通过使用v-on或语法糖指令绑定某个事件后&#xff0c;则完成了事件被定义的过程&#xff0c;在这定义的过程中&#xff0c;指令的后面是定义事件的名称&#xff0c;等号的后面是事件被触发后执行的函数&#xff0c;当然&#xff0c;也可…

mac-ubuntu虚拟机(扩容-共享-vmtools)

一、磁盘扩容 使用GParted工具对Linux磁盘空间进行扩展 https://blog.csdn.net/Time_Waxk/article/details/105675468 经过上面的方式后还不够&#xff0c;需要再进行下面的操作 lvextend 用于扩展逻辑卷的大小&#xff0c;-l 选项允许指定大小。resize2fs 用于调整文件系统的…

【AAOS】【源码分析】CarSystemUI

目录 目录 概述 CarSystemUI组件 源代码 源码位置 主要模块 编译选项 CarSystemUI与SystemUI 编译方式 Car Emulator默认服务 CarSystemUI 启动流程 缩略词 概述 AAOS中的SystemUI虽然相较手机要简单不少,但却是车载开发中的一个重要组件,它负责管理和控制车机…

C++知识点复习

对于这些问题的回答&#xff0c;可以按照思维导图的结构来组织答案&#xff0c;然后再进行回答。 C11用过哪些特性&#xff1f; &#xff08;首先&#xff0c;要回答好这个问题&#xff0c;需要注意问题的层次&#xff0c;不要一上来就说新增了某某关键字和语法&#xff0c;在…

.net framework 3.5sp1开启错误进度条不动如何解决

浏览器地址栏输入www.dnz9.com远程解决netframework问题 在Windows操作系统上安装或启用.NET Framework 3.5 SP1时&#xff0c;如果遇到进度条不动的问题&#xff0c;可能由多种原因引起。以下是一些可能的解决方案&#xff1a; 1. 使用Windows功能对话框 1.打开“控制面板”。…

openpnp - 在openpnp中单独测试相机

文章目录 openpnp - 在openpnp中单独测试相机概述笔记END openpnp - 在openpnp中单独测试相机 概述 底部相机的位置不合适, 重新做了零件&#xff0c;准备先确定一下相机和吸嘴的距离是多少才合适。 如果在设备上直接实验&#xff0c;那么拆装调整相机挺麻烦的。 准备直接在电…

Spring 框架中常见的注解(Spring、SpringMVC、SpringBoot)

1. Spring 中常见注解 还有Recourse&#xff1a;相当于AutowiredQualifier Value : 用于将配置文件中的值注入到Bean的字段中。 Bean : 用于在配置类中声明一个Bean。 Lazy : 用于延迟加载Bean。 2. SpringMVC 中常见注解 还有GetMapping PostMapping PutMapping DeleteMapp…

掌握分布式系统的38个核心概念

天天说分布式分布式&#xff0c;那么我们是否知道什么是分布式&#xff0c;分布式会遇到什么问题&#xff0c;有哪些理论支撑&#xff0c;有哪些经典的应对方案&#xff0c;业界是如何设计并保证分布式系统的高可用呢&#xff1f; 1. 架构设计 这一节将从一些经典的开源系统架…

OpenAI 的 Whisper:盛名之下,其实难副?

OpenAI 的 Whisper&#xff1a;盛名之下&#xff0c;其实难副&#xff1f; Whisper 的崛起与承诺 严重缺陷的曝光 风险分析 应对措施 结论 在人工智能的浪潮中&#xff0c;OpenAI 一直以其创新性和强大的技术实力备受瞩目。然而&#xff0c;最近 OpenAI 的语音转写工具 Wh…

【MySQL】可重复读级别下基于Next Key Lock解决幻读

昨天读到了一篇文章[1]&#xff0c;里面讲&#xff0c;面试官说mysql的可重复读级别下有解决幻读的方式&#xff0c;最后公布了答案&#xff0c;是在sql后面加for update。这么说倒是没错&#xff0c;但是这种问法给我一种奇怪的感觉&#xff0c;因为for update无论在哪个隔离级…

Kaggle “Reducing Commercial Aviation Fatalities” 比赛 生理数据分析

1、背景 Kaggle在2018 年 12 月 20 日举办“Reducing Commercial Aviation Fatalities” 比赛&#xff0c;通过收集飞行员的生理数据&#xff0c;判断飞行员何时会遇到麻烦吗&#xff1f;该比赛主要分析飞行员的问题&#xff0c;因为航班多、时间不固定&#xff0c;飞行员会出…

Python 字符串类型中 ``split(“\n“)`` 与 ``splitlines()`` 方法的一些区别

最近在以 self.__print("#" * 20 "\n") 调用自己写的 __print 接口时发现打印的时候 "\n" 没有打出来&#xff0c;进而发现了 split("\n") 与 splitlines() 方法的一些区别。 一个是参数上&#xff0c;split 需要传递一个字符串作为…

开源库 FloatingActionButton

开源库FloatingActionButton Github:https://github.com/Clans/FloatingActionButton 这个库是在前面这个库android-floating-action-button的基础上修改的&#xff0c;增加了一些更强大和实用的特性。 特性&#xff1a; Android 5.0 以上点击会有水波纹效果 可以选择自定义…