首页 > 系统相关 >Linux运维学习记录02

Linux运维学习记录02

时间:2024-08-19 09:07:38浏览次数:5  
标签:02 文件 匹配 运维 字符 模式 单词 命令 Linux

一、 总结学过的权限,属性及ACL相关命令及选项,示例。
文件的权限主要针对三类对象进行定义:
owner 属主, u
group 属组, g
other 其他, o
每个文件针对每类访问者都定义了三种权限
r Readable 4
w Writable 2
x eXcutable 1

Linux文件系统上的特殊权限
SUID 作用于二进制可执行文件上,用户将继承此程序所有者的权限
SGID 作用于二进制可执行文件上,用户将继承此程序所有组的权限上,作于于目录上, 此目录中新建的文件的所属组将自动从此目录继承
STICKY 作用于目录上,此目录中的文件只能由所有者自已来删除
设定文件特殊属性
lsattr 显示特定属性
chattr +a file 只能追加内容,不能删除,改名
chattr +i file 不能删除,改名,更改
修改文件权限chmod
chmod [OPTION]... MODE[,MODE]... FILE...
ACL相关命令
setfacl 可设置ACL权限
getfacl 可查看设置的ACL权限

二、 结合vim几种模式,学会使用vim几个常见操作。
1)如何打开文件。并在打开文件(命令模式)之后如何退出文件。
2)打开文件(命令模式)之后,进入插入模式。并在插入模式中如何回到打开文件的状态(命令模式),并在命令模式之后如何退出文件。
3)打开文件(命令模式)之后,进入插入模式,编写一段话,"马哥出品,必属精品", 之后从插入模式中如何回到打开文件的状态(命令模式),并在命令模式之后如何退出文件。
4)使用cat命令验证文件内容,是刚刚自己写的内容。
5)命令模式下,光标在单词,句子上进行前后,上下跳转。行复制粘贴。行删除。

1)

2)按i进入插入模式,按ESC回到命令模式,按wq!保存并退出文件
3)

4)
5)光标移动:前后移动:按 h(左移),l(右移)
上下移动:按 j(下移),k(上移)
单词跳转:向前跳到下一个单词:按w 向后跳到上一个单词:按 b
行复制粘贴:复制当前行:按 yy
粘贴:按 p 将复制的行粘贴到当前行的下方,或按 P 粘贴到当前行的上方
删除行:按 dd 删除当前行

三、 总结学过的文本处理工具,文件查找工具的相关命令及选项,示例。
查看文本文件内容
1.cat 可以查看文本内容

2.nl 显示行号,相当于cat -b

3.tac 逆向显示文本内容

4.rev 将同一行的内容逆向显示

分页查看文件内容
more 可以实现分页查看文件,可以配合管道实现输出信息的分页
less 可以实现分页查看文件或STDIN输出,less 命令是man命令使用的分页器
显示文本前面或后面的行内容
head 可以显示文件或标准输入的前面行
tail 查看文件或标准输入的倒数行
cut 命令可以提取文本文件或STDIN数据的指定列
paste 合并多个文件同行号的列到一行

分析文本的工具
wc 命令可用于统计文件的行总数、单词总数、字节总数和字符总数
常用选项
-l 只计数行数
-w 只计数单词总数
-c 只计数字节总数
-m 只计数字符总数
-L 显示文件中最长行的长度

文本排序 sort
常用选项
-r 执行反方向(由上至下)整理
-R 随机排序
-n 执行按数字大小整理
-h 人类可读排序,如: 2K 1G
-f 选项忽略(fold)字符串中的字符大小写
-u 选项(独特,unique),合并重复项,即去重
-t c 选项使用c做为字段界定符
-k # 选项按照使用c字符分隔的 # 列来整理能够使用多

uniq命令 从输入中删除前后相接的重复的行
常用选项
-c: 显示每行重复出现的次数
-d: 仅显示重复过的行
-u: 仅显示不曾重复的行

四、 总结文本处理的grep命令相关的基本正则和扩展正则表达式。
. 匹配任意单个字符(除了\n)
[] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
[:alnum:] 字母和数字
[:alpha:] 代表任何英文大小写字符
[:lower:] 小写字母
[:upper:] 大写字母
[:blank:] 空白字符
[:space:] 包括空格、制表符(水平和垂直)、换行符、回车符等各种类型的空白

  •     #匹配前面的字符任意次,包括0次,贪婪模式:尽可能长的匹配
    

.* #任意长度的任意字符
? #匹配其前面的字符出现0次或1次,即:可有可无
+ #匹配其前面的字符出现最少1次,即:肯定有且 >=1 次
{n} #匹配前面的字符n次
{m,n} #匹配前面的字符至少m次,至多n次
{,n} #匹配前面的字符至多n次,<=n
{n,} #匹配前面的字符至少n次
^ #行首锚定, 用于模式的最左侧
$ #行尾锚定,用于模式的最右侧
^PATTERN$ #用于模式匹配整行
^$ #空行
[1]*$ #空白行
< 或 \b #词首锚定,用于单词模式的左侧
> 或 \b #词尾锚定,用于单词模式的右侧
<PATTERN> #匹配整个单词
分组:() 将多个字符捆绑在一起,当作一个整体处理,如:(root)+
或者:|

五、 sed将文件test中第50行中的helloworld改为nihao


七、在每一行后增加一空行 (测试文件为cp /etc/passwd ~/,不要直接修改passwd文件)


八、删除文件每行的第一个字符。

九、删除文件每行的第二个字符

十、删除文件每行的最后一个字符

十一、删除文件每行的倒数第二个字符

十二、 总结变量命名规则,不同类型变量(环境变量,位置变量,只读变量,局部变量,状态变量)如何使用。
命名规则
1.命名要求
·区分大小写
·不能使用程序中的保留字和内置变量;如:if for
·只能使用数字、字母及下划线,且不能以数字开头,注意不支持短横线“-”,和主机名相反。
2.命名习惯
·见名知义,用英文单词命名,并体现实际作用,不用简写,如:ATM
·变量名大写
·局部变量小写
·函数名小写
·大驼峰StudentFirstName,由多个单词组成,且每个单词的首字母是大写,其它小写
·小驼峰studentFirstName ,由多个单词组成,第一个单词的首字母小写,后续每个单词的首字母是大写,其它小写
·下划线: student_name

环境变量
·可以使子进程(包括孙子进程)继承父进程的变量,但是无法让父进程使用子进程的变量
·一旦子进程修改从父进程继承的变量,将会新的值传递给孙子进程
·一般只在系统配置文件中使用,在脚本中较少使用

输入pstree -p显示正在运行的进程树 并显示每个进程的ID

输入cat /proc//environ 查看此进程的环境变量

位置变量
在bash shell中内置的变量, 在脚本代码中调用通过命令行传递给脚本的参数
示例:

只读变量
定义:只能声明定义,但后续不能修改和删除,即常量

十三、通过shell编程完成,30鸡和兔的头,80鸡和兔的脚,分别有几只鸡,几只兔?

vim rabbit_chook.sh

!bin/bash

HEAD=$1
FOOT=$2

RABBIT=$(((FOOT-HEAD-HEAD)/2))
CHOOK=$[HEAD-RABBIT]
echo RABBIT:$RABBIT
echo CHOOK:$CHOOK

bash rabbit_chook.sh 30 80
RABBIT:10
CHOOK:20

十四、结合编程的for循环,条件测试,条件组合,完成批量创建100个用户,
1)for遍历1..100
2)先id判断是否存在
3)用户存在则说明存在,用户不存在则添加用户并说明已添加。


  1. [:space:] ↩︎

标签:02,文件,匹配,运维,字符,模式,单词,命令,Linux
From: https://www.cnblogs.com/yuleslie30/p/18351855

相关文章

  • Linux运维学习记录03
    磁盘存储术语总结:head,track,sector,sylinder.head:磁盘驱动器中的读/写头,用于读取或写入数据。每个磁盘表面有一个头。track:磁盘表面上的一个圆形数据存储区域,由多个扇区组成。sector:把每个磁道按512bytes大小再进行划分,这就是扇区,每个磁道上的扇区数量是不一样的sylin......
  • ChatGPT学习之旅 (9) 系统运维小助手
    大家好,我是Edison。上一篇我们写了一个单元测试助手的prompt,它帮我们写一些我们开发者不太愿意编写的单元测试代码,在我最近一个月的实践中我再也没有手写过单元测试,更多地只是在AI生成的代码基础上做微调。这一篇,给大家分享下我在日常的系统开发和运维工作中的小任务是如何通过C......
  • 【Linux系列】应急响应 · 备忘录
    这些命令和文件可以帮助你快速定位问题、查找可疑文件、监控进程等。请注意,这些命令可能需要root权限才能执行。查找72小时内新增的文件:find/-ctime-2查找24小时内被修改的JSP文件:find./-mtime0-name"*.jsp"根据确定时间去反推变更的文件:ls-al/tmp|gre......
  • 【嵌入式linux开发】智能家居入门6:最新ONENET,物联网开放平台(QT、微信小程序、MQTT协议
    智能家居入门6:最新ONENET物联网开放平台前言最终现象一、ONENET云平台创建产品与设备二、使用MQTT客户端软件测试2.1测试前的准备2.2测试三、LInuxQT代码四、onenet云端API介绍及微信小程序代码4.1onenetAPI介绍4.2微信小程序代码五、板端运行前言ONENET云......
  • 2024百度之星决赛部分题解(难度排序前六题)
    前言手速6题,可惜第四题磨了几个小时没磨出来,多做一题就金了,还是实力差了点,最后银牌前列。下面的题解是根据代码回忆大概的题意,主要是给出来赛时的参考代码A.状压题意:学校集训队总的有\(n\)个人,保证\(n\)是3的倍数,每个人有个人实力\(a_i\),每两个人之间有配合程度\(b_{i......
  • NOI2024 游记
    Day0报到。这是第一次参加NOI,有点紧张。CQ真的好热啊qaq教练飞机晚点,但是我的学籍证明在教练那。由于害怕教练来得太迟错过报名时间,就先去报到了,但是被告知没有学籍证明不能拿胸牌,没有胸牌不能进宿舍,于是坐在宿舍楼下等了\(\infty\)分钟。期间在宿舍到大门的坡道上来回......
  • 百度之星 2024 打铁记
    前言听说百度之星有铁牌发,我就来了。Day0坐了四小时高铁,又在北京市内坐了两小时地铁加公交车,终于到达九华宾馆。报道领了胸牌,还发了一副牌和一件衣服,还可以领取贴纸,比如“铁牌预定”“群/我=佬”“N^2过百万”。晚上练习赛,找了半天才知道网线怎么接,然后试了半天准考证号才......
  • 10.有线802.1x.1
    802.1x的三大角色withieee802.1xport-basedauthentication,thedevicesinthenetworkhavespecificroles:clientswitchaccesspoint(ap)authenticationserver802.1x认证过程介绍pc接上来,交换机就会给打招呼请求你是否能够支持,如果支持就回eaport-start开始,然后......
  • 029、Vue3+TypeScript基础,路由组件和一般组件的存放位置,以及页面生命周期
    01、main.js代码如下://引入createApp用于创建Vue实例import{createApp}from'vue'//引入App.vue根组件importAppfrom'./App.vue'//引入路由importrouterfrom'./router'constapp=createApp(App);//使用路由app.use(router);//App.vue的根元素id为ap......
  • Linux, shell编程备份数据库详解,带你读懂命令行指令
    目录先看最终代码再解释[!-d"${BACKUP}/${DATETIME}"]解析mysqldump-u${DB_USER}-p${DB_PW}--host=${HOST}-q-R--databases${DATABASE}|gzip>${BACKUP}/${DATETIME}/$DATETIME.sql.gz解析 tar-zcvf$DATETIME.tar.gz${DATETIME}解析先看最终代码再解......