一. 总结通配符,管道,重定向,并且结合示例,添加注释信息
1.1、通配符
1.1.1、通配符*,匹配任意字段的任意字符
ls *.yml #查出所有当前目录下所有.yml结尾的文件
1.1.2、?,匹配任意一个字符
ls test?.yml
1.1.3、[ ],匹配[ ]内的任意单个字符
ls statefulset[0-9].yml
1.1.4、[!] 和[^],表示不包含[]内的任意字符
ls statefulset[!2].yml
ls statefulset[^2].yml
1.1.5、{ },生成组合匹配
touch file{1..5}.txt
1.2、| ,管道符用于将一个命令的输出作为另一个命令的输入
cat pod.yml | grep kind #输出关键字本行
cat pod.yml | grep -A 3 kind #输出关键字本行及下三行
cat pod.yml | grep -B 3 kind #输出关键字本行及上三行
cat pod.yml | grep -C 3 kind #输出关键字本行及上下各三行
1.3、重定向
1.3.1、>,结合echo等命令将>左右内容输入至>右边(覆盖)
echo "text" > file1.txt
1.3.2、>>,结合echo等命令将>左右内容输入至>右边(追加)
echo "test" >> file1.txt
1.3.3、2>,将错误重定向输入到文件
#任意输入错误信息,使shell有返回
qweqwe
#将错误信息重定向至 error.txt中
qweqwe 2> error.txt
#查看返回内容
cat error.txt
1.3.4、&> ,将标准输出和标准错误都重定向到文件
#输入错误和正确的命令
cat file1.txt wqeqeq
#将输入错误和正确的命令输入至all.txt中
cat file1.txt ; wqeqeq > all.txt
#查看结果
cat all.txt
2. 总结linux用户和用户组相关知识点以及常见的操作命令,添加注释信息
2.1、基本概念
用户(User):Linux系统中每个使用者都有一个独立的账户;
用户组(Group):用户的集合,用于权限管理;
UID/GID:UID用户的唯一标识,GID用户组的唯一标识;
2.2、用户管理命令
2.2.1、useradd
useradd test # 创建用户(使用默认设置)
useradd -u 1500 test1 # 创建用户并指定UID为1500
useradd -g test1 test2 # 创建用户并指定主组
useradd -G test1 test3 # 创建用户并加入附加组
useradd -s /bin/bash test4 # 创建用户并指定shell
useradd -d /custom/home test5 # 创建用户并指定自定义家目录
2.2.2、userdel
userdel test4 # 删除用户(保留家目录)
userdel -r test5 # 删除用户并删除家目录和邮件池
2.2.3、usermod
usermod -l testnew test # 修改用户名
usermod -u 1600 testnew # 修改用户UID
usermod -g test1 testnew # 修改用户主组
usermod -aG test3 testnew # 将用户添加到附加组(-a追加,不加会覆盖原有附加组)
usermod -s /sbin/nologin testnew # 修改用户shell(禁止登录)
usermod -L testnew # 锁定用户账号
usermod -U testnew # 解锁用户账号
2.3、用户组管理命令
2.3.1、用户组创建
groupadd test666 # 创建组
groupadd -g 2000 test777 # 创建组并指定GID
2.3.2、用户组删除
groupdel test666 # 删除组(组内不能有用户)
2.3.3、用户组修改
gpasswd -a testnew test777 # 将用户添加到组
gpasswd -d testnew test777 # 将用户从组中移除
三、 总结文件权限管理相关的知识点,包括权限位,特殊权限和ACL,添加详细的注释和解释
3.1、文件权限说明
ls -ld oracle/
drwx------ 2 oracle oracle 83 Nov 17 15:15 oracle/
d --目录
r --读取:4(数字表示)
--对文件而言,用户具有读取文件内容的权限
--对目录而言,该用户具有浏览目录内容的权限
w --写入:2(数字表示)
--对文件而言,用户具有新增、修改文件内容的权限
--对目录而言,该用户具有删除、移动目录文件的权限
x --执行:1(数字表示)
--对文件而言,该用户具有执行文件的权限
--对目录而言,该用户具有进入目录的权限
ls -ld oracle/
drwx------ 2 oracle oracle 83 Nov 17 15:15 oracle/
d --文件类型
rwx --属主权限:u(符号表示)
--- --属组权限:g(符号表示)
--- --其他权限:o(符号表示)
所有权限:a(符号表示)
3.2、更改权限命令
3.2.1、chmod
chmod [u g o a] [+ - =] [rwx...] 文件名
+ 表示增加权限
- 表示删除权限
= 表示分配权限,同时将原有权限删除
-R 递归方式
##范例
# 给同组用户分配执行权限
chmod g+x test
# 给所属主、同组和其他用户分配读、写和执行权限
chmod u+rwx,g+rwx,o+rxw test
chmod a+rwx test
chmod 777 test
# 删除属主、同组的读和执行权限
chmod u-rx,g-rx test
# 将整个目录mydir与其中的文件和子目录的权限都改成读写执行
chmod -R 777 mydir
3.2.2、chown
格式及参数:
chown [参数] 用户[:或.组] 文件或目录
-R 递归处理
说明: chgrp只改变属组
##范例
# 将file文件属主改为test,属组改为demo
chown test.test file1.txt
# 将file目录及子文件属主改为test,属组改为demo
chown -R test:test file1.txt
3.3、特殊权限位
chmod u+s file1.txt # 表示文件可以备任何人执行
chmod g+s filedir # 表示目录下的子文件的属组继承filedir的
chmod o+t file1.txt # 表示文件不可被其他用户删除
3.4、ACL权限控制
# 查看ACL
getfacl file1.txt # 显示文件ACL信息
# 设置ACL
setfacl -m u:testnew:rwx file2.txt # 为用户设置rwx权限
setfacl -m g:test3:r-x file3.txt # 为组设置r-x权限
setfacl -m o::r-- file4.txt # 设置其他用户权限
# 删除ACL条目
setfacl -x u:testnew file2.txt # 删除用户ACL条目
setfacl -x g:test3 file3.txt # 删除组ACL条目
# 递归设置ACL
setfacl -R -m u:testnew:rwx dir # 递归设置目录ACL
# 删除所有ACL条目
setfacl -b dir # 删除所有扩展ACL条目
# 设置默认ACL(新创建文件继承)
setfacl -d -m u:username:rwx dirname # 设置目录默认ACL
演示(其他类似不一一演示)
四、总结程序包管理器有哪些,以及包中包含什么内容的文件,尝试这些文件如何获取命令获取?yum/dnf/apt总结程序包获取途径,以及rpm, yum, apt命令选项示例。
4.1、包管理工具分类
包管理系统 | 发行版 | 前端工具 | 底层工具 | 包格式 |
---|---|---|---|---|
RPM | RHEL/CentOS/Fedora/Rocky | yum/dnf | rpm | .rpm |
DPKG | Debian/Ubuntu | apt/apt-get | dpkg | .deb |
4.2、包名字说明
#rpm/deb包实例
openssh-clients-8.7p1-43.el9.x86_64.rpm # rpm包
openssh-client_8.9p1-3ubuntu0.6_amd64.deb # deb包
openssh-clients/openssh-client # 描述软件名
8.7p1/8.9p1 # 软件版本号
43.el9/3ubuntu0.6 # 软件包的发行版号
x86_64/amd64 # 软件架构 noarch表示不限架构
4.3、查看包中内容
4.3.1、rpm包
rpm -qpl rpm -qpl vsftpd-3.0.5-6.el9.x86_64.rpm # 列出包内所有文件(未安装)
rpm -qpi vsftpd-3.0.5-6.el9.x86_64.rpm # 查看包信息(未安装)
rpm -ql vsftpd # 列出已安装包的所有文件
rpm -qi vsftpd # 查看已安装包的详细信息
rpm -qc vsftpd # 只列出配置文件(已安装)
rpm -qd vsftpd # 只列出文档文件(已安装)
rpm -qf /usr/share/man/man8/vsftpd.8.gz #查看文件属于哪个包
4.3.2、deb包
dpkg -c vsftpd_3.0.5-0ubuntu1.1_amd64.deb # 列出包内所有文件(未安装)
dpkg -I vsftpd_3.0.5-0ubuntu1.1_amd64.deb # 查看包信息(未安装)
dpkg -L vsftpd # 列出已安装包的所有文件
dpkg -s vsftpd # 查看已安装包的详细信息
dpkg -S /etc/ssh # 查看文件属于哪个包
4.4、软件包获取途径
4.4.1、RPM包获取途径
软件源配置:/etc/yum.repos.d/
目录下的.repo文件
(1)、官方仓库(配置在.repo文件中)
(2)、第三方仓库(如EPEL)
(3)、手动下载rpm包
4.4.2、DPKG包获取途径
软件源配置:/etc/apt/sources.list
和 /etc/apt/sources.list.d/
(1)、官方仓库(配置在sources.list中)
(2)、第三方仓库(通过add-apt-repository添加)
(3)、手动下载deb包
五、简要总结yum/dnf工作原理。并搭建私有yum仓库(base, epel源)给另一个虚拟机使用。
5.1、总结
yum/dnf工作原理
yum
和 dnf
是基于 RPM 的包管理工具,主要通过读取配置文件中定义的仓库(repo)信息,从远程服务器下载软件包及其依赖,并自动安装、升级或卸载。
5.2、自建仓库
Rocky 9.4安装私有Yum仓库及同步仓库数据(学习笔记)_rockey yum.repo-CSDN博客
Rocky9.4做Ubuntu22.04仓库(学习笔记)_rocky9和ubuntu-CSDN博客
六、简要总结apt的工作原理
apt
是 Debian 系列系统的包管理工具,它通过读取本地的包索引(从配置的仓库同步),根据用户指令解析软件包及其依赖关系。apt
会自动下载所需的 .deb
包,并调用 dpkg
完成实际安装、升级或卸载操作。
七、编译安装课程演示的软件进行步骤总结(以Nginx为例)
7.1、解压源码包
tar -xzvf nginx-1.26.3.tar.gz
7.2、指定安装路径
#指定安装目录位/data/nginx
./configure --prefix=/data/nginx
检测结果可以安装
7.3、编译安装
#编译
make
#安装
make install
#若确认不会有错可以直接简写成
make && make install
make结果
make install 结果
7.4、检测服务
#创建用户
useradd -s /sbin/nologin nginx
#修改目录权限
chown nginx:nginx /data/nginx
#启动服务
/data/nginx/sbin/nginx
#检测端口
lsof -i:80
八、 总结文件时间戳的用法
8.1、文件时间戳类型
(1)、访问时间 (atime):文件最后被读取的时间
(2)、修改时间 (mtime):文件内容最后被修改的时间
(3)、变化时间 (ctime):文件元数据(权限、所有者等)最后被改变的时间
8.2、查看时间戳
stat file1.txt # 查看完整时间信息
ls -l file1.txt # 显示mtime(默认)
ls -lu file1.txt # 显示atime
ls -lc file1.txt # 显示ctime
8.3、修改时间戳
touch file1.txt # 将所有时间戳更新为当前时间
touch -t 202501011200 file1.txt # 设置为指定时间(格式: [[CC]YY]MMDDhhmm[.ss])
touch -d "2 days ago" file1.txt # 使用相对时间
touch -a file1.txt # 只更新访问时间
touch -m file1.txt # 只更新修改时间
九. 总结find和xargs的用法
9.1、总结find命令
格式:
find [目录] [条件] [动作,可省略]
参数:
-name #文件名
-iname #文件名,不区分大小写
-user #用户名
-group #组名
-nouser #没有主得文件
-nogroup #没有属组得文件
-uid #根据uid
-gid #根据gid
-perm mode #精准权限查找
-perm /mode #任意满足
-perm -mode #全满足
-size[+][-] #根据大小搜索+表示大于,-表示小于
-type #根据文件类型查找(天)
-atime #根据访问时间(天)
-mtime #根据数据修改时间(天)
-ctime #根据元数据修改时间(天)
-type #根据文件类型查找(天)
-amin #根据访问时间(分钟)
-mmin #根据数据修改时间(分钟)
-cmin #根据元数据修改时间(分钟)
-print #打印搜索结果
-exec #结果执行命令格式{} \;
9.2、find命令与xrags配合使用示例
find . -type f -name "*.bak" | xargs rm #删除当前目录中包含.bak的文件
十、 总结几种压缩工具的使用方法
10.1、常用的压缩工具(最为常用的位tar与zip/uzip,以下举例也以这两个举例)
(1)、gzip/gunzip
(2)、tar
(3)、zip/uzip
(4)、xz/unzx
10.2、tar与zip/uzip基础用法
zip file.zip file1.txt file2.txt # 压缩多个文件
zip -r all.zip file* # 递归压缩目录
unzip all.zip # 解压到当前目录
unzip all.zip -d /path # 解压到指定目录
unzip -l all.zip # 查看压缩包内容
tar -cvf file.tar file1 file2 # 基本归档
tar -czvf file.tar.gz file1 file2 # gzip压缩归档
tar -cjvf all.tar.bz2 file* # bzip2压缩归档
tar -cJvf all.tar.xz file* # xz压缩归档
tar -xvf file.tar # 解压普通tar包
tar -xzvf file.tar.gz # 解压gzip压缩包
tar -xjvf all.tar.bz2 # 解压bzip2压缩包
tar -xJvf all.tar.xz # 解压xz压缩包
tar -tf file.tar # 查看tar包内容
tar -tzf file.tar.gz # 查看gzip压缩包内容