Linux学习笔记(RHEL8版本)

Linux
特点:开源,安全,稳定

发行版本:
Fedora deepin 个人办公 Debian 系统开发
Ubuntu 软件开发 redhat Centos 服务器
应用:服务器,云计算,大数据,软件开发
涉及岗位:售前,售后:测试,实施,运维,
相关证书:rhce红帽认证工程师

rhel8
一.终端命令行
语法: 主命令 选项 参数

快捷键: ctrl + l =clear

​ ctrl+shift + 放大终端字体

​ ctrl - 减小终端字体

​ alt . 调用上一条命令的参数

[root@localhost ~]# :

root为当前终端用户 localhost为域名 ~为路径

history !数字 :查看当前用户使用过的命令并调用

hostname 查看主机名

hostnamectl set-hostname name 更改主机名

二.文件系统结构
linux系统是由文件组成的

linux系统中最大的目录为根目录

绝对路径: 从根目录开始 /

相对路径:相对当前位置描述目的位置

pwd 查看当前终端路径位置(绝对路径)

cd 目录路径 切换目录

cd ~ 切换到当前用户家目录

cd / 切换到根

cd … 切换上级目录

cd . 切换到当前位置(刷新)

cd - 切换到上一次位置

特殊目录
bin 普通用户命令 sbin超级管理员命令 boot 引导 dev 驱动

lib lib64 函数库 media run/media u盘访问位置 run 进程信息

mnt 挂载(映射) opt软件安装位置 proc 进程 srv var 素材文件

sys 系统驱动 tmp 缓存文件 usr 可执行的文件

etc存放系统及软件配置文件 home存放用户家目录,其本身不是家目录

文件系统结构:19个固定功能的目录组成

三.文件目录管理
1.创建
mkdir 目录路径 创建目录

mkdir -p 递归创建

touch 文件目录 创建文件

2.删除
rm -rf 路径 强制删除内容不提示

3.复制与剪切,重命名
cp 要复制的源 目的位置 把内容复制到目的位置

cp -a :相当于 -pdr 的意思bai(参数pdr分别为:保留权限,复制du软链接本身,递归复制);

cp -R 要复制的递归目录 目的位置 递归复制目录到目的位置

cp -p 要复制的文件 源文件保持属性不变的复制

注:目的位置不存在,复制或剪切操作就变成复制+重命名

mv 内容路径 目的位置 剪切文件或文件夹到目的位置

4.打包压缩
tar -cvf 压缩文件名称(多个可以间隔) 要压缩的文件(用相对路径) 创建压缩文件

tar -tvf 压缩文件名称 查看压缩文件

tar -xvf 压缩文件名称 -C 解压位置 解压压缩文件

带格式的压缩 -J xzip

​ -j bzip2

​ -z gzip2

file 文件路径 查看文件格式

5.查看文件或目录
ls 选项 参数

ls -al /路径 查看所有文件,包括隐藏内容( . 开头的文件)

ls -dl /路径 查看目录本身的详细信息

ls -hl /路径 查看目录内容下详细信息,大于1k的显示单位

ls -i 查看inode编号

dr-xr-x—. 17 root root 4096 Jul 21 07:37 root

d:文件类型 -普通文件 l链接文件 b块设备 c字符设备

root root 所属 所属组

cat 文件路径 输出文件内容到终端

tac 文件路径 倒序输出

head/ tail -n 数字 查看文件(前/后n行)

tail -f 文件路径 动态查看文件后半部分内容

​ 例子: ping 127.0.0.1 > 123

​ tail -f 123

more / less 文件路径 以阅读模式查看文件

ln 选项 源文件/源目录 目标路径 为目录或文件创建链接(软或硬)

数据 = 数据本身 + 元数据(数据的描述信息)

inode 编号 : linux系统用于读取查找文件的依据信息

软链接: 为文件创建快捷方式,两个文件两个inode,但数据内容一致

硬链接: 为文件创建备份,inode一致(修改链接文件不会改变源文件)

ln -d 源目录路径 目标路径 为目录创建硬链接

ln -s 源文件或目录路径 目标路径 为文件或目录创建软链接 (源文件或目录用绝对路径)

6.查询文件/筛选文本
find 范围 搜索条件(-name) 查找某个文件 (范围越小越好)

查询条件: -name 名称 -iname 名称(不区分大小写)

​ -size 大小 (+1M 大于1M , -1M 小于1M)

​ -user 用户名 按用户名称查找

find 范围 搜索条件 -exec cp {} 目的位置 ;

​ 注: -exec 参数可以将 find查到的内容进行复制移动或删除,但是尽量不要用-name

grep 选项 关键字 文件路径 搜索文件中关键字,以行的形式显示在终端

管道符 | 左边的输出变成右边的输入

例: cat file1 | grep a 搜索file1中包含a的内容

重定向 > 正确输出 ( < 输入 )

​ 2> 错误输出 (报错信息)

​ >> 正确输出重定向,不覆盖(追加) 2>> 错误输出,不覆盖

正则表达式

*任意字符任意长度

.或? 单字符任意匹配

关键字$ 以关键字结尾

^关键字 以关键字开头

(x…y) 连续匹配

(x,y) 不连续匹配

四.vim编辑器
命令模式
nyy 复制光标所在下n行

p 粘贴到光标下一行

ndd 多行剪切

编辑模式
i 从当前光标位置进入编辑模式 a 当前光标的后一位 o当前光标的下一行

以上可测试大小写

底行模式
或 /关键字 查询关键字

:wq!
行数1,行数2s /关键字1/关键字2/gc 内容替换(加c,单个替)

set nu 显示行号

sp 第二个文件的路径 分屏编辑文件(ctrl+ww 切换)

五.用户管理
用户: 操作并使用操作系统的角色

超级管理员用户: root uid为0

系统用户:系统服务及软件所使用的角色 uid为1~999

普通用户: 手动创建的角色 uid为1000~

用户配置文件: /etc/passwd

root❌0:0:root:/root:/bin/bash

username : password : UID : GID : GECOS(注释) : /home/dir(家目录) : shell类型(命令解释器)

用户组: 系统中某些特征相同或相似的用户组成的集合

默认情况下系统中创建一个用户会出现与之相同名称的用户组

主组:创建用户时默认的同名组 副组: 用户额外加入的分组

用户密码配置文件: /etc/shadow

id 用户名 查看用户简略信息

passwd 用户名 设置用户密码

useradd 选项 用户名 创建用户

usermod 选项 用户名 修改用户信息

选项: -u 指定uid

​ -g 指定gid或主组

​ -c 注释信息

​ -h 家目录路径 指定用户家目录

​ -s 指定shell类型

userdel -rf 用户名 删除用户(-rf 才能完全删除用户及其痕迹)

usermod -G 组名1,组名2 -a 用户名 添加一个用户到指定的组,但是以前添加的组就会清空掉。

用户组管理
gpasswd 选项 用户名 组名

想要添加一个用户到一个组,同时保留以前添加的组时,请使用 gpasswd 这个命令来添加操作用户:gpasswd -a user_name group_name

可选项参数:

-a:添加用户到组;
-d:从组删除用户;
-A:指定管理员;
-M:指定组成员和-A的用途差不多;
-r:删除密码;
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。
groupadd 选项 组名 创建组

groupmod 选项 组名 修改组

groupdel -rf 组名 删除组

groups 用户名 显示用户所属的组

sudo 命令 临时以root用户执行该命令

​ 默认情况下只有wheel分组的用户才能使用,该设定的配置在/etc/sudoers 文件中

su - 用户名 切换用户 切换之后exit退出

单用户模式下修改root密码
重启,在系统开机选择系统时,默认第一个,按下e进入引导

在kernel为首的行尾,在行尾输入 rd.break ,按下ctrl+x,进入单用户模式

#mount -o remount,rw /sysroot 将根目录重新挂载

#chroot /sysroot/

#passwd root

#touch .autorelabel 更新selinux

#exit

#exit

usermod -s /sbin/nologin user 修改用户shell类型

六.权限管理
1.基本权限
r=4 w=2 x=1

drwx r-x r-x. 所属用户 所属组(组内的用户) 其他用户

​ 文件 目录

r 是否读取文件内容 读取目录下内容的详细信息

w 修改 管理目录下的内容

x 执行二进制命令文件 是否能切换进目录

命令语法

chown 所属人:所属组 文件路径 修改文件所属

chown -r 所属人:所属组 目录路径 修改目录及子目录所属

chown 数字(777,740,等等) 文件目录或路径 按数字修改权限

​ 给所有人/tmp最高权限: chown -r 777 /tmp

chmod 角色动作权限 文件目录路径

​ 角色: u(user) g(group) o(other) a(all) 动作:+ -

2.特殊权限
suid(u+s) sgid(g+s) sbit(o+t)

suid,sgid ----> 可执行文件

sgid,sbit —> 目录

suid: 对可执行文件,如果该文件有此权限,任何可以执行此文件的用户都将以该文件所属人的身份执行,例如修改密码的操作,是借用root身份完成的

sgid: 针对此目录,如果该目录有权限,此目录下创建的子目录将继承sgid权限以及其父目录的所属组,但子文件只会继承所属组权限

sbit: 针对于共享目录,如果此共享目录有此权限,那么除root以及共享目录所属人之外的其他用户在此目录下只能管理属于自己的内容

suid 用s标示到所属人x位,若无x权限,那么s大写,对应数字4

sgid 用s标示到所属组x位,若无x权限,那么s大写,对应数字2

sbit 用s标示到其他用户x位,若无x权限,那么x大写,对应数字1

例,给tmp增加sbit权限 chmod 1777 /tmp

​ 给tmp增加sgid权限 chmod g+s /tmp

例: 将passwd命令文件的suid权限去掉,然后使用普通用户修改自己密码,观察现象

3.权限访问控制 facl
针对单个用户或单个用户组

getfacl 目录 查看目录的facl

setfacl -m u:用户名:—(rwx) 路径 给目录或文件设定单独用户权限(任意设定)

​ setfacl -m u:zhangsan:— /

setfacl -m g:用户组名:—(rwx) 路径 给目录或文件设定单独用户组权限

setfacl -x u:用户名 路径 删除特定的 facl

​ setfacl -x u:zhangsan /

setfacl -b 清空 facl

mask 用于限制facl设定的权限大小,默认以facl最大权限(rwx)为准 注:限制的是文件所属人和所属组的权限

setfacl -m mask:权限 目录或文件路径 设定mask值限制权限

​ setfacl -m mask:r-- /etc

​ 如果先设置mask值,再设置与用户的特殊权限,则前面的操作会被重置

4.umask值修改
umask 值决定了创建目录或文件的默认权限,文件与777取反,目录与666取反

vim /etc/bashrc

此文件是shell脚本,运行时需要用source方式,修改目录,在当前终端立即生效

七.网络配置
基础命令
enp4s0f1

en: 以太网 p:总线 s:插槽

ip addr 查看网卡信息

ifconfig 查看网卡信息

route 查看路由信息

tracepath 网址 追踪路由

ip link show 查看本地链路

配置网卡
设置-图形化界面

控制面板配置: nm-connection-editor 打开图形化网卡配置

类图形化: nmtui

通过配置文件配置网卡信息:/etc/sysconfig/network-scripts/ifcfg-网卡名称

TYPE=“Ethernet” 链接类型
BOOTPROTO=“dhcp” 地址获取方式

DEFROUTE=“yes” 默认路由是否开启

NAME=“ens160” 链接名称
UUID=“d3058275-0219-49ce-8a0b-778a5b4cab9a” 设备唯一识别号
DEVICE=“ens160” 链接启用在那个网卡上
ONBOOT=“yes” 网卡服务启动时默认启动哪个链接

ipaddr 配置网卡ipv4地址

prefix 掩码

gateway 网关

dns1 dns服务器

nmcli device

nmcli connection show

nmcli connection up 链接名称 启用该链接

nmcli connection down 链接名称 不启用该链接

nmcli connection delete 链接名称或uuid 删除链接

nmcli connection modify 链接名 参数 修改此链接

nmcli connection add type ethernet ifname ens160 con-name ens ipv4.method manual ipv4.address 192.168.25.110/24 ipv4.gateway 192.168.25.2 ipv4.dns 192.168.25.2 connection.autoconnect yes

新建网卡链接,创建一个Ethernet类型的链接在ens160网卡上面,链接名为ens,手动获取地址,地址为192.168.25.110/24 网关为192.168.25.2 dns地址为 192.168.25.2 切当网卡启动时自动启用该链接

修改网卡配置
ifconfig

cd /etc/sysconfig/network-scripts/

ll ifcfg-*

vim ifcfg-ensXXX

systemctl restart network

验证网络链接
查看本地链路 ip link show

显示性能统计信息 ip -s link show ens160

显示内容包括:收到(RX)和传出(TX)的数据包数,数据包错误数,丢弃的数据包数
查看网卡 ip addr show ens160

追踪路由 traceroute access.redhat.com (tracepath)

端口和服务故障排除
ss 显示套接字统计信息

ss -ta
八.selinux 安全的linux
三大状态:开启状态,监听状态,关闭状态

/etc/selinux/config

enforcing : 开启状态,此状态下selinux处于启动状态,监听系统,拦截违法操作,并且告警管理员

permissive : 监听状态 此状态下selinux 不会拦截违法操作 ,但会告警

dissabled : 关闭状态

selinux状态判断依据:

上下文 某个服务或应用的专属标签
上下文是文件,端口,进程的一种标签属性,selinux通过观察文件或端口的上下文是否与相关服务动作匹配,如果匹配,则允许操作,不一致则阻拦

ls- Zl 查看文件或目录的上下文

semanage port -l 查看所有端口上下文

netstat -anp | grep 端口号 查看端口使用情况

​ -a 显示所有socket,包括正在监听的。  -n 以网络IP地址代替名称,显示出网络连接情形。  -p 显示指定协议信息。

semanage fcontext -a -t admin_home_t ‘/tmp/123(/.*)?’ 修改 /tmp/123 文件的上下文为 admin_home_t

restorecon -RFv 文件或目录路径 更新上下文

semanage port -a -t http_port_t -p tcp 8089 修改 tcp端口 8089的上下文为 http_port_t

布尔值 : 系统和服务程序功能开关
getsebool -a 查看布尔值

setsebool -P 布尔值 on/off 设置布尔值开关

九.守护进程
1.系统启动过程
加电自检 —> 加载BIOS系统固件 —> 读取bios系统设置找到引导 (引导方式) —> 引导完成后按配置加载对应系统

内核态 , 用户态

systemd 为系统内核加载启动的第一个进程 pid 为1,之后由此进程启动其他开机启动项,(根据 /etc/systemd/system/ 目录下设定好的启动服务进行启动),所以systemd为所有进程的父进程,也称守护进程.

2.rhel8的四个目标态
graphical.target 多用户,支持文本,图形化状态
multi-user.target 多用户,支持文本,命令行状态
rescue.target sulogin登录提示,系统基本初始化完成
emergency.target sulogin 登录提示,系统以只读方式挂载到 /
用户切换目标态 : systemctl isolate 目标态(上面的1~4)

用户设定默认目标态 : systemctl set-default 目标态

查看系统目标态: systemctl get-default

注 : init 2 命令行模式 init5 图形化界面

十.进程管理
进程之间关系 : 父与子

pstree 查看系统进程树

ps -aux 静态查看系统所有进程

top 动态查看 系统所有进程

按下: P–cpu 存储 排列 ; M–内存排列 ; T–运行时间排列
ps -lax 以长列表查看

kill 信号 pid

查看信号 man 7 singal
kill pid 杀死进程(默认参数为-15)

kill -9 pid 强制关闭进程

进程优先级 :
pr : 动态优先级 , 由cpu计算得出

ni : nice值,可以人为影响pr优先级 ( n = -20~19)

指定nice值运行进程 nice -n n 命令

对正在运行进程的nice值进行修改 renice -n n pid

作业管理
jobs 查看终端运行的作业

kill %作业号 关闭作业

ctrl + z 将作业放到后台暂停运行

fg %作业号 将后台运行的作业调度到前台运行

bg %作业号 将后台暂停的作业在后台恢复运行

命令 + & 在后台运行此命令

注 : 前台只允许运行一个进程

十一.计划任务
1.定时任务
at hh:mm yy-mm-dd 创建一个定时任务

​ echo XXX > /root/atjobs

​ sync 同步

​ ctrl + d 停止

atq 查看现有的定时任务号

at -c 任务号 查看任务内容

atrm 任务号 删除定时任务

2.周期性计划任务
在无人值守时,服务器自动周期性运行计划任务

crontab -e 创建周期性计划任务

crontab -r 删除当前用户周期性计划任务

crontab -l 查看当前用户周期性计划任务

crontab -e -u 用户名 只有root能指定其他用户的计划任务

分 时 日 月 周 任务

#每周一早上8点执行一次

  • 8 * * 1 echo XXX

#每周末凌晨1点到3点,每隔30分钟执行一次
0 1,1.5,2,2.5,3 * * 7 echo 123
1
2
3
4
5
任意时间用*

x,y 不连续的两个时间点

x-y 连续的时间点

*/n n是间隔时间,每隔n个间隔

十二.软件安装
编译安装 --> rpm安装 --> yum安装

rpm软件安装主要用于单个软件安装包安装

yum用于多个安装包打包安装,yum可以解决软件依赖性关系和顺序问题,但需要提前设定好软件仓库

软件安装包来源 : 本地镜像,网络下载单个安装包,

https://mirrors.tuna.tsinghua.edu.cn/centos/8/isos/x86_64/CentOS-8.2.2004-x86_64-dvd1.iso

yum安装需要编写yum源文件指向本地镜像或网络镜像,系统才能查询到安装包, yum源路径 /etc/yum.repos.d/name.repo

vim /etc/yum.repos.d/linux1.repo

本地镜像yum源文件
仓库名称

是否启用仓库

是否进行gbg检测 检测镜像完整性

镜像路径 (本地镜像 file://路径 网络镜像 http://路径)

查看本地镜像路径 df -hT sr0设备的挂载点

网络镜像源yum文件内容
https://mirrors.tuna.tsinghua.edu.cn/centos/8/AppStream/x86_64/os/

https://mirrors.tuna.tsinghua.edu.cn/centos/8/BaseOS/x86_64/os/

两个文件源不能一致

yum clean all 清除缓存

任务 命令
按名称列出以安装和可用的软件包 yum list [NAME-PATTERN]
列出以安装和可用的组 yum group list
按关键字搜索软件包 yum search KEYWORD
显示软件包的详细信息 yum info PACKAGENAME
安装软件包 yum install PACKAGENAME
安装软件包组 yum group install GROUPNAME
更新所有软件包 yum update
删除软件包 yum remove PACKAGENAME
显示事务历史记录 yum history
模块流
模块流 : 进一步将某应用的所有支持软件及插件全部打包,按不同版本分不同流,每次系统安装只能安装一个版本的

yum module info --profile 软件包名 列出模块内置包信息

yum module list 列出当前镜像源中的所有模块

yum moudule 使用举例:

yum module enable mariadb 启用mairadb模块
yum module install mariadb 安装mariadb 模块中的软件安装包
yum module update 模块名称 更新模块中的安装包
yum module disable 模块名称 禁用模块流
yum module remove 模块名称 卸载模块中的安装包
十三.硬盘管理
linux 系统根据硬盘接口不同,命名不同

IDE : hd scls ,sata : sd 虚拟机硬盘 : vd

硬盘处理流程 : 分区 ----格式化 (制作文件系统) ----挂载(映射)

ntfs fat32

第一步:分区
分区方案 : MBR(主引导记录) , GPT
MBR分区信息表占64字节,一个分区占16字节,GBT远超MBR分区方案,理论分区数量可达128个,命令为gdisk
mbr分区方案中,分区有三种类型 :
主分区 (占用分区信息表) , 扩展分区(占用分区信息表) , 逻辑分区(不占分区信息表)

MBR 命令: fdisk 硬盘路径(/dev/sda) 使用fdisk命令进行分区
​ partprobe 硬盘路径 更新硬盘分区到系统
​ lsblk 查看系统中块设备信息

第二步:格式化
mkfs.xfs(任意文件系统格式) sda1(任意分区路径) 格式化分区

blkid /dev/sda1(sdb1…) 查看系统中所有格式化后分区的文件系统格式

常见的文件系统格式 : ext2,3,4 , fat32 , xfs , iso9660 , ntfs

第三步:挂载
临时挂载 : mount 要挂载的分区路径 挂载点目录路径 (要挂载到哪个路径)

卸载挂载 : umount

永久挂载 : 手动配置 /etc/fstab 文件编写挂载信息
要挂载的分区路径 挂载点目录路径 文件系统格式 挂载选项 0 0
/dev/sda1 /mnt1 xfs defaults(默认挂载选项) 0(不进行文件系统完整性校验) 0(不进行kdump备份)

df -hT 查看系统中挂载信息

mount -a 重新读取fstab文件

第四步:交换分区
交换分区又称虚拟内存,主要空间来源为硬盘空间,当物理内存不足时,系统调用交换分区空间充当内存,但交换分区速度远远不及物理内存,只应急使用

格式化 : mkswap 分区路径 将普通分区格式化为swap分区

挂载 : vim /etc/fstab

书写格式 : 交换分区路径 swap swap defaults 0 0

相关命令:

swapon 查看系统的交换分区

swapon -a 启用系统中所有的交换分区

swapon 交换分区路径 指定启用某一交换分区

swapoff 交换分区路径 关闭某一交换分区

swapoff -a 关闭系统中所有交换分区

十四.逻辑卷管理
逻辑卷技术(lvm)
解决了传统硬盘分区无法进行分区大小灵活调整的问题

pp : 物理分区(可以是主分区,也可以是逻辑分区)
pv : 物理卷(由物理分区创建,一个分区一个卷)
vg : 卷组(由多个或单个分区组成)
lv : 逻辑卷(从卷组中创建,可灵活调整)
le , pe : 逻辑卷物理单元,默认单个4M ,大小可调,但必须是4的倍数

创建:

pvcreate 分区路径 (例如/dev/sda1)

vgcreate 卷组名 要添加到卷组的物理卷路径

lvcreate -n 逻辑卷名 -L 空间大小 卷组名

lvcreate -n 逻辑卷名 -l pe个数 卷组名

删除:

pvremove 物理卷 删除物理卷

vgremove /dev/卷组名 删除卷组

lvremove /dev/卷组名/逻辑卷名 删除逻辑卷

扩容:

vgextend 卷组名 物理卷路径

lvextend -L +大小 /dev/卷组名/逻辑卷路径

lvextend -l +pe个数 /dev/卷组名/逻辑卷路径

缩减:

vgreduce 卷组名 物理卷路径

lvreduce -L -大小 /dev/卷组名/逻辑卷路径

lvreduce -L -pe个数 /dev/卷组名/逻辑卷路径

调整:lvresize -L 大小 /dev/卷组名/逻辑卷路径(扩容或者缩减)

【lvm管理过程】
(1)挂载物理磁盘;
(2)将物理磁盘初始化为物理卷PV;
(3)将一个或多个物理卷PV转变为一个卷组VG;
(4)从VG中创建逻辑卷.
(5)根据实际需要将逻辑卷挂载使用.
(6)根据需要对磁盘or逻辑卷进行扩展和缩减.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值