红帽系统管理

这是学习 红帽系统管理-学员手册做的笔记

系统范围的默认语言设置

localectl  显示当前系统范围区域设置
localectl  set -locale LANG=fr_FR.utf8

yum list langpacks-*  列出已安装或可安装的语言包
yum install langpacks-fr  添加法语支持
yum repoquery --whatsupplements  确定哪些RPM软件包可以通过语言包安装
yum info langpacks -SUFFIX 获取语言包信息

[SecureCRT下载安装(Linux连接工具)](https://www.cnblogs.com/dearcabbage/articles/12844389.html)

grep详解
文本处理之grep详解

# grep ‘energywise’ *           #在当前目录搜索带'energywise'行的文件
# grep -r ‘energywise’ *        #在当前目录及其子目录下搜索'energywise'行的文件
# grep -l -r ‘energywise’ *     #在当前目录及其子目录下搜索'energywise'行的文件,但是不显示匹配的行,只显示匹配的文件

一.什么是Linux
1.Linux是开源软件
开源软件:任何人都可以免费使用,研究,修改,共享源代码的软件
开源的好处:透明共享,促进创新和合作
2.Linux可以轻松访问可脚本话的命令行接口
3.Linux是一种模板化操作系统,可以替换或删除组件

二.访问命令行

shell基础知识
shell提示符组成:要运行的命令,用于调整命令行为的选项,通常作为命令的目标的参数(命令是要运行的程序的名称,后面跟以-/-- 开头的选项)
注销shell会话:exit,Ctrl+D

使用bash shell 执行命令
shell命令:命令(空格) 选项(-/–开头)(空格)参数
enter执行命令,一行键入多个命令时用分号(;)分隔

简单命令示例:

date :显示当前时间日期,设置系统时钟,以+号开头参数可指定日期命令的格式字符串

passwd :更改用户自己的密码,必须指定原始密码才能更改,默认情况为强密码;超级用户可以使用passwd命令更改其他用户的密码

file: 扫描文件内容的开头,显示文件的类型。Linux不需要文件拓展名来根据类型分类文件,要分类的文件作为参数传递至该命令

cat :查看文件内容,创建单个或多个文件,串联多个文件内容,将文件内容重定向到终端或文件

less : 一次显示一个文件的页面可翻页,上下箭头滚动,q键退出

head :显示文件开头  ,默认10行,-n 指定行数

tail: 显示文件结尾,默认10行,-n  指定行数

wc :计算文件中行,字,字符数量;接受-1,-w, -c显示行数,字数,字符数

TAB补全:
1.允许用书在提示符下键入足够内容以使其唯一后快速补全命令或文件名。如果键入的字符不唯一,则按Tab键两次可显示以键入的字符为开头的所有命令
2.允许在键入文件名作为命令参数时补全。
3.可以用于补全匹配参数和选项。

\:换行连续输入,反斜杠字符+回车实现移至新命令而不执行命令

history :显示之前执行命令的列表,前缀为命令编号,!字符用于拓展之前的命令而不重新键入,!number命令扩展至编号匹配的命令,!string 扩展至最近一个以指定字符开始的命令,!!键入历史记录中最近的一个命令
Esc+.或者Alt+.组合键在当前光标位置插入上一个命令最后一个单词

编辑命令行

ctrl+A :跳到命令行的开头
ctrl+E :跳到命令行的结束
ctrl+U :将光标到命令行开头的内容清除
ctrl+K :将光标到命令行末尾的内容清除
ctrl+向左箭头 :跳到命令行中前一字的开头
ctrl+向右箭头 :跳到命令行中后一字的开头
ctrl+R :在历史记录列表中搜索某一模式的命令

总结:Bash shell 是一个命令解释器,提示交互用户指定Linux命令,

--help 选项可以显示用法消息和屏幕

三.从命令行管理文件

文件系统层次架构
Linux重要目录
通过名称指定文件

pwd:显示当前工作目录的完整路径名
cd:更改当前工作目录,无则跳转到主目录
cd .. :进入父目录
cd - 返回上一目录
ls: 显示指定目录的目录内容,无指定参数则显示当前目录下的内容
ls -1 长列表格式
ls -l 每个文件的链接数
ls -a 包含隐藏文件的所有文件
ls -R 递归显示包含所有子目录的内容

使用命令行工具管理文件
常用文件管理命令:

mkdir directory :创建一个或多个目录,目录已存在或在不存在目录中创建子目录则报错
mkdir -p directory : 会创建缺失的父目录
cp file new-file :复制文件,复制多个文件时最后一个为文件夹
cp -r directory new -directory  :复制目录及其内容
mv file new -file :移动或重命名文件或目录,路径不变时为重命名
mv file ./ :移动到当前目录
rm file : 删除文件 
rm -rf :强制删除文件
rm -rf * :删除目录下所有文件
rm -r directory  : 删除含有文件的目录
rmdir directory : 删除空目录

制作文件间的链接

ln   file  file2:创建一个指向现有文件的硬链接,file现有文件路径,硬链接
-directory  链接路径及命名
 ls -il file file2   显示两个文件索引节点编号,如果一致则指向同一个文件
(即使原文件被删除,但只要存在一个硬链接则文件任然可用,硬链接只适用于一般文件,同时两文件位于同一文件系统)
df: 列出位于不同文件系统的目录

ln -s directory directory2:创建指向一个特殊文件或者目录的软链接,可以链接不同文件系统的文件且不仅限于常规文件
ls -l directory directory2  长列表中软连接第一个字符为l
(软链接指向的原文件删除后软链接不可访问)
硬链接指向一个数据,软链接指向一个名称,名称指向一个数据

使用shell扩展匹配文件名
1.模式匹配:通配是一种shell命令解析操作,将一个通配符模式拓展到一组匹配的路径名
在这里插入图片描述

[crp@localhost glob]$ ls a*
able  alfa
[crp@localhost glob]$ ls *a*
able  alfa  baker  bravo  cast  charlie  delta  easy
[crp@localhost glob]$ ls [ba]*
able  alfa  baker  bravo
[crp@localhost glob]$ ls ????
able  alfa  cast  easy  echo
[crp@localhost glob]$ ls ???
dog
[crp@localhost glob]$ ls ?????
baker  bravo  delta
[crp@localhost glob]$ ls *[[:digit:]]*  匹配所有包含数字的文件名

2.波形符扩展
波形符可(~)可匹配当前用户的主目录。如果开始时使用斜杠(/)之外的字符串,shell就会将/之前的字符串解释为用户名;如果存在匹配项,则用该用户的主目录绝对路径来替换此字符串;如果找不到匹配的用户名则使用实际波形符加上该字符串代替。

echo  ~/directory  : 用于显示波形符字符的值,也用于显示大括号和变量拓展字符等的值

3.大括号扩展
{}大括号用于生成任意字符串。大括号包含字符串的逗号分隔列表或顺序表达式,结果包括大括号后面的文本。大括号可以互相嵌套,…双句点语法可以扩展成一个序列,{m…p}扩展为 m n o p
大括号实际用于快速创建多个文件或目录:mkdir …/directoty{1…3} ,touch …/file{1…4}

[crp@localhost glob]$ echo {sunday,monday,tuesday,wednesday}.log
sunday.log monday.log tuesday.log wednesday.log
[crp@localhost glob]$ echo file{1..3}{a..c}.txt
file1a.txt file1b.txt file1c.txt file2a.txt file2b.txt file2c.txt file3a.txt file3b.txt file3c.txt

4.变量扩展
通过变量可以从命令行或在shell脚本内轻松访问修改存储的数据
将数据作为值分配给变量:VARIBLENAME=value
如果字符串以$开头,则其余部分为变量名称 echo VARIBLENAME,一般将变量名称放入{}

[crp@localhost glob]$ USERNAME=cc
[crp@localhost glob]$ echo $USERNAME
cc

5.命令替换:
命令替换允许命令的输出替换命令行上的命令本身。当命令在括号中并且前面有$会发生命令替换

[crp@localhost glob]$ echo Today is $(date +%A)
Today is Thursday
[crp@localhost glob]$ echo The time is $(date +%M) minutes past $(date +%l%p).
The time is 26 minutes past 4PM.

为了防止特殊字符被拓展一般用转义字符 \ 防止紧跟着的字符被拓展
较长的字符串则用单引号 ‘ 或者 “ 双引号括起来。单引号组织所有的shell扩展;而双引号组织大部分shell扩展,比如通配和shell拓展但允许命令和变量替换

总结:
1.Linux系统中的文件被组织到一个颠倒的目录树中,称为文件系统层次结构
2.绝对路径以a/开头并指定文件在文件系统层次结构的位置
3.相对路径不以a/开头并指定文件相对于当前工作目录的位置
4.管理文件的关键命令:mkdir,rmdir,cp,mv,rm
5.硬链接和软链接是让多个文件名指向同一数据的不同方式
6.bash shell 提供了模式匹配,拓展和替换功能

四,在红帽Linux中获取帮助
man passwd : 进入密码主题帮助文件
pinfo :进入info帮助文档

五. 创建,查看和编辑文本文件

标准输入,标准输出,标准错误
在这里插入图片描述
将输出重定向到文件
I/O重定向可更改进程获取其输入或输出方式,允许将消息保存到通常发给终端窗口的文件中,也可以重定向来丢弃输出或错误。
重定向stdout 可以阻止进程输出显示在终端上,如果想丢弃消息,特殊文件/dev/null以静默方式丢弃重定向到其自身的通道输出,并且始终是空文件
在这里插入图片描述
注意:重定向操作顺序比较重要,比如:

file 2>&1 将标准输出重定向到file,将标准错误作为标准输出重定向到相同位置file
2>&1 >file 将标准错误重定向到标准输出的默认位置,将标准输出重定向到file

重定向示例:

保留时间戳
[crp@localhost pdf]$ date > saved-timestamp
[crp@localhost pdf]$ cat saved-timestamp
Mon Feb  1 17:10:04 CST 2021
将多个文件内容合并成一个文件
[crp@localhost pdf]$ ls
a.txt  b.txt  saved-timestamp
[crp@localhost pdf]$ cat a.txt b.txt >ab.txt
将目录中所有文件名列出到文件
[crp@localhost pdf]$ ls -a > my-file-names
错误信息输出:
 find /etc/ -name passwd 2> errors  (2>代表错误信息重定向)
 输出和错误信息单独保存:
 [crp@localhost pdf]$ find /etc/ -name passwd >output 2> errors
 [crp@localhost pdf]$ ls
 ab.txt  a.txt  b.txt  errors  my-file-names  output  saved-timestamp
忽略并丢弃错误信息:
[crp@localhost pdf]$ find /etc/ -name passwd >output 2> /dev/null
输出和错误信息存储到一个文件:
[crp@localhost pdf]$ find /etc/ -name passwd &> save-both
将输出和错误信息附加到现有文件:
find /etc/ -name passwd >> save-both 2>&1

管道构建:
管道是一个或多个命令序列,用竖线(|)分隔,管道将第一个命令的标准输出连接到下一个命令的标准输入。
示例:
ls |wc -l :将统计行数输送到wc -l并显示在终端

管道重定向组合:shell会先设置管道然后重定向输出。如果在管道中间使用输出重定向则输出转至文件,而不是前往管道的下一个命令。
例:ls >saved-output | less 输出将会进入saved-output 而less不会在终端显示任何内容

TEE 命令会克服这个缺点,它会将标准输入复制到标准输出中并重定向到指定的文件,它负责两个方向的流向。
例:

ls -l | tee saved-output | less   将输出重定向到文件并将输出传递到less在终端上以一次性屏的方式显示
ls -t | head -n 10 |tee ten-last-changed-files  管道末尾使用tee则可以保存命令的最终输出并输出到终端

管道不能使用合并重定向运算符 &> 和 &>>

VIM命令(文本编辑):
vim 包括 命令模式,扩展命令模式,编辑模式和可视模式

启动Vim:vim  filename
i  进入插入模式,Esc退出编辑返回命令模式
v 进入可视模式,shift +v 选择多行,ctrl+v选择文本块。v,shift+v,ctrl+v可用于进入和退出可视模式
:进入扩展命令模式,可以执行的任务包括写入文件的爆仓退出vim编辑器等
u 撤销最近的编辑
x 删除单个字符
:w  保存文件,并留在命令模式
:wq  保存文件并退出
:q!  强制退出文件放弃保存
光标定位到位置,v 进入可视界面,移动光标选择,y键复制,p键粘贴

更改shell环境
VeriableName=value :将值分配给变量
$VeriableName :拓展变量显示值

不是环境变量的shell变量只能由shell使用,环境变量可以由shell以及该shell运行的程序使用
可以在shell中将任何变量设置为环境变量,方法是将变量标记为export命令导出

六,管理本地用户和组

三类用户:
超级用户(root):管理系统,UID=0
系统用户:支持服务进程使用。
普通用户:对系统有限的访问权限

id   :显示当前已登录用户信息,以及组成员信息
id  用户名 :查看其他用户基本信息
ls -l :查看文件的所有者
ls -ld :目录的所有者
ps  : 查看进程相关信息
ps -au  :查看与某一终端的相关所有进程,加u则能看到相关联用户

组:
组是需要共享文件和其他系统资源访问权限的用户的集合。组可以用于向一组用户授予文件访问权限。
默认情况下,系统使用/etc/group 文件存储有关本地组信息;
示例:
group01 :x :10000:user1,user2
group01:该组名称
x:过时的组密码字段
10000:该组Id
user1 :该组用户列表

主要组和补充组:
每个用户只有一个主要组,通常在创建新的普通用户时会创建一个同名的新组作为主要组,而这个成员是该组的唯一成员。
补充组成员由 /etc/group文件确定。

P179
获取超级用户访问权限:
su :切换至另一个用户
su - :启动登录shell ,会将环境重新设置

sudo :通常输入自己密码进行验证,允许以特定用户的身份运行命令,所有执行的命令会默认将日志记录到/var/log/secure,sudo会重置用户环境

如果系统上的非管理员用户账户能使用sudo来运行su命令,则可以从该账户运行 sudo su - 来获取root用户上的交互式shell。
通过sudo访问root账户的另一种方式是 sudo -i

sudo 的配置文件为 /etc/sudoers,只能使用 visudo 编辑,
如果想为用户启用完整的sudo访问权限,可以创建/etc/sudoers.d/user01 : user01 ALL=(ALL) ALL;
或者直接编辑 visudo ,添加 user01 ALL=(ALL) ALL

P189
管理本地用户账户

useradd  username  :创建一个名为username的新用户
useradd   --help   将显示可用于覆盖默认值的基本选项
userdel  username  从/etc/passwd中删除username的详细信息
userdel   -r   username   从/etc/passwd中删除username 的详细信息,同时删除用户主目录

如果需要设施用户默认权限:
echo “umask 007” >> /home/username/.bash_profile
echo “umask 007” >> /home/username/.bashrc

在这里插入图片描述

passwd  username   为username设置初始密码或更改现有密码

UID 范围:
UID 0 :超级用户root
UID 1-200 :系统用户,由红帽静态分配给进程
UID:201-999 :系统用户,供文件系统中没有自己的文件的系统进程使用
UID :1000+ :可以分配给普通用户的范围

P195
管理本地组账户:

groupadd :创建组 ,不带选项时,groupadd命令创建组时使用/etc/login.defs 指定范围内下一个可用GID
-g 选项指定要使用组的特定GID
-r 使用 /etc/login.defs 文件中所列有效系统GID范围内的GID创建系统组。
groupmod : 更改现有组的属性,-n选项指定新组的名称, -g 选项指定新的GID
groupdel :删除组
usermod -g 更改用户的主要组
usermod -aG 将用户添加到某一补充组
注意:使用 -a 可以使usermod 函数处于append模式,如果没有 -a ,就会从当前未包含在 -G 选项列表中得任何补充组删除该用户

P200
管理用户密码
加密的密码:
在这里插入图片描述
加密密码的格式:
在这里插入图片描述
使用salt可以防止两个密码相同的用户可以在/etc/shadow文件中有相同的条目。

配置密码期限:

sudo chage -m 0  -M 90 -W 7 -I 14 user01
 -m  设置密码用户的最短期限
 -M 设置密码用户的最长期限
 -W 设置密码的警告周期
 -I  设置密码失效期限
 
 chage  -d  user01  :强制user01 在下一次登陆时更新密码
 chage  -d 0 user01  :强制user01 在第一次登陆时更新密码
 chage  -l  user01   :显示user01  的密码期限详情
 chage  -E  2019-08-05  user01  强制使用户账户到2019过期

date   -d  “+45  days”   -u :计算未来的日期

也可以编辑 /etc/login.defs 配置密码期限,
PASS_MAX_DAYS :密码默认最长期限
PASS_MIN_DAYS :密码默认最短期限
PASS_WARN_AGE :密码的默认告警周期

限制访问: usermod -L user01 :锁定账户
usermod -U 解锁账户

nologin Shell
nologin shell 用作不打算以交互方式登录系统的用户账户代替shell。将用户的登录shell 设为/sbin/nologin.如果用户直接登录将被 nologin shell 将关闭该链接。nologin shell 可以防止以交互方式使用系统
示例: usermod -s /sbin/nologin user01

总结:

用户账户主要有 :超级用户,系统用户,普通用户
用户必须有一个主要组,并且可以是一个或多个补充组的成员
包含用户和组信息的三个关键文件:/etc/passwd , /etc/group ,/etc/shadow
su 和 sudo 可以用于以超级用户身份运行命令
useradd ,usermod ,userdel 用于管理用户
groupadd ,groupmod ,groupdel 用于管理组
chage 用于配置和查看密码到期设置

p213

第七章,控制对文件的访问

在这里插入图片描述

ls -l test  :显示有关权限和所有权的详细信息
ls  -d /home   显示目录本身的详细信息
ls -la 可显示隐藏文件夹的权限
[root@localhost ~]# ls -ld
dr-xr-x---. 6 root root 244 Feb  8 16:28 .

长列表第一个字符表示文件类型

  • 常规文件 d 目录 l 软链接
    rwx :权限 读取,写入,执行, 如果其中一个字母为- 则表示该类别没有权限
    第一组三个字符是当前用户的权限,
    第二组三个字符是拥有该文件组的权限
    第三组三个字符是其他用户的权限

权限更改 :chmod —change mode
chmod 支持 -R 递归设置整个目录

通过字母更改权限

chmod WhoWhatWhich file|directory
who--u,g,o,a  用户,组,其他,全部
what -- +,-,=  添加,删除,精确设置
which  --r,w,x  读取,写入,执行

示例:
chmod go-rw file1 对file1中的组和其他,删除读取和写入权限
chmod a+x file2 对file2的每个人添加执行权限

通过数值更改权限
chmod ### file | directory 每个数字代表一个访问级别的权限 ——从左至右:用户,组,其他
数字的计算是所有权限相加 : 4 ——读取 2——写入 1——执行

更改文件目录的所有权
chown 用户 file 文件所有权更改
chown -R 用户 dictory 目录所有权更改
chown :组名 file_dir 更改文件组所有权,组名前加 : 冒号
chown visitor : guests file_dir 同时更改用户和组
chgrp 组名 file_dir 更改组所有权,不需要冒号

管理默认权限和文件访问

在这里插入图片描述
设置特殊权限:
符号 : setuid =u+s ;setgid =g+s ; sticky -o+t
数值(第四位): setuid=4,setgid=2,sticky=1

[crp@localhost consultants]$ chmod g+s consultant1.txt
[crp@localhost consultants]$ ls -l
total 0
-rwxrwsrw-. 1 crp crp 0 Feb 18 11:25 consultant1.txt

默认文件权限 : umask P231
umask :显示shell 的umask的当前值
umask 0 :其他文件权限从 读取 改为 读取,写入,其他目录权限会从 读取,执行 改为 读取,写入,执行
umask 007 :屏蔽其他的所有文件和目录权限
umask 027 :新文件的用户具有读写权限,并且组具有读取权限。新目录的组有读取写入权限,其他没有访问权限。

总结:
文件的三个应用权限类别 : 用户,组,其他用户。 用户权限覆盖组权限,组权限覆盖其他权限
ls -l 展开文件列表,包括文件权限和所有权
chmod 更改文件权限,符号 或者 数值 两种更改
chown 更改文件所有权,-R 可以递归更改目录树所有权
umask 显示shell当前umask值,Bash 的默认 umask 在 /etc/profile 和 /etc/bashrc 文件中定义

第八章 P245

监控和管理Linux 进程

进程 : 已启动的可执行程序的运行中实列,包括:
已分配内存的地址空间
安全属性,包括所有权凭据和特权
程序代码的一个或者多个执行线程
进程状态
环境包括:
本地和全局变量
当前调度的上下文
分配的系统资源,如文件描述符和网络端口

进程状态:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
top : 显示各个进程的详情 , s列或者ps列显示每个进程的状态,动态更新
ps : 用于列出当前的进程,并提供详细信息,包括:
用户识别符(UID),确定进程的特权;
唯一进程识别符(PID);
CPU和已经花费的实时时间;
进程在各个位置上分配的内存数量;
进程stdout的位置,即控制终端。

ps  aux  
ps  lax 
ps  -ef

默认情况下,不使用选项运行ps,将选择与当前用户相同有效用户ID并与调用PS所处同一终端关联的所有进程

控制作业:
作业与shell提示符中输入的每个管道相关联,该管道的所有进程均是作业的一部分。如果shell提示符输入一条命令,则该命令可视为最小管道,创建含有一个成员的一个作业
一次只能有一个作业从特定窗口读取输入和键盘生成的信号。该控制终端的后台进程是与该终端关联的任何其他作业的成员。后台进程无法读取键盘输入,但是可以写入终端,如果后台作业尝试读取终端,则该作业自动暂停。

在后台运行作业:在命令结尾加上 & ,Bash shell 显示作业编号和新建子进程的PID。
如果利用&符号将包含管道的命令发送到后台,最后一个命令的PID将用于输出。

jobs : 显示Bash为特定会话跟踪的作业列表
fg %作业编号(后台作业的ID) 将后台作业转至前台
ctrl + z : 暂停请求,将前台进程发送至后台
ps j 显示与作业相关的信息。
bg %作业编号(后台作业的ID) 启动后台运行的已暂停进程

终端进程:
信号是传递至进程的软件中断。信号向执行的程序报告事件。
在这里插入图片描述
每个信号都有一个默认操作:
终止——导致程序立即终止退出
核心转储——导致程序保存内存镜像,然后终止
停止——导致程序停止执行,等待继续

键盘操作:ctrl+c 中止 , ctrl+z 暂停 ,ctrl +\ 核心转储

kill -l ——显示所有可用信号的名称和编号
killall ——根据命令名称向多个进程发送信号
pkill ——向一个或者多个符合选择条件的进程发送信号,选择条件包括——命令名称,特定用户拥有的进程,系统范围进程。
pkill 命令包括高级选择条件:
命令——具有模式匹配的命令名称的进程
UID——由某一Linux用户账户拥有的进程,无论是有效的还是真实的
GID——由某一Linux组账户拥有的进程,无论是有效的还是真实的
父级——特定父进程的子进程
终端——运行于特定控制终端的进程

以管理员身份注销用户:
w —— 列出用户登录和当前运行的进程。设备如果名称格式为pts/N,说明是图形的伪终端,ttyN说明是位于一个系统控制台活其他直连终端设备上
pgrep —— 列出进程

监控进程活动:
负责平均值 :表示一段时间内感知的系统负载,用于粗略衡量待处理的系统资源请求数量
负载数 : 准备运行的进程数,等待I/O完成的进程数

uptime —— 显示当前负载平均值,包括当前时间,计算机启动时长,运行的用户会话数,当前的负载平均值
lscpu —— 显示系统CPU

实时进程监控:
top —— 系统进程的动态视图,显示一个摘要标题,ps信息类似的进程/线程列表。
默认输出列:
进程ID (PID)
用户名称 (USER) 进程所有者
虚拟内存 (VIRT) 进程正在使用的所有内存
常驻内存 (RES) 进程所使用的物理内存
进程状态(S) D——不可中断睡眠 ,R——运行中,S——睡眠中,T——已停止或已跟踪,Z——僵停
CPU时间 (TIME) 进程启动以来总的处理时间
进程命令名称 (COMMAND)
在这里插入图片描述
总结:
1,进程是可执行程序的运行中实例。进程状态——运行,睡眠,停止或僵停,ps命令用于列出进程
2,每个终端是其自身的会话,并且可以具有一个前台进程或多个独立的后台进程。jobs命令显示终端会话中的进程
3,信号是向执行中的程序报告事件的软件中断。kill,pkill,killall命令是使用信号来控制进程
4,负载平均值 是一种对系统繁忙程度的估算。可以用top,uptime,w命令显示

第九章 P291

控制服务和守护进程

守护进程 —— 执行各种任务的后台等待或运行的进程,一般系统引导时自启动,关机停止或手动停止,一般以d结尾。
systemd ——守护进程,管理Linux的启动,包括服务启动和服务管理。可以激活系统资源,服务器守护进程和其他进程。
systemd 的功能 —— 并行化(同时启动多个服务);按需启动守护进程,而不需要单独的服务;自动服务依赖于关系管理,可以防止时间超时;利用Linux控制组一起追踪相关进程的方式。

描述服务单元:
.service 服务单元,代表系统服务
.socket 套接字单元,代表systemd应监控的进程通信套接字
.path 路径单元,用于将服务的激活推迟到特定文件系统更改发生之后

systemctl 管理单元,systemctl -t help 显示可用的单元类型
包括 —— UNIT 服务单元名称;
LOAD systemd是否正确的解析单元配置并加载单元到内存;
ACTIVE 单元的高级别激活状态,即是否成功启动 ;
SUB 单元的低级别激活状态,指示了更多关于单元格的详细信息;
DESCRIPTION 单元的简短描述

systemctl  列出已加载和活动的单元
systemctl list-units   显示systemd服务尝试解析并加载到内存中的单元,不显示已安装未启用的服务
systemctl list-unit-files  所有已安装的单元文件状态
systemctl list-units --type=service  列出所有当前加载的服务单元
systemctl list-units --type=service   --all  列出所有的服务单位
systemctl list-units --type=socket  --all  列出servera上所有活动不活动的套接字单元
systemctl list-units --type=service  --state=   按照LOAD,ACTIVE,SUB的值进行筛选

查看服务状态
systemctl status name.type 查看特定单元的状态
在这里插入图片描述

在这里插入图片描述
验证服务状态:

[root@localhost ~]# systemctl is-active sshd.service
active          ——验证服务单元是否处于活动状态
[root@localhost ~]# systemctl is-enabled sshd.service
enabled        ——验证服务单元是否启用在系统引导期间自启动
[root@localhost ~]# systemctl is-failed sshd.service
active         ——验证单元是否在启动过程中失败,失败则返回failed,如果单元已被停止,则返回unknown,inactive

控制系统服务:

systemctl status sshd.service——验证是否运行
systemctl start sshd——启动服务
systemctl stop sshd.service——停止正在运行的服务
systemctl restart sshd.service——重启动服务
systemctl reload sshd.service——重新加载服务,只加载配置文件,不会改变进程ID
systemctl reload-or-restart sshd.service——不确定能否重新加载配置文件时

列出单元依赖项:

systemctl list-dependencies sshd.service  —— 列出启动服务单元所需要的依赖项的层次结构映射,反向依赖用--reverse

屏蔽未屏蔽的服务:
systemctl mask sendmail.service
取消屏蔽的服务单元:
systemctl unmask sendmail.service

接下来尝试启动已屏蔽的服务会失败
[root@localhost ~]# systemctl start sendmail.service
Failed to start sendmail.service: Unit is masked.

注意:屏蔽的服务无法手动启动或自启动;禁用的服务可以手动启动或其他单元文件启动,不会自启动

设置服务自启动:
[root@localhost ~]# systemctl enable sshd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/sshd.service to /usr/lib/systemd/system/sshd.service.
(以上命令会从服务单元文件(/usr/lib/systemd/system)创建一个符号链接,指向磁盘供systemd寻找文件的位置,即/etc/systemd/system/TARGETNAME.target.wants目录)
禁用自启动:
systemctl disable sshd.service
Removed symlink /etc/systemd/system/multi-user.target.wants/sshd.service.
查看是否自启动:
systemctl is-enabled sshd.service

systemctl 命令摘要
在这里插入图片描述
在这里插入图片描述
总结:
systemd 提供了一种方式,可以在系统引导时以及运行中的系统上激活系统资源,服务器守护进程和其他进程
使用systemctl 可以启动,停止,重新加载,启用,禁用服务
使用systemctl status 可以确定systemd启动的系统守护进程和网络服务的状态
systemctl list-dependencies 可以列出特定服务单元依赖的所有服务单元
systemd 可以屏蔽单元,使其即使是为了满足依赖需要也不会运行

第十章 P315

配置和保护SSH

SSH协议能使系统通过不安全的网络以加密和安全的方式通信,可以通过ssh命令创建与远程系统的安全连接,以特定用户进行身份验证,并以该用户身份在远程系统上获取交互式shell会话。
SSH通过公钥加密的方式保持通信安全。用户连接SSH服务器时,会检查本地已知主机文件是否有该服务器的公钥副本。可以在/etc/ssh/ssh_known_hosts进行预配置,或者用户的主目录中有一个包含公钥的~/.ssh/known_hosts文件

w 命令可显示当前计算机的用户列表
在这里插入图片描述
在这里插入图片描述
生成SSH 密钥
ssh-keygen ——创建用于进行身份验证的私钥和匹配的公钥,私钥保存在 ~/.ssh/id_rsa;公钥保存在 ~/.ssh/id_rsa.pub。如果未指定密语,则私钥不受保护,如果设置了密码,则使用私钥进行身份验证时需要输入密语

ssh-keygen -f .ssh/key-with-pass  —— 创建受密语保护的私钥及公钥

-f 选项与 ssh-keygen 命令配合可以用来确定保存密钥的文件
ssh-copy-id 命令可以将密钥的公钥复制到目标系统,如果未指定路径,则会使用默认的/home/user/.ssh/id_rsa.pub文件

使用ssh-agent 进行非交互式身份验证 P325

自定义OPENSSH服务配置 P333
openSSH 服务由sshd的守护进程提供,主配置文件为 /etc/ssh/sshd_config
禁用超级用户的SSH登录:
/etc/ssh/sshd_config 配置文件中 PermitRootLogin no
PermitRootLogin without-password ——禁止基于密码的身份验证,允许基于私钥的身份验证

注意:更改设置之后必须重新加载配置文件 —— systemctl reload sshd

/etc/ssh/sshd_config 配置文件中 PasswordAuthentication no 控制用户登录系统时是否使用基于密码的验证

总结:
ssh命令允许用户使用SSH协议安全的访问远程系统
客户端系统将远程服务器身份存储在 ~/.ssh/known_hosts和/etc/ssh/ssh_known_hosts中
SSH同时支持基于密码和基于密钥的身份验证
ssh-keygen 命令可以生成用于身份验证的SSH密钥对,ssh-copy-id 命令将公钥导出到远程系统
sshd服务在红帽企业Linux系统上实施SSH协议
尽量配置禁止root远程登录

第11章 P349

分析和存储日志

许多系统都以文本文件的方式记录事件日志,保存在/var/log 目录中。less / tail 都可以检查这些日志
在这里插入图片描述
在这里插入图片描述
日志文件轮转:
logrotate 工具会轮转日志,以防在/var/log 目录中占用太多空间,轮转日志文件时,使用指示轮转日期拓展名对其重命名,然后创建新的日志文件并执行写操作,轮转若干次后丢弃最旧的日志文件。

日志消息一般在开头显示最旧的消息,末尾显示最新的消息。下面是/var/log/secure 日志文件中的消息:
在这里插入图片描述
监控日志:
tail -f /path/to/file 命令输出指定文件最后10行,并在新行写入文件时继续输出他们。

手动发送SYSLOG消息:
logger命令可以发送消息到rsyslog,默认情况下将优先级为notice的消息发送给user设备,除非通过-p选项另有指定。
例如:
logger -p local7.notice “Log entry create on host” 向rsyslog服务发送消息并记录在/var/log/boot.log日志文件中

查看系统日志条目:
systemd-journald 服务将日志数据存储在有索引的结构化二进制文件中,这就是日志

journalctl 命令——从日志中检索日志消息
journalctl 命令中 优先级为notice 或者 warning 的消息显示为粗体文本,优先级为error或以上消息显示为红色文本
journalctl -n —— 显示最后10个日志条目,可以指定要显示的条数
journalctl -f —— 输出系统日志最后10行,并在新日志条目写入到日志时继续输出,Ctrl+c 可以退出
journalctl -p —— 过滤日志输出,接受优先级的名称或编号作为参数,并显示该优先级以上的日志条目
journalctl --since/until —— 限制输出为特定时间段,接收格式 “YYYY-MM-DDhh:mm:ss”,省略日期默认为当天,还接受yesterday,today,tomorrow作为参数,也可以用 "-1 hour "指定上一个小时的条目
在这里插入图片描述

保留系统日志:
默认情况下,系统日志保存在/run/log/journal目录中,系统重启后会被清除,在/etc/systemd/journald.conf更改systemd-journald服务的配置设置,使得日志能在重启后保留下来。
参数 Storage :
persistent———将日志存储在/var/log/journal中,可以在系统重启后持久保留,如果不存在则服务会创建它
volatile——将日志存储在易失性/run/log/journal中,因为/run文件是临时的,仅存在于运行时内存中
auto —— 由rsyslog决定要使用持久存储还是易失存储,如果/var/log/journal存在则使用持久存储
注意:默认情况下,日志大小不能超过所处文件系统的10%,也不能造成文件系统可用空间低于15%。可在/etc/systemd/journald.conf中调整

将输出限制为特定的系统启动, 加入 -b
例如: journalctl -b 1 仅检索第一次系统启动的条目
注意:利用永久日志调试系统崩溃时,需要限制为崩溃前的重启, -b参数后给一个负值,包含过去多少次系统引导

维护准确的时间:
设置本地时钟和时区
timedatectl 显示当前时间的相关系统设置,如:当前时间,时区,NTP同步设置
timedatectl list-timezones 包含时区的数据库
timedatectl set-timezone 更改时区
timedatectl set-time (date) 更改当前系统时间
timedatectl set-ntp true/false 启用或者禁用NTP同步

配置和监控 CHRONYD
chronyd 服务通过与配置的的NTP服务器进行同步

同步系统时钟和NTP时间源
1.tzselect 选择海地的适当时区
在这里插入图片描述
2.使用timedatectl命令更新时区,并验证
在这里插入图片描述
3.配置servera上的chronyd服务,将系统时间与NTP时间源同步
在这里插入图片描述
使用 timedatectl set-ntp yes 打开servera上的时间同步
4.
timedatectl 验证是否启用同步
在这里插入图片描述

chronyc sources -v 验证是否同步,MS列出现*则成功
在这里插入图片描述
总结:
systemd-journald和rsylog服务可以捕获日志信息并写入到适当文件中
/var/log目录包含日志文件
定期轮换日志文件可以防止他们填满文件系统空间
systemd日志是临时的,不会在系统重启后持久保留
chronyd服务有助于将时间设置与时间源同步
可以根据服务器位置更新时区

第12章 P391

管理网络

TCP / IP 网络模型:
应用 —— 每一应用程序具有用于通信得规范,以便客户端服务器跨平台通信。常用的通信协议有 SSH(远程登录),HTTPS(安全web),NFS或CIFS(文件共享),SMTP(电子邮件传送)等。
传输 —— 传输协议有TCP和UDP。TCP是可靠连接导向型通信,而UDP属于无连接数据报协议。/etc/services文件中可以找到常用和已经注册的端口列表
互联网 —— 互联网或者网络层将数据从源主机传送到目标主机。IPV4和IPV6协议是互联网层协议。每个主机都有IP地址和前缀,用于确定网络地址,路由器用于连接网络
链路 —— 链路或介质存取层提供与物理介质的连接。最常见的网络类型是有线以太网和无线局域网。每一个物理设备具有一个硬件地址,用于标识局域网络段中数据包的目的地。

新Linux命令体系 —— 固件信息,PCI总线拓扑及网络设备的类型
网络接口名称以接口类型开头:
以太网 —— en开头
WLAN —— wl开头
WWAN —— ww 开头

其他部分——服务器固件信息/PCI拓扑设备的位置:
oN——板载设备,服务器的固件提供设备的索引编号N
sN——PCI热槽把插槽N中。
pMsN——插槽N中总线M上的PCI设备,多功能设备则添加fN

IPV4网络

IPV4地址是一个32位的数字,点号分隔四个十进制八位字节。由网络部分和主机部分组成。网络部分用于标识子网,同一子网的所有主机可以彼此直接通信,无需路由器;主机部分用于标识子网中特定的主机。
子网掩码——指明多少位的IPV4属于子网,
网络地址——子网中可能到达的最低地址,主机部分二进制全为0,
广播地址——子网中可能的最高地址,主机部分全为1
在这里插入图片描述
在这里插入图片描述
特殊地址 127.0.0.1 —— localhost 本地系统

IPV4路由:
每个主机都有一个路由表,该表告诉主机如何路由特定网络的通信。与网络流量目的地相符的路由表条目用于路由该流量。
在这里插入图片描述
在这里插入图片描述
IPV6网络:
IPV6 可在双栈模型中与IPV4并行使用,这种配置中网络接口同时具有IPV6和IPV4地址
IPV6 是128位数字,由8组以分号隔开的四个16进制半字节。每个半字节均表示4位的IPv6地址,每个组表示16位的IPV6地址
例如:2001:0db8:0000:0010:0000:0000:0000:0001
为了便于编写,不需要编写分号分隔组中的前导0,但是每个冒号分隔的组中必须至少写入一个十六进制的数字
例如:2001:db8:0:10:0:0:0:1
同时一组或多组连续零可以通过一个::合并
例如:2001:db8:0:10::1

IPV6子网划分:
普通IPV6单播地址分为两个部分:网络前缀和接口ID。网络前缀标识子网。同一个子网上的任何两个子网接口都不能具有相同接口ID,接口ID可以标识子网上的特定接口。
IPv6有一个标准的子网掩码/64,通常组织会有一个较短的前缀 /48,这会保留其余网络部分以用于通过这一分配的前缀来指定子网,最多65536个子网
在这里插入图片描述
在这里插入图片描述
在IPV6地址结尾必须使用作用域标识符来指定与本地链接路径进行通信的链路。作用域标识符由%+网络接口名称
例如: ping6 fe80::211:22ff:feaa:bbcc%ens3 —— 使用链接到 ens3网络接口的链路ping6本地链路地址
多播允许一个系统将流量发送到多个系统接收的特殊IP地址。只有网络上的特定系统才能接受流量。
IPV6的一个重要多播地址是ff02::1,即全节点本地链路地址,对此节点进行Ping会将流量发送到链路上的所有结点

IPV6地址配置:
IPV6中以下ID是保留的:
对所有路由器使用的全零标识符——0000:0000:0000:0000,子网路由器任意广播
标识符 fdff:ffff:ffff:ff80 到 fdff:ffff:ffff:ffff

DHCPv6配置:主机将DHCPv6请求从本地链路发送到ff02::1:2上的端口547/UDP,即全dhcp服务器本地链路多播组,然后DHCPv6服务器通常向客户端的本地链路地址上的端口546/UDP发送一个包含相应信息的回复。

无状态地址自动配置

主机名和IP地址:
Linux可以将主机名映射到IP地址,统称为名称解析。
一种方法是在各个系统上的/etc/hosts文件中为每个名称设置一个静态条目
对于大多数主机来说,你可以借助域名系统(DNS)的网络服务,从主机名查找地址。DNS是提供主机名到IP地址映射的分布式服务器网络。

验证网络配置:
ip link /show —— 列出系统上所有能用的网络接口
lo —— 这是连接到服务器本身的环回设备
en开头 —— 这是以太网接口
设备的MAC地址在每个接口的 link/ether后面

ip addr show ens3 —— 用ip命令查看设备和地址信息
在这里插入图片描述
在这里插入图片描述
显示性能统计信息:
ip -s link show ens33
在这里插入图片描述
检查主机之间的连接:
ping -c3 192.168.84.1
ping6 2001:db8:0:1::1
ping6 ff02::1%ens33 —— 必须显示指定网络接口,这样执行有助于找到本地网络的其他IPV6

路由故障排除:
ip route —— 显示路由信息
ip -6 route —— 显示IPV6路由表

traceroute / tracepath 追踪网络流量通过多个路由器到达远程主机而采用的路径

端口和服务故障排除 :
TCP 服务使用套接字作为通信的端点,由IP地址,协议,端口号组成。/etc/services列出了标准端口的常用名称
ss 命令可以用于显示套接字统计信息。ss命令旨在替换net-tools软件中包含的就工具netstat

在这里插入图片描述
在这里插入图片描述
常用端口ftp http dns snmp pop3、dhcp、nfs、mysql、samba等服务。
服务(端口号) ftp(2021)、http(80)、dns(53)、snmp(161)、pop3(110)、dhcp(67 68)、nfs(111)、mysql(3306)、samba(137 138 139)

从命令行配置网络:
NetworkManager —— 监控和管理网络设置的守护进程。命令行和图形工具与NetworkManager通信,并将配置文件保存在/etc/sysconfig/network-scripts目录中。
设备可以是网络接口
连接是可以为设备配置的设置的集合
一个设备只能有一个连接处于活动状态。可能存在多个连接供不同设备使用或者以便为同一设备更改配置。如果需要临时更改网络状态,可以更改设备中的哪个连接处于活动状态。
每个连接都具有一个用于标识自身的名称或者ID
nmcli 实用程序可用于从命令行创建和编辑连接文件

查看联网信息:
nmcli dev status —— 显示所有网络设备的状态
nmcli con show —— 显示所有连接的列表。要仅列出活动的连接,可使用 --active
在这里插入图片描述
添加网络连接:
nmcli con add —— 添加新的网络连接
在这里插入图片描述
控制网络连接:
nmcli con up name —— 将在其绑定到的网络接口上激活name连接。命令采用的是连接的名称,而非网络接口的名称
nmcli dev disconnect device —— 断开与网络接口device的连接并将其关闭,可停用接口。缩写 —— nmcli dev dis ens33.

修改网络连接设置:
NetworkManager 连接有两种类型的设置:静态连接属性,存储在/etc/sysconfig/network-scripts/ifcfg-* 的配置文件中;活动连接数据则是连接从DHCP服务器获取的,不会持久存储。

nmcli con show name(连接名称) —— 连接的当前设置。小写的设置是静态属性,全大写的设置是活动设置,临时用于连接此连接实例。

nmcli con mod name —— 更改连接设置,并保存在/etc/sysconfig/network-scripts/ifcfg-name中。
例如:在这里插入图片描述
删除网络连接:
nmcli con del name —— 从系统中删除 name 的连接

nmcli gen permissions —— 查看自己当前的权限
在这里插入图片描述

编辑网络配置文件:
默认情况下 nmcli con mod name 更改会自动保存到 /etc/sysconfig/network-scripts/ifcfg-name。
然后 nmcli con reload 以便NetworkManager读取配置更改。
在这里插入图片描述
在这里插入图片描述
直接编辑配置文件修改网络配置:
配置文件一般命名为 /etc/sysconfig/network-scripts/ifcfg-name,name指的是配置文件控制的设备或者连接的名称

vim /etc/sysconfig/network-scripts/ifcfg-system_eth1
iDEVICE=eth1
BOOTPROTO=static
PREFIX=24
NAME=system_eth1
ONBOOT=yes
IPADDR=10.
GATEWAY=10.

在这里插入图片描述
静态设置中:IP地址,前缀和网关等变量的末尾都是数字。这允许将多组值指定到该接口,DNS变量也有一个数字,用于指定了多个服务器时指定查询的顺序。
修改配置文件后,运行nmcli con reload 使NetworkManager读取配置更改,接口重新启动,以便更改生效。

添加新的IP地址: nmcli connection modify static +ipv4.addresser ‘172…/24’
激活新的IP地址:nmcli connection up static
查看原先网络的配置集: nmcli connection show

配置主机名和名称解析:
hostname —— 显示或者临时修改系统的完全限定主机名。
hostnamectl —— 用于查看系统的完全限定主机名的状态。
可以在/etc/hostname 文件中指定静态主机名,用hostnamectl 用于修改此文件。
hostnamectl set-hostname hostname —— 设置主机名hostname

配置名称解析:
根解析器用于将主机名称转换为IP地址,反之亦可。它将根据/etc/nsswitch.conf文件的配置来确定查找位置,默认情况下先检查/etc/hosts文件的内容
在这里插入图片描述
NetworkManager将使用连接配置文件的DNS设置更新 /etc/resolv.conf 文件,使用nmcli 修改连接
nmcli con mod ID +ipv4.dns IP —— 默认将任何旧的DNS设置替换为提供的新的IP列表。ipv4.dns 参数前面的+或者-可以添加删除个别目录
nmcli con mod static-ens3 +ipv6.dns 2001:4860:4860::8880 —— 将IPV6地址为2001… 的DNS服务器添加到要与static-ens3连接一起使用的名称服务器列表
host classroom.example.com —— 测试DNS服务器连接
注意:DHCP会在接口启动时自动重写/etc/resolv.conf 文件,除非指定了PEERDNS=no——————
———— nmcli con mod “enss3” ipv4.ignore-auto-dns yes

总结:
TCP/IP网络模型是一种简化的四层抽象集合,用于描述不同的协议如何进行互操作,以便计算机通过互联网将流量从一台计算机发送到另一台计算机
IPV4是当今互联网上使用的主要网络协议,IPV6旨在取代IPV4协议.默认红帽双栈模式运行,使用两种协议.
NetworkManager是监控和管理网络配置的守护进程
nmcli 命令是一个用于通过NetworkManager来配置网络设置的命令行工具
系统的静态主机名存储在/etc/hostname文件中,hostnamectl命令用于修改和查看系统的主机名和相关设置的状态.hostname命令显示或临时修改系统的主机名

第13章 P447

归档和传输文件

管理压缩的TAR存档

tar 命令 创建和使用备份存档,将大型文件集汇集为一个文件. tar 命令能列出存档内容,或者将其文件提取到当前系统
在这里插入图片描述
在这里插入图片描述
列出tar命令的选项:
tar 命令需要以下三个选项之一:
使用 -c 或 --create 选项来创建存档
使用 -t 或 --list 来列出存档的内容
使用 -x 或 --extract 选项来提取存档

其他常用选项包括:
使用 -f 或 --file= 选项加上文件名,作为要运行的存档的参数
使用 -v 或 --verbose 选项以获取详细信息;用于查看添加到存档中或从中提取的文件有哪些.

归档文件和目录:

创建新存档时第一个选项为 c ,然后紧跟 f 选项,接着一个空格,然后创建得存档文件名,最后是应当添加到存档得文件和目录列表。注意:不能创建和现有文件一样得文件名,否则会覆盖现有文件。同时用户要有读取权限。
例如:tar -cf archive.tar file1 file2 file3

列出存档的内容:
t 指示tar列出的存档的内容,使用f选项则要加上查询的存档名称。
例如:tar -tf /root/etc.tar

从存档中提取文件:
当root提取存档时,tar 命令会保留文件的原始用户和组权限。如果普通用户使用,文件所有权将属于从存档中提取文件的用户。
例如:tar -xf /root/etc.tar
如果要保留存档文件的权限,则使用p选项

创建压缩存档:
gzip -z :压缩速度最快,历史最久,使用最广泛,可以跨平台,后缀名 .gz
bzip2 -j :压缩的存档文件比gzip创建的小,后缀名 .bz2
xz -J : 提供最佳压缩率, 后缀名 .xz

tar -czf /root/etcbackup.tar.gz /etc
tar -cjf /root/logbackup.tar.bz2 /var/log
tar -cJf /root/sshconfig.tar.xz /etc/ssh

gzip,bzip2,xz可用于单独压缩单个文件,

在系统之间安全的传输文件:
可以为要复制的文件的源或目标指定一个远程位置,远程位置的格式[user@]host:/path
例如:将host上的本地文件/etc/yum.conf和/etc/hosts复制到remotehosts远程系统上的remoteuser主目录
scp /etc/yum.conf /etc/hosts remoteuser@remotehost:/home/remoteuser
从远程复制到本地:
scp remoteuser@remotehost:/home/remoteuser:/etc/hostname /home/user

使用安全文件传输程序传输文件:
sftp 命令的会话使用安全身份验证机制,并将数据加密后再与ssh服务器来回传输。
例如:sftp remoteuser@remotehost
put —— 将文件上传到远程系统,
get —— 将文件从远程系统下载。
exit 退出 stfp 会话

在系统间安全的同步文件:

rsync 仅复制文件系统之间的差异部分,scp复制所有内容。
rsync 的优点在于能够在本地系统和远程系统之间安全而高效的复制文件,首次同步与复制用时一致,之后只复制差异部分,加快了更新速度。

rsync -n —— 执行空运行。空运行是对执行命令时所发生情况的模拟。空运行显示了在命令正常运行时rsync所进行的更改,确保重要文件不会被覆盖或删除
在这里插入图片描述
如果使用的高级权限,-A 用于保留ACL ,-X用于保留SELinux上下文

rsync 可以将本地文件或者目录的内容与远程计算机的文件或目录进行同步,也可以同步两个本地文件或目录的内容

在这里插入图片描述
源目录不加 / , 则直接在目标目录新建子目录
在这里插入图片描述
源目录加上 / ,则同步该目录的内容

rsync 也使用 [user@]host:/path 来指定远程位置,两台计算机中必须有一台是本地计算机。
例如: rsync -av /var/log remotehost:/tmp

总结:
tar 命令可以从一组文件和目录创建存档文件,从存档中提取文件,以及列出存档的内容
tar 命令提供一组不同的压缩方式,用于缩小文档的大小
除了提供安全远程shell,SSH服务也提供scp 和sftp 命令,作为与运行SSH服务器的远程系统来回传输文件的安全方式
rsync 命令可以安全高效的在两个目录之间同步文件,其中任一目录可在远程系统上

第14章 P473

安装和更新软件包

注册系统 —— subscription-manager register --username=yourusername \ --password=yourpassword
查看可用订阅 —— subscription-manager list --available | less
取消注册系统 —— subscription-manager unregister

授权证书:
/etc/pki/product 证书指明系统安装到哪些红帽产品
/etc/pki/consumer 证书指明系统所注册到的红帽账户
/etc/pki/entitlement 证书指明该系统附加有哪些订阅

解释和调查RPM软件包:
RPM软件包管理器提供了一种标准的方式来打包软件进行分发。
在这里插入图片描述
在这里插入图片描述

检查RPM软件包:

rpm  -q  [select-options] [query-options] 

RPM 查询:关于已安装的软件包的一般信息
rpm -qa :列出所有已安装的软件包
rpm -qf FILENAME :查找提供的FILENAME的软件包

RPM查询:关于特定软件包的信息
rpm -q :列出当前安装的软件包版本
rpm -qi :获取有关软件包的详细信息
rpm -ql :列出软件包安装的文件
rpm -qc : 仅列出软件包安装的配置文件
rpm -qd : 仅列出软件包安装的文档文件
rpm -q --scripts :列出在安装或删除软件包之前或之后运行的shell脚本
rpm -q --changelog :列出软件包的更改信息

安装RPM软件包:
rpm 命令可用于安装已下载到本地目录的RPM软件包
例如:rpm -ivh wonderwidgets-1.0-4.x86_64.rpm
卸载 rpm -e ntp --nodeps
更新 rpm -Uvh ntp-0.7.12.x86_64.rpm

在这里插入图片描述

使用YUM安装和更新软件包:
yum命令允许安装更新删除和获取有关软件包及依赖项的信息。
yum help 显示用法信息
yum list 显示已安装和可用的软件包
yum group list 显示已安装和可用的组的名称

yum search KEYWORD —— 根据仅在名称和摘要字段中找到的关键字列出软件包
yum info PACKAGENAME —— 返回与软件包相关的详细信息,包括安装所需的磁盘空间
yum provides PATHNAME —— 显示与指定的路径名匹配的软件包

使用yum 安装删除软件:
yum install PACKAGENAME —— 获取并安装软件包,包括依赖项
yum update PACKAGENAME —— 获取并安装指定软件包的较新版本
yum remove PACKAGENAME —— 删除安装的软件包,包括所有受支持的软件包

yum list kernel 可列出所有已安装和可用的内核
yum group list hidden 命令列出隐藏组
yum group info 显示组的相关信息
yum group install 安装一个组,包括其必选和默认的软件包,以及依赖的软件包
在这里插入图片描述

启用YUM软件存储库:
yum repolist all : 查看所有可用的存储库
yum-config-manager --enable rhel-8-server-debug-rpms 启用 rhel-8-server-debug-rpms 存储库

创建YUM存储库:
yum-config-manager --add-repo=""
一些存储库将一个配置文件和GPG公钥作为RPM软件包的一部分提供,该软件使用yum localinstall 命令下载安装

模块:
模块是一组属于一个整体,协调一致的RPM软件包。典型的模块可以包含应用的软件包,应用特定依赖库的软件包,应用文档的软件包,以及帮助器实用程序的软件包

模块流:
每个模块可以具有一个或多个模块流,其包含不同版本的内容,每个流独立接受更新。模块流可以视为应用流物理存储库的虚拟存储库。
yum module list —— 显示可用的模块列表
yum module list --installed —— 列出已安装的模块和流
yum module list perl —— 列出特定模块的模块流并检索其状态
yum module info perl —— 显示模块的详细信息

yum module install perl —— 使用默认流和配置文件安装模块
yum module remove perl —— 删除已安装的模块
yum module disable perl —— 禁用模块流

总结:
软件以RPM软件包的形式提供,因此可以轻松地从系统中安装,升级和卸载软件
rpm 命令可以用于查询本地数据库,以提供有关已安装软件包的内容的信息并安装已下载的软件包文件
yum 是一个强大的命令行工具,可以用于安装,更新,删除和查询软件包
红帽Linux8使用应用流,通过提供单个存储库来承载应用软件包及依赖项的多个版本。

第15章:P525

访问Linux文件系统

文件系统和挂载点:
要让文件系统的内容在文件系统层次的结构目录中可用,必须将它挂载到一个空目录上。这就是挂载点。挂载后如果用ls列出该目录,就能看到已挂载文件系统的内容,并且可以正常访问和使用这些文件。许多文件系统都会作为启动进程的一部分自动挂载。
在这里插入图片描述
在这里插入图片描述
磁盘分区:
分区用于划分硬盘:不同的部分可以通过不同的文件系统进行格式化或用于不同的用途。
分区本身就是块设备,在SATA附加存储中,第一磁盘的第一个分区时/dev/sda1,第二个磁盘的第三个分区是/dev/sdb3
NVMe 附加SSD设备命令分区方式,第一磁盘的第一个分区 /dev/nvm0p1,第二个磁盘的第三个分区 /dev/nvme1p3

逻辑卷:
整理磁盘和分区的另一种方式是通过逻辑卷管理(LVM),通过LVM一个或多个块设备可以汇集为一个存储池,称为卷组。卷组中的磁盘空间被分配到一个或多个逻辑卷,它们的功能等同于驻留在物理磁盘上的分区。

LVM系统在创建时为卷组和逻辑卷分配名称。LVM在/dev中创建一个名称与组名匹配的目录,然后再该新目录中创建一个与逻辑卷同名的符号链接,就可以挂载逻辑卷文件了。
例如:一个卷组 myvg ,其中有一个mylv 的逻辑卷,那么其逻辑卷设备文件的完整路径名为/dev/myvg/mylv

df —— 列出已挂载的普通文件系统的总磁盘空间,已用磁盘空间,可用磁盘空间,以及已用磁盘空间占总磁盘空间的百分比。-h KiB MiB GiB;-H KB MB GB ,si单位,

du —— 以递归的方式显示当前目录树中所有文件的大小,du /usr/share
du -h —— 以可读的格式显示 磁盘使用报告 , du -h /var/log

挂载和卸载文件系统:
mount 命令允许root用户手动挂载文件系统。第一个参数 是 指定需要挂载的文件系统,第二个参数指定在文件系统层次结构中用作挂载点的目录
为mount命令指定磁盘分区的文件系统两种方法:
在/dev 的设备文件名称中包含文件系统
将UUID(一个通用唯一标识符)写入文件系统

lsblk 命令可以列出指定块设备或所有可用设备的详细信息

mount /dev/vdb1 /mnt/data —— 在/dev/vdb1目录上的/mnt/data 分区中挂载文件系统,一般/mnt 目录存在并用作临时挂载点,创建一个/mnt 子目录会更好

按文件系统UUID挂载:
一个稳定且与文件系统关联的标识符是UUID,属于文件系统的一部分,只要文件系统没有重新创建过,就不会改变

lsblk -fp —— 列出设备的完整路径,其UUID和挂载点,以及分区中文件系统的类型。如果未挂载文件系统,则挂载点为空
在这里插入图片描述
根据系统UUID挂载文件系统 —— mount UUID=" 6a32f09e-8935-49f2-907f-44fa0e2c0a6e" /mnt/data

如果已经登录并且使用的图形桌面环境,则在插入任何可移动存储介质时,它将自动挂载,在移除设备前,应手动将它卸载。

卸载文件系统:
关机和重新引导过程会自动卸载所有的文件系统。作为此过程的一部分,缓存在内存中的任何文件系统数据都会刷新到存储设备,从而确保文件系统不会遭受数据损坏。
umount /mnt/data —— umount命令需要使用挂载点作为参数,卸载文件系统。如果卸载的文件系统正在使用则无法卸载,所有进程都需要停止访问挂载点下的数据才能 成功执行 umount 命令
lsof /mnt/data —— 列出所给目录中所有打开文件已经访问它们的进程,识别哪些进程正在阻止文件系统成功卸载

查找系统中的文件:
locate 命令搜索预生成索引中的文件名或文件路径,并及时返回结果
find 命令 通过爬取整个文件系统层次结构来实时搜索文件。

根据名称查找文件:
locate 根据文件的名称或路径查找文件,它是从mlocate 数据库查找这些信息。
locate数据库会每日自动更新,也可以通过updatedb命令来强制即时更新。
locate 命令限制非特权用户的结果,如果要查看生成的文件名,用户必须要对文件所在的目录具有搜索权限
-i 选项不区分大小写搜索。
-n 选项限制locate 命令返回搜索结果数量

查找文件个数:
查找某文件夹下所有文件中某个字符的个数:grep ‘xxx’ * | wc -l
查看某文件夹下文件的个数:ls -l |grep “^-”|wc -l
查看某文件夹下文件的个数,包括子文件夹里的:ls -lR|grep “^d”|wc -l
说明:grep “^-”,这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d;wc -l
统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于
一行信息对应一个文件,所以也就是文件的个数。

实时搜索文件:
find 执行实时搜索来查找文件,比locate 慢,但准确度高,还可以根据文件权限,文件类型,文件大小或修改时间
调用find命令的用户必须具有查看其内容的目录的读取和执行权限。
find 命令的第一个参数是要搜索的目录。如果省略了就从当前目录搜索,并在任何子目录查找匹配项
若要按照文件名搜索文件,使用 -name FILENAME 选项。
例如:

[root@localhost ~]# find / -name sshd_config
/etc/ssh/sshd_config
[root@localhost ~]# find    /   -name '*.md'    —— 通过通配符搜索文件名,文件名用引号
[root@localhost ~]# find / -iname '*messages'   ——    -iname  不区分大小写

根据所有权或权限搜索文件:
按所有者搜索时 选项为 -user 和 -group(按名称搜索),以及-uid 和 -gid(按ID搜索)
例如:find /home/crp/ -user crp
find /home/crp/ -group crp
find /home/crp/ -gid 1000

-perm 选项用于查找具有特定权限集的文件,权限可以描述为八进制,包括读取,写入,执行。权限前面可以加上/ 或 - 符号。前面带有 / 的数字权限将匹配文件的用户,组,其他权限集中的至少一位。权限 r–r--r–的文件并不匹配/222,权限为rw-r–r--才匹配,权限前 - 符号标识该位的三个实例都必须存在,因此前面两个示例都不匹配,但诸如rw-rw-rw对象则匹配,
例如:
匹配用户具有读取,写入,执行权限;组成员具有读取,写入权限,并且其他人只具有只读权限
find /home -perm 764
匹配用户至少具有写入和执行权限,并且组至少具有写入权限,并且其他人至少具有读取权限
find /home -perm -324
匹配用户具有读取权限,或者组至少具有读取权限,或者其他人至少具有写入权限
find /home -perm /442

与/ 或者 - 一起用时,0类似通配符,表示至少无任何内容的权限

根据大小搜索文件:
-size 加上数字值与单位来指定,-size 单位: k 千字节;M 兆字节;G 千兆字节
例如:
find -size 10M —— 搜索大小为10兆的文件
find -size +10G —— 搜索大小超过10千兆的文件
find -size -10K —— 搜索大小不到10kb的文件

根据修改时间搜索文件:
-mmin n —— n表示分钟时间,搜索在n分钟之前修改的所有文件,文件的时间戳时钟向下舍入
-mmin +n —— 表示搜索n分钟之前修改的所有文件
-mmin -n —— 表示n分钟内修改的所有文件

根据文件类型搜索文件:
-type 将搜索范围限制为给定的文件类型;
f —— 普通文件
d —— 目录
l —— 软链接
b —— 块设备
-links 选项加上数字,查找具有特定硬链接数的所有文件,+ 硬链接数超过的文件,-硬链接数小于所给数目的

-exec 匹配所有搜索结果
-exec cp {} /dir 将匹配到的文件复制到/dir目录
-exec 参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。
{} 花括号代表前面find查找出来的文件名。
示例:find / -name ‘*.txt’ -mtime -30 -size -20k -perm -100 -exec cp {} /home/crp/ ;

总结:
存储设备由一个特殊文件类型表示,其称为块设备
df命令可报告所有已挂载的普通文件系统的总磁盘空间,已用磁盘空间和可用磁盘空间
mount 命令允许root用户手动挂载文件系统
所有进程都需要停止访问挂载点才能成功卸载设备
在使用图形环境时,可移动存储设备挂载到/run/media目录
find命令在本地文件系统中执行实时搜索,以根据搜索条件查找文件

第16章 P555

分析服务器和获取支持

web控制台时适用于Linux8的web型管理界面,专为管理和监控你的服务器而设计,基于Cockpit服务

启用web控制台:
yum install cockpit —— 安装web控制台
systemctl enable --now cockpit.socket —— 启动控制台
firewall-cmd --add-service=cockpit --permanent —— 添加端口号9090
firewall-cmd --reload —— 重启防火墙
浏览器中打开:http://servername:9090 ,servername是服务器主机名或者IP地址

从红帽客户门户网站获取帮助: P574
https://access.redhat.com/help/

通过红帽只能分析工具检测和解决问题:
分析结果一般显示在红帽智能分析控制台上:https://cloud.redhat.com/insights
安装:安装insights-client 软件包
注册系统:insights-client --register
刷新元数据 : insights-client
将RHEL系统注册到红帽智能分析工具:subcription-manager register --auto-attach

总结:
web控制台是一个基于Web的服务器管理界面,它的基础是开源Cockpit服务
web控制台是提供系统性能图表,用于管理系统配置和检查日志的图形工具,以及交互式终端界面
通过红帽客户网站,可以访问红帽产品下的文档,下载项目,优化工具,支持案例管理,以及订阅和权力管理
redhat-support-tool是一个命令行工具,可用于从服务器命令行查询知识库并操作支持案例
红帽智能分析工具是一种基于SaaS的预测分析工具,可以帮助识别和修复系统的安全性,性能,可用性,和稳定性威胁

P595

总复习:

第五章:创建,查看和编辑文本文件
第六章:管理本地用户和组
第七章:控制对文件的访问
第八章:监控和管理Linux进程

案例:

从命令行管理文件 P602

管理用户,组,权限以及进程 P610

配置和管理服务器 P617

管理网络 P624

挂载文件系统和查找文件 P631

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值