RHCSA复习题
1. 基础文件和目录操作
(1) 创建目录与空文件
在用户主目录下创建一个名为test_dir的目录,并在该目录中创建一个名为test_file.txt的空文本文件。
bash
mkdir ~/test_dir
touch ~/test_dir/test_file.txt
(2) 复制并重命名文件
将test_file.txt文件复制到/tmp目录下,并将复制后的文件重命名为copy_of_test.txt。
bash
cp ~/test_dir/test_file.txt /tmp/copy_of_test.txt
(3) 递归删除目录
删除test_dir目录及其下的所有文件(包括test_file.txt),请使用一个命令完成此操作。
bash
rm -rf ~/test_dir
说明:-r 递归删除目录及内部所有内容,-f 强制删除不弹出确认提示。
(4) 创建软链接与硬链接
在test_dir目录(如果已删除可重新创建)下创建一个test_file.txt文件,然后再创建该文件的软链接链接名为soft_link.txt,再创建一个硬链接,链接名为hard_link.txt。
bash
# 重建目录与源文件
mkdir ~/test_dir
touch ~/test_dir/test_file.txt
# 创建软链接(符号链接)
ln -s ~/test_dir/test_file.txt soft_link.txt
# 创建硬链接
ln ~/test_dir/test_file.txt hard_link.txt
(5) 删除源文件后链接访问性验证
删除test_file.txt文件,查看软链接和硬链接文件是否还能访问,分别说明原因。
bash
rm -f ~/test_dir/test_file.txt
-
软链接 soft_link.txt 无法正常访问:软链接仅保存源文件的路径指向,类似Windows快捷方式,源文件删除后链接指向的路径失效,访问时会提示文件不存在。
-
硬链接 hard_link.txt 可以正常访问:硬链接与源文件共享同一个inode(文件索引节点),删除源文件只是将inode的引用计数减1,文件数据本身没有被删除,因此硬链接不受影响。
2. 文件内容查看与编辑
(1) 查看文件前10行内容
使用合适的命令查看/etc/passwd文件的前 10 行内容。
bash
head -10 /etc/passwd
(2) 追加文件内容并验证
向copy_of_test.txt文件中追加一行内容 "这是追加的测试内容",并使用命令查看文件内容确认追加成功。
bash
# 追加写入内容
echo "这是追加的测试内容" >> /tmp/copy_of_test.txt
# 查看文件验证
cat /tmp/copy_of_test.txt
(3) Vim批量替换文本
使用文本编辑器(如vim)打开copy_of_test.txt文件,将 "测试" 替换为 "练习",保存并退出编辑器。
bash
vim /tmp/copy_of_test.txt
进入vim后按 Esc 切换到命令模式,输入以下命令执行全文替换:
vim
:%s/测试/练习/g
替换完成后输入 :wq 保存并退出vim。
3. 综合操作
(1) 批量复制配置文件
在/home目录下创建一个名为backup的目录,将/etc目录下所有以.conf结尾的文件复制到backup目录中。
bash
mkdir /home/backup
cp /etc/*.conf /home/backup
(2) 统计目录内文件数量
统计backup目录中文件的数量,并输出结果。
bash
ls /home/backup | wc -l
(3) 打包压缩与目录清理
将backup目录打包成一个名为etc_backup.tar.gz的压缩包,并删除原始的backup目录。
bash
# 打包并gzip压缩
tar -czf etc_backup.tar.gz /home/backup
# 删除原目录
rm -rf /home/backup
(4) 远程文件备份
将当前主机/home/backup目录中的所有文件备份到另一台主机的/test目录。
bash
scp /home/backup/* root@目标主机IP:/test
示例:
bash
scp /home/backup/* root@192.168.233.135:/test
说明:需确保目标主机开启SSH服务、网络互通,执行后输入目标主机密码即可完成传输。
4. 文件权限管理
(1) 修改文件所有者与所属组
将copy_of_test.txt文件的所有者修改为当前系统中的普通用户user1(假设user1存在),文件所属组修改为group1(假设group1存在)。
bash
chown user1:group1 /tmp/copy_of_test.txt
(2) 设置文件权限
为copy_of_test.txt文件设置权限,使得所有者有读写执行权限,所属组有读和执行权限,其他用户只有读权限,写出具体命令。
权限数值:所有者rwx=7,所属组r-x=5,其他用户r--=4
bash
chmod 754 /tmp/copy_of_test.txt
(3) 查看文件详细权限
查看copy_of_test.txt文件的详细权限信息。
bash
ls -l /tmp/copy_of_test.txt
5. 用户和用户组基础操作
(1) 创建指定登录Shell的用户
创建一个名为newuser1的普通用户,并指定其默认登录 Shell 为/bin/bash。
bash
useradd -s /bin/bash newuser1
(2) 创建用户组并添加成员
创建一个名为newgroup1的用户组,然后将newuser1添加到该用户组中。
bash
# 创建用户组
groupadd newgroup1
# 将用户加入组
gpasswd -a newuser1 newgroup1
(3) 删除用户并保留家目录
删除用户newuser1,要求保留其家目录。
bash
userdel newuser1
说明:不加 -r 参数时,仅删除用户账号,不会删除 /home/newuser1 家目录。
6. 文件和目录权限设置与修改
(1) 差异化设置目录与文件权限
在用户主目录下创建一个名为perm_test_dir的目录和perm_test_file.txt的文件,分别为该目录和文件设置权限:目录的所有者有读写执行权限,所属组有读和执行权限,其他用户无任何权限;文件的所有者有读写权限,所属组和其他用户只有读权限。
bash
# 创建目录与文件
mkdir ~/perm_test_dir
touch ~/perm_test_dir/perm_test_file.txt
# 设置目录权限:750
chmod 750 ~/perm_test_dir
# 设置文件权限:644
chmod 644 ~/perm_test_dir/perm_test_file.txt
(2) 递归修改目录所属组
将perm_test_dir目录及其下所有文件的所属组修改为newgroup1。
bash
chgrp -R newgroup1 ~/perm_test_dir/
(3) 递归修改目录权限
递归地将perm_test_dir目录的权限修改为:所有者和所属组有读写执行权限,其他用户只有读权限。
bash
chmod -R 775 ~/perm_test_dir/
7. 通过本地源使用dnf安装httpd的详细过程
步骤1:挂载系统安装镜像
bash
# 创建挂载目录
mkdir -p /mnt/cdrom
# 挂载光盘镜像到本地目录
mount /dev/cdrom /mnt/cdrom
步骤2:备份原有yum源配置
bash
cd /etc/yum.repos.d/
mkdir repo_backup
mv *.repo repo_backup/
步骤3:创建本地源配置文件
新建 local.repo 配置文件:
bash
vim /etc/yum.repos.d/local.repo
写入以下内容:
ini
[Local-BaseOS]
name=Local BaseOS
baseurl=file:///mnt/cdrom/BaseOS
gpgcheck=0
enabled=1
[Local-AppStream]
name=Local AppStream
baseurl=file:///mnt/cdrom/AppStream
gpgcheck=0
enabled=1
步骤4:刷新dnf缓存
bash
dnf clean all
dnf makecache
步骤5:安装httpd服务
bash
dnf install -y httpd
8. Vim 练习题
(1) 光标精准定位
使用快捷键将光标快速移动到文件的第 3 行第 5 个字符处。
-
命令模式下输入 3G,光标跳转到第3行行首
-
继续输入 5l,光标向右移动5个字符,即可定位到第3行第5个字符处
(2) 删除与撤销操作
删除文件中第二行的所有内容,然后撤销该删除操作。
-
命令模式下输入 2G 定位到第二行
-
输入 dd 删除当前整行
-
输入 u 撤销上一步操作,恢复第二行内容
(3) 复制粘贴与保存
复制文件的前两行内容,并粘贴到文件末尾,形成一个新的段落,最后保存文件。
-
命令模式下输入 gg 回到文件开头,输入 2yy 复制前两行
-
输入 G 跳转到文件末尾,输入 p 粘贴复制的内容
-
输入 :w 保存文件
(4) 关键词出现次数统计
在vim test.txt文件中查找 "Linux" 这个单词,并统计其出现的次数。
命令模式下输入:
vim
:%s/Linux//gn
执行后vim底部会显示匹配的总次数;n 参数表示仅统计次数,不执行实际替换。
(5) 带确认的全文替换
将文件中所有的 "Linux" 替换为 "RHEL 系统",要求在替换前显示替换提示。
命令模式下输入:
vim
:%s/Linux/RHEL 系统/gc
c 参数表示每次替换前弹出确认,输入 y 确认替换,输入 n 跳过当前匹配项。
(6) 行首匹配查找
在文件中查找以 "LOGO" 开头的行,并将光标定位到该行。
命令模式下输入:
vim
/^LOGO
^ 表示匹配行首,按下回车后光标会自动定位到第一个以"LOGO"开头的行。