Linux入门笔记之--Vim编辑器与Shell命令脚本

 

Vim文本编辑器

Vim编辑器中设置了三种模式:

—命令模式、末行模式和编辑模式,各模式转换如下:

命令模式下:

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

末行模式下:

命令作用
: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
?字符串在文本中从下至上搜索该字符串
/字符串在文本中从上至下搜索该字符串

编辑模式下:正常编辑。

 

编写并运行简单的Shell脚本

脚本声明(#!)用来告诉系统使用哪种Shell解释器来执行该脚本;

注释信息(#)是对脚本功能和某些命令的介绍信息,增强可读性;

可执行语句也就是我们平时执行的Linux命令了

例:

编写

[root@root ~]# vim example.sh
#!/bin/bash 
#Example: show present work directory and list all file information.
pwd 
ls -al

运行

[root@root ~]# bash example.sh

  或者

[root@root ~]# ./example.sh

 

shell接受用户参数:

$0:当前Shell脚本程序的名称

$#:总共有几个参数

$*:所有位置的参数值

$?:显示上一次命令的执行返回值

而$1、$2、$3…… $N: 第N个位置的参数值

 

判断用户的参数

测试语句格式: [ 条件表达式 ]

测试结果:0-true,  非0-false

按照测试对象来划分,条件测试语句可以分为4种:

文件测试语句;

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

例子:判断/etc/fstab是否为一个目录类型

[root@root ~]# [ -d /etc/fstab ]
[root@root ~]# echo $?
1

例子:判断/etc/fstab是否为一般文件

[root@root ~]# [ -f /etc/fstab ]
[root@root ~]# echo $?
0

逻辑测试语句;

&&当前面的命令执行成功后才会执行它后面的命令
||表示当前面的命令执行失败后才会执行它后面的命令
!表示把条件测试中的判断结果取相反值

 

例子:判断/dev/cdrom文件是否存在,若存在则输出Exist字样。

[root@linuxprobe ~]# [ -e /dev/cdrom ] && echo "Exist"
Exist

例子:可以用来结合系统环境变量USER来判断当前登录的用户是否为非管理员身份

[root@root ~]# echo $USER
root
[root@root ~]# [ $USER = root ] || echo "user"
[root@root ~]# su - welldone 
[welldone@welldone ~]$ [ $USER = root ] || echo "user"
user

整数值比较语句;

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

例子:10是否大于10以及10是否等于10

[root@root ~]# [ 10 -gt 10 ]
[root@root ~]# echo $?
1
[root@root~]# [ 10 -eq 10 ]
[root@root~]# echo $?
0

字符串比较语句;

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

例子:接下来通过判断String变量是否为空值,进而判断是否定义了这个变量

[root@linuxprobe ~]# [ -z $String ]
[root@linuxprobe ~]# echo $?
0

流程控制语句

if 条件判断
    then 命令操作
fi
if 条件判断
    then 命令操作1
    else 命令操作2
fi
if 条件判断1
    then 命令操作1
elif 条件判断2
    then 命令操作2
else 
    命令操作3
fi

 

for 变量名 in 取值列表
do
    命令操作
done
while 条件测试操作
do
    命令操作
done

 

case 变量值 in
模式1)
    命令操作1
    ;;
模式2)
    命令操作2
    ;;
    ......
*)
    默认命令操作
esac
    

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值