RHCSA 第一天学习笔记
内容简介:Linux 安装与介绍、目录树结构、主要目录介绍、终端介绍(修改主机名)、快捷键、命令的组成格式、命令帮助(man、help),以及 ls、cd、mkdir、touch、rm、mv 等常用命令。
本人个人博客地址:Egg-blog
一、VMware 功能简单介绍
1. 快照功能
将打快照时系统的瞬时状态保存下来,后续的任何操作都可以利用快照恢复到当前快照的状态。
建议:安装完系统后,就利用 VMware 打一个快照。
2. 克隆(在关机状态下进行)
注意:创建链接克隆和完整克隆的区别。
3. 删除虚拟机
4. 进入系统后,如何打开终端
二、目录树结构
图形界面下 Windows 与 Linux 的对比:
| 系统 | 目录结构 | 根目录 | 分隔符 |
|---|---|---|---|
| Windows | 多根结构 | 盘符(如C:\) | \ |
| Linux | 单根结构 | / | / |
终端中 Windows 和 Linux 路径的对比
Windows 快速打开终端:
Shift + 鼠标右击,选择"从此处打开 PowerShell 窗口"(有的电脑是打开其他终端)。
Windows 的路径:
C:\Users\ASUS\Desktop\>特点:目录的起点(根目录)是盘符,目录之间使用\进行分隔。
Linux 的路径:
/etc/alsa -------- /(根目录) etc alsa特点:目录的起点(根目录)是/,目录之间使用/进行分隔。完整的目录路径应该是/etc/alsa,共 3 层,但是最后一个/可以省略:
/etc/alsa ======== /etc/alsa/ (两种写法含义一样)三、Linux 中主要目录介绍
| 目录 | 说明 |
|---|---|
/bin和/sbin | 都是用来存放命令的。/sbin存放的是可以修改系统的命令(权限要求比较高);/bin存放的一般都是不会修改系统的命令。 |
/boot | 存放和内核启动相关的文件。 |
/dev | 存放和设备相关的文件,比如磁盘。 |
/etc | 存放系统级别的配置文件。 |
/home和/root | 用户的主目录(家目录),一般用来存放用户个人的数据和配置文件。/home是普通用户的家目录(如 redhat →/home/redhat,user01 →/home/user01);/root是 root 用户的家目录(root 是超级管理员用户)。 |
/lib和/lib64 | 库函数目录。 |
/media和/mnt | 和挂载相关。/media和自动挂载相关,/mnt一般用来手动挂载。挂载提供一个入口,进入设备内进行文件管理。 |
/opt和/usr | /opt一般用来存放第三方的数据,/usr存放的是系统资源。 |
/proc和/run | 存放运行时产生的数据。例如:cat /proc/version查看系统版本,cat /proc/cpuinfo查看 CPU 信息。 |
/srv和/var | /srv存放和服务相关的数据;/var存放经常会变动的数据,例如日志文件(如/var/log目录)。 |
/tmp | 存放临时文件。 |
用户如何管理数据存放的位置?
- 如果用户个人的数据不想公开,可以放到用户的个人家目录下。
- 如果是第三方的数据,想公开的,可以放到
/opt或/usr目录。
四、终端介绍(修改主机名)
[root@localhost ~]#命令提示符前缀含义:
- root:当前终端的用户。注意:不代表当前系统的用户!!
- localhost:主机名(一般用来和 IP 地址进行绑定,方便记忆、确定主机位置)。
- ~:代表用户所处的当前位置(目录),此处
~就代表用户的家目录,即~ == /root。 - #:起到强调用户的作用。
#代表管理员,$代表普通用户。
注意:在执行命令时要学会使用
Tab键进行补全!
修改主机名
hostnamectl set-hostname 主机名查看完整主机名
# 第一种方法[root@local ~]# hostname# 第二种方法[root@local ~]# hostnamectl注意:修改主机名后,需要重启终端,让当前终端重新加载主机名。
查看当前所处位置
pwd# 查看当前所处的位置(目录)五、常用的终端快捷键
| 快捷键 | 作用 |
|---|---|
Ctrl + Shift + = | 放大终端 |
Ctrl + - | 缩小终端 |
Ctrl + L | 清屏(效果等同clear) |
Ctrl + C | 杀死当前终端中运行在前台的进程 |
Tab | 对命令或者路径进行补全(如果无法补全,就要想一想命令或路径是否写错了!) |
↑/↓方向键 | 调用历史命令 |
Ctrl + Shift + C | 复制 |
Ctrl + Shift + V | 粘贴 |
history 历史命令
- 默认保留 1000 条命令,显示格式为:
编号 命令 - 如果想调用某条历史命令,可以使用
!编号
六、命令的组成
[]代表是可选项
主命令 [选项](对主命令的补充) [参数]示例:
ls-l# ls 是主命令,-l 是选项,参数省略(默认当前路径下)ls-l/mnt# /mnt 是参数- 主命令:代表要操作的行为。
- 选项:对主命令功能的补充。一般情况下选项前面都会有
-:-选项是短选项,--选项是长选项。 - 参数:操作的对象,一般是文件、目录、用户、进程等。
主命令、选项和参数之间都是用空格隔开的;选项和它前面的
-之间没有空格。
ls-a# 参数省略,默认当前位置(ls 是主命令,-a 是选项)ls-aDesktop# ls 是主命令,-a 是选项,Desktop 是参数图中白色代表文件,蓝色代表目录。
七、命令帮助(man、help)
# 1. 查看简要的帮助信息主命令--help# 2. 查看命令的详细帮助信息,一般用来查看例子的使用man主命令man 手册查看例子的方法:
man 主命令 --> 输入 /EXAM --> 回车就会跳转到例子- 退出 man 手册:按
q - 示例:
man firewall-cmd
八、常见命令
1. ls —— 查看目录信息
| 命令 | 作用 |
|---|---|
ls | 查看目录下的文件信息 |
ls -l | 查看目录下的文件详细信息(缩写ll) |
ls -a | 查看目录下的隐藏文件(以.开头的文件就是隐藏文件) |
ls -lh | 查看目录下文件的大小(加上-h选项之后,凡是大于 1KB 的文件都会加上单位) |
ls -ld 目录路径 | 查看目录本身的文件信息 |
2. cd —— 切换当前工作目录
pwd# 查看当前所处位置的路径(绝对路径)路径有两种:
- 绝对路径:凡是以
/开头的路径都是绝对路径,~开头的也是绝对路径。是一个完整的路径,起点一定是/。例如:/root/Music - 相对路径:相对于当前目录生效的路径,起点从当前目录开始(只要不是从
/开始写的都是相对路径)。
示例:
[root@localhost ~]# cd /etc/sysconfig/ # 绝对路径[root@localhost sysconfig]# pwd/etc/sysconfig[root@localhost sysconfig]# lsanaconda network atd network-scripts# 当前路径下有 network-scripts 目录chronyd nftables.conf[root@localhost sysconfig]# cd network-scripts/ # 相对路径cd 常用用法:
| 命令 | 作用 |
|---|---|
cd 目录路径 | 切换目录(绝对、相对路径均可) |
cd .. | 返回当前目录的上级目录 |
cd ~或cd | 返回当前用户的家目录(如果不做后续操作,一般建议返回家目录) |
cd - | 返回上一次所处的目录(位置) |
注意:
../代表上一级路径,./代表当前路径。
综合练习示例:
题目 1:在
/root下创建目录jiance,在jiance下面创建redhat,再在redhat下面创建文件。
# 第一种写法(递归创建)[root@workstation ~]# mkdir -p jiance/redhat/[root@workstation ~]# touch jiance/redhat/2024-2-24# 第二种写法(逐级进入创建)[root@workstation ~]# mkdir jiance[root@workstation ~]# cd jiance/[root@workstation jiance]# mkdir redhat[root@workstation jiance]# cd redhat/[root@workstation redhat]# touch 2023-3-26题目 2:在
/tmp下创建一个目录nanjing。
# 第一种写法[root@workstation ~]# cd /tmp/[root@workstation tmp]# mkdir nanjing# 第二种写法[root@workstation ~]# mkdir /tmp/nanjing题目 3:在
/jiance/redhat下创建一个文本文件2023.html。
# 第一种写法[root@workstation ~]# touch jiance/redhat/2023.html# 第二种写法[root@workstation ~]# cd jiance/[root@workstation jiance]# cd redhat/[root@workstation redhat]# touch 2023.html经验总结:凡是能用相对路径的,肯定都可以使用绝对路径。相对路径使用更方便,但会受到当前路径的影响;如果第三方需要使用路径的话,一般都是绝对路径,来保证万无一失。
3. mkdir —— 创建目录
| 命令 | 作用 |
|---|---|
mkdir 目录名 | 创建目录,例:mkdir link |
mkdir -p 父目录/子目录 | 创建多级(递归)目录 |
示例:
mkdir-p/mnt/a/b/c/d4. touch —— 创建普通文本文件
| 命令 | 作用 |
|---|---|
touch 文件名 | 创建普通的文本文件 |
5. rm —— 删除
用来删除文件或目录。注意:Linux 没有回收站机制,删除时要格外注意!
| 命令 | 说明 |
|---|---|
rm 普通文件(例:rm 1.txt) | 删除时会询问是否删除,必须手动输入y才可以 |
rm -f 普通文件(例:rm -f 2.txt) | -f强制删除,不会以交互形式询问 |
rm -rf 目录路径(例:rm -rf link) | -r针对目录进行删除,-f强制删除 |
rm -rf 目录路径/* | 清空目录里的内容但保留目录本身 |
以下两种操作效果一样:
# 直接查看[root@local ~]# ls /root/redhat/nanjing/# 先进入再查看[root@local ~]# cd /root/redhat/nanjing/[root@local nanjing]# ls6. mv —— 移动文件 / 重命名
# 移动文件mv移动的目标路径(要移动哪个文件或目录) 移动的目的目录(移动到哪)# 移动并且重命名(目的位置后跟一个不存在的新文件名)mv移动的目标路径 目的目录/新的文件名# 重命名(目的位置不存在时)mv旧文件名 新文件名示例:把1.txt移动到/root/link目录下:
[root@local ~]# ls # 等同于 ls /root/[root@local ~]# mv 1.txt link/ # 相对路径补充命令:
echo"内容">文件名# 向文件写入内容cat文件路径# 查看文件内容7. cp —— 复制
注意:同一目录下不能出现同名的文件!
# 复制cp复制的目标路径(要复制的内容) 复制的目的路径(复制之后放到哪)# 复制并且重命名cp复制的目标路径 复制的目的路径/新的文件名注意点:
cp命令不能直接对目录进行复制,复制目录必须加上-r选项。mv命令不会改变文件的原属性,但cp命令在复制时会改变文件的原属性。如果要保留文件的原属性,需要使用-p选项。-a=-r+-p,也可以组合使用-pr。
九、课后练习
第 1 题:修改主机名为localhost.localdomain
[root@localhost ~]# hostnamectl set-hostname localhost.localdomain注意:修改后需要重启终端(或断开重新连接),让终端重新加载主机名,提示符才会变成
[root@localhost ~]#的新样子。
验证:
[root@localhost ~]# hostnamectlStatic hostname: localhost.localdomain......第 2 题:在link目录下创建 file1、file2、file3,再删除 file2、file3
# 没有 link 目录就先创建[root@localhost ~]# mkdir link# 创建 3 个文件(touch 可以一次跟多个文件名)[root@localhost ~]# touch link/file1 link/file2 link/file3# 删除 file2、file3(rm 也可以一次删多个)[root@localhost ~]# rm -f link/file2 link/file3验证:
[root@localhost ~]# ls link/file1第 3 题:在指定目录下建目录和文件
[root@localhost ~]# mkdir /usr/local/etc/mulu1[root@localhost ~]# touch /usr/local/etc/wenjian1[root@localhost ~]# mkdir /usr/local/bin/mulu2[root@localhost ~]# touch /usr/local/bin/wenjian2验证(题目要求用ls及其选项检查):
[root@localhost ~]# ls /usr/local/etc/mulu1 wenjian1[root@localhost ~]# ls /usr/local/bin/mulu2 wenjian2# 想看得更细就用 -l,想确认是目录还是文件看行首字符(d 是目录,- 是普通文件)[root@localhost ~]# ls -l /usr/local/etc/drwxr-xr-x.2root root6... mulu1 -rw-r--r--.1root root0... wenjian1第 4 题:创建/test目录,里面文件c内容为c is a cat
[root@localhost ~]# mkdir /test[root@localhost ~]# echo "c is a cat" > /test/c
echo "内容" > 文件名:把内容写入文件(文件不存在会自动创建)。>是覆盖写,>>是追加写。
验证:
[root@localhost ~]# cat /test/cc is acat第 5 题:将link目录复制到/tmp下,要求不改变属性
# -a = -r + -p,既递归复制目录,又保留文件原属性[root@localhost ~]# cp -a link /tmp/# 或者拆开写也一样[root@localhost ~]# cp -rp link /tmp/两个坑别踩:① 复制目录必须加
-r(或-a),不然直接报错;② 题目说"不改变属性"就必须带-p,光cp -r会把属主、时间戳刷成新的。
验证:
# 对比两个目录的详细属性,时间戳、权限应该一模一样[root@localhost ~]# ls -ld link /tmp/link第 6 题:fileA/fileB、目录 A、移动加复制改名
# 1. 创建 fileA(内容为 2023)和 fileB[root@localhost ~]# echo 2023 > fileA[root@localhost ~]# touch fileB# 2. 创建目录 A,在 A 里建 1.txt(内容为 hello)和 3.txt[root@localhost ~]# mkdir A[root@localhost ~]# echo hello > A/1.txt[root@localhost ~]# touch A/3.txt# 3. 把 fileA 移动到 A 目录中[root@localhost ~]# mv fileA A/# 4. 把 A 里的 1.txt 复制到当前目录,重命名为自己的姓,且保留原属性[root@localhost ~]# cp -p A/1.txt wang.txt最后一步的
wang.txt换成你自己的姓,比如姓李就li.txt。注意是单个文件复制,不用-r,但要-p保属性。
验证:
[root@localhost ~]# lsA fileB wang.txt[root@localhost ~]# ls A/1.txt3.txt fileA[root@localhost ~]# cat A/fileA2023[root@localhost ~]# cat wang.txthello