Linux学习笔记之vim编辑器与shell
vim文本编辑器
命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。
输入模式(编辑模式):正常的文本录入。
末行模式:保存或退出文档,以及设置编辑环境。

a:光标右移一位
i:光标不变
o:光标到下一行
命令模式中最常用的一些命令
| 命令 | 作用 | 
| dd | 删除(剪切)光标所在整行 | 
| 5dd | 删除(剪切)从光标处开始的5行 | 
| yy | 复制光标所在整行 | 
| 5yy | 复制从光标处开始的5行 | 
| n | 显示搜索命令定位到的下一个字符串 | 
| N | 显示搜索命令定位到的上一个字符串 | 
| u | 撤销上一步的操作 | 
| p | 将之前删除(dd)或复制(yy)过的数据粘贴到光标后面 | 
| x, X | 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用) | 
| [Ctrl]+r | 重做上一个动作。(常用) | 
| G | 移动到这个档案的最后一行(常用) | 
| nG | n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu) | 
| gg | 移动到这个档案的第一行,相当于 1G 啊! (常用) | 
| n<Enter> | n 为数字。光标向下移动 n 行(常用) | 
末行模式中最常用的一些命令
| 命令 | 作用 | 
| :w | 保存 | 
| :q | 退出 | 
| :q! | 强制退出(放弃对文档的修改内容) | 
| :wq! | 强制保存退出 | 
| :set nu | 显示行号 | 
| :set nonu | 不显示行号 | 
| :命令 | 执行该命令 | 
| :整数 | 跳转到该行 | 
| :s/one/two | 将当前光标所在行的第一个one替换成two | 
| :s/one/two/g | 将当前光标所在行的所有one替换成two | 
| :%s/one/two/g | 将全文中的所有one替换成two | 
| ?字符串 | 在文本中从下至上搜索该字符串 | 
| /字符串 | 在文本中从上至下搜索该字符串 | 
vim  /etc/hostname  编辑主机名称,需要重启系统;或用hostnamectl set-hostname 主机名
vim  /etc/sysconfig/network-scripts/ifcfg-ens160  编辑网卡信息
Shell脚本
格式:
#!声明
#注释
命令
参数:
$0对应的是当前Shell脚本程序的名称
$#对应的是总共有几个参数
$*对应的是所有位置的参数值
$?对应的是显示上一次命令的执行返回值
$1、$2、$3……则分别对应着第N个位置的参数值

文件测试所用的参数
| 操作符 | 作用 | 
| -d | 测试文件是否为目录类型 | 
| -e | 测试文件是否存在 | 
| -f | 判断是否为一般文件 | 
| -r | 测试当前用户是否有权限读取 | 
| -w | 测试当前用户是否有权限写入 | 
| -x | 测试当前用户是否有权限执行 | 
使用范例:
&&是逻辑“与”,只有当前面的语句执行成功的时候才会执行后面的语句。
||是逻辑“或”,只有当前面的语句执行失败的时候才会执行后面的语句。
!是逻辑“非”,代表对逻辑测试结果取反值;之前若为正确则变成错误,若为错误则变成正确。
||是逻辑“或”,只有当前面的语句执行失败的时候才会执行后面的语句。
!是逻辑“非”,代表对逻辑测试结果取反值;之前若为正确则变成错误,若为错误则变成正确。
命令1;命令2,不管命令1执行的结果都执行命令2
[root@linuxprobe ~]# [ ! $USER = root ] || echo "administrator" administrator
可用的整数比较运算符
| 操作符 | 作用 | 
| -eq | 是否等于 | 
| -ne | 是否不等于 | 
| -gt | 是否大于 | 
| -lt | 是否小于 | 
| -le | 是否等于或小于 | 
| -ge | 是否大于或等于 | 
范例:
[ `free -m | grep Mem: | awk '{print $4}'` -lt 1024 ] && echo "Insufficient Memory"
常见的字符串比较运算符
| 操作符 | 作用 | 
| = | 比较字符串内容是否相同 | 
| != | 比较字符串内容是否不同 | 
| -z | 判断字符串内容是否为空 | 
判断String变量是否为空值,进而判断是否定义了这个变量:
[root@linuxprobe ~]# [ -z $String ] [root@linuxprobe ~]# echo $? 0
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号