Linux学习作业2(杂,学习笔记)

 一. 总结通配符,管道,重定向,并且结合示例,添加注释信息

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、包管理工具分类

包管理系统发行版前端工具底层工具包格式
RPMRHEL/CentOS/Fedora/Rockyyum/dnfrpm.rpm
DPKGDebian/Ubuntuapt/apt-getdpkg.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工作原理

yumdnf 是基于 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压缩包内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值