1、VMware Fusion安装rocky8.5和ubuntu22.04
1.1 安装VMwarefusion
vmware现在对个人用户可以免费使用,去到vmware官网下载即可。
broadcom地址:Home - Support Portal - Broadcom support portal
注册一个broadcom账号并登入,在My Downloads中搜索VMware Fusion下载对应的版本即可
1.2安装rocky8.5
首先下载好对应的镜像,在阿里云镜像中即可。
使用VMware Fusion选择rocky8.5镜像,跳过验证,直接安装rocky8.5在该界面配置好账号密码、时间、网络、磁盘等再开始安装
1.3 安装ubuntu22.04
同样下载好对应的镜像,跟着提示一步步配置好账号密码、网络、磁盘、镜像加速即可,大体一致,只是界面不同。
1.4 使用iterm2命令行工具登入安装好的系统
在安装好的系统中检查/etc/ssh/sshd_config文件中是否开启远程登入,是否运行root账号登入,是否运行使用ssh密钥登入,确定允许后,在home目录下的.ssh目录下中的authorized_keys文件中配置好自己主机ssh公钥即可开启ssh免密登入。
2、总结什么是shell,以及常见的各类shell。
Shell 是用户与操作系统之间的命令解释器,提供了用户与内核交互的接口。它既可以接受用户输入的命令并执行,又支持编程,通过脚本实现自动化任务。Shell 是一种工具,同时也是一个脚本编程环境。常见的shell有sh、bash、zsh、ash等
3、结合man命令总结linux常用基本命令用法,以及查看帮助文档的方法。
常用的基础命令有ls、cd、mv、cp、pwd、who、w等。man命令 是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。首先可以通过man man命令查看一下man命令的说明,man man命令详细解释了每个数字章节对应的含义。如果需要查看指定的章节,格式如何下man 1 ls。
4、总结linux文件系统目录结构和目录的功能
Linux 文件系统采用树状层级结构,以根目录 /
为起点,所有文件和目录都位于其下。以下是常见目录及其功能的总结:
目录 | 功能描述 |
---|---|
/ | 根目录,是整个文件系统的起点,包含所有其他目录和文件。通常只存放子目录而不直接存放文件。 |
/bin | 基本命令目录,存放系统的基本命令,例如 ls 、cp 、mv 、bash 等,普通用户和管理员都可以使用。 |
/sbin | 系统管理员命令目录,存放系统管理和维护工具,如 ifconfig 、shutdown 等,通常需要 root 权限执行。 |
/boot | 引导目录,存放启动相关的文件,如引导加载程序(grub )、内核文件(vmlinuz )。 |
/dev | 设备文件目录,包含所有设备的文件接口,如磁盘 (/dev/sda )、终端 (/dev/tty ) 等。 |
/etc | 配置文件目录,存放系统和应用程序的配置文件,例如 /etc/fstab 、/etc/ssh/sshd_config 。 |
/home | 用户家目录,每个用户的个人文件和配置文件存储在此目录中,例如 /home/username 。 |
/lib | 基本共享库目录,存放系统运行所需的共享库文件(类似 Windows 的 .dll ),以及内核模块。 |
/lib64 | 64 位共享库目录,专为 64 位系统提供的库文件。 |
/media | 挂载目录(可移动设备),自动挂载可移动存储设备(如 U 盘、光盘)的默认位置。 |
/mnt | 挂载点目录,用于临时挂载文件系统或设备。 |
/opt | 可选软件目录,存放第三方软件或附加包。 |
/proc | 进程信息目录,一个虚拟文件系统,存放运行进程和系统信息,例如 /proc/cpuinfo 。 |
/root | 超级用户目录,root 用户的家目录。 |
/run | 运行时数据目录,存放系统运行时的临时文件,如 PID 文件和套接字文件。 |
/srv | 服务数据目录,存储服务提供的数据,如 Web 服务器文件(/srv/www )。 |
/sys | 系统信息目录,另一个虚拟文件系统,用于访问硬件信息和系统配置。 |
/tmp | 临时文件目录,用于存放临时文件,系统会定期清理此目录。 |
/usr | 用户应用程序目录,存放用户级别的程序和文件。通常包含以下子目录: |
/usr/bin | 用户安装的程序,类似 /bin ,但非系统核心命令。 |
/usr/sbin | 用户安装的管理工具,类似 /sbin 。 |
/usr/lib | 用户安装程序的共享库文件。 |
/usr/local | 本地安装的软件和程序。 |
/var | 可变数据目录,存放经常变化的数据,如日志文件、邮件队列、数据库文件等。 |
/var/log | 系统日志文件目录,如 /var/log/syslog 。 |
/var/tmp | 应用程序使用的临时文件,生命周期比 /tmp 更长。 |
5、总结文件操作常见的命令和文件夹常见操作和命令
常见的文件操作命令有拍ls、cat、head、tail、sed、grep、vim、touch、rm、mv等,常见的文件夹操作命令有cd、mkdir、rm、mv、ls、du等
6、总结文件元数据相关的知识点,包含硬链接和软连接的区别等知识
文件元数据是文件的属性信息,包括文件的权限、所有者、大小、时间戳等。这些信息存储在文件系统的 inode 中,而不是文件内容本身。以下总结了文件元数据的主要知识点,以及硬链接和软链接的区别等内容。可以通过ls -l命令和stat命令进行查看。
属性 | 硬链接 | 软链接 |
---|---|---|
链接关系 | 指向文件 inode | 指向目标文件路径 |
inode 编号 | 相同 inode | 独立 inode |
对原文件依赖性 | 无依赖,删除目标文件仍可访问内容 | 有依赖,删除目标文件会导致软链接失效 |
跨文件系统 | 不支持 | 支持 |
指向目录 | 不支持 | 支持 |
创建命令 | ln | ln -s |
7、总结通配符,管道,重定向,并且结合示例,添加注释信息
7.1 通配符
通配符是一种简化匹配文件名或路径的方式,用于文件操作命令(如 ls
、cp
、rm
等)。
通配符 | 作用 | 示例 | 说明 |
---|---|---|---|
* | 匹配任意长度的字符(包括空字符) | ls *.txt | 匹配当前目录下所有 .txt 文件 |
? | 匹配任意单个字符 | ls file?.txt | 匹配文件名为 file1.txt 等文件 |
[ ] | 匹配指定范围内的任意单个字符 | ls file[1-3].txt | 匹配 file1.txt 到 file3.txt |
[! ] | 匹配不在指定范围内的任意单个字符 | ls file[!1-3].txt | 匹配 file4.txt 等 |
{ } | 匹配多个字符串中的一个 | ls {file1,file2}.txt | 匹配 file1.txt 或 file2.txt |
\ | 转义特殊字符 | ls file\* | 匹配文件名包含 * 的文件 |
# 列出所有以 "test" 开头的文件或目录
ls test*
# 删除以 ".bak" 结尾的所有备份文件
rm *.bak
# 复制文件名为 "log1.txt" 到 "log5.txt" 的文件
cp log[1-5].txt /backup/
# 创建文件,匹配字符串
touch file{1,2,3}.txt # 创建 file1.txt, file2.txt, file3.txt
7.2 管道
管道符(|
)用于将一个命令的输出作为另一个命令的输入,以实现多步骤处理
# 仅显示目录中包含 ".log" 的文件
ls -l | grep ".log"
# 统计 file.txt 文件的行数
cat file.txt | wc -l
# 对 data.txt 文件的内容排序并去重
cat data.txt | sort | uniq
7.2 重定向
重定向将命令的输入或输出重定向到文件或其他目标。
符号 | 作用 | 示例 | 说明 |
---|---|---|---|
> | 将输出重定向到文件(覆盖) | echo "Hello" > file.txt | 将 Hello 写入文件,覆盖内容 |
>> | 将输出重定向到文件(追加) | echo "World" >> file.txt | 将 World 追加到文件末尾 |
< | 将文件内容作为命令的输入 | cat < file.txt | 从 file.txt 读取内容 |
2> | 将错误输出重定向到文件(覆盖) | ls nonexistent 2> error.log | 将错误信息写入 error.log |
2>> | 将错误输出重定向到文件(追加) | ls nonexistent 2>> error.log | 将错误信息追加到 error.log |
&> | 将标准输出和错误一起重定向 | command &> output.log | 同时记录正常输出和错误到文件 |
/dev/null | 丢弃输出 | ls nonexistent > /dev/null 2>&1 | 丢弃所有输出和错误信息 |
8、总结linux用户和用户组相关知识点以及常见的操作命令,添加注释信息
Linux 是一个多用户、多任务的操作系统,用户和用户组是系统权限管理的重要基础。以下从概念、文件结构、权限模型以及常见命令操作角度进行总结。
8.1 用户与用户组概念
8.1.1 用户
每个用户都有一个唯一的用户标识(UID)和用户名。
Linux 系统分为三类用户:
超级用户(root):UID 为 0,拥有系统的全部权限。
系统用户:UID 一般为 1~999,通常用于运行系统服务。
普通用户:UID 大于等于 1000,通常用于普通操作。
8.1.2 用户组
用户组(Group)是用户的集合,用于统一管理权限。
每个用户必须属于一个主用户组(Primary Group),可以加入多个附加用户组(Secondary Groups)。
每个用户组都有一个唯一的组标识(GID)。
8.2 用户管理
命令 | 作用 | 示例 | 说明 |
---|---|---|---|
whoami | 查看当前用户 | whoami | 输出当前登录用户名称 |
id | 查看用户 ID 和组信息 | id user1 | 显示用户的 UID 和所属组信息 |
adduser 或 useradd | 添加用户 | adduser user1 | 创建用户并设置初始密码 |
passwd | 修改用户密码 | passwd user1 | 为用户 user1 设置新密码 |
deluser 或 userdel | 删除用户 | deluser user1 | 删除用户及其主目录(加 --remove-home ) |
usermod | 修改用户信息 | usermod -aG wheel user1 | 将用户 user1 添加到 wheel 组 |
8.3 组管理
命令 | 作用 | 示例 | 说明 |
---|---|---|---|
groupadd | 添加用户组 | groupadd developers | 创建名为 developers 的用户组 |
groupdel | 删除用户组 | groupdel developers | 删除用户组 |
gpasswd | 管理用户组 | gpasswd -a user1 developers | 将用户 user1 添加到 developers 组 |
groups | 查看用户所属组 | groups user1 | 显示用户 user1 所在的所有用户组 |
8.4 文件权限管理
命令 | 作用 | 示例 | 说明 |
---|---|---|---|
chmod | 修改文件权限 | chmod 755 file | 设置文件权限为 rwxr-xr-x |
chown | 修改文件的所有者 | chown user1 file | 将文件所有者改为 user1 |
chgrp | 修改文件的所属组 | chgrp group1 file | 将文件所属组改为 group1 |
9、总结文件权限管理相关的知识点,包括权限位,特殊权限和ACL,添加详细的注释和解释
9.1 基本权限位
每个文件和目录的权限由 三组权限 组成:
- 用户(Owner)
- 组(Group)
- 其他用户(Others)
权限位以 rwx
形式表示:
r
:读(Read)权限,值为 4。w
:写(Write)权限,值为 2。x
:执行(Execute)权限,值为 1。
9.2 特殊权限
除了基本权限外,Linux 提供了 三种特殊权限,用于增强权限控制。
9.2.1 SUID(Set User ID)
- 作用:程序执行时,进程会临时拥有文件所有者的权限。
- 标记:所有者执行权限位显示为
s
,如rwsr-xr-x
。 - 应用场景:常用于程序需要提升权限的情况,例如
passwd
命令。
chmod u+s file # 设置 SUID 位
chmod 4755 file # 通过数值设置权限
#查看passwd的特殊权限s
ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 54256 Nov 24 10:00 /usr/bin/passwd
9.3.2 SGID(Set Group ID)
- 作用:程序执行时,进程会临时拥有文件所属组的权限;若应用于目录,目录内新建的文件会自动继承目录的组。
- 标记:组执行权限位显示为
s
,如rwxr-sr-x
。
chmod g+s dir # 设置 SGID 位
chmod 2755 dir # 通过数值设置权限
mkdir /shared
chmod g+s /shared # /shared 目录内的文件继承父目录组
9.3.3 Sticky Bit(粘滞位)
- 作用:应用于目录时,只有文件的所有者或管理员才能删除该目录下的文件。
- 标记:其他用户执行权限位显示为
t
,如rwxrwxrwt
。 - 应用场景:常用于共享目录,如
/tmp
。
chmod +t dir # 设置 Sticky Bit
chmod 1777 dir # 通过数值设置权限
ls -ld /tmp
drwxrwxrwt 1 root root 4096 Nov 24 10:00 /tmp
9.3 ACL(访问控制列表)
ACL(Access Control List)用于对文件和目录设置更加细粒度的权限控制,超越了传统的用户、组、其他用户的权限模型。
9.3.1 基本概念
- 作用:为特定用户或组分配单独的访问权限。
- 依赖:需要文件系统支持(如 ext4)。
9.3.2 常用命令
命令 | 作用 | 示例 |
---|---|---|
getfacl | 查看 ACL 权限 | getfacl file.txt |
setfacl | 设置 ACL 权限 | setfacl -m u:user1:rw file.txt |
setfacl -x | 删除 ACL 权限 | setfacl -x u:user1 file.txt |
setfacl -m d:... | 设置目录默认 ACL 权限 | setfacl -m d:u:user1:rwx /shared |
# 1. 为特定用户分配权限
setfacl -m u:user1:rw file.txt # 为 user1 设置读写权限
# 2. 为特定组分配权限
setfacl -m g:developers:r-- file.txt # 为 developers 组分配只读权限
# 3. 查看文件 ACL 权限
getfacl file.txt
# 输出示例
# file: file.txt
# owner: root
# group: root
# user::rw-
# user:user1:rw-
# group::r--
# mask::rw-
# other::r--