linux基础练习3

Posted woaiyitiaochai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux基础练习3相关的知识,希望对你有一定的参考价值。

1.总结vim命令行模式常见快捷方式,以及vim查找,替换的方法

vim打开文本编辑时默认进去到命令模式,即对文本不能直接编辑,但可对文本进行复制,粘贴剪切,跳转,

按x可以剪切当前光标所在位置字符然后p可以粘贴在光标移动的位置后面

 

w可以在每行单词中跳转 ,e在单词末尾跳转

gg可直接跳转至第一行行首,G跳转至文本末尾行行首 numgg指定跳转的行数

yy可以复制一行 numyy复制指定的行 p粘贴在光标所在位置下一行, P粘贴到光标位置上一行

i,a,o跳转至编辑模式 i移动至光标位置前一列进行编辑,a为后一列,o为下一行 esc键切换为命令模式

 

在命令模式中输入冒号: 可以进入扩展模式,扩展模式中常见操作 q 为退出 q!不保存强制退出 w为保存不退出 wq 保存退出 。w filename 跟文件名可以另存为新文件而不退出 

r filename 读入别的文件附加在前文件之上

!command 叹号后面可以跟命令 

 

技术图片
 

 

技术图片
 

可以打开别的文件,如果看完还可以敲回车返回

输入数字可以指定跳转的行数,以及可以使用正则表达式匹配行进行搜索替换

 

技术图片
 

搜索,以及替换

可以使用普通模式替换,也可使用正则表达式匹配替换

 

技术图片
 

 

技术图片
 

 

技术图片
 

查找单词为root的行

技术图片
 

按模式搜索 ,格式 / /, / /d,y,前面对斜杠中的字符 到后面对斜杠的字符结尾,后面d表示删除

查找以root开头的到最后一个root 进行删除

技术图片
 

按模式搜索

搜索替换格式 s/搜索模式/替换字符/g

搜索到nobody替换成

技术图片
 

 

技术图片
 

搜索到所有以#号开头的行替换为空即为删除

 

技术图片
 

将开头的#号去掉

2、总结脚本中运算符、逻辑运算以及用法

bash中的运算符几种常见格式 +,-,*,/ %取余数 **乘方

 let var=算数表达式

 

技术图片
将计算好的数字赋值给a

var=$[算数表达式]

 

技术图片
用中括号括起来的算术表达式

var=$((算数表达式))

 

技术图片
可以将赋值过的两个变量做计算

echo ‘算数表达式’ | bc

 

技术图片
用echo回显之后作为bc命令的标准输入

逻辑运算

命令结果返回tree,和false,linux中命令执行结果为0时正确,为1-255为错误

 

技术图片
 

三种逻辑运算  与,或,非

1与1 = 1,1与0 = 0,0与 1 = 0,0与 0 = 0 可以表示两个命令比较测试两个都是正确返回值才是true 有一个不是返回值都是false

1与 1= 1 1与0 = 1 0与 1 = 1 0与 0 = 0 和与运算相反,只要有一个返回为true结果就为true,两个都为false时才返回false

非1 =0 非0 =1 取反操作。true变为false ,false为true

与或非常常结合条件测试命令来执行,如 前面的命令执行成功或失败。后面触发与或命令继续执行后续命令

&&dkdk继续执行下一条命令 ||短路或,如果前面的命令执行不成功则执行

 

技术图片
 

先查找用户是否存在,若存在则执行echo命令显示hello 若不存在,则创建这个用户

 

技术图片
 

判断字符串是否为空,为空打印true 非空打印 false

 

技术图片
 

!非,可以理解为取反,将变量为不是空 变为空,进而执行返回true

条件测试的参数及用法

 

技术图片
 

 

技术图片
 

 

技术图片
 

对数字比较测试,文件权限测试,文件存在测试

 

技术图片
 

测试变量a是否为空-a(在测试中间加-a参数表示并且。-o表示或者)并且是否为数字

逻辑运算常用于脚本中用来判断某个变量是否存在或者值是什么。然后后面接上命令。

如判断用户。是否存在,存在则不做动作。不存在则创建,或者判断文件是否存在

3、编写脚本/root/bin/backup.sh,可实现每日将/etc/目录备份到 /root/etcYYYY-mm-dd中

#!/bin/bash

cp -a /etc/ /root/etc`date +%F`

4、编写脚本/root/bin/nologin.sh和login.sh,实现禁止和充许普通用户登录系统

禁止普通用户登录脚本

#!/bin/bash

sed -i -r ‘s@(.*[0-9]{4}.*:).*@1/sbin/nologin@‘ /etc/passwd

#!/bin/bash

启用普通用户登录脚本

#!/bin/bash

sed -i -r ‘s@(.*[0-9]{4}.*:).*@1/bin/bash@‘ /etc/passwd

5、编写脚本/root/bin/disk.sh,显示当前硬盘分区中空间利用率最大的值

#!/bin/bash

df -h | grep "^/dev/sd.*" | tr -s " " "%" | cut -d% -f 5 | sort -nr | head -1

 

以上是关于linux基础练习3的主要内容,如果未能解决你的问题,请参考以下文章

Linux基础 7-6 Bash脚本编程练习3

Linux核心基础命令-练习

linux基础练习3

linux基础命令练习题

linux基础练习

linux学习--基础shell练习