linux笔记(第三周)

ll /ect 查看目录文件信息(不全)
find: 显示文件信息类型命令
快速查找:语法:
find 找寻的路径范围 -type 类型 -name “文件名” 文件名哪记不住哪用*
iname 忽略大小写
查看大于100K的文件:
find /ect -type f -size +100 /ect是路径 +100是大于100k ‘K的文件’ 小于是-100
b 和 c k 是字节(字节推荐c)
不写默认是K
M 是兆
G 是GB
find /ect -maxdepth 1 -type f -name “文件名” 只找ect目录一层 不找子目录里的 1 代表层级

tree / 显示所有目录结构包括数据
tree /a 看a 中所有目录结构
tree -L 2 / a 看两层目录
tree -d / a 显示目录中所有结构信息 (仅仅显示结构)
ps:a为文件夹


》ll -h 看多大
压缩
tar -zcvf /a/a.tar.gz /a/文件名 /a/a.tar.gz 压缩完放在/a目录下 名字叫a.tar.gz
z 压缩方式 zip
c 创建压缩包文件
v 显示压缩过程
f 指定压缩包
压缩验证 :mv /a/文件名 、/tep 先移走原来的
再解压 tar xvf /路径/压缩名称
tar xvf /路径/压缩名称 -c /路径 想解压到某处

在对比 vimdiff 或 diff
tar -tf /压缩包 查看压缩包里有没有
tar -zcvf /a/a.tar.gz ./a/文件名 ./当前目录压缩 相对路径

–exclude -----排除
includes ----包含

tar zcvf /a/lpf.txt.tar.gz /a --exclude=/a/lpf01.txt 排除a目录下lpf01文件
多个排除:
tar zcvf /a/lpf.txt.tar.gz /a --exclude-from=/b/lpf01.txt 在b中编写一个 :内容为想排除的文件名 路径加文件名即可


文件属性信息相关说明
-1、r 读 4
w 写 2
x 执行 1
- 没权限
-2,权限赋予到指定的人
属主
属组
其他

༒ℳ๓李ζั℘:
他这个432 r-- 4 -wx 3 -w- 2 我懂 为啥不能写成r–wx-w–

༒ℳ๓李ζั℘:
这个-的位置有讲究吗

linux:

༒ℳ๓李ζั℘:
好的
……………………………………
id root 0就是root
用户组:
uid=0(root) gid=0(root) 组=0(root)
1 2 3
1:显示用户名和uid对应关系
2.显示属于的用户组,以及组名和gid对应关系
3.用户可能属于哪个组


用户分类:
a.超级管理员 root
UID信息区分0
权限:所有
b.虚拟用户
uid 1到999
权限:管理进程 不能登录/没home nobody(经典虚拟用户名)
c.普通用户
uid 1000+
权限 :管理指定的文件数据进程 可以登录有home目录

如何保护好root用户
1.修改远程端口 -52113 修改 /etc/ssh/sshd_config
2.禁止登录用户连接root 修改 /etc/ssh/sshd_config

满足登录的条件:
01 ,服务器地址 192/168…
02, 服务器端口 22
03,登录用户 root
04,登录用户的密码 root
(((((((((()))))))))
时间:stat /a 查看a所有时间表
访问时间:access
修改时间: modify
改变时间: change


14今天总结:
find find /test -type f -name “*.txt”|xargs mv -t /test01/
tar tar -zcvf /a/a.tar.gz /a/文件名
tar xvf /路径/压缩名称

---------------------------==========================
ctrl r 快速搜索历史命令
find 详述
先创10个TXT touch aa{01…10}.txt
查找移动
find /test -type f -name “.txt"|xargs mv -t /test01/ 查找移动
1 :文件所在的路径 2 :文件名 3:要被移动到的
查找复制
find /test -type f -name "
.txt”|xargs cp -t /test01/ 查找复制到

查找删除
find /test -type f -name “.txt" - -delete 查找删除
find /test -type f -name "
.txt” -exec rm -rf {} ; 删除方法2
find /test -maxdepth 1 -type f -name “.txt" | xargs rm -f 方法3
rm -rf $(find /test/ -type f -name "
.txt”) 方法4
查找压缩
find /test -maxdepth 1 -type f -name “.txt" | xargs tar zcvf /test/aa.tar.gz 方法1
tar zcvf /test/aa.tar.gz 'find /test/ -maxdepth 1 -type f -name "
.txt” ’ 方法2(不太好使)
tar -tf 压缩包 —验证压缩
按时间删除:
时间轴:
-10 当前时间 10 +10
最近10天的 前第10天 10天以前的
find /test -type f mtime +10 -delete
先找到前10天的 删除

-maxdepth
查找目录层级的深度
-inum
根据文件inode信息查找
-exec
对查找出的数据进行相应处理
-perm
根据权限查找数据信息
-iname
忽略名称大小写

df -i 查看iNode
inode:索引节点 ,书的目录存储文件属性信息
诞生过程:磁盘格式化=创建文件系统
特点:iNode号码相同,互为硬连接

block : 数据块、存储文件具体内容
诞生过程:磁盘格式化=创建文件系统
特点说明:根据企业情况,调整block大小

面试题:系统中文件读取原理

如何将数据真正的删除:
01:确保文件的硬连接数为0 i_link
02: 确保文件没有被进程占用 i_count

硬连接创建:(能防止误删除 ,但是不能防止误修改)
ln /a/a22.txt /a/a22_hard_link.txt a22.txt 必须存在
软连接创建:
ln -s /a/a22.txt /a/a22_soft_link.txt a22.txt 必须存在
区别:
01:大小不一样’
02:文件类型不一样权限不一样(颜色 软链接带颜色)
03:文件和源文件不一样 iNode信息不一样
硬的一样
软的不一样
04:源文件被删后
硬连接依然有效 ,软链接失效
05:创建过程不一样
06:目录无法创建硬连接

ll -i /etc/hosts
find / -type f -inum 67188810 —根据find找到hosts的硬连接
ll /etc/ | grep -c “^d” 找出以d为开头的文件 -c 只显示多少个

+++++++++++++++++++++++
时间相关的:
date
调整时间显示格式:
date “+F %T” 年月日
修改时间年月日时间
date -s “2021-10-11 14:00”
date -d “+2day” 显示加两天时间-2day就是过去

系统自动备份数据:定在00:00
cp /a/aa.log /b/bb.log.$(date +%F -d “-1day”)
ntpdate ntp1.aliyun.com 同步时间

@@@@@@@@@@@@@@@@@@@@@@@@
grep “al*” a.txt 显示带al的信息
grep lin 1.txt 线束lin的信息不显示其他的
grep -v lin 1.txt 不看lin
grep -v “^#” 1.txt 不看带注释的

系统的特殊符号:
基础的:$ ! | #
‘’ 引号 :将引号中的命令先执行,把结果交给引号外面的命令进行处理
如何忽略别名功能:
01:使用命令绝对路径
02:在命令执行前加撬棍
03:在xargs信息后命令自动忽略别名
awk ‘{print $3}’ 1.txt 取文件的第3列

将错误正确的信息同时保留
echo lpff >>/a/info.log 2>>/a/info.log
cho lpff >> /a/info.log 2>>/a/info.log

快速备份方法L:
正常:cp /ect/ss.txt /ect/ss.txt.bak
快速: cp /etc/ss.txt{,.bak}
mv /ect/ss.txt{.bak,}快速还原

正则符号:
基础正则:
01:^ 表示以什么开头 grep “^a” 1.txt
02: ll -F 以/结尾的 以 结 尾 的 g r e p " b 以结尾的 grep "b grep"b" 1,txt
03:空行不要 : grep -v "^ " 正 则 部 分 : 1 ) 点 . 匹 配 任 意 一 个 字 符 , 且 只 有 一 个 字 符 g r e p " . " / a a t e s t . t x t − o − o 查 看 查 找 过 程 文 件 名 2 ) ∗ 星 匹 配 前 一 个 字 符 连 续 出 现 0 次 或 多 次 的 字 符 3 ) 点 星 结 合 匹 配 所 有 信 息 g r e p “ m . ∗ m " 正则部分: 1)点 . 匹配任意一个字符,且只有一个字符 grep "." /aa_test.txt -o -o查看查找过程 文件名 2)*星 匹配前一个字符连续出现0次或多次的字符 3)点星结合匹配所有信息 grep “^m.* m "1.grep"."/aatest.txtoo203grepm.m” /aa_test.txt 找到m开头m结尾
指定更多的信息,防止贪婪匹配
grep “^lm.* m$” /aa_test.txt 找到m开头lm结尾
4)\转义符号
01:将有特殊意义的符号转义成普通信息进行识别
02:将没有意义的信息转义成有特殊意义的信息
echo -e “01\n02\n03” 也可以显示成01 02 03 竖着的 以前是cat 一个文件才行

  单个字符匹配信息:
   grep "[abc]"  1.txt    查出ABC的字符
   grep "lippeng[fh]ei"  1.txt   查出lipengfei   lipenghei  
   grep  "^[LP]" 1txt   找到以L和P开头的信息   "[^LP]"排除LP的信息  "^[^LP]"表示排除包含LP信息的字符开头的行(不包括空行)
    
   du -sh  看文件大小

扩展正则符号:
默认 grep sed 不能直接识别
提升自己grep前加个e 或 grep -E
sed -r
1)+ 匹配前一个字符连续出现了1次或多次
egrep “1+” 1.txt

[root@lpf a]# grep -Ev “[0-9]+” 1.txt
llss -筛出没用数字的 筛出Ev不是【】里的

  1. |
    并且符号 匹配多个信息
    grep -E ‘‘JJJ|OOO’’ 1.txt 查找 JJJ和OOO
    3)()
    指定信息进行整体匹配 没啥用
    后项引用前项:sed 替换功能
    批量的创建用户并设置密码:
    seq -w 10 | sed -r ‘s#(.*)#useradd oldboy\1;echo 123456 | passwd --stdin oldboy\1#g’

创建用户密码信息是随机密码

seq -w 10|sed -r ‘s#(.*)#useradd oldboy\1; Password=date "+%N"|md5sum |head -c 6; echo $Password|passwd --stdin oldboy\1; echo oldboy\1 $Password >>/tmp/passwd.txt#g’|bash

把123456转换成<12><34><56>
echo 123456 | sed -r “s#(12)(34)(56)#<\1><\2><\3>#g” (17天06)

5) ?
匹配前一个字符出现的0或1次

终极题目:取出ip
ip a s ens192| egrep “[0-9]+.[0-9]+.[0-9]+.[0-9]+” -o |head -1
ip a s ens192| egrep “([0-9]+.?)”{4} -o |head -3 |tail
为了练习正则的,正常hosthome -i 就可以

1.三剑客命令sed
概述:字符编辑工具(行编辑工具)==按照每行中的字符进行处理操作
          ps:全屏编辑工具vi / vim
作用:
1)擅长对行操作处理
2)擅长对文件内容信息进行修改调整/删除
 编写脚本:修改文件内容信息时
 
 修改ip

sed -i "s#10.0.0.200#10.0.10.200#g"  /etc/sysconfig/network-scripts/ifcfg-eth00 && \
sed -i "s#  10.0.0.201  #   10.0.10.201#g"  /etc/sysconfig/network-scripts/ifcfg-eth00 && \

sed -i "s #  (.*)0(.*) # \110 \2#  g"    /etc/sysconfig/network-scripts/ifcfg-eth00
          
s#a#b#g
具体功能 :
增
删
改
查
语法:
sed -n ' 条件和处理'  1.txt

04原理:


05操作
a sed 查询:
根据行号:
根据信息

测试1: 根据内容信息,输出单行内容
	#将有oldboy行的信息找出来
 sed -n '/oldboy/p' person.txt 
      101,oldboy,CEO、

  sed -n '3p' 1.txt    显示第三行
  sed -n  '1p;3p'  1.txt  显示1行和3行
 sed -n  '1,3p'  1.txt  显示1到3行



测试2: 根据内容信息,输出多行内容(连续)
	#将有oldboy到alex行的信息都输出出来   找中间的
 sed -n '/oldboy/,/Alex/p' person.txt 
        101,oldboy,CEO
         102,zhaoyao,CTO
         103,Alex,COO



测试3: 根据内容信息,输出多行内容(不连续)
	#将有oldboy和alex行的信息都输出出来    找多个的
 sed -n '/oldboy/p;/Alex/p' person.txt 
      101,oldboy,CEO
       103,Alex,COO
    106,oldboy,CIO
((((((((((((((((((
b    sed 添加信息方法:
在文件第一行添加附加信息aa
sed '1iaa' 1.txt 
最后一行添加附加aa
sed '$aaa' 1.txt


sed  '$a100\n101' person.txt  添加多行信息
	企业中编写配置文件:
	IPaddress=10.10.10.1
	mask=255.255.255.0
	gateway=10.10.10.254
	
	sed '$aIPaddress=10.10.10.1\nmask=255.255.255.0\ngateway=10.10.10.254' 文件名称

总结:p:输出
           i:指定行前面添加   i后面加上bak 自动备份
           a:指定行后面        ($s 最后一行)
          -n  :取消默认输出
          -r :识别扩展正则
           -i  真实编辑文件
           -e:  识别sed命令多个操作指令
在A后面添加B在  A前面加C
sed -e '/A/aB' -e '/A/iC'         如果不是某行就用 /某某/代替
  
(((((((((((((((
删:
删除单行:sed '3d' 1.txt
删除多行:sed '2,4d' txt      删除2到6

sed '/oid/d' 1.txt   ----删除有oid信息的行
sed '3d;6d' 1.txt   ----删除2和6
取消空行:sed '/^$/d' 1.txt
((((((((((((((

替换:
 
sed -n 's#aaa#bbb#gp' 1.txt
sed -ibak 's#aaa#bbb#gp' 1.txt

	sed 's#()#\n#g' 文件信息 后项引用前项进行替换修改
    利用sed命令取出IP地址信息:
	第一个历程: 取出有IP地址的行
	[root@oldboyedu ~]# ip a s eth0|sed -n '3p'
    inet 10.0.0.200/24 brd 10.0.0.255 scope global noprefixroute eth0
	
	第二个历程: 取出IP地址
	[root@oldboyedu ~]# ip a s eth0|sed -n '3p'|sed -r 's#^.*net (.*)#\1#g'
    10.0.0.200/24 brd 10.0.0.255 scope global noprefixroute eth0

1.lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
2.    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 3.   dsasasadinet 127.0.0.1/8 scope host lo
4.       valid_lft forever preferred_lft forever




    [root@oldboyedu ~]# ip a s eth0|sed -n '3p'|sed -r 's#^.*et (.*)#\1#g' |sed -r 's#(.*)/8.*#\1#g'
    10.0.0.200



	sed -r 's#^.*net (.*)#\1#g'|sed -r 's#(.*)/24.*#\1#g'  进行整合
	ip a s eth0|sed -n '3p'|sed -r 's#^.*net (.*)/24.*#\1#g'    -----------------
	
	sed -n '3p'|sed -r 's#^.*net (.*)/24.*#\1#g'  进行整合 
	
	sed -n '3                        p'
	sed -r 's#^.*net (.*)/24.*#\1#g'
	sed -rn '3s#^.*net (.*)/24.*#\1#gp'  
	最终取IP地址方法
	[root@oldboyedu ~]# ip a s eth0|sed -rn '3s#^.*net (.*)/24.*#\1#gp'
    10.0.0.200

ls old*.txt | sed -r 's#(.*)txt#mv & \1jpg#g' | bash   --------替换.txt文件夹名为jpg
重命名专业命令:rename
rename .txt .jgp old*.txt

++++++++++++++++++++++++++++++++
老大awk:

1)对列进行操作,数据信息的统计;
2)基本使用(高级使用shell)

awk概念介绍说明:
作业特点:
1.排除信息:
2.查询信息
3.统计信息
4.替换信息
语法:   
sed [参数] ‘条件-处理方式’ 文件名
swk [参数] ‘模式-动作’  文件名

03)awk实际操作:

查询:
按行号查询:
awk 'NR==2' test.txt
awk 'NR==2;NR==4' test.txt   2和4行
awk 'NR==2,NR==4' test.txt  2到5行

ps:在linux系统中  old=10是赋值不是等于

按照字符查询:
awk '/xiao/' test.txt
awk '/xiao/,/fei/'  test.txt     带xiao的行到带fei的行
awk  '/xiao/;/fei/'  test.txt

显示xiaoyu的信息1和3列
swk '/xiaoyu/{print  $1","$3}'  test.txt
swk '/xiaoyu/{print  $1,$3}'  test.txt

找出性张的:显示第二次捐款信息:
awk '/zhang/{print $NF}' test.txt   NF最后一列 $4就是第四
awk '/zhang/{print $NF}' test.txt  | awk -F '':''  '{print $3}'  第4列中的地3列
简化:
awk -F ":" '/^zhang/{print $3}' test.txt

awk -F "[ :]+" '/Zhang/ {print $1,$2,$5}' test.txt    ---并且显示姓名


03.显示所有以41开头的ID号人的全名:
awk '$3~/^41/{print $1,$2,$3}' test.txt       $3~   匹配第三列的信息

04.显示ID号最后以为为1或5的人的全名:
方法一:
awk '$3~/1$|5$/{print $1.$2}' test.txt | column -t           | column -t  对齐

方法二:
awk '$3~/[15]$/{print $1.$2}' test.txt | column -t

方法三:
awk '$3~/(1|5)$/{print $1.$2}' test.txt | column -t

05。显示xiaoyu的捐款,每个捐款前面都有以$开头, 如$110$120$130
语法:gsub(/需要替换的信息/,“修改成什么”,将哪里得信息进行修改)
awk '$2~/xiaoyu/{gsub(/:/,"$",$NF);print $NF}' test.txt

空行注释排除
grep -Ev "^# | ^$" 文件信息
sed  -n '/^#'|^$/ 文件
awk '$0~!/^#|^$/' test.txt   



总结:awk中$
$1    $2    $3  :取第几行
$NF   :最后一行
$(NF-1):取倒数第几行
$0   :取所有列

如何利用awk取出IP地址信息:
	ip a s eth0|awk -F "[ /]+" 'NR==3{print $5}'
	hostname -i 
===========================
常见面试题
系统启动流程:
系统的启动流程:
    centos6
	01. 加电自检
	    检查服务器硬件是否正常
    02. MBR引导
	    读取磁盘的MBR存储记录信息,引导系统启动
	03. grup菜单
	    选择启动的内核/进行单用户模式重置密码
    04. 加载系统内核信息
	    可以更好的使用内核控制硬件
	05. 系统的第一个进程运行起来 init (串行)
	    init进程控制后续各种服务的启动: 启动顺序 网络服务 sshd 
	
	06. 加载系统运行级别文件/etc/inittab
	07. 初始化脚本运行
	    初始化系统主机名称 和 网卡信息
	08. 运行系统特殊的脚本
	    服务运行的脚本 
	09. 运行mingetty进程
	    显示开机登录信息界面
	
	
    centos7	
	01. 加电自检
	    检查服务器硬件是否正常
    02. MBR引导
	    读取磁盘的MBR存储记录信息,引导系统启动
	03. grup菜单
	    选择启动的内核/进行单用户模式重置密码
    04. 加载系统内核信息
	    可以更好的使用内核控制硬件	
	05. 系统的第一个进程运行起来 systemd (并行)
	    服务启动的时候,同时一起启动
	06. 读取系统启动文件
	    /etc/systemd/system/default.target
	07. 读取系统初始化文件
	    /usr/lib/systemd/system/sysinit.target
	08. 使服务可以开机自启动
	    /etc/systemd/system 加载此目录中的信息,实现服务开机自动启动
	09. 运行mingetty进程
	    显示开机登录信息界面

03.用户管理章节:
   


chown  yonghu  1.txt---属组归yonghu  用户


用户概念介绍:
    管理员用户  root    0      	权利至高无上
    虚拟用户    nobody  1-999 	管理进程  没家目录 不能登录系统
    普通用户    oldboy	1000+   权利有限
    
	r read
	w write
	x execute
	
	文件信息:
	r  可以读文件的内容
	w  可以编辑文件的内容
	x  执行这个文件(脚本文件)
	
文件权限配置的结论:
	01. root用户对所有文件有绝对的权限,只要有了执行权限,root用户可以无敌存在
	02. 对于文件来说,写的权限和执行的权限,都需要有读权限配合
	03. 如何想对文件进行操作,必须对文件赋予读的权限
 一个普通文件默认权限: 644  保证属主用户对文件可以编辑  保证其他用户可以读取文件内容
一个目录文件默认权限: 755  保证属主用户对目录进行编辑  保证其他用户可以读取目录中的信息,可以进入到目录中

	
	目录信息:
	r  读目录中的文件属性信息
	w  可以在目录中添加或删除文件数据信息
	x  是否可以进入到目录中

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
文件目录数据设置权限:(注意权限执行原理设置完不行去查看上级目录权限)
1)根据用户信进行定:(属主,属组,其他用户)
属主-user        u
属组-group      g
其他用户-other   o
chmod u/g/o+r/w/x   u-r/w/x    u=rw         chmod u+r  文件名
2)根据用户进行批量设定:
数值设定:
chmod 676 1.txt

问题一: 为什么创建的文件和目录权限一致
	目录权限都是 755
	文件权限都是 644 
	
	[root@oldboyedu ~]# umask 
    0022

	默认文件权限: 666 - 022 = 644
	umask数值是奇数  666 - 033 = 633 + 11 = 644        奇数加个11
	umask数值是偶数  666 - 022 = 644
	
    默认目录权限: 777 - 022 = 755	
	umask数值是奇数  777 - 033 = 744
	umask数值是偶数  777 - 022 = 755	
问题二:永久修改umask
临时 umask 033 
永久:
vim /etc/profile
else
    umask 022

系统中特殊的目录:/etc/skel
root@lpf ~]# ll -a /etc/skel/
总用量 24
drwxr-xr-x.   3 root root   78 11月  9 15:51 .
drwxr-xr-x. 139 root root 8192 12月  8 17:56 ..
-rw-r--r--.   1 root root   18 4月   1 2020 .bash_logout       当系统退出登录状态会执行的命令
-rw-r--r--.   1 root root  193 4月   1 2020 .bash_profile      别名和环境变量(只针对某个用户)  家规
-rw-r--r--.   1 root root  231 4月   1 2020 .bashrc		别名和环境变量(只针对某个用户)  家规
 
drwxr-xr-x.   4 root root   39 11月  9 23:33 .mozilla


	/etc/skel目录作用:
	01. 目录中可以存储运维操作规范说明文件
	02. 调整命令提示符信息



你可能感兴趣的:(linux,bash,运维)