运维基础逐梦oldboy

1.远程连接及服务无法上网原因:..20

1)检查ip地址是否正确...20

2)检查网卡信息是否正确..20

3)检查是否关闭了CentOS7NetworkManager20

4)检查vmware虚拟网络编辑器...20

5)检查VMware服务在Windows下的服务是否正常运行...20

6)检查VMware网卡问题(在Windows下的网络连接里)..20

7)检查Windows是否开启了WIFI热点软件,是否被共享..21

8)测试端口是否打开..21

9)虚拟机克隆之后网卡彻底无法启动...21

第四章Linux命令行组成结构...21

1.Linux系统命令操作语法的格式...21

2.命令行中的快捷键..21

3.命令...22

第五章Linux目录文件与系统启动...26

1.Linux系统目录建构基本特点:...26

2.Linux的目录结构详解:..27

1)/etc/sysconfig/network-网卡配置文件...28

2)/etc/resolv.confDNS客户端配置..28

3)/etc/hostname配置主机名...29

4)/etc/hosts本地配置解析域名..29

5)/etc/fstab开机自动挂载...29

6)/etc/rc.local开机自动执行...29

7)linux下运行级别...29

8)/etc/profile环境变量配置...30

9)/etc/bashrc别名...30

12)/etc/redhat-release查看当前OS版本..30

13)history查看历史命令...31

4./var.31

1)/var/log/messages系统默认的日志文件..31

2)/var/log/secure系统的安全日志...31

5./proc虚拟的目录,内存的映射...31

1)/proc目录下常用文件介绍:...31

2)/proc/cpuinfocpu信息...31

3)/proc/meminfo查看内存信息...32

4)/proc/loadavgloadaverage系统负载..32

5)/proc/mounts查看挂载信息...33

第二次考...33

6.软件安装方法:...35

1)yum..35

2)rpm..35

第六章系统优化...36

1.yum源...36

2.创建普通用户...36

1)设置非交互式密码:...36

2)切换到用户:..36

3)查看当前用户是谁:...36

4)查看用户是否创建:...37

5)在oldboy回到root37

6)如果直接使用Xshell连接则上面的方法无效..37

3.关闭SElinux(必须关)...37

4.关闭防火墙...38

1)CentOS7.x.38

2)CentOS6.x.38

3)在生产环境中..39

5.字符集,乱码...39

1).如何查看字符集language语言...39

2).临时修改字符集重启失效...39

3).永久修改字符集...39

4).命令方式修改字符集...40

6.安装常用工具软件,命令...40

7.网络服务,永久和临时关闭NetworkManager40

第七章...40

第八章文件属性,文件和目录查找命令..41

1.文件和目录的查找...42

2.文件的属性...45

3.chmod修改权限...46

4.硬链接和软链接...47

1)硬链接:47

2)软链接...48

第三次考...48

第九章通配符与特殊符号..51

1.特殊符号...51

2.通配符(wildcard)..52

第十章正则表达式...53

1.基本正则表达式..53

2.扩展正则表达式..54

第十一章Linux系统启动流程..56

1.CentOS6.56

2.CentOS7.57

第十二章用户管理知识...58

1.存储用户信息文件/etc/passwd.58

2.存储用户密码信息文件/etc/shadow..58

3.useradd添加用户...58

批量添加用户:设置密码和设置随机密码..58

4.userdel删除用户...59

5.passwd设置密码...59

6.chown修改文件或目录的所有者和属于的用户组...59

7.如何让系统更安全:...59

1)最小化安装系统和软件..59

3)分析日志...59

4)文件系统权限..59

5)给重要的文件或命令做一个指纹..59

6)定时任务:md5sum..60

8.用户查询与切换命令...60

9.sudo临时让用户获得root权限(尚方宝剑)..60

第十三章Linux系统权限知识..61

第四次考...73

第十四章定时任务...80

定时任务书写要领:...83

第十五章磁盘管理...86

Linux误删文件后恢复数据...96

第十六章课程知识回顾...101

网站数据不能丢失;

网站7*24小时运行稳定;

提升用户体验。

运维人员的主要战场

服务器由于需要提供高可靠的服务,因此在处理能力,稳定性,可靠性,安全性,可扩展性,可管理性等方面要求较高。

1.塔式服务器:由于其个体较大,占用空间多,也不方便管理,所以使用较少。

2.刀片式服务器:高可用,高密度,可操作性很高

3.机架式服务器:1U=4.45cm厚度

常见的服务器品牌;DELLIBMHP联想浪潮等

DELL

1U

2U

2010年以前

18501950

28502950

2010-2013年

R410R610

R710

2014-2016年

R420/430R620/630

R720/730

2018年

R740

互联网公司应用最广

IBM

3550/m33550/m5

3650

4U

3850

8U

3950

较高大上,质量好,但价格贵,互联网公司不常用

去IOE运动:

I=IBM服务器

O=Oracle数据库

E=EMC存储

HP

DL380G7/G8

部分互联网公司应用

浪潮国产服务器,传统企业,学校用

华为国产服务器

联想国产服务器,用户较广,杂

双电源双路供电(民用电+商用电)

UPS蓄电池(30分钟-1小时)

柴油发电机

相当于人的大脑负责运算和控制(需加风扇负者散热,很关键)

常见品牌:IntelAMD

一般企业里的服务器:用2-4颗内存总量一般16G-256G(32G,64G)

做虚拟化的宿主机的服务器:用4-8颗内存总量一般48G-128G(6-10个虚拟机)

cpu和磁盘之间的缓冲的设备,负责计算机数据的中转,内存的容量和处理速度直接决定了数据传输的快慢

程序:静态的放在磁盘里的数据,代码文件

进程:正在运行着的程序

守护进程:一直持续保持运行着的程序

buffer:写入数据到内存里,这个存储数据的空间称为缓冲区

cache:从内存读取数据,这个存数据的内存空间称为缓存区

IDESCSI(已淘汰)

SATA(机械)7200-7500转

优点:容量大,价格便宜。

缺点:读写速度慢

SAS15000转

SSD(固态)

优点:速度快

缺点:容量小,价格贵

机械硬盘

SSD固态硬盘

SSD(固态)---SAS---SATA

热点数据-----SSD

冷数据-----SATA

作用:

可以获得更高的容量

可以使数据更安全

可以获得更高的性能(读写速度快)

磁盘阵列:

容量

性能

安全

RAID0

至少要一块物理磁盘,容量时磁盘的总和

读写都很快

任何一块损坏,所有数据不能使用

RAID1

损失50%的数据容量,只能2块硬盘

不能提高存储性能,理论上写性能和单盘相差不大

数据安全性高

RAID5

需要至少3块硬盘,损失一块硬盘容量

写入速度不快,读取ok

最多可以损坏一块硬盘

RAID10

最少4块硬盘,增加硬盘必须是2的倍数,容量是所有硬盘容量的一半

写入和读取都很快

最多损坏一半硬盘

远程管理卡有服务器自带的,也有独立的。

服务器自带的远程管理卡,可以关机,开机,但是看不到开关机的显示过程,所以选择独立的远程管理卡。

大客户有KVM远程管理卡,特大客户会有自己的人员驻扎机房。

远程开关机

远程制作raid

远程安装系统

分类:

集成管理卡

独立管理卡

厂商:

Dell--idrac

Hp--ilo

Ibm—rsa

阿里云

腾讯云

亚马逊云

等等…

1969年Unix在AT&T的贝尔实验室诞生,在70年代逐步盛行,这期间产生了一个比较重要的分支BSD系统,因此各大厂商根据自身公司硬件架构研发了各种版本的Unix系统。

Unix促使了C语言的诞生。

UNIX有强大的网络能力,强大的数据库能力,可扩展性,强大开发能力,技术成熟可靠性强。

84年,斯托曼发起了开发自由软件的运动,

公司:创办了自由软件基金会——FSF,

项目:成立了GNU项目.

规则:遵循GPL通用公共许可协议

90年,芬兰赫尔辛基大学生托瓦兹首次接触Minix系统,

91年,他在Minix上编写各种驱动程序等操作系统内核组件,在年底公开了Linix内核源码0.02版。

93年,Linux1.0版本发行,Linix转向GPL协议。

Linux属于自由软件,它具有UNIX全部的优秀特性,广泛应用于各个领域。

蛋----人----人----人

Slackware,

Redhat,

Debian,

FeDora,

TurboLinux,

M按drake,

SUSE,

CentOS,

Ubuntu,

红旗,

麒麟……

Redhat---服务收费

CentOS---Redhat去掉logo和收费的组件

Fedora---Redhat的测试版本

下载安装VM虚拟机

VMware12/15

创建新的虚拟机—自定义

区别:

64位:

运算能力:8车道

内存容量:支持更大内存容量

应用环境:应用在服务器环境,处理大量程序运算

32位:

运算能力:4车道

内存容量:支持内存容量有限

应用环境:应用在台式机环境

官方网站下载:

镜像平台下载:

内核崩溃时使用,暂不开启

总结安装过程:

1.创建虚拟机

2.新增一块网卡-->LAN区段

3.挂载centos7.5光盘镜像

4.开机

5.语言选择(英语)

6.修改时区->上海

7.最小化安装

8.磁盘(默认—逻辑卷)

9.自动配置分区

10.分析内核崩溃原因的话,不用开启,需要的时候再开启也可以

11.配置网络

12.11主机名修改

13.设置root密码

14.使用xshell链接对应centos7服务器

15.图形化界面配置eth1网卡命令nmtui

免费的:Xshell---一路下一步完成安装

花钱的:SecureCRT

简易的:putty

检查链路是否畅通---ip概念说明

检查策略是否阻止---端口概念说明

检查服务是否启动---服务协议概念说明

ipadd/ifconfig

cat/etc/sysconfig/network-scripts/ifcfg-eth0

systemctlstopNetworkManager

systemctldisableNetworkManager

NAT模式:子网IP:10.0.0.0设置网关:10.0.0.254

(win键+r)在命令行输入(services.msc)

(win键+e)输入“网络连接”进入网卡管理找到VMnet8,查看他的状态

telnet10.0.0.20022

删除网卡里包含UUID的行(CentOS7)

删除UUID和HWADDR(CentOS5和6)

清空/etc/udev/rules.d/70-persistent-net.rules(CentOS5和6)

重启虚拟机Linux

Systemctlrestartnetwork

ping不通百度:一般看IP地址是否配置正确,DNS,网卡是否有误

连接不上xshell,一般与防火墙,selinux有关

优点:和主机IP地址不同,不容易发生地址冲突

缺点:不便于被其他物理主机进行访问

优点:容易被其他物理主机进行访问

缺点:和主机IP地址网段相同,容易发生地址冲突

优点:安全性更高

缺点:无法访问外网

绝对路径:从/开始

相对路径:不从/开始

命令空格[参数选项](条件)空格[文件或路径]你要处理的内容

结婚空格-有车有房有存款空格白富美

结婚空格-没车没房没存款空格女的就行

rm空格-f空格/tmp/test.txt

rm空格-fr空格/tmp/test.txt

#在Linux中是注释作用,不会执行

ctrl+a光标快速移动到行首Home也可用

ctrl+e光标快速移动到行尾End也可用

ctrl+l快速清屏相当于翻页

ctrl+s锁当前的窗口

ctrl+q解锁当前的窗口

ctrl+r搜索用过的命令

ctrl+u剪切光标前的内容

ctrl+k剪切光标后的内容

ctrl+y粘贴剪切的内容

ctrl+←快速移动光标向左一个单词

ctrl+→快速移动光标向右一个单词

ctrl+c撤销中止当前的操作

ctrl+d退出当前用户相当于logout

Tab命令或路径的补全功能

ESC+.获取上一个命令的后一部分

ping网络地址/网站域名

关机命令:

halt

poweroff

init0

重启命令:

reboot

init6

man命令

ctrl+a---光标快速移动到行首Home也可用

ctrl+e---光标快速移动到行尾End也可用

ctrl+l---快速清屏相当于翻页

ctrl+s---锁当前的窗口

ctrl+q---解锁当前的窗口

ctrl+r---搜索用过的命令

ctrl+u---剪切光标前的内容

ctrl+k---剪切光标后的内容

ctrl+y---粘贴剪切的内容

ctrl+←---快速移动光标向左一个单词

ctrl+→---快速移动光标向右一个单词

ctrl+c---撤销中止当前的操作

ctrl+d---退出当前用户相当于logout

Tab---命令或路径的补全功能

ESC+.---获取上一个命令的后一部分

查看路径:printworkingdirectory->pwd

切换目录:changedirectory->cd

快速返回之前所在目录:cd-

快速返回到上一级目录:cd..

快速返回用户的家目录:cd~/cd

快速创建多级目录信息:mkdir-p/oldboy/oldgirl/dog

创建空白文件:touch

查看数据属性:list->ls

显示数据详细信息:ls-l/oldboy

显示最新数据信息:ls-lrt/oldboy

输出字符信息:echo

将字符信息输出到文件中:echooldboy>/tmp/oldboy.txt

将字符信息追加到文件中:echooldboy>>/tmp/oldboy.txt

查看文件信息:cat

合并多个文件的数据信息:cat/etc/service/etc/sysconfig/network-scripts/ifcfg-eth0

外部命令软件功能实现使用的时候才从硬盘中加载到内存里,执行速度慢一些

内置命令bash自带的命令开机会把命令加载到内存,执行速度快

typecd查看是否是内部命令

helpcd查看shell内置命令的使用方法

ls显示文件或目录的属性信息

ls默认显示当前文件夹中的所有文件及文件夹,不包括隐藏文件

ls-a显示所有文件文件夹包括隐藏文件

ls-l显示所有文件long类型长文件名

ls-R递归的显示文件内容:把所有文件夹中的内容全部显示出来

ls/xx显示特定目录下的文件内容

ls-l命令的查询结果

chmod设置权限

chmodugo

chmod777

chmod644

chmod755

chmod764文件名

reboot

mkdir-pxxx

mkdir-pxxx/xxx

cd(changedirectory)

-->

cd.

cd..

直接输入cd命令

对文件进行编辑

touchxxx

vi/vim

cp拷贝

cp要拷贝的全文件名目标文件名

mv移动

mv目标文件移动目标路径

mv文件改名

mv原文件名目标文件名

rm删除

rmdir

rm文件名

rm-rf文件名/文件夹名

查看文件内容

cat文件名

cat>文件名

vi文件名{

vi命令模式

:q

:q!

:wq!

dd

yy

p

/xxx

}

head文件名

head-nx文件名

tail文件名

tail-nx文件名

分屏查看文件的内容

more文件名

less文件名(可按PageUp、PageDown上下翻页)

clear

查看IP与管理网卡

ifconfig

ifconfigeth0ip地址

ifconfigeth0down

ifconfigeth0up

创建用户/用户组及密码

groupadd组名创建组

groupadd-g组编号组名创建组

useradd用户名创建用户

useradd-g组名用户名

userdel用户名删除用户

userdel-r用户名删除用户

passwd

passwd用户名修改指定用户的密码

groupdel组名

passwd-l用户名

useradd-u100-gmygroup1-Gmygroup2-d/home/programmers1创建用户s1

-u:指定用户UID为100

-g:只用用户的主要组为mygroup1

-G:指定用户的附加组为mygroup2,一个用户可以有多个附加组

-d:指定用户的目录名

usermod-u601-g501s1

创建软链接

ln-s文件夹名别名

ls-l查询结果中软连接以l开头

find文件夹-name"文件名"

find文件夹-typed

grep"指定字符"文件名

grep-v"指定字符"文件名

ls|grep"指定字符"

ps-aux

ps-ef

kill-9PID

top

tar压缩与解压缩命令

tar-cvf文件名.tar文件夹

tar-zcvf文件名.tar.gz文件夹

tar-zxvf文件名

centos6启动/停止服务命令

serviceiptablesstop

serviceiptablesstart

centos6开机启动/停止服务命令

chkconfigiptablesoff

chkconfigiptableson

rpm安装软件命令

rpm-ivh文件名

rpm-qa

rpm-qlxx

rpm-exx

rpm-ivh--force文件名

rpm-ivh--nodeps文件名

自动安装软件及需要的依赖软件

yuminstall文件名

yumremove文件名

源码tar包编译安装

makeinstall

makeclean与makedistclean

在集群中进行文件copy

scp文件名ip地址:/目标路径

修改主机名

hostname名字

vi/etc/sysconfig/networkroot组

1vsn关系root用户-->root组(主要组)oldboy组oldgirl组(附属组)

雷明春-->雷氏家族(主要组)张氏(附属组)

nvsn关系root用户oldboy用户-->root组oldboy组

nvs1关系

[root@oldboymengoldboy]#stat/etc/hosts---查看详细属性信息

File:‘/etc/hosts’

Size:7Blocks:8IOBlock:4096regularfile

Device:803h/2051dInode:16810611Links:1

Access:(0644/-rw-r--r--)Uid:(0/root)Gid:(0/root)

Context:unconfined_u:object_r:net_conf_t:s0

Access:2019-06-1315:20:53.538925666+0800

Modify:2019-06-1315:20:52.038925775+0800

Change:2019-06-1315:20:52.038925775+0800

Birth:-

Access:2019-06-1318:38:46.307068633+0800

Modify:2019-06-1318:37:51.453072592+0800

Change:2019-06-1318:37:51.453072592+0800

Change:2019-06-1318:40:32.520060966+0800

Access:2019-06-1318:41:42.042055947+0800

Modify:2019-06-1318:41:42.042055947+0800

Change:2019-06-1318:41:42.043055947+0800

date

ThuJun1318:46:04CST2019

[root@oldboymengoldboy]#date+%y-%m-%d

19-06-13

[root@oldboymengoldboy]#date+%Y-%m-%d

2019-06-13

[root@oldboymengoldboy]#date+%F

[root@oldboymengoldboy]#date+%H:%M:%S

18:51:22

[root@oldboymengoldboy]#date+%T

18:51:50

2019-06-12

cp/etc/hosts/tmp/hosts-`date+%F`

date-s"20200505"---修改日期信息

SunMay510:10:10CST2030

root@oldboymengoldboy]#ntpdatentp1.aliyun.com

13Jun19:08:24ntpdate[32975]:steptimeserver120.25.115.20offset-343775.764894sec

概念说明:

1.相当于查看一个文件数据的多个入口信息

2.inode号码相同的文件,互为硬链接

如何创建:

ln源文件硬链接文件

lnoldboy.txtoldboy_hard_link.txt

特点总结:

1.源文件被删除,链接文件不会失效

2.创建多个硬链接文件,不会占用block空间和inode空间

3.目录无法创建硬链接

用途说明:

1.防止文件被误删除不能防止文件误修改

cp:防止误删除防止误修改

?2.文件被删除条件:

1)硬链接数为0i_link=0

2)i_count=0

补充:查询所有硬链接文件

[root@oldboymengoldboy]#find/-typef-inum33574990

/tmp/oldboy_link.txt

/oldboy/oldboy_hard_link.txt

/oldboy/oldboy_hard_link02.txt

/oldboy/oldboy_hard_link03.txt

/oldboy/oldboy.txt

删除硬链接:

如果只删除源文件不删除硬链接文件则文件不会被删除

只有删除源文件和所有的硬链接文件则文件被删除

如果普通文件(没有被系统调用的文件)硬链接数0则被删除如果只删除源文件或者硬链接则只是删除了inode指向没有真正的删除block

只有删除源文件和所有的硬链接则真正意义上删除了block文件被删除

硬链接显示为普通文件可直接使用rm删除

当所有的硬链接文件及源文件被删除后,再存放新的数据会占用这个文件的空间,或者磁盘fsck检查的时候,删除的数据也会被系统回收。

1.相当于快捷方式,是一个普通文件,以l开头

2.软连接文件存储源文件的路径信息

ln源文件软链接文件

ln-soldboy.txtoldboy_soft_link.txt

1.源文件被删除,链接文件会失效.删除软链接文件文件不是真正的删除,不影响源文件

2.创建多个软连接文件,会占用多个inode空间

3.目录也可以创建软连接

1.减少开发人员代码修改难度

01.创建一个文件,有几个硬链接数?

1个硬链接

02.创建一个目录,有几个硬链接数

2个硬链接

目录本身占用一个硬链接

目录下面的点.占用一个硬链接

总结:目录的硬链接数==本身目录(1)+目录中.(1个)+目录中的自目录中的..(1个)

03.查看/etc目录属性信息,显示的硬链接数是什么意思

drwxr-xr-x.80rootroot8192Oct1001:47/etc/

80=etc(1)+.(1)+78个子目录(..)

ll/etc|grep-c"^d"

78

一,简答题

1.什么是buffer和cache

答:写入数据到内存里,这个存储数据的空间称为缓冲区(buffer)

从内存读取数据,这个存数据的内存空间称为缓存区(cache)

2.硬链接和软连接的区别

答:1)软链接可以理解成快捷方式。它和windows下的快捷方式的作用是一样的

2)硬链接等于cp-p加同步更新

3.Linux下通过mkdir命令创建一个新目录/oldboy它的硬链接数是多少,为什么?

答:2个,因为:

1.创建的目录本身为一个硬链接。

2.新目录ett下的隐藏目录.(点号)为创建的新目录的又一个硬链接,也算一个链接数,因此,硬链接数是2。

如果在/oldboy/下面再创建一个目录test。再问/oldboy/的硬链接数是多少?为什么。

3个,因为创建的目录是上级目录的一个硬链接,oldboy这个目录它本身就有两个硬链接,相加起来就是3个。

4,请执行命令取出Linux中eth0的IP地址(不低于2种方法)。

答:

1)hostname-I

2)ipa|sed-rn‘s#.*et(.*)/24br.*#\1#gp’

3)ipa|awk-F"[/]+"'NR==9{print$3}'

5,请写出,ll-hi/etc显示输出的每一列含义(以空格为分隔符)。

33899913drwxr-xr-x.3rootroot101May1507:01abrt

6,请写出20个学过的命令及参数以及他们的作用。

7,请简单写出xshell链接不上虚拟机排错流程

8,请写出eth0网卡配置文件中必须存在的条目选项。

9,说说inode与block特点

inode是用来存储数据属性信息的,他包含有指向文件实体的指针功能,但他不包括文件名。

block是用来存储实际信息的

10,写出命令行下五个常用快捷键及作用

ctrl+a光标快速移动到行首Home

ctrl+e光标快速移动到行尾End

二.常见错误提示解析类(给出你的翻译)

1.cannotcreatedirectory“oldboy”fileexists无法创建目录“oldboy”文件存在

2.nosuchfileordirectory没有这样的文件或目录

3.-bash:commandnotfoundbash:未找到命令

4.connectionfailed连接失败

Couldnotconnectto'10.0.0.100'(port22):Connectionfailed.

无法连接到“10.0.0.100”(端口22):连接失败

5.nameorservernotknown名称或服务器未知

6.cp:omittingdirectory‘/etc/sysconfig/’cp:忽略目录'/etc/sysconfig/'

7.Permissiondenied权限被拒绝

8.Notadirectory不是一个目录

三,请写出命令满足工作需求

1,查看磁盘inode的使用率df-idf-ih

2,当前路径下有一a.tar.gz压缩包,我想将其解压到/home/GAO666中

tarxfa.tar.gz-C/home/GAO666

3,临时和永久关闭seLinux和防火墙

vim/etc/selinux/config

SELINUX=disabledsetenforce0

4,永久关闭防火墙关闭后查看防火墙状态

iptables-save

5,已知我曾经创建了一个名字叫做gao什么的文件,里面放置了我的私密信息。最近体重增长了,我想更新下那个文件的内容,找不到了,怎么办?

find-typef-name“gao*”

6,NetworkManager临时和永久关闭

systemctlstopNetworkManagersystemctldisableNetworkManager

7,因开发需要,我们要实时监测系统日志/var/log/messages的实时更新,请写出命令完成。tail-f

8,如何查询一个软件是否安装

rpm-qa

.#当前目录,任意一个字符(正则)

..#当前目录的上一级目录

*#任意0个或多个字符(文本)(通配符)

>#输出重定向会清空原来的内容,然后在里面追加内容

>>#追加输出重定向,追加到文件的最后一行

<#输入重定向,trxargs

<<#用来给文件追加多行文本

!#find与awk中表示取反,linux中bash命令行使用

逻辑运算中的“非”;vi/vim强制退出;!+字母,调出最近一次以此字母开头的命令

!!使用最近一次操作的命令!+数字调出历史的第几条命令

#任意一个字符,通配符

##表示注释Linux会忽视他。给人看的,解释说明。

#root用户的提示符

|#管道,或者(正则)|xargs将前一个命令的结果交给后一个命令来处理

$#以。。。结尾(正则),$LANG$取变量内容

^#以.......开头(正则表达式)

~#当前用户的家目录

``#(反引号)$()#引用命令的结果``中间是命令,会先执行,等价$()

&&#并且同时成立前一个命令成功在执行后一个命令

[]#表示一个范围,集合[abcdefg][a-g](正则,通配符)

{}#产生一个序列,(通配符)

;#分号,分隔多个命令

‘’#不具有变量置换功能,输出时所见即所得(吃啥吐啥)

“”#双引号具有变量置换功能,解析变量输出

/#根,路径分隔符

\#转义符号\班长====>>学生

?#通配符正则表达式

美元符号:$

1)用于取出变量中的内容

2)用于取出指定列的信息(awk)???

3)表示用户命令提示符号

超级用户为#

普通用户为$

叹号符号:!

1)用于表示取反或者排除意思

2)命令行中表示取出最近命令

3)用于表示强制操作处理

vim底行模式保存退出wq!q!

竖线符号:|

管道符号:将前面命令执行的结果交给后面命令进行处理

xargs-->后面命令处理

什么时候用到xargs进行过滤:

一般基础命令接收管道传过来的信息,都要用xargs命令进行过渡rmcpmv

高级命令接收管道传过来的信息,可以不用xargs命令进行过度grepsedawk

井号符号:#

1)表示文件内容注释符号

2)表示用户命令提示符号

'':所见即所得

"":会将指定内容进行输出,有些信息会被解析$``

echo"PS1='\[\e[32;1m\][\u@\h\W]\\$\[\e[0m\]'">>/etc/profile

``:将反引号中的命令优先执行,将执行结果交给外面的命令进行处理==$()

rpm-qf`whichtree`

没有引号:和双引号功能类似,可以识别通配符号信息

>:标准输出重定向符号

2>:错误输出重定向符号

>>:标准输出追加重定向符号

2>>:错误输出追加重定向符号

<:标准输入重定向符号

<<:标准输入追加重定向

错误和正确信息都记录到一个日志文件中???--定时任务

方法1:2>>tar.log>>tar.log

方法2:&>>tar.log

方法3:>>tar.log2>&1

单点符号:.表示当前目录

双点符号:..表示上级目录

波浪符号~表示用户家目录信息

超级用户:/root

普通用户:/home/用户名称

横线符号:-两个目录路间进行切换

系统逻辑符号:

&&:前面命令执行成功,在执行后面命令

[root@oldboymeng~]#mkdir-p/oldgirl&&echo"前面命令执行成功"||echo"前面命令执行失败"

前面命令执行成功

||:前面命令执行失败,再执行后面命令

[root@oldboymeng~]#mkdr-p/oldgirl&&echo"前面命令执行成功"||echo"前面命令执行失败"

-bash:mkdr:commandnotfound

前面命令执行失败

通配符指的是包含这些字符的字符串,“?”“*”“[]”“{}”.他是shell的内置功能

通配符是用来匹配/查找文件名,Linux命令基本都支持通配符。

通配符含义=============>>匹配文件名

符号作用

*匹配任何字符串/文本,包括空字符串

代表任意字符(0个或多个)

?匹配任何一个字符(不在括号内时)?代表任意一个字符

[abcd]匹配abcd中任何一个字符

[a-z]表示范围a到z,-表示范围的意思

{__}表示生成序列,以逗号分隔,且不能有空格

[!abcd][^abcd]表示非,表示不匹配括号里面的任何一个字符

*:匹配所有(任意)字符信息

find/oldboy-typef-name"old*"找寻以什么信息开头的文件

find/oldboy-typef-name"*txt"借助正则符号无法匹配文件名称信息

find/oldboy-typef-name"old*txt"

{}:批量创建数据信息

echo{01..10}echo{01..10..2}echo{01,03,09}

toucholdboy{01..10}

不同序列信息,可以进行组合

[root@oldboymeng~#echoA{A,B}

AAAB

[root@oldboymeng~#echoA{,B}

AAB

ifcfg-eth0ifcfg-eth0.bak--cpifcfg-eth0ifcfg-eth0.bak

[root@oldboymeng~#echoA{A,}

AAA

快速备份数据:

cp/etc/sysconfig/network-scripts/ifcfg-eth0/etc/sysconfig/network-scripts/ifcfg-eth0.bak

转换:

cp/etc/sysconfig/network-scripts/ifcfg-eth0{,.bak}cp源目标

快速还原数据:

cp/etc/sysconfig/network-scripts/ifcfg-eth0{.bak,}

通过正则表达式从字符串中我们可以取出文件中正确的身份证号码;帮助我们快速过滤

通配符作用:查找文件名(支持Linux大部分命令都支持以.txt结尾)

正则作用:在文件中过滤内容(支持的命令:三剑客sed,grep,awk,Python,java)

正则表达式注意事项:神坑-中文符号

正则表达式分类:基本正则+扩展正则

为处理大量的字符串而定义的一套规则和方法,通过定义这些的特殊符号的辅助,系统管理员可以快速过滤,替换或输出需要的字符串

[root@oldboymeng~#grep"^I"oldboy.txt

Iamoldboyteacher!

Iteachlinux.

Ilikebadmintonball,billiardballandchinesechess!

[root@oldboymeng~#grep"m$"oldboy.txt

过滤文件内的空行:

[root@oldboymeng~]#grep'^$'datafile

^$

配置文件:如何更好的阅读

#行空行---屏蔽掉

[root@oldboymeng~#grep-v"^$"oldboy.txt

myqqnumis49000448.

not4900000448.

mygod,iamnotoldbey,butOLDBOY!

[root@oldboymeng~#grep.oldboy.txt-o

I

a

m

o

将有意义的符号信息,变成没有意义

[root@oldboymeng~#grep"\.$"oldboy.txt

将没有意义的字符信息,变成有意义的信息

\t:制表符

\n:换行符

\r:换行符

[root@oldboymeng~#echo-e"oldboy01\noldboy02"

oldboy01

oldboy02

[root@oldboymeng~#grep"0*"oldboy.txt-o

000

00000

需求:排除小写字母信息不要显示

[root@oldboymeng~#grep-v[a-z]oldboy.txt

[root@oldboymeng~#grep[^a-z]oldboy.txt

---匹配前一个字符连续出现1次或者多次

[root@oldboymeng~#grep-E"0+"oldboy.txt

---匹配的信息之间是或者的关系

[root@oldboymeng~#grep-Ev"^$|^#"oldboy.txt

[root@oldboymeng~#grep-E"oldb(o|e)y"oldboy.txt

---将多个字符信息汇总为一个整体进行过滤

---替换修改文件内容,后向引用前项

[root@oldboymeng~#echo123456

123456

[root@oldboymeng~##echo123456|xxx--><123456>

[root@oldboymeng~#

[root@oldboymeng~#echo123456|sed"s#123456#<123456>#g"

<123456>

[root@oldboymeng~#echo123456|sed"s#(.*)#<\1>#g"

sed:-eexpression#1,char13:invalidreference\1on`s'command'sRHS

[root@oldboymeng~#echo123456|sed-r"s#(.*)#<\1>#g"

[root@oldboymeng~#echo123456|sed-r"s#(.)(.)(.)(.)(.)(.)#\1#g"

[root@oldboymeng~#echo123456|sed-r"s#(.)(.)(.)(.)(.)(.)#\1\2#g"

12

[root@oldboymeng~#echo123456|sed-r"s#(.)(.)(.)(.)(.)(.)#\1\2\3#g"

123

[root@oldboymeng~#echo123456|sed-r"s#(.)(.)(.)(.)(.)(.)#<\1>\2\3\4\5\6#g"

<1>23456

第一个历程:生成序列信息

[root@oldboymeng~#echo{01..10}|xargs-n1

01

02

03

04

05

06

07

08

09

10

[root@oldboymeng~#seq10

7

8

9

[root@oldboymeng~#seq-w10

第二个历程:生成命令信息,交给bash命令执行

[root@oldboymeng~#seq-w10|sed-r's#(.*)#useraddoldboy\1;echo123456|passwd--stdinoldboy\1#g'|bash

useradd:user'oldboy01'alreadyexists

Changingpasswordforuseroldboy01.

passwd:allauthenticationtokensupdatedsuccessfully.

Changingpasswordforuseroldboy02.

Changingpasswordforuseroldboy03.

Changingpasswordforuseroldboy04.

Changingpasswordforuseroldboy05.

Changingpasswordforuseroldboy06.

Changingpasswordforuseroldboy07.

Changingpasswordforuseroldboy08.

Changingpasswordforuseroldboy09.

Changingpasswordforuseroldboy10.

思考:如何批量创建用户,并且每个用户的密码是随机密码

1.如何生成随机密码信息---如何生成随机字符

2.随机密码信息如何保留下来

脚本如何实现???

---匹配前一个字符连续出现指定的次数

{n,m}---匹配前一个字符连续最少出现n次最多出现m次

[root@oldboymeng~#grep-E"0{3,5}"oldboy.txt

[root@oldboymeng~#grep-E"0{3,5}"oldboy.txt-o

[root@oldboymeng~#grep-E"0{2,4}"oldboy.txt

[root@oldboymeng~#grep-E"0{2,4}"oldboy.txt-o

0000

[root@oldboymeng~#grep-E"0{1,4}"oldboy.txt-o

[root@oldboymeng~#grep-E"0{1,4}"oldboy.txt

{n}---匹配前一个字符连续正好出现n次

[root@oldboymeng~#grep-E"0{3}"oldboy.txt

[root@oldboymeng~#grep-E"0{3}"oldboy.txt-o

{n,}---匹配前一个字符连续最少出现n次,最多出现次数没有限制

[root@oldboymeng~#grep-E"0{2,}"oldboy.txt

[root@oldboymeng~#grep-E"0{2,}"oldboy.txt-o

[root@oldboymeng~#grep-E"0{4,}"oldboy.txt

[root@oldboymeng~#grep-E"0{4,}"oldboy.txt-o

{,m}---匹配前一个字符连续最少出现0次,最多出现次数m次

[root@oldboymeng~#grep-E"0{,4}"oldboy.txt

[root@oldboymeng~#grep-E"0{,4}"oldboy.txt-o

01.具有贪婪匹配特性

解决方法:

[root@oldboymeng~#grep"^m.*og"oldboy.txt

[root@oldboymeng~#grep"^m.*g"oldboy.txt

02.过滤时显示的信息不正确

grep过滤信息,过滤信息外面使用双引号

sedawk过滤信息,过滤信息外面使用单引号

第一个历程:获取有IP地址信息命令

ipaddressshoweth0

第二个历程:定位有IP地址信息行

[root@oldboymeng~#ipaseth0|sed-n'3p'

inet10.0.0.201/24brd10.0.0.255scopeglobaleth0

第三个历程:取出指定信息

[root@oldboymeng~#ipaseth0|sed-n'3p'|sed-r"s#^.*t(.*)#\1#g"

10.0.0.201/24brd10.0.0.255scopeglobaleth0

[root@oldboymeng~#ipaseth0|sed-n'3p'|sed-r"s#^.*t(.*)#\1#g"|sed-r's#(.*)/24.*$#\1#g'

10.0.0.201

第四个历程:命令整合:

第一次整合:

sed-r's#^.*t(.*)#\1#g'

sed-r's#(.*)/24.*$#\1#g'

sed-r's#^.*t(.*)/24.*$#\1#g'

[root@oldboymeng~#ipaseth0|sed-n'3p'|sed-r's#^.*t(.*)/24.*$#\1#g'

第二次整合:

sed-n'3p'

sed-nr'3s#^.*t(.*)/24.*$#\1#gp'

[root@oldboymeng~#ipaseth0|sed-nr'3s#^.*t(.*)/24.*$#\1#gp'

[root@oldboymeng~#ipaseth0|grepglobal

[root@oldboymeng~#ipaseth0|grepinet

inet6fe80::20c:29ff:fe37:df1b/64scopelink

[root@oldboymeng~#ipaseth0|grep-winet

[root@oldboymeng~#ipaseth0|grep-winet|grep"[0-9].[0-9].[0-9].[0-9]"

[root@oldboymeng~#ipaseth0|grep-winet|grep"[0-9]+.[0-9]+.[0-9]+.[0-9]+"

[root@oldboymeng~#ipaseth0|grep-winet|grep-E"[0-9]+.[0-9]+.[0-9]+.[0-9]+"

[root@oldboymeng~#ipaseth0|grep-winet|grep-E"[0-9]+.[0-9]+.[0-9]+.[0-9]+"-o

10.0.0.255

[root@oldboymeng~#ipaseth0|grep-winet|grep-E"[0-9]+.[0-9]+.[0-9]+.[0-9]+"-o|head-1

[root@oldboymeng~#ipaseth0|grep-winet|grep-E"([0-9]+.){3}[0-9]+"

[root@oldboymeng~#ipaseth0|grep-winet|grep-E"([0-9]+.){3}[0-9]+"-o

[root@oldboymeng~#ipaseth0|grep-winet|grep-E"([0-9]+.){4}"-o

10.0.0.201/

[root@oldboymeng~#ipaseth0|grep-winet|grep-E"([0-9]+.){4}"

[root@oldboymeng~#ipaseth0|grep-winet|grep-E"([0-9]+\.){4}"

[root@oldboymeng~#ipaseth0|grep-winet|grep-E"([0-9]+\.){4}"-o

awk???

sed-streameditorforfilteringandtransformingtext

流编辑器工具(文件字符流进行处理编辑)

作用:擅长对文件的行进行处理修改编辑文件内容

语法:sed[参数]'条件指令(如何处理)'文件信息

sed-n'/oldboy/p'oldboy.txt

参数:

-n取消默认输出

-i真实修改文件内容

-e识别多个指令信息,可以让多个指令同时执行

-r识别扩展正则符号信息

指令:

pprint输出信息

ddelete删除文件信息

iinsert在指定条件行的上面添加信息

aappend在指定条件行的下面添加信息

ssubstitute取代==替换

gglobal将所有匹配的信息都做替换(没有将一行中第一个匹配的信息做替换)

cchange修改替换指定的整行信息

sed命令执行原理:---按行处理文件信息

sed命令能完成什么事情:增删改查(处理文本文件配置文件-sed日志文件-grep/awk)

测试环境准备:

cat>person.txt<

101,oldboy,CEO

102,zhaoyao,CTO

103,Alex,COO

104,yy,CFO

105,feixue,CIO

EOF

需求:查询单行信息:

1.将第3行信息进行显示

[root@oldboymeng~#sed-n'3p'person.txt

2.将有oldboy的行进行显示

[root@oldboymeng~#sed-n'/oldboy/p'person.txt

需求:查询多行信息

1.将第3行~第5行信息进行显示

#sed-n'3,5p'person.txt

2.将oldboy~alex信息进行显示

#sed-n'/oldboy/,/Alex/p'person.txt

3.只查看第3行和第5行内容

#sed-n'3p;5p'person.txt

111,Alex,CEO

4.只查看有oldboy和alex信息

#sed-n'/oldboy/p;/Alex/p'person.txt

需求:

01.将第三行信息进行删除

[root@oldboymeng~#sed'3d'person.txt

[root@oldboymeng~#catperson.txt

[root@oldboymeng~#sed-i'3d'person.txt

02.将有oldboy信息的行进行删除

sed'/oldboy/d'person.txt

sed-i'/oldboy/d'person.txt

03.将oldboy和Alex信息的行进行删除

[root@oldboymeng~#sed'/oldboy/d;/Alex/d'person.txt

[root@oldboymeng~#sed-r'/oldboy|Alex/d'person.txt

01.在第3行后面增加新的一行内容oldboy61

[root@oldboymeng~#sed'3aoldboy61'person.txt

oldboy61

02.在第5行前面增加新的一行内容oldboy61

[root@oldboymeng~#sed'5ioldboy61'person.txt

03.在第3行前面加oldboy61,同时在第5行后面加oldboy61

[root@oldboymeng~#sed-e'3ioldboy61'-e'5aoldboy61'person.txt

04.在文件最后一行后面,添加多行信息

[root@oldboymeng~#sed-e'$aoldboy61'person.txt

[root@oldboymeng~#sed'$aoldboy61\noldboymeng'person.txt

oldboymeng

需求

01.将123456信息显示为<123456>

[root@oldboymeng~#echo123456|sed-r's#(.*)#<\1>#g'

[root@oldboymeng~#echo123456|sed's#.*#<&>#g'

[root@oldboymeng~#echo123456|sed-r's#([0-9]+)#<\1>#g'

02.将123456信息显示为<123><456>

[root@oldboymeng~#echo123456|sed-r's#([0-9]{3})#<\1>#g'

<123><456>

[root@oldboymeng~#echo123456|sed-r's#(.{3})#<\1>#g'

03.将123456信息显示为<1><2><3><4><5><6>

[root@oldboymeng~#echo123456|sed-r's#([0-9])#<\1>#g'

<1><2><3><4><5><6>

[root@oldboymeng~#echo123456|sed-r's#([0-9]{1})#<\1>#g'

[root@oldboymeng~#echo123456|sed-r's#(.)#<\1>#g'

修改文件内容:

使用-i参数问题:

01.-i.bak表示对源文件进行备份--i参数后面不能跟其他参数

#sed-ri.bak's#(.*)#<\1>#g'oldboy.txt

#lloldboy.txt*

-rw-r--r--.1rootroot9Oct1013:52oldboy.txt

-rw-r--r--.1rootroot7Oct1013:52oldboy.txt.bak

02.在利用-i替换文件内容信息,-i参数和-n参数一定不能同时使用

替换的错误方法

[root@oldboymeng~#sed-n'/Alex/s#COO#CEO#gp'person.txt

103,Alex,CEO

[root@oldboymeng~#sed-ni.bak'/Alex/s#COO#CEO#gp'person.txt

[root@oldboymeng~#catperson.txt.bak

正确替换方法

[root@oldboymeng~#sed-i'/Alex/s#COO#CEO#g'person.txt

02.批量修改文件扩展名称

方法一:

find/oldboy-maxdepth1-typef-name"oldboy*.txt"|sed-r's#(.*)txt#mv\1txt\1jpg#g'|bash

mv/oldboy/oldboy.txt/oldboy/oldboy.jpg

mv/oldboy/oldboy01.txt/oldboy/oldboy01.jpg

mv/oldboy/oldboy02.txt/oldboy/oldboy02.jpg

mv/oldboy/oldboy03.txt/oldboy/oldboy03.jpg

mv/oldboy/oldboy04.txt/oldboy/oldboy04.jpg

mv/oldboy/oldboy05.txt/oldboy/oldboy05.jpg

mv/oldboy/oldboy06.txt/oldboy/oldboy06.jpg

mv/oldboy/oldboy07.txt/oldboy/oldboy07.jpg

mv/oldboy/oldboy08.txt/oldboy/oldboy08.jpg

mv/oldboy/oldboy09.txt/oldboy/oldboy09.jpg

mv/oldboy/oldboy10.txt/oldboy/oldboy10.jpg

方法二:

[root@oldboymeng/oldboy#lsoldboy*.txt|xargs-n1|sed-r's#(.*)txt#mv&\1jpg#g'

mvoldboy01.txtoldboy01.jpg

mvoldboy02.txtoldboy02.jpg

mvoldboy03.txtoldboy03.jpg

mvoldboy04.txtoldboy04.jpg

mvoldboy05.txtoldboy05.jpg

mvoldboy06.txtoldboy06.jpg

方法三:利用rename

#rename"修改文件名称什么信息""修改成什么"修改什么文件

rename".txt"".jpg"oldboy*.txt

03.取出文件权限数值信息

[root@oldboymeng~#stat/etc/hosts|sed-nr'4s#^A.*s:\((.*)/-.*$#\1#gp'

0644

[root@oldboymeng~#stat/etc/hosts|sed-n'4s#^A.*s:(\(.*\)/-.*$#\1#gp'

方法二:???

[root@oldboymeng~#ll/etc/hosts|sed-r's#^-(.*)\.1.*$#\1#g'

rw-r--r--

[root@oldboymeng~#ll/etc/hosts|sed-r's#^-(.*)\.1.*$#\1#g'|tr"rwx-""4210"

420400400

04.特殊替换文件内容信息:

[root@oldboymeng~#sed-n'3s/#103/103/gp'person.txt

[root@oldboymeng~#sed-n'3s#\#103#103#gp'person.txt

05.修改整行信息:

[root@oldboymeng~#sed'3coldboy61'person.txt

06.取消空行不要显示

[root@oldboymeng~#sed'/^$/d'person.txt

#103,Alex,COO

[root@oldboymeng~#sed-n'/^$/!p'person.txt

扩展:利用sed命令显示文件行号信息

sed'='person.txt|xargs-n2

1)作用:擅长取列擅长统计运算

2)语法:awk[参数]'模式(条件){动作}(指令)'文件信息

awk命令参数:

-F:指定分隔符号信息":""[:/]""[:/]+"

-v:设置变量信息

awk命令动作:

print:打印输出信息空格,""字符串"oldboy"变量信息oldboy指定列$1$NF$(NF-1)$0(所有列)

gsub:替换指定列的信息gsub(/要替换的内容/,"替换成什么",$N)

计算:

累加运算:i=i+1i++

求和运算:i=i+$n

awk内置变量:

FSNFNR

模式:常用模式特殊模式(BEGINEND)

3)原理:

gawk-patternscanningandprocessinglanguage

模式扫描(条件匹配)and程序语言

awk:擅长取列擅长统计分析(nginxzabbixtomcat...SSH)ELKawk

[root@oldboymeng~#whichawk

/usr/bin/awk

[root@oldboymeng~#ll/usr/bin/awk

lrwxrwxrwx.1rootroot4May3116:06/usr/bin/awk->gawk

把文件内容按列对齐:

column-ttest.txt

cat>oldboy.txt<

ZhangDandan41117397:250:100:175

ZhangXiaoyu390320151:155:90:201

MengFeixue80042789:250:60:50

WuWaiwai70271111:250:80:75

LiuBingbing41117483:250:100:175

WangXiaoai3515064655:50:95:135

ZiGege1986787350:250:168:200

LiYoujiu918391635:175:75:300

LaoNanhai918391635:250:100:175

01.显示xiaoyu的姓氏和ID号码

满足需求不符合规范

[root@oldboymeng~#awk'/Xiaoyu/{print$1$3}'oldboy.txt

Zhang390320151

[root@oldboymeng~#awk'/Xiaoyu/{print$1,$3}'oldboy.txt

[root@oldboymeng~#awk'/Xiaoyu/{print$1""$3}'oldboy.txt

按照指定列进行搜索信息

[root@oldboymeng~#awk'/Xiaoyu/'oldboy.txt---将匹配信息的行直接显示

Xiaoyuzhang390320151:155:90:201

[root@oldboymeng~#awk'$2~/Xiaoyu/'oldboy.txt---指定列信息匹配

[root@oldboymeng~#awk'$2!~/Xiaoyu/'oldboy.txt

满足要求,正确语法格式

[root@oldboymeng~#awk'$2~/Xiaoyu/{print$1,$3}'oldboy.txt

PS:awk命令默认区分大小写没有类似grep命令-i参数功能

02.姓氏是zhang的人,显示他的第二次捐款金额及他的名字

第一历程:找出姓氏是张的人

[root@oldboymeng~#awk'$1~/Zhang/'oldboy.txt

第二历程:显示出名字信息和所有捐款记录

[root@oldboymeng~#awk'$1~/Zhang/{print$2,$4}'oldboy.txt

Dandan:250:100:175

Xiaoyu:155:90:201

PS:awk默认使用空格进行作为列分隔符

第三历程:指定字符信息作为分隔符

[root@oldboymeng~#awk-F"[:]+"'$1~/Zhang/{print$2,$5}'oldboy.txt

Dandan100

Xiaoyu90

总结:

01.awk默认使用空格分隔列

02.可以使用-F指定分隔列的符号信息

03.利用-F"[:]+"+表示将多个连续的分隔符汇总为一个整体

03.显示所有以41开头的ID号码的人的全名和ID号码

第一个历程:找出匹配id号码是41开头的行信息---找出东西(模式写好)

[root@oldboymeng~#awk'$3~/^41/'oldboy.txt

第二个历程:显示出人的全名和ID号码---对找出东西进行处理(执行动作)

[root@oldboymeng~#awk'$3~/^41/{print$1,$2,$3}'oldboy.txt|column-t

ZhangDandan41117397

LiuBingbing41117483

04.显示所有ID号码最后一位数字是1或5的人的全名

第一个历程:找出id号码以1或5结尾信息---找出信息

awk'$3~/1$|5$/'oldboy.txt

awk'$3~/[15]$/'oldboy.txt

第二个历程:显示全名信息---找出信息做处理

awk'$3~/[15]$/{print$1,$2}'oldboy.txt|column-t

05.显示文件中第二行,第三列的信息

第一个历程:匹配第二行

[root@oldboymeng~#awk'NR==2'oldboy.txt

第二个历程:显示第三列

awk'NR==2{print$3}'oldboy.txt

测验:利用awk取出IP地址信息(grepsed)

第一个历程:定位有IP地址的行---找出信息

ipaseth0|awk'NR==3'

第二个历程:只显示IP地址---做处理

[root@oldboymeng~#ipaseth0|awk-F"[/]+"'NR==3{print$3}'

说明:在不指定-F参数信息,

1.默认将多个连续的空格汇总为整体

2.默认将一行头部开始空格信息忽略不计

[root@oldboymeng~#ipaseth0|awk-F"[^0-9.]+"'NR==3{print$2}'

06.显示Xiaoyu的捐款,每个捐款数值都有以$开头,如$110$220$330

[root@oldboymeng~#awk-F"[:]"'$2~/Xiaoyu/{print"$"$2"$"$3"$"$4}'oldboy.txt???

$155$90$201

[root@oldboymeng~#awk'$2~/Xiaoyu/{print$4}'oldboy.txt|sed's#:#$#g'

[root@oldboymeng~#awk'$2~/Xiaoyu/{print$4}'oldboy.txt|tr":""$"

方法三:awk替换功能sedtr

gsub(/要替换的信息/,"替换成什么",将第几列进行替换)

[root@oldboymeng~#awk'$2~/Xiaoyu/{gsub(/:/,"$",$NF);print$NF}'oldboy.txt

利用awk排除指定信息不要显示

awk'!/^$/'oldboy.txt

正则表达式作为模式

^还可以表示某一列的开始

$还可以表示某一列的结尾

比较表达式作为模式

[root@oldboymeng~#awk'NR==1{print$NF}'oldboy.txt

:250:100:175

范围模式

awk'NR==1;NR==2'oldboy.txt---只查看第1和第2行

awk'NR==1,NR==3'oldboy.txt---查看第一到第三行

BEGIN在处理文件之前先执行的动作

1)生成文件内容表头信息

[root@oldboymeng~#awk'BEGIN{print"姓氏","名称","id号码","捐款记录"}{print$0}'oldboy.txt|column-t

姓氏名称id号码捐款记录

MengFeixue800412789:250:60:50

2)用于在系统中进行运算数值

awk'BEGIN{print2+3}'

3)修改或设置变量信息

a.awk命令中,会直接将字符串信息当成变量$1$NF$0(取一行中所有列)

[root@oldboymeng~#awk'BEGIN{oldboy=62;printoldboy}'

62

[root@oldboymeng~#awk'BEGIN{oldboy=62;print"oldboy"}'

oldboy

b.awk命令中,变量分类:

自定义变量:oldboy=62

内置变量:

NF:显示最后一列信息$(NF-1)取倒数第2列

NR:表示行号信息,取出第几行NR==2NR>=2NR<=2

FS:指定分隔符信息-F

[root@oldboymeng~#awk-F":"'NR==1{print$2}'oldboy.txt

250

[root@oldboymeng~#awk'BEGIN{FS=":"}NR==1{print$2}'oldboy.txt

[root@oldboymeng~#awk-vFS=":"'NR==1{print$2}'oldboy.txt

END在处理文件之后再执行的动作***

1)显示表格补充信息

[root@oldboymeng~#awk'BEGIN{print"姓氏","名称","id号码","捐款记录"}{print$0}END{print"总结:这是一个学生登记表"}'oldboy.txt|column-t

总结:这是一个学生登记表

2)显示计算的最终结果OK

awk'/^$/{i=i+1}END{printi}'/etc/services

i=i+1-->i++

练习题01:统计一个文件中有多少个空行

第一个历程:找出空行

awk'/^$/'/etc/services

第二个历程:做运算处理

[root@oldboymeng~#awk'/^$/{i=i+1;printi}'/etc/services

11

13

14

15

16

17

[root@oldboymeng~#awk'/^$/{i=i+1}END{printi}'/etc/services

练习题02:统计/etc/passwd文件中最后一列有/sbin/nologin的出现了多少次

[root@oldboymeng~#awk-F":"'$NF~/nologin$/{i++}END{printi}'/etc/passwd

[root@oldboymeng~#awk'/nologin$/{i++}END{printi}'/etc/passwd

i=i+$n

实践操作:

[root@oldboymeng~#seq10|awk'{i=i+$1;printi}'

21

28

36

45

55

[root@oldboymeng~#seq10|awk'{i=i+$1}END{printi}'

1.开机加电自检---检查bios中识别的硬件信息是否正常

2.开机MBR引导---/boot分区引导系统启动的记录信息(MBR引导记录--系统启动文件信息/分区表信息)

3.grub选择菜单---可以选择系统内核信息/可以选择进入单用户模式

4.加载内核信息---用于管理控制硬件

5.启动系统进程---/sbin/init---后续进程启动(串型)

6.加载启动级别文件---加载/etc/inittab选择不同级别启动系统

7.运行初始化脚本---/etc/rc.d/rc.sysinit设置主机名称设置网卡地址信息

8.执行服务运行脚本---/etc/rc.d/rc实现服务开机自动运行

CentOS6串行启动,执行完一个,再执行下一个

3.grup选择菜单---可以选择系统内核信息/可以选择进入单用户模式

5.启动系统进程---/usr/lib/systemd/systemd---后续进程启动(并型)

6.加载启动target文件---/etc/systemd/system/default.target选择不同级别启动系统

7.加载系统初始化文件---/usr/lib/systemd/system/sysinit.target设置主机名称设置网卡地址信息

8.执行服务运行脚本---/etc/systemd/system实现服务开机自动运行

/usr/lib/systemd/system/保存系统中所有程序启动文件

CentOS7并行启动,一起执行

1.利用/etc/rc.local

2.利用chkconfig命令---centos6

chkconfig--list|grep服务名称---检查服务开机自启状态

chkconfig服务名称on/off---设置234级别开机自动

chkconfig服务名称--level级别---设置指定级别开机自启

3.利用syetemctl命令---centos7

systemctldisable/enable服务名称---设置服务开机自启

/etc/skel---是用户家目录的样板房

01.此目录中有什么数据,新建的用户家目录中就有什么

02.恢复普通用户提示符信息

cp-a/etc/skel/.bash*/home/oldboy/

他是Linux中的重要系统文件之一,主要作用是存储系统用户的信息。

文件中的每一行表示一个用户信息。仔细观察可以发现他们之间通过“:”号划分成了多个字段,共7段,他们分别定义了用户的不同属性

root

:x

:0

::

:/root

:/bin/bash

用户名称

:用户密码

:用户UID

:用户组GID

:用户注释

:用户家目录

:shell解释器

用户UID一般是由一个整数表示的,默认范围是0~60000,最大可以到65535

centos6中普通用户UID从500开始,包含500。

centos7中普通用户UID从1000开始,包含1000

默认创建的用户每次创建比上次创建加1

由于passwd文件必须要被所有的用户读,所以会带来安全隐患,shadow文件就是为了解决这个安全隐患而增加的。

useradd-u---指定用户uid数值1000oldboy1001oldgirl

useradd-g---指定用户gid数值

groupadd-g666oldboy666

useradd-u666-g666oldboy666

useradd-G---指定用户属于哪个附属组

useradd-u666-g666-Goldboyoldboy666

useradd-M---指定创建用户时,不创建家目录

useradd-c---指定用户注释信息

创建虚拟用户:useraddwww-M-s/sbin/nologin

PS:linux系统有几种shell形式cat/etc/shells

usermod-u---指定用户uid数值1000oldboy1001oldgirl

usermod-g---指定用户gid数值及主要组

usermod-u666-g666oldboy666

usermod-G---指定用户属于哪个附属组

usermod-u666-g666-Goldboyoldboy666

usermod-c---指定用户注释信息

groupadd-g---指定用户组gid信息

groupdel---删除用户组信息(了解)

groupmod---修改用户组信息(了解)

PS:root用户可以修改所有用户密码信息

普通用户只能修改自己的密码信息(密码复杂度数字加字母>=8个字符)

免交互创建密码--stdin(只有root用户可以操作)

echo******|passwd–stdin文件名

企业生产场景:用户及密码管理

密码要复杂,12位以上数字字母特殊字符

企业中:如何管理用户密码

01.编写用户密码信息文档

02.利用密码管理软件

本地管理密码软件--keepass

在线管理密码软件

03.域控管理服务器

04.动态密码

echostu{1..10}|xargs-n1|sed-r's#(.*)#useradd\1;echo123456|passwd--stdin\1#g'|bash

[root@oldboyedu~]#pass=`date+%N|md5sum|cut-c1-8`

[root@oldboyedu~]#echo$pass

192d2eb2

[root@oldboyedu~]#pass=$(date+%N|md5sum|cut-c1-8)

b6daea4a

echostu{1..10}|xargs-n1|sed-r's#(.*)#useradd\1;pass=$(date+%N|md5sum|cut-c1-8);echo$pass\1>>pass.txt;echo$pass|passwd--stdin\1#g'|bash

把密码存入2.txt

chownoldgirl.oldgirl/oldboy/oldboy.txt

-R递归修改注意在相对路径下使用

chown-Roldgirl.oldgirl/oldboy---递归修改目录权限信息

修改远程连接端口,禁止使用22端口,除非是不对外访问的服务器(内部测试)

更改默认的段口,修改ssh配置文件

vim/etc/ssh/sshd_config

查看/var/log/secure安全日志

给系统常用命令加-i

给系统配置文件加-a

文件内容的变化==指纹变化检查文件内容是否被改了

给文件创建指纹:md5sum+文件名

把指纹记录下来:md5sum+文件名>police.md5

police.md5是指纹库

如何进行对比:md5sum-cpolice.md5显示OK则正常,显示FAILED,说明文件被修改,

查看是不是自己的人修改了文件,如果是,先关掉警报,然后重新生成指纹。如果不是自己人修改,可使用备份恢复。

要定时检查,使用md5命令判断文件是否发生了变化

多个文件做md5指纹:

find.-typef-name“*.txt”|xargsmd5sum>police.md5

id

w

top---检查负载情况/内存/CPU使用情况

每个进程消耗的系统资源情况

id:空闲状态:

htop---top一个升级版

安装:

yum-yinstallepel-release

yum-yinstallhtop

iotop---检查确认磁盘的IO消耗情况

free

iftop---检查网络带宽使用情况

netstat(ss)-lntup|grepssh---检查网络状态信息命令,已知服务,获得对应端口号

-l列表显示网络服务状态信息

-n网络中的端口号码以数字形式显示

-t显示网络的tcp协议服务信息

-u显示网络的udp洗衣服务信息

-p网络协议服务进程信息进行显示

修改ssh端口号:

vi/etc/ssh/ssh_config

port端口号

lsof-i:端口号---检查网络服务信息,已知端口号,获得对应服务进程名

chattr---将文件数据进行上锁命令

+i---对文件进行上锁

-i---对文件进行解锁

lsattr---查看文件锁定状态

su-root---知识root用户密码

chmodo=rwx-R/oldboy/oldboy01/---递归修改目录权限信息

第一个历程:配置sudo文件

visudo(推荐--配置文件语法检查功能)==vim/etc/sudoers

101oldboyALL=(ALL)/bin/cat/etc/shadow

101oldboyALL=(ALL)NOPASSWD:/bin/cat/etc/shadow---免密码执行

sudo提权操作:

开发人员:需要有什么权限查看权限

数据库人员:需要有什么权限查看权限mysql服务命令的权限(mysqlmysqladminmysqldump)

运维人员:需要有什么权限查看权限创建数据信息的权限部分修改编辑权限部分数据删除

第二个历程:利用oldboy进行测试权限

sudocat/etc/shadow

第三个历程:查看root用户授予的权限信息

[oldboy@oldboymeng~]$sudo-l

Useroldboymayrunthefollowingcommandsonoldboymeng:

(ALL)NOPASSWD:/bin/cat/etc/shadow

[root@oldboymeng~]#sudo-v---文件配置语法检查

>>>/etc/sudoers:syntaxerrornearline101<<<

sudo:parseerrorin/etc/sudoersnearline101

sudo:novalidsudoerssourcesfound,quitting

sudo:unabletoinitializepolicyplugin

01.利用命令编辑提权信息visudo==vim/etc/sudoers

02.利用命令查看权限信息sudo-l

03.利用命令检查配置语法sudo-v

04.利用命令清除密码记录sudo-k

chmodu+s/usr/bin/cat

在某些情况下,以root用户身份访问系统有潜在危险,并可能导致系统和数据损害。

我们可以用setuid程序,例如su和sudo解决

只有/etc/sudoers配置文件中列出的用户才可以使用该sudo命令,命令在用户的shell中执行,而不是在rootshell中执行。这意味着root可以完全禁用shell。

每个使用该sudo命令的成功身份验证都会记录到/var/log/messages,并将的用户和发出的命令记录到文件/var/log/secure中

要赋予某人完全的管理权限:

用visudo命令编辑/etc/sudoers

用户名ALL=(ALL)ALL#允许用户使用sudo执行任何命令

赋予部分管理权限:

%usersALL=/sbin/mount/mnt/cdrom,/sbin/umount/mnt/cdrom#允许users组中的成员执行执行的挂载磁盘命令

不需要输入sudo密码执行一组命令

Cmnd_AliasSYS_BACKUP=/bin/su-root-c->

->/usr/locale/sbin/sys_backup.sh,/mnt/cdrom

insmsop1ALL=(ALL)NOPASSWD:SYS_BACKUP

Defaultstimestamp_timeout=value#value=0,每次sudo都需要输入密码

如果某个帐户遭到入侵,攻击者可以使用以下sudo管理权限打开一个新的shell:

Linux文件或目录的基础权限位是由9个字符来控制的,每3位字符为一组。

r(4)w(2)x(1)-(0)

r-读:是否可以查看文件内容

w-写:是否可以编辑文件内容

x-执行:是否可以直接运行一个文件

文件权限总结:

01.root用户可以随时查看/编辑任意文件,没有任何权限,只是不能执行文件(root用户就是无敌的存在)

02.属主用户想编辑查看文件,最好属主用户拥有读(*)和写

03.文件权限中最重要权限为r权限

拥有r权限,可以结合w权限,正常编辑和查看文件

拥有r权限,可以结合x权限,正常执行和查看文件

r-读:读取显示目录下面文件名称信息

w-写:是否可以在目录中创建删除数据信息

x-执行:是否可以进行目录的切换

目录权限总结:

01.root用户对目录管理是无敌的权限

02.目录权限中最重要权限为x权限

拥有x权限,可以结合r权限,正常查看目录中数据信息

拥有x权限,可以结合w权限,正常在目录中创建或删除数据

默认文件权限:644rw-r--r--600

默认目录权限:755rwxr-xr-x700

单独修改指定用户权限

chmodu+rwx---属主添加指定权限

chmodu-rwx---属主删除指定权限

chmodu=rwx---属主直接设置权限

chmodg+rwx---属组添加指定权限

chmodg-rwx---属组删除指定权限

chmodg=rwx---属组直接设置权限

chmodo+rwx---其他用户添加指定权限

chmodo-rwx---其他用户删除指定权限

chmodo=rwx---其他用户直接设置权限

批量修改所有用户权限

chmod权限数值---批量修改

chmoda+rwx---所有用户添加指定权限

chmoda-rwx---所有用户删除指定权限

chmoda=rwx---所有用户设置指定权限

文件权限数值==666-umask数值

umask数值为偶数:666-umask(066)数值==600

umask数值为奇数:666-umask(066)==644

目录权限数值==777-umask数值

1)创建的文件权限默认都是600

umask066

2)创建的目录前线默认都是700

umask077

3)创建的文件权限默认都是633

chmod

if[$UID-gt199]&&["`/usr/bin/id-gn`"="`/usr/bin/id-un`"]条件表达式

then---条件为真

umask002娶白富美

else---条件为假

umask022娶个女的

fi

>greaterthangt

=equaleq

>=greaterequalge

<=lessequalle

<>noequalne

文件属性信息:

12位权限位第一个三位(属主权限位)第二个三位(属组权限位)第三个三位(其他用户权限位)

setuid:让其他用户拥有文件属主的能力u+ss=4

[root@oldboymeng~]#ll/usr/bin/cat

rwxr-xr-x.1rootroot54160Oct312018/usr/bin/cat

[root@oldboymeng~]#chmodu+s/usr/bin/cat

rwsr-xr-x.1rootroot54160Oct312018/usr/bin/cat

setgid:让其他用户组拥有文件属组的能力(了解)g+ss=2

chmodg+s/usr/bin/cat

stickybit:可以创建一个共享目录/共享目录中的数据不能被别的用户修改o+tt=1

chmodo+t/share

12位权限位:

124124124124-->/tmp1777/bin/cat4755/bin/cat2755

方法1使用rwx

例1:属主去掉写入权限使用chmodu-w1.sh

例2:属主同时给rwx权限=先清除在赋值权限

例3:属主属组其他用户同时增加x执行权限

例1:使用a对所有用户删除x执行权限a=ugo

例2:使用a对所有用户增加x执行权限

例3:直接增加x权限(注只对x使用此种方法rw建议使用ugo方式)

方法2使用数字进行权限修改(常用)

例1:文件修改为644权限rw-r--r—

例2:文件修改为755权限rwx-r-xr-x

最终要求(独立解决文件权限问题Permissiondenied)

环境准备:

两个窗口一个root(权限修改)oldboy(测试)保证oldboy用户正常使用

脚本中放一个命令

测试文件的rwx含义

修改2.sh所有者为oldby

例1:测试r权限

root执行

oldboy测试除了可读不可写和执行

例2:测试w权限

root修改

oldboy测试可写不可读不可执行

注意:权限的特殊性

是否能修改文件的内容,需要有r权限配置

只有w强制保存退出会导致源文件内容清空

root下查看源文件

oldboy下写入命令whoami并强制保存退出

root下查看内容内容被覆盖

例3:测试x权限

oldboy测试什么权限都没有因为bash不知道文件里有什么内容看不到,所以x也不允许执行

x想要执行则需要r配置rx

文件权限小结:

r显示文件内容

w是否能修改文件的内容需要有r权限配置

只有w的时候保存退出会导致源文件内容清空

x是否有执行权限需要有r可读权限配置

r是否能查看目录的内容ls

w是否能在目录中创建删除重命名文件权限

x是否有进入目录路的权限cd

注意:

1.r是否能查看目录内容ls需要x权限配合

2.w是否能在目录中创建删除重命名文件权限需要x权限配合

3.x是否能进入到目录权限cd是否能修改或查看目录中文件属性

Linux下所有的目录大部分都是755权限

例1:测试目录的r权限

在/oldboy/下创建目录和文件

oldboy测试

例2:

oldboy测试没有任何权限需要x权限配置

修改

测试

问答:

root修改文件权限1.sh

在oldboy下是否可删除1.sh

权限拒绝排查流程

odlboy用户下面几个操作报错原因:

[oldboy@lzyoldboy]$cat/etc/shadow

cat:/etc/shadow:Permissiondenied

[oldboy@lzyoldboy]$echo'#'>>/etc/passwd

-bash:/etc/passwd:Permissiondenied

[oldboy@lzyoldboy]$touch/etc/passwd.txt

touch:cannottouch‘/etc/passwd.txt’:Permissiondenied

[oldboy@lzyoldboy]$rm-rf/etc/shadow

rm:cannotremove‘/etc/shadow’:Permissiondenied

[oldboy@lzyoldboy]$ls/root/

ls:cannotopendirectory/root/:Permissiondenied

一,添加一个UID是888的虚拟用户mysql写出命令

useradd-u888-s/sbin/nologinmysql

二,测试环境如下,请完成后面题的要求

[root@oldboyedu~]#catdatafile

SteveBlenheim:238-923-7366:95LathamLane,Easton,PA83755:11/12/56:20300

BettyBoop:245-836-8357:635CutesyLane,Hollywood,CA91464:6/23/23:14500

IgorChevsky:385-375-8395:3567PopulusPlace,Caldwell,NJ23875:6/18/68:23400

NormaCorder:397-857-2735:74PineStreet,Dearborn,MI23874:3/28/45:245700

JenniferCowan:548-834-2348:583LaurelAve.,Kingsville,TX83745:10/1/35:58900

JonDeLoach:408-253-3122:123ParkSt.,SanJose,CA04086:7/25/53:85100

KarenEvich:284-758-2857:23EdgecliffPlace,Lincoln,NB92086:7/25/53:85100

KarenEvich:284-758-2867:23EdgecliffPlace,Lincoln,NB92743:11/3/35:58200

FredFardbarkle:674-843-1385:20ParakLane,DeLuth,MN23850:4/12/23:780900

LoriGortz:327-832-5728:3465MirloStreet,Peabody,MA34756:10/2/65:35200

PacoGutierrez:835-365-1284:454EasyStreet,Decatur,IL75732:2/28/53:123500

EphramHardy:293-259-5395:235CarltonLane,Joliet,IL73858:8/12/20:56700

JamesIkeda:834-938-8376:23445AsterAve.,Allentown,NJ83745:12/1/38:45000

BarbaraKertz:385-573-8326:832PonceDrive,Gary,IN83756:12/1/46:268500

LesleyKirstin:408-456-1234:4HarvardSquare,Boston,MA02133:4/22/62:52600

WilliamKopf:846-836-2837:6937WareRoad,Milton,PA93756:9/21/46:43500

SirLancelot:837-835-8257:474CamelotBoulevard,Bath,WY28356:5/13/69:24500

JesseNeal:408-233-8971:45RoseTerrace,SanFrancisco,CA92303:2/3/36:25000

ZippyPinhead:834-823-8319:2356BizarroAve.,Farmount,IL84357:1/1/67:89500

ArthurPutie:923-835-8745:23WimpLane,Kensington,DL38758:8/31/69:126000

PopeyeSailor:156-454-3322:945BlutoStreet,Anywhere,USA29358:3/19/35:22350

TommySavage:408-724-0140:1222OxbowCourt,Sunnyvale,CA94087:5/19/66:34200

YukioTakeshida:387-827-1095:13UnoLane,Ashville,NC23556:7/1/29:57000

VinhTranh:438-910-7449:8235MapleStreet,Wilmington,VM29085:9/23/63:68900

1.显示包含San的行

2.显示以J开头的人名所在的行

3.显示700结尾的行

4,显示不包834的行

6,显示姓以K或k开头的行

三,创建一个用户用户UID为666组属于为test不创建家目录并且为其非交互式创建一个秘密123456

useradd-u666-Mmyusermod-Gtestmyecho123456|passwd–stdinmy

useradd-u666-gtest-Mbairihong;echo123456|passwd--stdinbairihong

四,统计/var/log下文件的个数。

五,创建一个bairihong的用户-----并设置密码为123.com-----切换到bairihong用户------然后显示当前用户名。

useraddbairihongpasswdbairihong123.comsu–bairihongwhoami

六,取出网卡ip地址(至少2种方法)

[root@oldboyedu~]#ipa

1:lo:mtu16436qdiscnoqueuestateUNKNOWN

link/loopback00:00:00:00:00:00brd00:00:00:00:00:00

inet127.0.0.1/8scopehostlo

2:eth0:mtu1500qdiscpfifo_faststateUPqlen1000

link/ether00:16:3e:01:4c:a6brdff:ff:ff:ff:ff:ff

inet172.31.196.105/20brd172.31.207.255scopeglobaleth0

ipa|awk-F“[/]+”‘NR==6{print$2}’

ipa|sed-rn‘s#.*et(.*)/20br.*#\1#p’

hostname-I

七,使用awk取出/etc/passwd第一列数据也就是取出用户名。

八,用awk命令打印文件所有行的第一个字段

awk‘{print$1}’

九,写出目前所学过的系统优化和具体执行的命令例如selinux如何永久关闭给出详细信息

1.yum源选择国内的yum源仓库aliyun/etc/yum.repos.d/yum源配置文件

2.创建普通用户useradd

3.关闭SElinux(必须关)/etc/selinux/configSELINUX=disabled

4.关闭防火墙systemctlstopfirewalldsystemctldisablefirewalld

5.字符集,乱码

6.安装常用工具软件,命令

7.网络服务,永久和临时关闭systemctldisableNetworkManager

十,用命令行更改config.txt文件,把里面所有的“name”更改为“address”

sed-ni‘s#name#address#gp’config.txt

十一,显示/etc/passwd文件中其默认shell为/bin/bash的用户

十二,显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户

cat/etc/passwd|grep-v‘/sbin/nologin’

十三,写出CentOS6的启动流程

1.按下电源

2.开机自检(BIOS)

3.MBR引导

4.GRUB菜单

5.加载内核

6.运行INIT进程

7.读取/etc/inittab

8.读取/etc/rc.sysinit初始化系统

9.根据运行级别运行/etc/rc数字.d下面的脚本

十四,翻译下面错误语句

1,nospaceleftondevice磁盘空间不足

Nopackageipavailable没有可用的包ip

3,-bash:LS:commandnotfound命令没有找到

4.mkdir:cannotcreatedirectory‘aa.txt’:Permissiondenied

无法创建目录'aa。txt:权限拒绝

5.id:zhangsan:nosuchuser没有这样的用户

什么是定时任务

闹钟Alarmy叫醒方式:算法(加减乘除2位)动作(5次)拍照()

定时任务实现方法:cronie

实现方式:

1.系统默认定时任务

/etc/cron.daily---每天执行的任务

logrotate脚本---实现日志文件切割功能

切割文件过程

01.将源文件进行重命名

02.重启程序服务,生成源文件

/etc/cron.hourly---每小时执行的任务

/etc/cron.monthly---每个月执行的任务

/etc/cron.weekly---每周执行的任务

2.自定义定时任务

一个命令:

crontab-l---显示定时任务配置信息

crontab-e---编写定时任务配置信息visudo

两个文件:

/var/spool/cron/root(oldboy)---root用户编写的定时任务配置信息/etc/sudoers

/var/log/cron---定时任务日志文件(排错)

/etc/cron.deny---定义定时任务用户黑名单(了解)

cp

mv

tar

游戏公司5-6点左右

公司的网站12点左右

电商(京东淘宝当当拼多多唯品会聚美)

crontable

crond(crontab)定时任务软件(软件包cronie)

800M左右直接卡死系统

数据的统计分析

crontab-l:查看定时任务

crontab-e:检测语法编辑定时任务文件写入定时任务==编辑/var/spool/cron

crontab-r:删除当前用户的所有定时任务,若仅要删除一项,请用-e去编辑

crontab-u:只有root才能进行这个任务,也即帮其他用户新建/删除crontab工作调度

*****command

minutehourdaymonthweekcommand

分时天月星期命令

minute:表示分钟,可以是从0到59之间的任何整数。

hour:表示小时,可以是从0到23之间的任何整数。

day:表示日期,可以是从1到31之间的任何整数。

month:表示月份,可以是从1到12之间的任何整数。

week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

user-name:用户名

command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件

查看服务是否已经运行用ps-ax|grepcron

chkconfig–listcrond查看crond是否开机自动启动

chkconfig–level35cronon设置crond开机自动启动

每天的上午8点30分,来学校上车(gotoschool)

分时日月周

308***

每天晚上12点准时,回家自己开车(gotobed)

*/3000***gotobed

*代表每一分钟都执行任务特殊字符:

星号(*):代表每的意思,例如month字段如果是星号,则表示每月都执行该命令操作。

逗号(,):表示分隔时段的意思,例如,“1,3,5,7,9”。

*****

每天的上午7点到上午11点每一个小时运行CMD命令

0007-11***CMD

##分钟写上00

笔试题:要求每日的凌晨执行一条定时任务xxx

*00***xxxx错误的

0000***xxx正确的

0007-11***pwd

每分钟把自己的名字追加到/oldboy/oldboy.txt

crontab-e编辑文件写入定时任务

crontab-l查看当前用户的定时任务

超过两条命令,都是用脚本(命令大礼包)

定时任务中-命令或脚本结果(正确及错误)定向到黑洞(>/dev/null2>&1)或追加到文件中>>/tmp/oldboy.txt2>&1

要领1:定时任务要加注释

要领2:定时任务命令或脚本结尾加&>/dev/null或>/dev/null2>&1或1>/dev/null2>/dev/null

要领3:定时任务执行shell脚本前加/bin/sh,定时任务执行shell脚本不必添加执行权限

要领4:定时任务命令或程序尽量写到脚本里,定时任务只要执行脚本即可

注意操作步骤:

(1)命令行执行

(2)编写脚本

(3)测试脚本

(4)设置定时任务

要领5:生产任务程序不要随意打印输出信息

要领6:定时任务执行的脚本要规范路径(例如/server/script)

要领7:配置定时任务要规范操作过程

要领8:定时任务执行特殊的字符需要进行转义,否则会报错,例如百分号%

[oldboy@oldboymeng~]$ps-ef|grepcron

root638910Jun2300:00:01/usr/sbin/crond-n

格式信息:

*****具体做的事情

测验01:每天晚上9:30上床睡觉---3021***上床睡觉

测验02:每天早上7:00起床上学---0007***起床上学

测验04:上午10点整11点整12点整都要进行休息---0010-12***进行休息

测验05:上午10点整休息12点整下午15点整下午17点整---0010,12,15,17***进行休息

*每每分钟每小时每天每月每周

/每隔*/1每隔一分钟每隔1小时

-间隔(连续)10-1210111210:0010:0110:0211:0011:01

,间隔(不连续)10,12

测验06:每月5号周三晚上12点整和女朋友睡觉

PS:日期和星期不能同时出现

ntpdatentp1.aliyun.com

*/3****/usr/bin/ntpdatentp1.aliyun.com

第三步:编写定时任务注释说明

*/3****ntpdatentp1.aliyun.com

2)每隔1小时的整点,执行数据备份任务(cp/etc/hosts/tmp/hosts.bak)

00*/1***cp/etc/hosts/tmp/hosts.bak

**/1***cp/etc/hosts/tmp/hosts.`date+%T`

第一个历程:执行命令测试

cd/

tarzchf/tmp/oldboy_$(date+%H-%M).tar.gz./etc/hosts./etc/rc.local./server/scripts/

第二个历程:编写脚本信息

#!/bin/bash

第三个历程:测试执行脚本

/bin/sh/server/scripts/compress.sh

第四个历程:编写定时任务

crontab-e

*****/bin/sh/server/scripts/compress.sh&>/dev/null

第五个历程:验证定时任务

如果定时任务规则结尾不加>/dev/null2>&1或者追加到文件中>>/tmp/oldboy2>&1,很容易导致硬盘inode空间被占满,从而系统服务不正常。

Youhavemailin/var/spool/mail/root

/dev/null

1正确输出

1>>oldboy.txt

2>>test.txt

>/dev/null2>&1

ntpdatentp1.aliyun.com>/dev/null2>&1

每天凌晨1点把/etc/目录打包备份/tmp目录下要求每天的名字不同。

date+%F

tarzcfxx.tar.gz/etc

#命令的解析方式

第一种``引号中写命令例如`pwd`

第二种$()括号中写命令例如$(pwd)

[root@oldboyeduscripts]#echo`pwd`

/server/scripts

[root@oldboyeduscripts]#echo$(pwd)

[root@oldboyeduscripts]#echo`date+%F`

2019-05-29

[root@oldboyeduscripts]#echo$(date+%F)

每天创建一个创建一个以ip地址命名的目录,并把/etc/目录打包压缩放在里面,保持每天的压缩包名字不同

1.如何取IPipifconfig+三剑客取出IP

ifconfig|awk'NR==2{print$2}'

方法1变量dir=`ifconfig|awk'NR==2{print$2}'`

方法2mkdir`ifconfig|awk'NR==2{print$2}'`

2.到/进行打包放在第一步创建好的目录并且名称每天不一样

cd/&&tarzcf/root/$dir/`date+%F`.tar.gzetc

time=`date+%F`

dir=`ifconfig|awk'NR==2{print$2}'`

[-d/data/$dir]||mkdir/data/$dir

cd/&&tarzcf/data/$dir/$time.tar.gzetc

3.x写入定时任务

*****sh/root/tar.sh

报错:

[root@oldboyedu~]#cat/tmp/ip.log

/root/tar.sh:line2:ifconfig:commandnotfound

解决方法1

命令加全路径执行

解决方法2

在脚本的开头./etc/profile

/var/log/cron

Jun2417:44:57oldboymengcrontab[13105]:(root)BEGINEDIT(root)

Jun2417:45:34oldboymengcrontab[13105]:(root)REPLACE(root)

Jun2417:45:34oldboymengcrontab[13105]:(root)ENDEDIT(root)

Jun2417:45:40oldboymengcrontab[13107]:(root)LIST(root)

Jul700:03:01oldboymengCROND[13127]:(root)CMD(ntpdatentp1.aliyun.com)

010203

02.主机名称信息

03.什么用户执行了定时任务

1)定时任务中命令信息最好使用绝对路径

定时任务执行时识别PATH环境变量信息:/usr/bin:/bin

2)定时任务中命令信息中特殊符号无法直接识别

方法一:特殊符号加\

方法二:将命令信息写成脚本

3)定时任务编写不正确,会产生错误信息

postfix邮件服务开启

错误信息存放位置:/var/spool/mail/rootblock占用过多,造成磁盘存储资源减少

postfix邮件服务关闭

错误信息存放位置:/var/spool/postfix/maildrop/inode占用过多,造成磁盘存储资源减少

解决方式:将邮件服务开启,将产生错误信息追加到黑洞中

**/1***/bin/sh/server/scripts/backup_file.sh&>/dev/null

4)执行一些命令时,尽量较少命令信息输出(错误输出/正确输出)

5)完成任务大于两个命令,就需要编写脚本

6)脚本编写是需要有注释信息

7)定时任务执行java程序操作时,需要编写环境变量!!!

需要在脚本里定时java程序环境变量

JAVAHOME="XXXX"

CLASSPATH="XXXX"

PATH="$PATH:JAVAXXX"

./catlina.shrestart

#变量

PS1

LANG

RANDOM

echo$RANDOM

PATH变量存放着命令的路径

echo$PATH

永久生效更改/etc/profile

命令的执行过程

1.输入命令

2.查找PATH变量中有没有命令

3.如果有则执行

4.如果没有commandnotfound

1.Linux下配置一条默认网关

routeadddefaultgw10.0.0.254

routedeldefaultgw10.0.0.254

2.配置一条静态路由

iprouteadd0/0via10.0.0.254

iproutedel0/0via10.0.0.254

3.策略路由(在centos下使用vpn拨号的情况下)安全的给test表设置一个默认路由

iprouteadd0/0via10.0.0.254tabletest

ipruleaddfrom10.0.0.1viatable

查看磁盘分区

fdisk-l

磁盘分区

fdisk/dev/sdb

fdisk

m帮助

naddanewpartition分区创建一个新的分区

p查看分区printthepartitiontable

d删除deleteapartition

w保存退出writetabletodiskandexit

格式化

mkfs.xfs===mkfs-txfs

查看磁盘分区的UUID

ls-l/dev/disk/by-uuid

blkid/dev/sdb

如何开机自动挂载

1./etc/rc.local====/etc/rc.d/rc.local

2./etc/fstab

UUID=1efb0ec2-67c7-4a90-838/xfsdefaults00

UUID=445c8f39-9c6c-4e10-941/bootxfsdefaults00

UUID=85441e97-fdf4-4fefswapswapdefaults00

设备名/UUID挂载点系统文件类型挂载属性(开机是否备份)(开机是否自检磁盘)

传统的MBR(MasterBootRecord)分区方式,有一个局限:

无法支持超过2TB的硬盘的分区(或单个分区超过2TB)

如果大于2TB就用GPT(GloballyUniqueIdentifierPartitionTableFormat)分区的概念

GPT的分区表很好了解决了传统MBR无法逾越2TB的限制。

但是在Linux系统中,传统的fdisk命令无法支持gpt分区方式。

(在红帽企业版Linux4Update4之后的版本提供了对大于2terabytes(TB)的磁盘设备的支持)

parted的操作都是实时的,

也就是说你执行了一个分区的命令,他就实实在在地分区了,

而不是像fdisk那样,需要执行w命令写入所做的修改,所以进行parted的测试千万注意不能在生产环境中!

简述:parted是一个磁盘分区管理工具,

它比fdisk更加灵活,功能也更丰富,同时还支持GUID分区表(GUIDPartitionTable),

这在IA64平台上管理磁盘时非常有用,它同时支持交互模式和非交互模式.它除了能够

进行分区的添加,删除等常见操作外,还可以移动分区,制作文件系统,调整文件系统大小,

复制文件系统。

需求:现有一个做了RAID5的硬盘,要求分三个区

硬盘总分区大小:6.2T

/data04.8T

/data11T

4G(无需格式化,作DRBD用)

具体操作方法如下:

1、分区

parted/dev/sdbmklabelgpt

parted/dev/sdbmkpartprimary04800000

parted/dev/sdbmkpartprimary48000015800001

parted/dev/sdbmkpartprimary58000025804098

parted/dev/sdbp

[root@drbd01~]#parted/dev/sdbp

Model:DELLPERCH700(scsi)

Disk/dev/sdb:6998GB

Sectorsize(logical/physical):512B/512B

PartitionTable:gpt

NumberStartEndSizeFilesystemName标志

117.4kB4800GB4800GBext3primary

24800GB5800GB1000GBext3primary

35800GB5804GB4097MBprimary

2、格式化

mkfs.ext3/dev/sdb1

mkfs.ext3/dev/sdb2

3、挂载

mount/dev/sdb1/data0

mount/dev/sdb2/data1

4、查看分区结果

[root@drbd01~]#df-h

文件系统容量已用可用已用%挂载点

/dev/sda220G2.7G16G15%/

/dev/sda5875G1.1G829G1%/elain

/dev/sdb14.3T1.3G4.1T1%/data0

/dev/sdb21000G1.1G998G1%/data0

/dev/sda1494M17M452M4%/boot

大于2T硬盘parted分区演示:

parted/dev/sdcmklabelgpt

parted/dev/sdcmkpartprimary0200

parted/dev/sdcp

parted/dev/sdcmkpartprimary201400

parted/dev/sdcmkpartprimary401900

[root@oldboy~]#parted/dev/sdcp

Model:VMware,VMwareVirtualS(scsi)

Disk/dev/sdc:1074MB

NumberStartEndSizeFilesystemNameFlags

117.4kB200MB200MBprimary

2200MB400MB200MBprimary

3400MB402MB2000kBprimary

Information:Don'tforgettoupdate/etc/fstab,ifnecessary.

[root@oldboy~]#ll/dev/sdc*

brw-r-----1rootdisk8,32Mar1804:41/dev/sdc

brw-r-----1rootdisk8,33Mar1804:41/dev/sdc1

brw-r-----1rootdisk8,34Mar1804:41/dev/sdc2

brw-r-----1rootdisk8,35Mar1804:41/dev/sdc3

mkfs.ext3/dev/sdc1

tune2fs-c-1/dev/sdc1

====================================================

parted具体操作方法如下:

GPT分区全名为GloballyUniqueIdentifierPartitionTableFormat,是指全局唯一标示磁盘分区表格式。

由于MBR分区表的最大可寻址的存储空间只有2Tb(232×512字节)。因此,在大硬盘出现的现在,MBR分区方式逐渐被GUID分区表取代。

1、非交互分区手动输入提示实例

parted/dev/sdbmkpartprimary0500

parted/dev/sdbmkpartprimary5011000

mkfs-text4/dev/sdb1/dev/sdb2

mount/dev/sdb2/tmp

2、非交互分区忽略提示实例:

parted/dev/sdbmklabelgptyes

parted/dev/sdbmkpartprimaryext40100Ignore

parted/dev/sdbmkpartprimarylinux-swap1018192Ignore

parted/dev/sdbmkpartlogicalext48193100GBIgnore

parted/dev/sdbmkpartlogicalext4101GB3000GBIgnore

parted/dev/sdbquit

parted与fdisk区别:

1、支持gpt分区表,可以对大于2T的磁盘分区。

2、分区直接生效,不需要使用命令写入磁盘,最好partprobe/dev/sdb。

3、格式化挂载等和fdisk无区别。

更改GPT前的格式:

[root@oldboy/]#parted/dev/sdbp

Disk/dev/sdb:107MB

PartitionTable:msdos

更改后:

partprobe

实验:100M盘(一键完成)

parted/dev/sdbmklabelgptYes

parted/dev/sdbmkpartprimary010Ignore

parted/dev/sdbmkpartprimarylinux-swap1121Ignore

parted/dev/sdbmkpartlogicalext42232Ignore

更改分区格式:(一键完成)推荐

#parted/dev/sdbmklabelgptYes

#parted/dev/sdbmkpartprimary010Ignore

#parted/dev/sdbmkpartprimary1121Ignore

#parted/dev/sdbmkpartlogical2232Ignore

#parted/dev/sdbp

parted/dev/sdbmklabelmsdosYes

parted/dev/sdbmkpartprimary1121Ignore

parted/dev/sdbmkpartextended22100Ignore

parted/dev/sdbmkpartlogical2232Ignore

parted非交互式创建分区

创建200M分区

ddif=/dev/zeroof=/tmp/200mbs=1Mcount=200

挂载到swap

激活swap

第一层:物理结构信息接口内部和外部结构

第二层:逻辑结构信息RAIDLVM

第三层:磁盘分区概念分区命令分区原则

第四层:创建文件系统磁盘格式化

第五层:磁盘管理应用挂载操作

外部结构:磁盘接口转速信息(10K15K)盘片主轴机械臂磁头

内部结构:磁道Track(多个同心圆)扇区sectors(存储数据最小单位-512字节)柱面Cylinder(多个盘片按照柱面读取数据)

算出磁盘大小:

方法一:一个扇区大小*扇区总的数量

方法二:柱面数量*单元块大小(1个柱面大小)

方法三:扇区大小*一个磁道扇区数量*一个盘片磁道数*磁头

磁盘读取数据原理:

需要在一定时期,进行磁盘维护

RAID:速度更快更安全容量更大

RAID5:特点:即安全性能又好只能坏一块硬盘,少一块盘容量

RAID10:特点:即安全性能又好建议只能坏一块硬盘,少一半容量

RAID01:特点:即安全性能又好建议只能坏一块硬盘,少一半容量

如何配置RAID:

LVM:逻辑卷管理弹性扩容和缩容磁盘缺陷:存储效率较低

配置方法:???

01.分区创建PE信息

02.创建VG将PE加入到VG

03.创建LV

04.进行挂载

准备知识:MBR引导信息+分区表信息=512字节

主分区:4个1-4

扩展分区:1个

逻辑分区:n个5-x

准备环境:添加一块磁盘---查看fdisk-l

分区操作过程:

第一个历程:进行分区

第二个历程:设置分区方案

ddeleteapartition

删除分区

gcreateanewemptyGPTpartitiontable

创建一个新的空的GPT分区表(对大于2T磁盘进行分区)

llistknownpartitiontypes

列出已知的分区类型

mprintthismenu

naddanewpartition*****

创建分区

ocreateanewemptyDOSpartitiontable(对小于2T磁盘进行分区)

创建一个新的空的Dos分区表

pprintthepartitiontable*****

显示分区信息

qquitwithoutsavingchanges

不保存退出

tchangeapartition'ssystemid

显示分区系统编号

uchangedisplay/entryunits

wwritetabletodiskandexit******

保存退出

输入n创建p主分区e扩展分区

分区开始不用设置

分区结束需要设置:+NK+NM+NG

输入p进行查看

第三个历程:分区确认后进行保存

w保存分区表信息

分区指令信息:

mklabel(创建分区表MRB-msdos/gpt)

createanewdisklabel(partitiontable)mklabelgpt/msdos

mkpart(创建新的分区)

makeapartitionmkpartprimary020M

print(显示分区表信息)

displaythepartitiontable

rm(删除指定分区信息)

deletepartitionNUMBER

quit(退出分区界面)

exitprogram

第一步:修改分区表

mklabelgpt

第二步:创建分区

mkpartprimary020M

第三步骤:退出格式化

mkfs.xfs/dev/sdd1

GPT分区表:可以分大于2T的磁盘

DOS分区表:可以分小于2T的磁盘

格式化==创建文件系统

文件系统:组织文件数据存储的方式

linux:ext3/ext4xfs存储数据效率/大容量磁盘效率较高

nfs网络文件系统通过网络存储数据

mfsfastdfs分布式存储系统

格式化命令:

mkfs-txfs/dev/sdb1

a没有退出挂载目录

b挂载点目录中有数据被进程调用

c其他情况

解决方式:强制卸载

umount-lf/mnt

-llazy(懒惰)---不用退出挂载点目录进行卸载

-fforce(强制)---强制进行卸载

a文件系统损坏了

b磁盘出现坏道

mount-oremountrw/

inode不够用

block不够用

如何快速清空目录中的数据:

rsync命令

i_link数为0:确保文件硬链接数为0

i_count数为0:调用文件的进程数为0

方法一:重启系统

方法二:利用命令让内核识别硬盘信息

partprobe/dev/sdd

方法一:/etc/rc.local(执行权限)

条件挂载命令

echo'mount/dev/sdc1/oldboy01'>>/etc/rc.local

方法二:/etc/fstab

文件格式信息:

UUID=f06d6457-4eb0-4dc1-a790-feff4873fc3eswapswapdefaults00

/dev/cdrom/mntiso9660defaults00

010203040506

01:存储设备文件信息UUID信息获取

02:存储设备挂载点目录

03:挂载存储设备文件系统类型centos7-xfscentos6-ext3/ext4

04:挂载参数信息默认参数信息:rw,suid,dev,exec,auto,nouser,andasync

05:是否自动备份磁盘信息lost+found

06:是否自动检查磁盘信息fsck修复检查磁盘文件系统

默认挂载参数:

rw:让挂载点目录具有可读可写权限相反ro

suid(setuid):让挂载点目录中的文件特殊权限位生效相反nosuid安全

dev:让挂载点目录存储设备文件保持属性不变

exec:让挂载点目录中的执行文件可以执行相反noexec

auto:让挂载点目录实现快速自动挂载相反noauto

nouser:让普通用户是否可以卸载和挂载目录相反user了解

async:数据异步存储概念???相反sync同步存储???

manmounts

服务比较消耗内存:java语言程序---tomcat

消耗内存资源:(测试)

ddif=/dev/zeroof=/dev/nullbs=1500Mcount=100

第一个历程:将磁盘中取出一部分空间用于扩充swap分区

ddif=/dev/zeroof=/tmp/1Gbs=10Mcount=100

第二个历程:将取出文件空间用于swap使用

mkswap/tmp/1G

第三个历程:加载swap标识文件,增加swap分区大小

swapon/tmp/1G--增加

swapoff/tmp/1G--还原

1)mkdir创建目录信息

-p可以创建多级目录

2)touch创建文件

3)ls列表查看目录或文件信息

ls-d查看目录是否存在

ls-l显示文件或目录的详细属性信息

ls-h以人类可读方式显示信息

ls-a显示隐藏文件数据信息

ls-r反向排序信息

ls-S按照文件大小进行排序

ls-i查看文件inode号码信息

4)pwd显示当前所在路径(绝对路径)

5)cat直接查看文件内容信息

zcat直接查看压缩包中的文件信息

6)vi直接编辑修改文件内容

vi-r恢复临时文件中内容

7)echo将信息输出到屏幕上

8)cd切换目录路径

cd..

cd~

9)cp复制备份数据

cp-r复制备份目录

cp-a复制备份目录

cp-t指定复制的目标路径

10)mv移动备份数据(剪切)

mv-t指定移动的目标路径

11)tree显示目录结构(树形结构显示)

12)rm删除系统数据信息

-f强制删除数据

-r递归删除数据(删除目录)

13)shutdown关机重启命令

-h关机操作

-r重启操作

14)mount挂载命令

-oremout重新挂载

-orw/ro指定挂载点目录权限为读写/只读

15)umount卸载命令

-lf强制卸载

16)df查看磁盘挂载信息/磁盘使用情况

-h以人类可读方式查看信息

17)export用于修改设置环境变量

18)source/.立即加载文件配置信息

19)alias查看别名设置和修改别名设置

20)unalias取消别名功能

21)hostname显示主机名称和修改主机名称

hostname-I显示网卡地址信息

22)systemctl用于启动/停止/重启服务程序

systemctlstart/stop

systemctlstatus/is-active/is-enabled

23)hostnamectl永久和临时修改主机名称

24)ifup/ifdown控制指定网卡启动或停止

25)tail查看文件结尾信息

tail-5查看倒数几行(默认倒数10行)

tail-f/-F追踪实时监控文件的信息变化

26)head查看文件头部信息

head-5查看头部几行(默认开头10行)

27)rpm管理软件包命令

-ivh安装软件参数

-ql查看软件安装的数据信息路径

-qa查看软件是否安装成功

-qf查看软件命令属于哪个软件大礼包

-qc查看软件配置文件路径信息

rpm-etree--nodeps---卸载指定软件

28)uniq去重命令

uniq-c将重复信息进行统计

29)wc统计字符信息

wc-l统计行数

30)w显示系统连接用户信息/显示负载信息

31)free显示内存信息

free-h人类可读显示信息

32)lscpu显示系统CPU硬件信息

33)uname显示系统信息

-a显示系统详细信息

34)useradd创建用户

35)passwd设置用户密码

--stdin免交互设置密码

36)su切换用户

su-

37)whoami显示当前用户信息

38)yum用于安装系统软件

yuminstall-y安装指定软件

yumgroupinstall-yxxx安装指定包组

yumgrouplist显示可以安装包组信息

yumlist显示可以安装软件包信息

yumrepolist显示使用的yum源信息(baseepel)

yumprovides显示指定命令属于哪个软件大礼包

yumremove移除(卸载)指定软件程序(建议不要使用,容易卸载依赖软件)

39)setenforce临时修改selinux状态

getenforce查看selinux状态信息

40)ps-ef查看系统进程信息

41)kill杀死进程信息

kill-9强制杀死指定进程(慎用)

42)history调取历史命令记录信息

history-w将历史命令保存到~/.bash_history文件中

history-c清空历史记录

43)less/more逐行和逐页查看文件信息

44)tr替换文件信息(显示时替换)sedvim>

45)whereis查看命令所在路径

46)locate/updatedb查看系统文件所在路径

47)file查看文件类型

48)xargs实现对信息进行分组

xargs-n2

find|xargs-icp{}

49)tar压缩数据命令

h压缩软连接文件时,将其指向源文件进行压缩

50)id查看用户uidgid以及所属组信息

date"+%F"

date"+%F"-d"-1day"

date-s"20201010"

ntpdatentp2.aliyun.com

53)stat显示数据详细属性信息

statoldboy.txt

54)ln创建链接命令

ln-s创建软连接

55)crontab编写定时任务

crontab-l查看定时任务信息

56)ping测试网络连通性

-c指定ping多少个包

-q只显示ping包结果

-f极速ping

1)grep过滤筛选文件信息命令

grep-i忽略大小写进行过滤

grep-A2查看指定行的后几行内容

grep-B2查看指定行的前几行内容

grep-C2查看指定行的前后几行内容

grep-c统计显示的行数信息

zgrep直接过滤压缩包中的数据信息

zgrep-a

2)sed对文件中行进行处理/替换修改文件内容

-i真正修改替换文件内容

p输出指定信息

s###g替换指定信息

3)awk

4)find查找系统文件数据

tab对命令信息或者路径文件信息进行补全操作

ctrl+l清屏操作

ctrl+a将光标快速移动到命令行的行首

ctrl+e将光标快速移动到命令行的行尾

ctrl+←→将光标按照单词快速移动

ctrl+ccancel(取消)快速终止或取消命令操作

esc+.调用上一个命令最后输入的参数信息

ctrl+u将光标所在位置之前的内容进行删除(剪切)

ctrl+k将光标所在位置之后的内容进行删除(剪切)

ctrl+w将光标之前的一个连续字符串信息进行删除(剪切)

ctrl+y将剪切的内容进行粘贴

ctrl+s将xshell界面进行了锁定

ctrl+q进行解锁

ctrl+r快速检索历史命令(条件:需要有历史命令记录)

ctrl+z中断(暂停)程序脚本的运行---死循环???

~表示家目录信息

..表示上一级目录

-表示上一次所在的目录信息

>表示标准输出重定向

>>表示标准输出追加重定向

<表示标准输入重定向

<<表示标准追加输入重定向符号

*表示匹配所有内容通配符号

.隐藏文件

表示当前目录

&&表示前一个命令执行成功,再执行后一个命令

$调用变量信息

|管道符号将前一个命令执行的结果,交给管道后面的命令进行处理

$调取上一个命令返回数值,数值为0表示执行正确数值不为0表示执行失败

{..}生成序列信息通配符号

``将引号中的命令先执行,将执行结果交给引号外面的命令进行处理

!在find命令使用时,表示进行取反排除

1)-bash:tree:commandnotfound命令没有找到

2)mkdir:cannotcreatedirectory‘oldboy’:Fileexists不能创建oldboy目录,目录已经存在

3)omittingdirectory‘oldboy01/’无法进行目录直接复制

4)oldboy.txt:Permissiondenied操作权限阻止

1)操作完检查~

基础部分回顾:

*服务器硬件组成CPU内存硬盘风扇电源

*服务器硬件详细说明

CPU核数路数

内存缓冲缓存

*企业数据存储案例:高并发存储/保证数据安全性

*系统的组成:鸡蛋(内核shell解释器外围软件程序)

*系统的历史:GNUGPL

*系统的安装:虚拟主机如何配置centos7系统安装(网络配置-网卡名称设置磁盘分区-3种软件安装--最小化安装1236)

*如何配置网络信息(修改网卡文件nmtui图形化方式进行修改--NetworkManager需要开启)

*利用xshell实现远程连接(xshell软件如何初始化配置)secureCRT

*实现远程连接(远程连接异常排查三步曲)

*引入系统操作命令cpmvrmlspwdmkdirtouch...

*磁盘挂载概念mount

*详细的目录结构说明

/etc

/usr/local

/var(messagessercurecron)

/proc

省略

[root@oldboy-xiaodao.com.cn~]#ls-lih/etc/

total1.2M

101115776drwxr-xr-x.3rootroot101Dec2916:33abrt

34011044-rw-r--r--.3rootroot16Dec2916:35adjtime

33596583-rw-r--r--.1rootroot1.5KJun72013aliases

33554501-rw-r--r--.1rootroot12KDec2916:42aliases.db

33583455drwxr-xr-x.2rootroot236Dec2916:33alternatives

34030593-rw-------.1rootroot541Apr112018anacrontab

33880205-rw-r--r--.1rootroot55Apr112018asound.conf

101198241drwxr-x---.3rootroot43Dec2916:33audisp

&^.+{}[]

系统特殊符号分类

系统通配符号分类find-name"*oldboy"(find命令常见用法)

系统正则符号分类(基础正则-grepsedawk扩展正则-egrep/grep-Esed-rawk)

*命令的执行原理

*命令的语法格式

01.找出满足条件一行信息

02.对一行信息进行处理

*命令应用说明

增删改查

*awk命令还有统计功能

awk运算方法(累加运算i=i+1/i++求和运算i=i+$n/i+=$n)

useradduserdelusermodpasswd

groupaddgroupdelgroupmod

*文件权限说明

普通文件权限有什么rwx

目录文件权限有什么rwx

*特殊权限说明(普通用户如何获得root权限)

1)su-

2)sudo

3)设置特殊权限位setuidsetgid粘滞位

*文件或目录的默认权限

文件644目录755

umask命令生成的数值,进行运算获得默认文件(666)或目录(777)权限数值

*一个文件(/var/spool/cron/root)和一个命令crontab

*配置文件编写方法

*1-5***定时操作任务命令

分时日月周需要执行任务

*掌握定时任务的编写规范

*掌握定时任务编写的注意事项

按照层次结构进行掌握

第一个层次磁盘的结构(外部结构内部结构)

第二个层次RAID(哪些级别)LVM

第三个层次磁盘分区方法(fdisk--2T以下磁盘MBRparted--2T以上磁盘GPT)

第四个层次磁盘格式化(创建文件系统)

第五个层次磁盘挂载应用(如何实现自动挂载-2种)

企业案例:服务器种java程序耗费内存比较多的时候,如何进行临时调整

解决方法:临时增加swap分区空间大小dd/dev/zero(/dev/null)

=============================================

1)云主机如何进行操作配置ECSRDS

2)记录一些硬件服务器品牌

3)服务器硬件组成部分

CPU(内核几路)内存(缓冲缓存进程守护进程)硬盘(阵列RAID0151001)

研究扩展:线程协程

4)如何记录学习笔记

文本信息:标题(多级列表)正文(中文字体-微软雅黑英文信息-Arial3级正文)注释(表格注释提示信息)

表格信息:表格模板修改

图片信息:格式-修改列宽/边框/阴影

代码信息:样式-代码

1)系统发展史中GNUGPL

2)系统发行版本Centos7/6Ubuntudebian

3)系统虚拟化vmwareworkerstaion虚拟主机(虚拟硬件)快照克隆

问题:网络(NAT桥接仅主机)服务问题(services.msc)虚拟主机数据有问题

4)安装操作系统

1.系统网卡名称需要修改

2.配置网卡信息/磁盘分区/指定软件包(最小化1236)

1)xshell软件如何进行配置

2)xshell软件远程连接排错(大保健-三步曲)

确认链路是否正常

确认链路是否阻塞(安全策略开启)

确认服务是否开启

3)虚拟主机三种网络模式

NAT:外网小孩(虚拟主机网卡地址10.0.0.201)--->大人(本地网卡地址192.168.20.100)

NAT网络地址转换技术

优点:不容易造成地址冲突

缺点:不容易让其他物理主机访问

桥接:外网成人(虚拟主机网卡地址192.168.20.2xx)==大人(本地网卡地址192.168.20.100)

缺点:不容易造成地址冲突

优点:容易让其他物理主机访问

仅主机:不能访问外网

优点:安全性高

缺点:不能访问外网能访问外网(操作系统路由信息)

1)关闭和重启命令

2)帮助命令man

3)系统基础操作命令cdpwdmkdirtouchlscpmvrmechocatlessmoretailhead

4)如何编辑文件vim/viiesc:wq!/q!

命令模式--编辑模式转换---命令模式

命令模式--底行模式转换---命令模式

1)什么是系统的挂载

2)系统常用重要目录结构

/etc---配置文件保存的路径

/var---日志保存的目录

/home---普通用户家目录

/root---root管理员家目录

/tmp---临时目录

/mnt---临时挂载目录

/proc---存储数据到内存中

/bin---命令文件保存路径

/sbin---命令文件保存路径

3)系统环境变量/etc/profileexportPATH="$PATH:/XXX"

PS1PATHLANG

别名功能

1)掌握命令提示符优化

2)掌握yum源优化

base:

epel:

基础yum软件下载:

yuminstall-yvimwgettreelrzsznet-toolsbash-completion

vimvi编辑的升级版软件

wget下载软件命令

tree列出目录结构信息

lrzsz下载上传数据信息linux--windows

net-tools兼容centos6网络命令功能

bash-completion对centos7部分命令参数进行自动补全systemctl

3)系统安全优化

将防火墙服务关闭:临时关闭永久关闭

将selinux服务关闭:临时关闭永久关闭

4)系统字符集优化

临时永久localectlset-localeLANG="xxx"

第一步:用RANDOM生成随机数

第二步:创建多个用户

seq-w10|sed-r's#(.*)#useraddoldboy\1#g'

第三步:批量创建用户/设置密码信息(用RANDOM随机生成密码)

#seq-w10|sed-r's#(.*)#useraddoldboy\1;User_Pass=$RANDOM;echo"$User_Pass"|passwd--stdinoldboy\1;echo$User_Passoldboy\1>>/tmp/user_info.txt#g'|bash

useraddoldboy01;User_Pass=$RANDOM;echo"$User_Pass"|passwd--stdinoldboy01;echo$User_Passoldboy01>>/tmp/user_info.txt

useraddoldboy02;User_Pass=$RANDOM;echo"$User_Pass"|passwd--stdinoldboy02;echo$User_Passoldboy02>>/tmp/user_info.txt

useraddoldboy03;User_Pass=$RANDOM;echo"$User_Pass"|passwd--stdinoldboy03;echo$User_Passoldboy03>>/tmp/user_info.txt

useraddoldboy04;User_Pass=$RANDOM;echo"$User_Pass"|passwd--stdinoldboy04;echo$User_Passoldboy04>>/tmp/user_info.txt

useraddoldboy05;User_Pass=$RANDOM;echo"$User_Pass"|passwd--stdinoldboy05;echo$User_Passoldboy05>>/tmp/user_info.txt

useraddoldboy06;User_Pass=$RANDOM;echo"$User_Pass"|passwd--stdinoldboy06;echo$User_Passoldboy06>>/tmp/user_info.txt

useraddoldboy07;User_Pass=$RANDOM;echo"$User_Pass"|passwd--stdinoldboy07;echo$User_Passoldboy07>>/tmp/user_info.txt

useraddoldboy08;User_Pass=$RANDOM;echo"$User_Pass"|passwd--stdinoldboy08;echo$User_Passoldboy08>>/tmp/user_info.txt

useraddoldboy09;User_Pass=$RANDOM;echo"$User_Pass"|passwd--stdinoldboy09;echo$User_Passoldboy09>>/tmp/user_info.txt

useraddoldboy10;User_Pass=$RANDOM;echo"$User_Pass"|passwd--stdinoldboy10;echo$User_Passoldboy10>>/tmp/user_info.txt

foruserin{01..10}

do

User_Pass=6678

useraddoldboy02

echo"6678"|passwd--stdinoldboy02

echo6678oldboy02>>/tmp/user_info.txt4565oldboy01

done6678oldboy02

第一步:用MD5生成随机数

pass=$(date+%N|md5sum|cut-c1-8);echo$pass\1

echostu{1..10}|xargs-n1|sed-r's#(.*)#useradd\1#g’

第三步:批量创建用户/设置密码信息(用MD5随机生成密码)

1)系统文件属性:

2)文件类型:

类型分类:d-l

文件命令:搜索文件find寻找范围条件

如何将/oldboy有权限为644文件,移动到/tmp(至少三种方法)

压缩文件tar(压缩数据查看压缩包解压)unzip/zip

3)文件权限:

rwx--用户(属主属组其他用户)--文件(r)

rwx--用户(属主属组其他用户)--目录(x)

4)属主属组

用户分类:管理用户虚拟用户普通用户

用户编号:iduidgid

用户和组的关系:1v11vnnvnnv1

5)inode/block

概念:

如何查看:

6)硬链接/软连接

概念:inode号01110110

如何配置ln

特点:

不同的分区不能创建硬链接

/dev/sda3(/)---/oldboy/oldboy.txt源100oldgirl.txt

/dev/sdb2(/mnt)---/oldboy/oldboy_hard.txt目标100oldboy.txt

以上方法创建硬链接会失败

nginx---/application/nginx-1.17.0/sbin/nginx软连接/application/nginx

脚本:cmd_path="/application/nginx/sbin/"

基础符号信息:引号系列路径符号重定向符号逻辑符号

通配符号信息:*{}cp/etc/oldboy.txt{,.bak}

正则符号信息:grepsedawk

基础正则;^$^$.*.*[][^]\grepsedawk

扩展正则:+(){}|egrepsed-rawk

测验题:如何取出IP地址(grepsedawk)

1)概念作用

擅长取行修改文件

2)语法结构(执行原理)

sed[参数]’条件指令‘文件

3)实践操作:

增删替换查询

4)扩展说明

擅长取列统计分析

awk[参数]'模式{动作}'

删替换gsub(//,"",$n)统计(累加统计i++/i=i+1求和统计i=i+$n)

BEGIN、ENDFSNFNR

a直接su-变为root

b修改指定数据权限chmodugoa644755chown

c指定用户提权visudosudo(大宝剑)

d设置特殊权限位setuid(u+s(4))setgid(g+s(2))粘滞位(o+t(1))12个权限位

文件默认权限:644目录默认权限:755

umask数值如何运算

/etc/skel

/etc/passwd/etc/shadow

useradd(虚拟用户)参数?usermoduserdel-r

groupadd

passwd

idlastlastlogwhoamiw

1)如何编写定时任务systemctlstartcrond

一个命令crontab-e

PS:日星期不能同时用

*10***10点每分钟都执行0010**6每周610点整

2)如何查看定时任务成功

一个文件/var/log/cron

3)编写定时任务注意事项

1)注意命令使用绝对路径

2)注意特殊符号信息

3)尽量编写脚本信息放入定时任务中

4)需要编写注释

5)尽量将执行任务后面加上重定向到空&>/dev/null

6)脚本中的命令执行不要显示输出信息-v取消-s-q

7)脚本中需要指定特殊环境变量java-tomcat

0X.企业案例01:数据存储方案

高并发存储方案:数据存储--内存(写-缓冲)--磁盘中--内存(读-缓存)--用户读取数据

低并发存储方案:数据存储--磁盘中--内存(读-缓存)---用户读取数据

0X.技术原理总结:

1)磁盘数据读取原理(inodeblock)

/etc/oldboy/oldboy.txt

2)硬链接和软链接工作特点区别

3)如何表示数据被真正删除

i_link=0i_count=0

1.date'+%Y%M%D'按照格式显示当前日期,结果如下:

[root@oldboymeng~]#date"+%Y-%m-%d%H:%M:%S"

2019-05-2919:19:05

[root@oldboymeng~]#date-s"2019052919:20:30"

WedMay2919:20:30CST2019

[root@oldboymeng~]#yum-yinstallntp

Loadedplugins:fastestmirror

Loadingmirrorspeedsfromcachedhostfile

[root@oldboymeng~]#ntpdate-untp1.aliyun.com

29May19:24:04ntpdate[17835]:steptimeserver120.25.115.20offset-2.276150sec

ntp常用服务器:

阿里云:ntp1.aliyun.com

ntp2.aliyun.com

ntp3.aliyun.com

ntp4.aliyun.com

ntp5.aliyun.com

ntp6.aliyun.com

ntp7.aliyun.com

中国国家授时中心:210.72.145.44

NTP服务器(上海):ntp.api.bz

美国:time.nist.gov

复旦:ntp.fudan.edu.cn

微软公司授时主机(美国):time.windows.com

北京邮电大学:s1a.time.edu.cn

清华大学:s1b.time.edu.cn

北京大学:s1c.time.edu.cn

台警大授时中心(台湾):asia.pool.ntp.org

4.时区操作

查看时区

date"+%Z"

[root@oldboymeng~]#date"+%Z"

CST

hwclock

clock-w

[root@oldboymeng~]#hwclock

Wed29May201907:55:27PMCST-0.990765seconds

[root@oldboymeng~]#hwclock-w

Wed29May201907:57:00PMCST-0.434109seconds

命令:取nginx进程pid号,并结束进程

[root@lzy~]#psaxu|grepnginx|grep-vgrep|awk'{print$2}'

3911

3912

[root@lzy~]#psaxu|grepnginx|grep-vgrep|awk'{print$2}'|xargskill-9

[root@oldboyedu~]#cattar.sh

在Linux下,基于开源的数据恢复工具有很多,常见的有debugfs、R-Linux、ext3grep、extundelete等,比较常用的有ext3grep和extundelete,这两个工具的恢复原理基本一样,只是extundelete功能更加强大;

Extundelete能够利用inode信息结合日志去查询该inode所在的block位置,以次来查找和恢复所需的数据,该工具最给力的一点就是支持ext3/ext4双格式分区恢复,基于整个磁盘的恢复功能较为强大。

注意事项

因为将文件删除后,仅仅是将文件的inode结点中的扇区指针清零,实际文件还存储在磁盘上,如果磁盘以读写模式挂载,这些已删除的文件的数据块就可能被操作系统重新分配出去,在这些数据块被新的数据覆盖后,这些数据就真的丢失了,恢复工具也回力无天。

所以,以只读模式挂载磁盘可以尽量降低数据块中数据被覆盖的风险,以提高恢复数据成功的几率。

3.tar-xvjfextundelete-0.2.4.tar.bz2

4.cdextundelete-0.2.4#进入程序目录

5../configuremake&&makeinstall

在演示通过extundelete恢复数据之前,我们首先要模拟一个数据误删除环境,这里我们以ext3文件系统为例,在ext4文件系统下的恢复方式与此完全一样。

简单的模拟操作过程如下:

[root@cloud1~]#mkdir/data

[root@cloud1~]#mkfs.ext3/dev/sdc1

[root@cloud1~]#mount/dev/sdc1/data

[root@cloud1~]#cp/etc/passwd/data

[root@cloud1~]#cp-r/app/ganglia-3.4.0/data

[root@cloud1~]#mkdir/data/test

[root@cloud1~]#echo"extundeletetest">/data/test/mytest.txt

[root@cloud1~]#cd/data

[root@cloud1data]#md5sumpasswd

0715baf8f17a6c51be63b1c5c0fbe8c5passwd

[root@cloud1data]#md5sumtest/mytest.txt

eb42e4b3f953ce00e78e11bf50652a80test/mytest.txt

[root@cloud1data]#rm-rf/data/*

在将数据误删除后,立刻需要做的就是卸载这块磁盘分区:

[root@cloud1data]#cd/mnt

[root@cloud1mnt]#umount/data

在Linux下可以通过“ls–id”命令来查看某个文件或者目录的inode值,例如查看根目录的inode值,可以输入:

[root@cloud1~]#ls-id/

2/

通过extundelete命令可以查询/dev/sdc1分区可恢复的数据信息:

[root@cloud1/]#extundelete/dev/sdc1--inode2

......

Filename|Inodenumber|Deletedstatus

.2

..2

lost+found11Deleted

passwd49153Deleted

test425985Deleted

ganglia-3.4.0245761Deleted

根据上面的输出,标记为Deleted状态的是已经删除的文件或目录。同时还可以看到每个已删除文件的inode值,接下来就可以恢复文件了。

extundelete恢复单个文件的参数是“--restore-file”,这里需要注意的是,“--restore-file”后面指定的是恢复文件路径,这个路径是文件的相对路径。相对路径是相对于原来文件的存储路径而言的,比如,原来文件的存储路径是/data/passwd,那么在参数后面直接指定passwd文件即可,如果原来文件的存储路径是/data/test/mytest.txt,那么在参数后面通过“test/mytest.txt”指定即可。

执行如下命令开始恢复文件:

[root@cloud1/]#extundelete/dev/sdc1--restore-filepasswd

Loadingfilesystemmetadata...40groupsloaded.

Loadingjournaldescriptors...54descriptorsloaded.

Successfullyrestoredfilepasswd

[root@cloud1/]#cdRECOVERED_FILES/

[root@cloud1RECOVERED_FILES]#ls

[root@cloud1RECOVERED_FILES]#md5sumpasswd

在文件恢复成功后,extundelete命令默认会在执行命令的当前目录下创建一个RECOVERED_FILES目录,此目录用于存放恢复出来的文件,所以执行extundelete命令的当前目录必须是可写的。

根据上面的输出,通过md5sum命令校验,校验码与之前的完全一致,表明文件恢复成功。

extundelete除了支持恢复单个文件,也支持恢复单个目录,在需要恢复目录时,通过“--restore-directory”选项即可恢复指定目录的所有数据。

继续在上面模拟的误删除数据环境下操作,现在要恢复/data目录下的ganglia-3.4.0文件夹,操作如下:

[root@cloud1mnt]#extundelete/dev/sdc1--restore-directory/ganglia-3.4.0

Loadingjournaldescriptors...247descriptorsloaded.

Searchingforrecoverableinodesindirectory/ganglia-3.4.0...

781recoverableinodesfound.

Lookingthroughthedirectorystructurefordeletedfiles...

4recoverableinodesstilllost.

[root@cloud1mnt]#ls

RECOVERED_FILES

[root@cloud1mnt]#cdRECOVERED_FILES/

ganglia-3.4.0

可以看到之前删除的目录ganglia-3.4.0已经成功恢复了,进入这个目录检查发现:所有文件内容和大小都正常。

当需要恢复的数据较多时,一个个地指定文件或目录将是一个非常繁重和耗时的工作,不过,extundelete考虑到了这点,此时可以通过“--restore-all”选项来恢复所有被删除的文件或文件夹。

仍然在上面模拟的误删除数据环境下操作,现在要恢复/data目录下所有数据,操作过程如下:

[root@cloud1mnt]#extundelete/dev/sdc1--restore-all

Searchingforrecoverableinodesindirectory/...

0recoverableinodesstilllost.

ganglia-3.4.0passwdtest

[root@cloud1RECOVERED_FILES]#du-sh/mnt/RECOVERED_FILES/*

15M/mnt/RECOVERED_FILES/ganglia-3.4.0

4.0K/mnt/RECOVERED_FILES/passwd

8.0K/mnt/RECOVERED_FILES/test

可以看到所有数据全部完整地恢复了。

我们首先假定在/data目录下有个刚刚创建的压缩文件ganglia-3.4.0.tar.gz,然后删除此文件,接着卸载/data分区,开始恢复一小时内的文件,操作如下:

[root@cloud1~]#cd/data/

[root@cloud1data]#cp/app/ganglia-3.4.0.tar.gz/data

[root@cloud1data]#date+%s

1379150309

[root@cloud1data]#rm-rfganglia-3.4.0.tar.gz

[root@cloud1mnt]#date+%s

1379150340

[root@cloud1mnt]#extundelete--after1379146740--restore-all/dev/sdc1

Onlyshowandprocessdeletedentriesiftheyaredeletedonorafter1379146740andbefore9223372036854775807.

779recoverableinodesfound.

ganglia-3.4.0.tar.gz

可以看到,刚才删除的文件,已经成功恢复,而在/data目录下还有很多被删除的文件却没有恢复,这就是”--after“参数控制的结果,因为/data目录下其他文件都是在一天之前删除的,而我们恢复的是一个小时之内被删除的文件,这就是没有恢复其他被删除文件的原因。

THE END
1.1对1的比例是什么?1对1的比例意味着双方在数量上是相等的。具体来说,就是每一方拥有的数量与另一方相同。以百分比来看,就是每一方占总数量的50%。因此,如果一方拥有某个物品的数量为X,那么另一方也应该拥有同样数量的X。这种比例在很多领域都有应用。例如,在数学中,1对1的比例表示两个量之间的一一对应关系。在https://zhidao.baidu.com/question/1767533426516000868.html
2.精准一肖一码一子一中,最新解答解释定义旗舰款46.229在数字时代,精准营销和个性化服务已成为企业竞争的关键。"一肖一码一子一中"作为一项新兴的营销策略,正逐渐受到业界的关注。本文将深入探讨这一概念的定义、最新解答解释以及其在旗舰款46.229产品中的应用。 “一肖一码一子一中”的定义 “一肖一码一子一中”是一种基于大数据和人工智能技术的个性化营销策略。它的核http://www.yntuanjiantong.cn/post/6001.html
3.为什么“一枪战三母21”能够成为经典对决在许多人眼中,“一枪战三母2-1”这一场比赛可以说是一场充满张力和技巧的对决。对于电竞爱好者来说,这场赛事无疑给大家带来了极大的震撼与讨论空间。通过精湛的技术与出色的团队配合,比赛的每一分每一秒都充满了惊喜与悬念。本文将带你回顾这场比赛的精彩瞬间,分析其中的关键因素,帮助你更好地理解电竞比赛的细节http://m.shanghaiyuechen.com/shjc/33372.html
4.精准一肖一码一子一中,详细解答解释落实6h05.53.59看点在当今数据驱动的时代,精准预测已成为多个领域追求的圣杯,尤其是在金融投资、体育赛事分析以及各类竞技游戏中,本文将深入探讨“精准一肖一码一子一中”的概念,通过数据分析的角度,揭示其背后的逻辑,并结合具体案例,提供一套可操作的策略框架,帮助读者在复杂多变的环境中做出更为精准的决策。 https://www.yzcjl.cn/post/2840.html
5.精准一肖一码一子一中词语释义解释落实在当今社会,随着科技的飞速发展和信息时代的到来,各种新型词汇和短语不断涌现。“精准一肖一码一子一中”这一词组引起了广泛关注,这一词组背后所蕴含的真正含义往往容易被误解,甚至引发违法犯罪问题,本文将探讨这一词组的真实含义,强调词语释义解释落实的重要性,并呼吁社会各界共同关注并采取措施预防相关违法犯罪行为。 http://blog.povol.cn/post/2431.html
6.1v1最新消息:某知名游戏公司近日宣布将推出一款全新的1v1对战模式,吸引了众多玩家的关注和期待。这种模式不仅考验个人技术,还强调策略与心理博弈,成为电竞领域的一大亮点。 1v1对战的魅力 在电子竞技中,1v1对战是一种极具挑战性的比赛形式。它要求选手在短时间内做出快速反应,并运用高超的技巧来击败对手。根据《Journal ohttp://x91.saxin.vip/sxzx/3362.html
7.萨里奇:NBA围绕几个核心打球&主要是1V1欧洲围绕团队&更多是5V5直播吧10月14日讯 近日,克罗地亚球员萨里奇接受了采访,谈到了FIBA和NBA的区别。 他说:“我认为在美国,你有高球商的球员。但我们就是学着这样打球的。我总是说,‘我要怎么骗你?’重点不是我怎么比你快,而是我怎么骗你。这就是我们学的打球方式。我想我们会打更多的团队篮球,因为通常我们有俱乐部,在俱乐部里,https://www.163.com/dy/article/JEFIU41I0529AQIE.html
8.www.wqwl168.com/appnode75864381小说五个军人1vs1是什么 42.04MB 24好评 日本少妇人妻ⅩⅩXXX厨房l bl粗大合不拢腿白浊坐在腿上 汤姆AV影院 03.21MB 685好评 网袜尻逼 欧美日上韩三 视频 边操边自拍 781.75MB 934好评 天堂AV影院 丰满成熟的老寡妇BD 日韩成人毛片免费网站 55.06MB 5982好评 久久这里只有精品9169 欧美成http://www.wqwl168.com/appnode75864381
9.www.liweihb.com/aplpage28251.html兔弗网汁什么意思 323.21MB 755好评 笑型摸拟器 成人无码网站视频 爆乳の熟女友崎亚希 345.84MB 696好评 日韩四级黄色视频 狂乱爆乳秘书 星咲优菜 激情另类 193.35MB 133好评 黄色网件入囗 久一黄视频 纯青开车小黄文,老狼300字 15.9MB 108好评 中年老年少年逼逼逼 日本男高潮 十八摸下载软件免费 https://www.liweihb.com/aplpage28251.html
10.1vs1是什么意思?1vs1原指即一对一,只是两个人的世界,一开始是由比赛中双方竞技形象延伸而来的,小说中是指男女主从头https://iask.sina.com.cn/jxwd/D8wHhXuoOe.html
11.淤青是什么意思最新章节淤青是什么意思疯子三三(本文1VS1,双C,日更,谢绝扒榜。)文章消失部分:更多完结文:建了个群:314534239有兴趣的亲可以来这找我玩,不可以交流TXT哦,谢绝作者O(∩_∩)O~公告:#favorite_1{color:red;font-weight:bold;border-style:double;} 《淤青是什么意思》第67章 烈爱伤痕最终章 https://www.630book.cc/kan/1495878.html
12.的翻译是:Letus1vs1youout中文翻译英文意思,翻译英语We 1vs1 you go out 翻译结果2复制译文编辑译文朗读译文返回顶部 翻译结果3复制译文编辑译文朗读译文返回顶部 Let us 1vs1 you out 翻译结果4复制译文编辑译文朗读译文返回顶部 We 1vs1 when you go! 翻译结果5复制译文编辑译文朗读译文返回顶部 Our 1vs1 you exit 相关内容 a多联机 On-line [translate] aCouldhttp://xilayu.zaixian-fanyi.com/fan_yi_4773289
13.全面解读1V1单挑模式:战略技巧与实战应用解析在竞技游戏的世界中,有一种独特而激烈的比赛模式:一对一单挑模式(简称1V1)。在这个模式中,两名玩家以绝对的专注和策略,展开一场智力与操作的较量。本文将带你深入探索这一模式的内涵,探讨如何制定战略掌握技巧以及实战应用的方法。让我们一起来了解这一竞技艺术的精华所在。 http://www.jiulego.vip/jlgzx/35239.html
14.www.ruiniu11.com/aplhtml64784.htm不知道什么时候她们可以再合作一部双女主的剧作呢? 估计活动结束,杨超越造型团队要挨骂了。 02 李一桐和欧豪 看来《不可告人》这部剧扑街不是没有原因的,主演李一桐和欧豪真是戏里戏外都没有任何CP感啊。 红毯上的欧豪就像是刚从工地搬砖回来,皮肤黝黑粗糙,看起来相当潦草。 http://www.ruiniu11.com/aplhtml64784.htm
15.www.pmsys.cn/aplhtml12836.htm/aplhtml12836.htm 585好评(2122人) 450 详细信息 软件大小:131.60MB 最后更新:2024-12-08 01:18:51 最新版本:V4.11.18 文件格式:apk 应用分类:ios-Android欧美福利屄黄网 使用语言:中文 :需要联网 系统要求:5.41以上 应用介绍 一,绳醉人妻紧缚乳,黄色电影男主将胸A放女立胸口又搓最后操了http://www.pmsys.cn/aplhtml12836.htm
16.王者荣耀禁止pvp(王者荣耀禁赛)游戏攻略王者荣耀“pvp”是什么意思 玩家对战的意思。 PVP(Player versus player,PvP)又称“玩家对抗玩家”、“玩家VS玩家”,部分大中华地区游戏或称PK,为电子游戏术语,指网络游戏中玩家与玩家的相互之间进行的战斗,通常会出现在大型多人线上角色扮演游戏(MMORPG)不只是有《王者荣耀》,与其相对应的是玩家对抗环境,即玩家与https://www.beautyblog.cn/bkzx/41777.html
17.www.xcjx66.com/aplpage54976.htmlwww.xcjx66.com/aplpage54976.html 王金平表示,民进党曾针对这个议题多次和他接触,“法务部”也尽可能改善陈水扁在狱中的环境。||。http://www.xcjx66.com/aplpage54976.html
18.www.hyjc88.cn/aplpage17103.html纽约9月7日电 2012年美国网球公开赛7日结束了两场女单焦点战,寄托着东道主夺冠期望的小威廉姆斯仅丢3局横扫意大利“黑马”埃拉尼,职业生涯第6次闯入美网决赛。头号种子、白俄罗斯名将阿扎伦卡与2006年赛会冠军莎拉波娃苦战三盘,在前半程落后的不利局面下实现逆转,首度夺得美网女单决赛资格。-——。 https://www.hyjc88.cn/aplpage17103.html
19.言情小说1vs1的意思,里面有没有包括sc的意思言情小说1vs1的意思,里面有没有包括sc的意思 来自匿名用户的提问 回答 最佳答案 1v1指的是小说中一男对一女的关系,男女主互相爱对方且只爱对方,没有第三者插足,正好与NP相对,np就是一女和多男或者一男和多女在一起。1v1没有特指sc,但是一般都是sc,当然也有文案说1v1主角非sc的,不过还是很少啦 2017-09-15https://wenwen.soso.com/z/q770426739.htm
20.1vs1啥意思1vs1啥意思-爱问教育培训,首发2024-07-31 11:14·紫色湘女http://famensi.com/fjwh_content.asp?mdk810899504=.mov20241022kuyisl