RHCSA习题

1.基础文件和目录操作

(1). 在用户主目录下创建一个名为test_dir的目录,并在该目录中创建一个名为test_file.txt的空文本文件。

[root@localhost ~]# mkdir ~/test_dir [root@localhost ~]# touch ~/test_dir/test_file.txt

(2). 将test_file.txt文件复制到/tmp目录下,并将复制后的文件重命名为copy_of_test.txt。

[root@localhost ~]# cp ~/test_dir/test_file.txt /tmp/copy_of_test.txt

(3). 删除test_dir目录及其下的所有文件(包括test_file.txt),请使用一个命令完成此操作。

[root@localhost ~]# rm -rf ~/test_dir

(4).在test_dir目录(如果已删除可重新创建)下创建一个test_file.txt文件,然后再创建该文件的软链接链接名为soft_link.txt,再创建一个硬链接,链接名为hard_link.txt。

[root@localhost ~]# mkdir -p ~/test_dir && touch ~/test_dir/test_file.txt [root@localhost ~]# ln -s ~/test_dir/test_file.txt ~/test_dir/soft_link.txt [root@localhost ~]# ln ~/test_dir/test_file.txt ~/test_dir/hard_link.txt

(5). 删除test_file.txt文件,查看软链接和硬链接文件是否还能访问,分别说明原因。

[root@localhost ~]# rm ~/test_dir/test_file.txt rm:是否删除普通空文件 '/root/test_dir/test_file.txt'?y [root@localhost ~]# cat ~/test_dir/soft_link.txt cat: /root/test_dir/soft_link.txt: 没有那个文件或目录 [root@localhost ~]# cat ~/test_dir/hard_link.txt #软连接不可访问,硬链接可以访问

2.文件内容查看与编辑

(1). 使用合适的命令查看/etc/passwd文件的前 10 行内容。

[root@localhost ~]# head -10 /etc/passwd

(2). 向copy_of_test.txt文件中追加一行内容 “这是追加的测试内容”,并使用命令查看文件内容确认追加成功。

[root@localhost ~]# echo "这是追加的测试内容" >> /tmp/copy_of_test.txt [root@localhost ~]# cat /tmp/copy_of_test.txt

(3). 使用文本编辑器(如vim)打开copy_of_test.txt文件,将 “测试” 替换为 “练习”,保存并退出编辑器。

[root@localhost ~]# vim /tmp/copy_of_test.txt :%s/测试/练习/g :wq

3.综合操作

(1).在/home目录下创建一个名为backup的目录,将/etc目录下所有以.conf结尾的文件复制到backup目录中。

[root@localhost ~]# mkdir /home/backup [root@localhost ~]# cp /etc/*.conf /home/backup/

(2). 统计backup目录中文件的数量,并输出结果。

[root@localhost ~]# ls /home/backup | wc -l

(3).将backup目录打包成一个名为etc_backup.tar.gz的压缩包,并删除原始的backup目录。

[root@localhost ~]# tar -zcf etc_backup.tar.gz -C /home backup [root@localhost ~]# rm -rf /home/backup

(4).将当前主机/home/backup目录中的所有文件备份到另一台主机的/test目录。

[root@localhost ~]# scp -r /home/backup/* root@远程主机IP:/test/

4.文件权限管理

(1).将copy_of_test.txt文件的所有者修改为当前系统中的普通用户user1(假设user1存在),文件所属组修改为group1(假设group1存在)。

[root@localhost ~]# groupadd group1 [root@localhost ~]# useradd -g group1 user1 [root@localhost ~]# chown user1:group1 /tmp/copy_of_test.txt

(2).为copy_of_test.txt文件设置权限,使得所有者有读写执行权限,所属组有读和执行权限,其他用户只有读权限,写出具体命令。

[root@localhost ~]# chmod 754 /tmp/copy_of_test.txt

(3).查看copy_of_test.txt文件的详细权限信息。

[root@localhost ~]# ls -l /tmp/copy_of_test.txt [root@localhost ~]# stat /tmp/copy_of_test.txt

5.用户和用户组基础操作

(1).创建一个名为newuser1的普通用户,并指定其默认登录 Shell 为/bin/bash。

[root@localhost ~]# useradd -s /bin/bash newuser1 [root@localhost ~]# passwd newuser1

(2).创建一个名为newgroup1的用户组,然后将newuser1添加到该用户组中。

[root@localhost ~]# groupadd newgroup1 [root@localhost ~]# usermod -aG newgroup1 newuser1

(3).删除用户newuser1,要求保留其家目录。

[root@localhost ~]# userdel newuser1

6.文件和目录权限设置与修改

(1).在用户主目录下创建一个名为perm_test_dir的目录和perm_test_file.txt的文件,分别为该目录和文件设置权限:目录的所有者有读写执行权限,所属组有读和执行权限,其他用户无任何权限;文件的所有者有读写权限,所属组和其他用户只有读权限。

[root@localhost ~]# mkdir ~/perm_test_dir [root@localhost ~]# touch ~/perm_test_dir/perm_test_file.txt [root@localhost ~]# chmod 750 ~/perm_test_dir [root@localhost ~]# chmod 644 ~/perm_test_dir/perm_test_file.txt

(2).将perm_test_dir目录及其下所有文件的所属组修改为newgroup1。

[root@localhost ~]# chgrp -R newgroup1 ~/perm_test_dir

(3).递归地将perm_test_dir目录的权限修改为:所有者和所属组有读写执行权限,其他用户只有读权限。

[root@localhost ~]# chmod -R 775 ~/perm_test_dir

7.写出通过dnf以及本地源安装httpd的详细过程。

[root@localhost ~]# mkdir /sr0 [root@localhost ~]# mount /dev/sr0 /sr0 [root@localhost ~]# echo “mount /dev/sr0 /sr0” >> /etc/rc.d/rc.local [root@localhost ~]# chmod +x /etc/rc.d/rc.local [root@localhost ~]# vim /etc/yum.repos.d/base.repo [BaseOS] name=RHEL9-BaseOS baseurl=file:///sr0/BaseOS/ gpgcheck=0 enabled=1 [AppStream] name=App baseurl=file:///sr0/AppStream/ gpgcheck=0 enabled=1 :wq [root@localhost ~]# dnf install httpd [root@localhost ~]# systemctl start httpd [root@localhost ~]# echo welcome > /var/www/html/index.html [root@localhost ~]# curl http://自己的IP地址

8.vim 练习题

分类选项作用说明示例
文件操作-o 或 -O-o 水平分割窗口打开多个文件;-O 垂直分割窗口打开多个文件。vim -o file1.txt file2.txt(水平分割窗口打开两个文件)vim -O file1.txt file2.txt(垂直分割窗口打开两个文件) ctrl+w+w
-R以只读模式打开文件,防止误修改。vim -R config.txt(只读模式打开config.txt文件)
-M与 -R 类似,但不允许强制写入,更严格的只读模式。vim -M important_file.txt(严格只读打开文件)
+[num]打开文件后,将光标定位到指定行号num处。vim +10 script.sh(打开script.sh后,光标定位到第 10 行)
+/{pattern}打开文件后,自动搜索并将光标定位到第一个匹配pattern的位置。vim +/function_name main.c(打开main.c后,定位到首个出现function_name的位置)
搜索与替换--cmd在启动 vim 时执行指定命令,常用于设置搜索或替换规则。vim --cmd ":%s/old/new/g"(打开文件时自动执行全文替换)
模式分类快捷键 / 指令功能说明
命令模式光标移动w移动到下一个单词的开头
W移动到下一个以空格分隔的单词开头
b移动到当前单词的开头
B移动到上一个以空格分隔的单词开头
e移动到当前单词的结尾
E移动到当前以空格分隔的单词结尾
0移动到当前行首
^移动到当前行第一个非空白字符处
$移动到当前行尾
gg移动到文件开头
G移动到文件结尾
nG移动到第 n 行(n 为数字)
文本删除x删除光标所在字符
X删除光标前一个字符
dd删除当前行
ndd删除从当前行开始的 n 行
d0删除从光标处到行首的内容
d$删除从光标处到行尾的内容
dw删除从光标处到下一个单词开头的内容
dG删除从当前行到文件结尾的内容
dgg删除从当前行到文件开头的内容
文本复制yy复制当前行
nyy复制从当前行开始的 n 行
y0复制从光标处到行首的内容
y$复制从光标处到行尾的内容
yw复制从光标处到下一个单词开头的内容
yG复制从当前行到文件结尾的内容
ygg复制从当前行到文件开头的内容
文本粘贴p在光标后粘贴复制 / 删除的内容
P在光标前粘贴复制 / 删除的内容
np粘贴 n 次复制 / 删除的内容
文本修改r替换光标所在字符(输入新字符后生效)
R进入替换模式,持续替换光标后的字符
cc删除当前行并进入插入模式
cw删除从光标处到单词结尾的内容并进入插入模式
~切换光标所在字符的大小写
J将当前行与下一行合并
撤销与重做u撤销上一步操作
Ctrl + r重做上一步被撤销的操作
:u n撤销前 n 步操作
插入模式进入方式i在光标当前位置插入
I在当前行首插入
a在光标后插入
A在当前行尾插入
o在当前行下方新建一行并插入
O在当前行上方新建一行并插入
可视化模式进入方式v字符可视化模式(选中单个字符)
V行可视化模式(选中整行)
Ctrl + v块可视化模式(选中矩形块)
操作指令d删除选中内容
y复制选中内容
c删除选中内容并进入插入模式
>将选中内容向右缩进
<将选中内容向左缩进
~切换选中内容的大小写
U将选中内容转为大写
u将选中内容转为小写
命令行模式文件操作:w保存文件
:w filename另存为 filename 文件
:q退出 vim(无修改时)
:q!强制退出,不保存修改
:wq或:x保存并退出
:e filename打开另一个文件 filename
:e!放弃修改,重新加载当前文件
:r filename将 filename 文件内容插入到当前光标位置
:r !command将 Shell 命令 command 的输出插入到当前光标位置
查找替换/pattern向下查找 pattern
?pattern向上查找 pattern
:noh取消高亮显示查找结果
:%s/old/new/g全文替换 old 为 new
:%s/old/new/gc全文替换,每次替换前确认
:n1,n2s/old/new/g在 n1 到 n2 行之间替换 old 为 new
窗口操作:split或:sp水平分割窗口
:vsplit或:vsp垂直分割窗口
:close关闭当前窗口
:only关闭其他窗口,只保留当前窗口
配置设置:set nu显示行号
:set nonu隐藏行号
:set hlsearch高亮显示查找结果
:set nohlsearch关闭查找结果高亮

(1).使用快捷键将光标快速移动到文件的第 3 行第 5 个字符处

打开vim test.txt文件后,在命令模式下,输入3G可以将光标快速移动到第 3 行的行首,然后输入5l(l表示向右移动一个字符,输入5l即向右移动 4 个字符),即可将光标移动到第 3 行第 5 个字符处。

(2).删除文件中第二行的所有内容,然后撤销该删除操作

在命令模式下,将光标移动到第二行(可以使用2G快速定位到第二行),输入dd即可删除当前行(即第二行)的所有内容。删除后,输入u命令,即可撤销上一步的删除操作,恢复第二行内容。

(3).复制文件的前两行内容,并粘贴到文件末尾,形成一个新的段落,最后保存文件

在命令模式下,将光标移动到第一行,输入2yy复制当前行及下一行(即前两行)的内容。然后将光标移动到文件末尾(可以使用G快速定位到文件末尾),输入p将复制的内容粘贴到文件末尾。完成操作后,输入:w保存文件。

查找与替换

(4).在vim test.txt文件中查找 “Linux” 这个单词,并统计其出现的次数

在命令模式下,输入/Linux,然后按回车键,vim 会自动定位到第一个 “Linux” 出现的位置。继续按n键可以查找下一个 “Linux”,按N键查找上一个。若要统计出现的次数,可以在命令模式下输入:%s/Linux//gn,其中%表示在整个文件范围内,s表示替换操作,//表示查找 “Linux”,g表示全局替换(即查找每一处),n表示只显示匹配次数而不进行实际替换,执行该命令后,vim 会在底部显示 “Linux” 出现的次数。

(5).将文件中所有的 “Linux” 替换为 “RHEL 系统”,要求在替换前显示替换提示

在命令模式下,输入:%s/Linux/RHEL系统/gc,其中%表示整个文件,s表示替换,Linux是要查找的内容,RHEL系统是替换后的内容,g表示全局替换,c表示在每次替换前显示确认提示,输入y确认替换,n跳过本次替换 。

(6).在文件中查找以 “LOGO” 开头的行,并将光标定位到该行

在命令模式下,输入/^LOGO,然后按回车键,vim 会自动将光标定位到以 “LOGO” 开头的行。其中^表示匹配行首。

相关新闻

NCCL软件对象(概念)分析

NCCL软件对象(概念)分析

下面的示意图以 2 个 node、4 个 CUDA device、4 个 rank 为例&#xff0c;展示 NCCL 中各对象的归属关系、通信任务的提交过程&#xff0c;以及运行时的数据传输机制。每个 node 上有一个 Process&#xff0c;分别管理两个 CUDA device&#xff1b;四个 rank 共同组成一个 Com…

2026/10/20 19:54:52 阅读更多 →
深⼊理解指针(1)

深⼊理解指针(1)

深入理解指针(1) 文章目录深入理解指针(1)一. 内存和地址&#xff08;一&#xff09;内存&#xff08;二&#xff09;如何理解编址二. 指针变量和地址&#xff08;一&#xff09;取地址操作符&&#xff08;二&#xff09;指针变量和解引用操作符*1. 指针变量2. 如何拆解指针…

2026/10/20 19:54:52 阅读更多 →
自然语言到优化求解:构建可解释的约束驱动系统

自然语言到优化求解:构建可解释的约束驱动系统

1. 这不是又一个“调用大模型API”的玩具项目“从零构建一个自己的自然语言优化求解系统”——这个标题里最需要被拆开揉碎、重新校准的&#xff0c;是“自己的”和“优化求解”这两个词。它不指向一个封装了ChatGLM或Qwen接口的网页前端&#xff0c;也不等于在LangChain里拖拽…

2026/10/20 19:53:51 阅读更多 →

最新新闻

上下文窗口优化实战:从Token预算到动态记忆管理

上下文窗口优化实战:从Token预算到动态记忆管理

做提示工程这几年&#xff0c;被问得最多的一个问题不是“怎么写提示词”&#xff0c;而是“为什么同样的玩法&#xff0c;有时候效果爆炸&#xff0c;有时候直接翻车”。我复盘过很多翻车现场&#xff0c;最后都指向同一个源头——上下文窗口没管好。上下文窗口优化&#xff0…

2026/10/20 21:22:16 阅读更多 →
技能体系构建指南:从技能分类到组合实战的完整方法论

技能体系构建指南:从技能分类到组合实战的完整方法论

1. 从“skills”这个词说起&#xff1a;为什么它突然成了高频词“skills”这个词最近被反复提起&#xff0c;不是没有原因的。我在几个技术社区和职场社群里潜水观察了大半年&#xff0c;发现一个很明显的趋势&#xff1a;以前大家聊的是“你用什么工具”“你做过什么项目”&am…

2026/10/20 21:22:16 阅读更多 →
context-mode上下文模式:用显式模式管理程序状态,告别布尔变量失控

context-mode上下文模式:用显式模式管理程序状态,告别布尔变量失控

1. 从"上下文模式"这个命名说起&#xff1a;它到底在解决什么问题第一次看到"context-mode"这个词&#xff0c;很多人会下意识觉得它是个抽象概念&#xff0c;甚至怀疑它是不是又一个被过度包装的技术名词。但如果你真正在工程一线待过&#xff0c;尤其是在…

2026/10/20 21:22:16 阅读更多 →
技能的三层结构与习得路径:从操作到迁移的元能力

技能的三层结构与习得路径:从操作到迁移的元能力

1. 从“skills”这个标题说起&#xff1a;一个被严重低估的元能力“skills”这个词&#xff0c;单独拎出来当项目标题&#xff0c;信息量几乎为零。但恰恰是这种极简的标题&#xff0c;往往藏着最值得聊的东西。我见过太多人把“技能”等同于“工具清单”——会Python、会用Fig…

2026/10/20 21:22:16 阅读更多 →
AI工具辅助毕业论文写作:从选题到答辩的全流程实用指南

AI工具辅助毕业论文写作:从选题到答辩的全流程实用指南

论文题目定了没&#xff1f;这句话&#xff0c;我听了整整一个学期。专科毕业那年&#xff0c;我的导师每次见面第一句基本都是这个。我当时的真实状态是&#xff1a;题目没定、文献没看、Word模板倒是下载了三份&#xff0c;结果连自动目录都生成不出来。拖到最后一个月&#…

2026/10/20 21:22:16 阅读更多 →
从零搭建可扩展的Skills能力注册框架:设计、实现与避坑指南

从零搭建可扩展的Skills能力注册框架:设计、实现与避坑指南

1. 从“skills”这个标题说起&#xff1a;它到底在指什么“skills”这个词看起来简单到几乎不像一个项目标题&#xff0c;但恰恰是这种极简的命名方式&#xff0c;在技术社区里往往藏着最值得深挖的东西。我第一次看到这个标题的时候&#xff0c;脑子里蹦出来的第一个判断是&am…

2026/10/20 21:21:14 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →