0%

RHCSA 标准课程 - 03 - 2025/01/18 - 课程笔记

2.4 使用命令行工具管理文件

目标: 学习完本节后, 学员应能够: 创建、复制、移动和删除文件与目录。

2.4.1 创建目录

mkdir 命令可创建一个或多个目录或子目录 (mkdir dir1 dir2 可以创建多个目录) 。

1
mkdir "目录名称"

mkdir -p 可以创建目录树, 但是需要小心拼写错误。

1
mkdir -p /递/归/路/径/

2.4.2 复制文件和目录

cp 命令可复制文件, 在当前目录或指定目录中创建新文件。它也可将多个文件复制到某一目录中。
注意: 如果目标文件已存在, 则 cp 命令会覆盖该文件。

1
cp 源文件 (可以为多个文件 空格分隔)  目标文件

在通过一个命令复制多个文件时, 最后一个参数必须为目录。默认情况下, cp 不复制目录, 而会忽略它们。

cp -r 递归, 可以复制目录及其子目录。

1
cp -r 源目录 目标目录

2.4.3 移动文件和目录

mv 命令可将文件 (或目录 不需要-r参数也可以移动目录) 从一个位置移动到另一个位置。

1
mv 文件 目标目录

如果位置相同, 这实际上是重命名。

2.4.4 删除文件和目录

rm 命令删除文件 (不能删除目录) 。

1
rm 文件名

rm -r 删除目录。

1
rm -r 目录名

rm -rf 强制递归删除, 不会进行提示。

1
rm -rf 文件/目录

2.4.5 文本文件读取

2.4.5.1 cat

用来阅读短文件, 直接显示整个文件的全部内容。

1
cat 文件名

2.4.5.2 less

用来阅读长文件, 先显示文件的第一屏的内容, 通过PgUp, PgDn翻页来阅读, 按q退出。

1
less 文件名

2.4.5.3 head

用来阅读文件, 不加任何选项默认只显示前十行。
常用选项: -数字 (数字是任意) 。

1
head -行数 文件名

2.4.5.4 tail

用来阅读文件, 默认显示最后10行。
常用选项: -数字 (数字是任意) 。

1
tail -行数 文件名

2.4.6 用户账户切换

su: 切换到另一个用户的身份。
管理员 (root身份) 切换到普通用户的时候是不需要密码。
普通用户切换到普通用户的时候需要密码。
普通用户切换到root也是需要密码。
常用选项: -l (简写为-) , 模拟登陆过程。

1
su -(模拟登陆) 用户名

2.4.7 获取命令的帮助

执行man命令名来获取这个命令的使用帮助。
重点查看SYBOPSIS (语法格式) 、DESCRIPTION (选项的含义和用法描述) 。
按/查找的内容, 例如: /word,就会查找包含word的文字描述, 按n或者N来切换不同的查找的结果。按 PgUp 、PgDn 翻页, 按q键退出。

2.5 使用systemctl控制服务

目标

学习完本节后, 学员应能够: 使用systemctl系统控制器, 用来管理linux系统服务的开启/关闭资源的运行状态。

控制服务当前运行的状态:

1
systemctl start/stop/restart/status 服务名称

2.5.1 查看服务状态

1
systemctl status 服务名称

2.5.2 启用开机自启

1
systemctl enable 服务名称

2.5.3 禁用开机自启

1
systemctl disable 服务名称

2.5.4 启动服务

1
systemctl start 服务名称

2.5.5 关闭服务

1
systemctl stop 服务名称

2.5.6 重启服务

1
systemctl restart 服务名称

3 从红帽和 DNF 软件仓库下载、安装、更新和管理软件包

目标:
1.使用 dnf 命令查找、安装和更新软件包。
2.启用和禁用红帽或第三方 DNF 软件仓库。

3.1 使用dnf或者yum来安装和删除软件

1
2
3
dnf -y install 软件名   //安装指定的软件包 (同时安装此软件包的依赖) 
dnf -y remove 软件名 //卸载指定的软件包
dnf -y reinstall 软件名 //重装指定的软件包(找回丢失的文件, 不影响依赖)

3.2 软件存储库解释

存放软件地方、通过地址获取。

BaseOS 存储库: http://content/rhel9.0/x86_64/dvd/BaseOS
应用流(AppStream)存储库: http://content/rhel9.0/x86_64/dvd/AppStream

3.3 配置软件包源

需要修改或新建

/etc/yum.repos.d

目录下任意一个后缀为repo的文件。

3.3.1 直接编辑文件

前提 (建议大家删掉系统自带, 这样才能更好验证自己是否做对)

1
rm /etc/yum.repos.d/*.repo  //删除该目录下所有文件
3.3.1.1 创建新的配置文件
1
touch /etc/yum.repos.d/rhcsa.repo   //创建配置文件为后缀repo的文件
3.3.1.2 修改新的配置文件

配置文件内容格式为

1
2
3
4
5
6
7
8
9
10
11
[仓库1标识]     //注: 标识这里不能留有空格
name=仓库的描述
baseurl=仓库地址
enabled=1
gpgcheck=false

[仓库2标识] //注: 标识这里不能留有空格
name=仓库的描述
baseurl=仓库地址
enabled=1
gpgcheck=false

在我们的案例中 我们的配置文件内容应为

1
2
3
4
5
6
7
8
9
10
11
[BaseOS]
name=BaseOS
baseurl=http://content/rhel9.0/x86_64/dvd/BaseOS
gpgcheck=false
enabled=1

[AppStream]
name=AppStream
baseurl=http://content/rhel9.0/x86_64/dvd/AppStream
gpgcheck=false
enabled=1

使用vim进行编辑。

1
vim /etc/yum.repos.d/rhcsa.repo

3.3.2 使用命令进行软件包源配置

根据 RedHat Documentation 中 Red Hat Enterprise Linux 9 文档的 Chapter 10. Managing custom software repositories 部分, 是可以使用命令进行软件包源的管理的。

1
2
3
dnf config-manager --add-repo <repository_URL>  //10.2. Adding a DNF repository
dnf config-manager --enable <repository_id> //10.3. Enabling a DNF repository
dnf config-manager --disable <repository_id> //10.4. Disabling a DNF repository

3.5 验证配置内容

修改完dnf的配置文件之后, 需要执行相应的命令去验证是否能正常使用yum或者dnf。

1
2
dnf clean all   //清理缓存
dnf repolist -v //用于查看是否能顺利连接仓库, 以及确认总的软件包

3.6 查找软件包

使用dnf或者yum查找软件。

1
2
3
4
dnf provides 工具名		//查询哪一个软件包能提供xxx文件
dnf search 关键词 //根据关键词搜索相关的软件
dnf list 软件名 //列出软件包的安装情况
dnf info 软件名 //查询指定软件的描述信息

4 创建、管理和删除本地用户和组

描述 Linux 系统上用户和组的用途。
创建、修改和删除本地定义的用户帐户。
创建、修改和删除本地定义的组帐户。

4.1 描述用户和组概念

目标: 学习完本节后, 学员应能够: 描述 Linux 系统上用户和组的用途。

4.1.1 用户概念

用户账户为不同人员和运行的程序之间提供安全边界。

用户使用 username 进行标识, 操作系统为其分配唯一标识号 (UID) , 用户可能含有密码。

系统中的每个程序都以一个特定用户运行, 每个文件都有一个特定用户作为所有者。

用户帐户有三种主要类型:

  • 超级用户 superuser
  • 系统用户 system users
  • 普通用户 regular users

superuser 就是 root 用户, UID=0, 具有系统的最高权限
system user 用于系统管理, 例如运行服务, 不需要用于系统登录
regular user 供用户进行日常系统管理, 通常具有权限限制

4.1.1.1 查看用户信息

可以使用 id 命令查看当前登录的用户或某用户信息。

1
id 用户名   // 不加用户名的话就是当前用户

4.1.1.2 查看所属用户

ls -l 命令查看文件所属用户, ls -ld命令查看目录所属用户。

1
2
ls -l 文件名
ls -ld 目录名

4.1.1.3 查看本地用户信息

系统使用/etc/passwd 文件存储有关本地用户的信息。/etc/passwd文件的每一行都包含了有关某个用户的信息。

1
cat /etc/passwd

文件内容的规则为

用户名: 用户的加密密码 (占位符) : 用户的UID编号: 主要组的GID : 该用户的简短注释、描述的信息 : 用户的家目录 : 可以使用交互式登陆

4.1.2 组概念

组是用户的集合, 组中用户共享文件和其他系统资源的访问权限。

组有 group name 和 GID, 匹配关系保存在 /etc/group 文件中。

1
tail -5 /etc/group  //查看最后五行

每个组条目被分为四个以冒号分隔的字段

wangpingan:x:8896:yang,wangdaye
组名:占位符:组ID:属于此组成员的用户列表, 作为补充组 (附加组)

主要组 (私有组或者基本组) 和补充组 (附加组) :

每个用户只属于一个 主要组 (GID) , 对应 GID 在 /etc/passwd 中。
创建普通用户时, 会创建一个与用户同名的组, 作为该用户的主要组, 该用户是这个用户主要组的唯一成员。
用户还可以有补充组, 补充组中的成员资格存放在/etc/group文件中, 根据所在组是否具有访问权限, 将授予用户对文件的访问权限, 不论这些组时主要组还是补充组。

id 命令可以显示用户的组信息:

1
id 用户名   // 不加用户名的话就是当前用户

4.2 管理本地用户帐户

目标: 学习完本节后, 学员应能够: 创建、修改和删除本地用户帐户。

4.2.1 UID 范围

  • UID 0 永远分配给 root 。
  • UID 1-200 分配给 system users (红帽的系统服务) 。
  • UID 201-999 分配给 system users, 供文件系统中没有自己的文件的系统进程使用。通常在安装需要它们的软件时, 从可用池中动态分配它们。程序以这些“无特权”系统用户身份运行, 它们仅访问运行所需的资源。
  • UID 1000+ 分配给普通非特权用户。

4.2.2 用户新增

4.2.2.1 从命令行中创建用户
1
useradd 用户名

4.2.2.2 新增用户指定新用户的UID
1
useradd -u 1100 user002

4.2.2.3 新增用户指定家目录
1
2
3
4
// 这里老师说要先新建好目录再创建用户
// 但是根据我实测 先新建目录再创建用户会导致系统拒绝复制骨架文件
// 所以我的建议还是直接新建用户吧 家目录会自动创建的
useradd -d /opt/user003home user003

4.2.2.4 新增禁止登陆用户
1
useradd -s /sbin/nologin user004

4.2.2.5 为新增用户指定主要组
1
useradd -g wheel user005

4.2.2.6 为新增用户指定附加组
1
useradd -G wheel user006

4.2.3 用户删除

4.2.3.1 从命令行中删除用户账户
1
userdel user001 //只是删除用户, 并没有删除用户的家目录。

4.2.3.2 同时删除家目录
1
userdel -r user002  //添加 -r 选项 删除用户同时删除用户的家目录。

4.2.4 修改用户

4.2.4.1 更改现有用户的UID
1
usermod -u 1200 user003

4.2.4.2 更改现有用户登录的shell
1
usermod -s /sbin/nologin user003

4.2.4.3 交互式修改用户密码
1
passwd user003

4.2.4.4 非交互式修改密码 #1
1
echo 123456 | passwd --stdin user003

4.2.4.4 非交互式修改密码 #2
1
echo user003:123456 | chpasswd

4.2.5 查询用户信息

id 命令可以显示用户的组信息:

1
id 用户名   // 不加用户名的话就是当前用户

通过/etc/shadow查询用户信息

1
cat /etc/shadow | grep student