第三周笔记

DAY13

df命令 默认查看block信息的

ls -lhi命令 文件第二列后面的 “.” 

表示selinux是开着的状态

selinux:安全规则 可以让Linux系统更安全的一套规则,

这个规则太严格了 一般情况下都会关闭,我们一般会用防火墙等来实现同样的安全目的

用getenforce命令查看是否开启

setenforce 1或者0命令可以临时开关

vim /etc/selinux/config

设置永久关闭 disabled 完全关闭

思想:1.优秀的运维习惯 :内容尽量复制 减少错误

      2.操作前备份,操作后检查

      3.使用中记忆

      4.眼睛里不要放过输出的英文

      5.工作中永远不要重启linux

linux里面防火墙有两类 

centos6. iptables

centos7 firewalld

防火墙的作用 防护计算机 防止被人入侵

systemctl status firewalled.service 查看防火墙服务

/etc/rc.local 把开机自启动的文件放进去

或 systemctl enable firewalld.service

来让防火墙开机自启动

开机不启动 disabled

CentOS6

查看防火墙状态:service iptables status  ,记得在CentOS6.9中是输入iptables,网上有些教程使用service iptable status 命令并不可行。或/etc/init.d/iptables/status

centos6关防火墙的方法:dchkonfig iptables off或者是/etc/init.d/iptables stop(这是临时关闭,关闭的是当前运行的防火墙,重启之后防火墙又会启动,因为它是开机自启动的)

6开启的方法:service iptables start

永久开启防火墙(自启动): chkconfig iptables on

查看状态:chkconfig --list iptables

ls -lhi 命令下

33631870 -rw-r--r--. 1 root root      4Mar 13 2019 a.txt

第三列的1 :硬链接数

1 表示该文件只有一个硬链接

硬链接的概念 :具有相同inode节点号的文件互为硬链接

找出硬链接的方法:ls -ldi test

创建硬链接 ln

硬链接的原理

一间房子的前后门 都通往一个inode 再找到同一个block

作用:备份 防止误删

新加命令

ls -r :反转排序

ls -t :按修改时间排序

ls -lrt :查最新创建的文件

mv的原理:只是改了路径的名字 inode指向并没有变 所以速度很快

cp的原理:重新生成inode ,生成block block很大 占文件几乎全部  所以很慢

目录硬链接

不支持人工创建目录硬链接

所以ln 目录 xx_link 不允许

原理:目录可能对应一个分区 另一个目录对应另一个分区 

不能把两个分区变成一个 这样两个磁盘下的inode就重复了 :老男孩

文件删除的原理:(静态文件:没有进程或程序访问的文件)让所有的硬链接数为0,即所有硬链接都没了 包括自身

rm -f 之后 其实文件也没删 但是系统会定时清理没有名字的inode 磁盘检查也会清理 增加新文件的时候 优先占用没有文件名的inode

执行rm-f之后如果想恢复文件 关机停止运行

恢复工具(debugfs,ext3grep等等)

动态文件:有进程或程序访问的文件

a 所有硬链接删除 ilink为0

b..i_count是进程调用文件的数量 所有进程调用都要停止取消 i——count为0

要先CTRL+C 停止进程再删除

多备份 操作前备份 异服务器异地备份

软链接:本质是快捷方式 是指向源文件实体的 本身和源文件是不同的文件

ln-s 软链接

做软链接的时候 让开发引用新的软链接

但是名字不变 (更新之后 再做的软链接名字不改变)

Linux通配符与特殊符号实践

定义:通配符就是键盘上的特殊字符 可以实现某些特殊的功能

比如 可以使用*来代表所有,来模糊搜索系统中的文件

通配符的适用范围是 命令行 普通命令 或脚本编程中

特殊字符集合:

*:模糊匹配 代表所有

?:表示单个字符 例ls ???.txt 只能出现aaa.txt

00000000000000000000000000000000

【!a-d】:取反 取不包含a-d的文件

与路径位置有关的

~:用户家目录,超级用户为/root,普通用户为/home

-:代表上一次目录

.  :代表当前目录

..   :代表上一级目录

通配符引用字符串命令相关

' ' 单引号,所见即所得

"" 双引号,打印变量值或解析用反引号或$()括起的命令

空 与双引号类似

``:反引号,用于引用命令,执行时命令会被执行,相当于$()

其它

; 一个命令的结束,也是命令间的分隔符

# 注释内容及root用户的提示符

$ 字符串变量内容及普通用户命令提示符

|:管道,将一个命令处理后的结果给下一个命令继续处理

\:让原本有含义的字符还原本意,例如\$仅代表美元符

{} :生成序列及变量作为变量与普通字符分隔

& :将程序放入后台运行

||:前面的错误了 才输出后面的

&&:前面的正确 才输出后面的

重定向系列

0<或<      标准输入重定向

0<<或<< 标准追加输入重定向

1>或>      标准输出重定向

1>>或>> 标准输出追加重定向

2>         标准错误输出重定向

2>>        标准错误输出追加重定向

..

DAY14

Linux正则表达式 和三剑客知识应用实践

1.正则表达式:处理大量的字符串和文本而定义一套规则和方法,

假设说@代表iam !代表oldboy 则执行echo“@!”的结果就是iam oldboy

2.作用:提高效率 快速获取到想要的内容

3.可以为三剑客命令提供服务:grep(egrep)、sed、awk 这三个命令

工作时以行为单位,一次处理一行

4.怎么用 实践:

易混淆的事项

1.和通配符区别

2.和开发正则有区别,开发人员正则一般是perl语言兼容正则表达式。

3.Linux三剑客正则表达式

环境准备 export LC_ALL=C <== 配置后操作不会出现异常匹配的情况

基础正则表达式(BRE basic regular expression)(一般用  grep  ):

^  XX · 以XX开头

XX  $ 以XX结尾 例 grep “\!$”oldboy.txt    应用 "\!$" 来实现对 !结尾的文档的grep (\的作用参见上周)

^$ 空行 例:grep -vn “^$”oldboy.txt  这条命令来实现显示行号并反向过滤除了空行之外的内容    -n(先对过滤的内容显示行号)

\ 转义字符 在字符前面加 让字符回归本身的意义

“.”:匹配任意单个字符,和通配符?一样(不匹配空行)

* 匹配前一个字符0次或多次

.* 任意字符 所有内容

^.* 以任意字符开头

.*$ 以任意字符结尾

[abc] 匹配括号内任意一个字符 可以写成[a-c]

[^abc] 不匹配括号内任意一个字符 相当于取反

拓展正则表达式(ERE , extended regular expression)(一般  egrep  ) :

+ 匹配前一个字符1次或多次(不会匹配空行)

[:/]+  匹配括号内的字符:和/1次或多次

? 匹配前一个字符0次或1次

| 同时过滤多个字符串

() 分组用于后向引用及分隔变量与字符

\n 引用()小括号里内容,如:(aa)\2,匹配aaaaaa

a{n,m} 匹配前一个字符n次到m次

a{n}     匹配前一个字符正好n次

a{n,}     匹配前一个字符至少n次

a{,m} 匹配前一个字符最多m次

元字符egrep

\b 匹配一个单词边界 类似grep -w

\B 只能匹配前后边界有字  \Boldboy ---123oldboy 中的oldboy 单独oldbay不匹配

grep -P 用于过滤perl正则 开发使用

\d 匹配单个数字


三剑客老二 sed(流编辑器)同时做到增删改查

-n 取消命令的默认输出

-i  直接修改文件内容 不输出到终端

sed内置命令字符说明

s 替换  // 过滤

g 全局替换 s#x#x#g

p 打印 print

d 删除delete

-e 多次编辑

sed -e ‘命令’ -e ‘命令’


DAY15

三剑客自身有特长的。

grep 过滤查找内容。筛子

sed  取行,替换,删除,追加

awk  取列

cut 按列切割

-d指定分隔符 -f指定哪列,多列用逗号

awk语法

awk 参数 条件 '{动作}' 文件

参数-F 指定分隔符 多个用[  ] 重复的用+

动作暂时基本只用print输出

列数用$表示 $1 $2等 要在前面或者后面加符号或固定语句用""在前后加

$0标识整行输出 $NF最后一列 NF-1倒数第二 以此类推

条件用~表示匹配  / /条件用框起来  NR标识行 &&和||或


DAY16

Linux基础权限是9个字符。

ls lhi 查看

rw-r--r-- 默认权限

前三组  属主权限 u(user)

中三    用户组权限 g (group)

后三组  其他用户权限 o(other)

r 读 w写 x执行

4    2  1        0

对于可读r的说明:没有可读r配合 vi编辑文件时 会提示无法编辑 但可以强行编辑(echo等重定向)

删除文件创建文件的权限是受上一级目录的权限控制的 和文件本身权限无关 (文件名不在inode里面 在上级目录的BLOCK)

因此文件本身的可写W权限和文件是否能被改名和删除无关

首先文件本身要能执行

如果是普通用户,同时还要具备可读r的权限才能执行文件

root用户只要有可执行X的权限就能执行文件


Linux权限有两种表现形式:

1、数字表示法 称为8进制权限

rwxr-xr-x  755

rwx 7

r-x 5

r-x 5

2、字符表示法

rw-rw-r-x  代表的数字权限为665

--xr-x-wx  代表的数字权限为153

-wx--x--x  代表的数字权限为311

而以下数字权限表示的字符权限如下:

755  代表的字符权限为rwxr-xr-x

644  代表的字符权限为rw-r--r--

134  代表的字符权限为--x-wxr--

修改文件属性的用户和组

chown 用户.用户组 文件  这里的点可以用:替换。

chown 用户 文件

chown .用户组 文件  ====chgrp 用户组 文件

安全权限临界点:

文件不想被修改被执行:644

目录不想被修改(删除移动创建)被执行(进入):755

企业真实案例:网站文件被恶意修改了。。。。打开网站后有弹窗广告(不是你网站的)

用户打开网站,报警。

原因:权限设置不到位。chmod -R 777 目录 开发人员习惯

解决方案:

1、备份

tar zcvf /opt/oldboy_$(date +%F).tar.gz ./oldboy/

2、找到被修改的文件

[root@oldboyedu /]# find /oldboy -type f |xargs grep 'ddddddddddddd'

/oldboy/oldboy.txt:

你可能感兴趣的:(第三周笔记)