第一章入门的基础知识
1.利用虚拟机进行远程连接
在开始输入命令之前,先要进行远程连接
先要启动虚拟机,登录root账户,在这个界面
点击左上角的活动,正下方会出现一类导航类的东西有一个小黑板的东西,点开,会出现一个类似于命令框的东西。
点开 输入 ip a 回车,下面就可以找到我们建立的虚拟机的IP地址
下面到xshell 7上进行远程控制
[C:\~]$ ssh 192.168.78.136 后面是自己创建虚拟机的IP地址
在输入IP地址后,会进行一些认证,将之前安装虚拟机上的root账户和密码进行授权即可,就可以开始远程操作虚拟机。
2.root的密码在虚拟机上的强制重置
在开启虚拟机时,可能会因为账户密码的遗忘,导致虚拟机不能成功启动
所以我们有一种方法可以,重置虚拟机root用户的密码如:
在虚拟机开启的这个界面,按 E 键,进入另外一个界面
再在光标所在的位置(看不见的话就在倒数第二段最后那个位置)输入 rd.break 然后按ctrl+x
进入下一个界面
进入这个界面后,按照图中的命令进行输入,
在输入新密码时,密码并不会显示出来,这是正常现象
如下,密码修改成功,(在一排排小方格中间有一个8,是因为我们设置的新密码位数不满8位)
mount -o remount,rw /sysroot
chroot /sysroot
passwd
touch /.autorelabel
exit
exit
3.一些基础的Linux指令
基础知识:
root远程控制连接好后默认进入家目录,类似于windows的桌面
root 管理员,root用户 根用户
@ 用于分隔用户和主机名
localhost 主机名
~ 家目录 root的家目录 /root /home/redhat
# root用户的命令提示符
一般看见的[ ] 都代表可选,可写也可以不写那种
ctrl+c 用于停止一个进程
[root@imm ~]# logout 这条命令会直接结束远程连接建立起来的回话
/ 根目录
Ctrl+“+” 可以放大命令框 Ctrl+“-” 可以缩小名命令框
双击这个可以建立一个完全相同的命令框,这里的一样和手机上的分身差不多,连接的虚拟机和IP都是同一个。
[root@localhost ~]# poweroff
同时,在我们需要关机的时候,也可以在这个界面输入poweroff 进行虚拟机的关机
因为我们直接关闭虚拟机的软件可能会导致虚拟机的损坏
拍摄快照(类似于存档)
在建立虚拟机的软件里找到拍摄快照(会记录下当时虚拟机的状态和含有的内置文件及目录)
给快照命名,区分当时建立的快照下,虚拟机的状态有没有什么不同
查看当前目录
[root@localhost ~]# pwd
/root
查看现在的在哪个目录 例子是root的家目录
切换用户(普通用户和root用户)
[root@localhost ~]# su - xnj1 (switch user 的缩写)
[xnj1@localhost ~]$
切换到用户 xnj1
[xnj1@localhost ~]$ exit 主要和ssh回话有关,可能有返回上一个回话的意思
返回前一个会话窗口,如果这是唯一 一个会话,那么就会退出终端,也就是退出远程控制
[root@imm ~]# logout 这条命令会直接结束回话
修改主机名
[root@localhost ~]# hostnamectl
查看主机的名称及一些ID
[root@localhost ~]# hostnamectl
Static hostname: (unset)
Transient hostname: mm
Icon name: computer-vm
Chassis: vm 🖴
Machine ID: d70afb974e5d47b9bc7c61953895df15
Boot ID: 692468337ecc4cf1b4b2215303a12ef1
Virtualization: vmware
Operating System: Red Hat Enterprise Linux 9.3 (Plow)
CPE OS Name: cpe:/o:redhat:enterprise_linux:9::baseos
Kernel: Linux 5.14.0-362.8.1.el9_3.x86_64
Architecture: x86-64
Hardware Vendor: VMware, Inc.
Hardware Model: VMware Virtual Platform
Firmware Version: 6.00
了解:
- Static hostname: 系统的静态主机名。
- Icon name: 系统的图标名称。
- Chassis: 系统的机箱类型。
- Machine ID: 系统的唯一机器ID。
- Boot ID: 当前启动会话的ID。
- Virtualization: 虚拟化技术,如果有的话。
- Operating System: 操作系统名称和版本。
- CPE OS Name: 操作系统的CPE名称。
- Kernel: 内核版本。
- Architecture: 系统架构
[root@localhost ~]# hostname mm
临时修改主机名称 此时还不会改名字,当重新接入的时候,就会看见名字
[root@localhost ~]# hostname hostname whale
此命令永久将主机名称修改
用户名 主机名
(这里的主机名字不是用户名,用户名一直是在虚拟机里面设置的那个)
查看该目录的信息
[root@whale ~]# ll 和 [root@whale ~]# ls -l 等效
用来列出当前目录下的文件和文件夹的详细信息
(此行为只能在root用户下,才有详细内容,大多数指令都只能在root用户下才能生效)
对于一个文件内容的理解
[root@haha2 ~]# ls -d -l /root
d r-xr-x---. 14 root root 4096 3月 29 18:04 /root
1 2 3 4 5 6 7 8
1:文件类型
2:文件对应的权限
3:硬链接次数
4:文件所属用户
5:文件所属组
6:文件大小 b
7:文件的时间
8:文件名称
切换目录
[root@whale ~]# cd
改变当前工作目录 在后面不指定目录时,他自己切换到当前用户的家目录
用户 xnj1 的家目录
拓展知识(查发发行版本和内核等)
查看当前linux的发行版本和名称
[root@imm ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 9.3 (Plow)
查看linux内核
[root@imm ~]# uname -r
5.14.0-362.8.1.el9_3.x86_64
linux发行版=kernel内核+实用工具+应用程序
在xshell上修改root的密码
[root@mm ~]# passwd -d xnj1
清除用户的密码 xnj1
passwd: 操作成功
[root@mm ~]# passwd xnj1
更改用户 xnj1 的密码 。
新的密码: 这里密码同样不会显示出来
无效的密码: 密码少于 8 个字符
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。
判断命令是内部命令还是外部命令
root@mm ~]# type -a
在-a时,会显示所有匹配的命令,包括别名、内置命令和可执行文件。
[root@mm ~]# type -a su
su 是 /usr/bin/susu 不是内置命令 而是一个位于 /usr/bin
目录下的独立程序,这个表示路径
[root@mm ~]# type -a cd
cd 是 shell 内建
cd 是 /usr/bin/cd
查看可用的shell类型
[root@mm ~]# cat /etc/shells (查看shell下的内容)
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
查看当前用户的 shell 名称
[root@mm ~]# echo $SHELL
/bin/bash
第二章 linux中执行命令
命令通常由是三个部分组成
主命令 选项 参数
例如: su -l xnj1
/ 根目录 root 根用户(管理员工用户,权限很高)
cd ~ #切换到家目录
cd #切换到家目录
pwd #打印当前工作目录
ll #列出当前目录的内容(=ls -l)
cat #查找
帮助的命令
查询一个命令后面可以跟哪些选项
[root@whale ~]# help
查看可用的内置命令有哪些 (如果不是内置命令的话,会报错,好像也可以借此来验证是否为内置命令)
也可以用于查询对一些命令的用法如:
[root@whale ~]# help cd
tab 键
可以帮助补全 和HCIA的效果差不多 (按两下可以查看,以这几个字母开头的命令还有哪些)
man 手册
此命令在用户界面也可以使用
[root@imm ~]# man passwd
以命令passwd为例
q即可退出man手册
关于时间的命令
date
查看当前时间
[root@whale ~]# date
2024年 04月 01日 星期一 12:49:51 CST 后面的是中国标准时间的意思
以月/日/年 的格式呈现时间
[root@whale ~]# date +%D 后面是跟的格式 (加格式要打“+”号)
04/01/24
[root@whale ~]# date +%Y/%m/%d
2024/04/01
[root@whale ~]# date +%Y/%m/%d %H:%M
date: 额外的操作数 “%H:%M”
请尝试执行 "date --help" 来获取更多信息。(没有引号的错误示例)
[root@whale ~]# date "+%Y/%m/%d %H:%M"
2024/04/01 12:56
在进行长段输出时,要加引号,不然,系统不能识别,且是英文输入法下的引号
[root@whale ~]# date +%j
092
timedatectl (这里比较昏,但大多数涉及后面的课程)到这4.11 17.18
同步是时间服务器?
重启时间服务器
[root@whale ~]# systemctl restart chronyd 用于同步系统时钟
[root@whale ~]# systemctl status chronyd 用于查看 chronyd
服务的当前状态
● chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; pre>
Active: active (running) since Mon 2024-04-01 12:58:12 CST; 22s ago
Docs: man:chronyd(8)
man:chrony.conf(5)
Process: 4003 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, statu>
Main PID: 4005 (chronyd)
Tasks: 1 (limit: 10684)
Memory: 1.0M
CPU: 32ms
CGroup: /system.slice/chronyd.service
└─4005 /usr/sbin/chronyd -F 2
4月 01 12:58:12 whale systemd[1]: Starting NTP client/server...
4月 01 12:58:12 whale chronyd[4005]: chronyd version 4.3 starting (+CMDMON>
4月 01 12:58:12 whale chronyd[4005]: Frequency -4.778 +/- 3.967 ppm read f>
4月 01 12:58:12 whale chronyd[4005]: Using right/UTC timezone to obtain le>
4月 01 12:58:12 whale chronyd[4005]: Loaded seccomp filter (level 2)
4月 01 12:58:12 whale systemd[1]: Started NTP client/server.
4月 01 12:58:19 whale chronyd[4005]: Selected source 139.199.215.251 (2.rh>
4月 01 12:58:19 whale chronyd[4005]: System clock TAI offset set to 37 sec>
[root@whale ~]# timedatectl 用于查询和更改系统时间和日期的命令行工具
Local time: 一 2024-04-01 12:59:39 CST
Universal time: 一 2024-04-01 04:59:39 UTC
RTC time: 一 2024-04-01 04:59:39
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
[root@whale ~]# timedatectl set-timezone Asia/Shanghai 用于将系统时区设置为亚洲/上海时区
[root@whale ~]# timedatectl
Local time: 一 2024-04-01 13:03:15 CST
Universal time: 一 2024-04-01 05:03:15 UTC
RTC time: 一 2024-04-01 05:03:15
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
UTC+8h =CST
查看目录下的文件 ls
[root@whale ~]# ll /root 查看root目录的内容(也是root的家目录)
以上选项先看其作用,在敲的时候,在选项之间没有矛盾的情况下可以写多个选项,无先后顺序之分。如:ls -dl ls -d -l ls -ld ls -l -d 其本质都是一样的
重点学习加粗的选项,主要是用来看文件
[root@haha2 ~]# ls -d -l /root
dr-xr-x---. 14 root root 4096 3月 29 18:04 /root 这里的单位是字节 最小的存储单位是比特byte
[root@haha2 ~]# ls -d -l -h /root
dr-xr-x---. 14 root root 4.0K 3月 29 18:04 /root
[root@haha2 ~]# ls -d -i /dir2/dir3/dir4/
19017279 /dir2/dir3/dir4/ 前面的是文件的节点号
[root@haha2 ~]# ls -d -i -l /dir2/dir3/dir4/
19017279 drwxr-xr-x. 3 root root 18 3月 29 18:20 /dir2/dir3/dir4/
[root@haha2 ~]# ls -l -i /bin/sh
17432400 lrwxrwxrwx. 1 root root 4 11月 24 2022 /bin/sh -> bash ‘
后面的不得号是有建立链接的,有点像指针,后面会学习
[root@haha2 ~]# ls -l -i /bin/bash
17432388 -rwxr-xr-x. 1 root root 1388904 11月 24 2022 /bin/bash
[root@haha2 ~]# ls -l -i /usr/bin/bash
17432388 -rwxr-xr-x. 1 root root 1388904 11月 24 2022 /usr/bin/bash
[root@haha2 ~]# ls -l -i /usr/bin/sh
17432400 lrwxrwxrwx. 1 root root 4 11月 24 2022 /usr/bin/sh -> bash
#文件排序
[root@haha2 ~]# ls -S
anaconda-ks.cfg 公共 模板 视频 图片 文档 下载 音乐 桌面 dir1
[root@haha2 ~]# ls -S -s
总用量 4
4 anaconda-ks.cfg 0 公共 0 模板 0 视频 0 图片 0 文档 0 下载 0 音乐 0 桌面 0 dir1
ls -s 是显示出文件的大小,但是这里的文件大小指的是硬盘块
#ls带多个选项(多个文件)的写法
[root@haha2 ~]# ls / /root
/:
afs boot dir2 home lib64 mnt proc run srv tmp var
bin dev etc lib media opt root sbin sys usr
/root:
公共 视频 文档 音乐 anaconda-ks.cfg
模板 图片 下载 桌面 dir1
[root@haha2 ~]# ls -l -d / /root
dr-xr-xr-x. 19 root root 268 3月 29 18:20 /
dr-xr-x---. 15 root root 4096 3月 29 18:31 /root
#cat查看多个文件
cat只能查看普通文件,但是可以看多个文件(好像还可以查看一些特殊文件)
[root@haha2 ~]# cat anaconda-ks.cfg /etc/shells
[root@haha2 dev]# ls -l /dev/sr0
brw-rw----+ 1 root cdrom 11, 0 3月 29 18:02 /dev/sr0
[root@haha2 dev]# ls -l /dev/tty
crw-rw-rw-. 1 root tty 5, 0 3月 29 18:01 /dev/tty
#查找根目录下的所有套接字类型的文件
[root@haha2 dev]# find / -type s
[root@haha2 dev]# find / -type b
第三章 linux文件类型和根目录结构
文件类型:
p 管道文件 用于两个进程之间的通讯
s 套接字文件 主要包含 IP 端口号和网络协议
相同类型的文件大多数都在一个目录下
系统的目录结构:
查看日志信息:
cat /var/log/message
实时查看日志信息:
tail -f /var/log/message
. 当前工作目录
[root@haha2 ~]# ls .
公共 模板 视频 图片 文档 下载 音乐 桌面 anaconda-ks.cfg
[root@haha2 ~]# pwd
/root
.. 当前目录的上一级目录(父目录)
[root@haha2 ~]# ls ..
afs bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv
sys tmp usr var
[root@haha2 ~]# ls /
afs bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv
sys tmp usr var
两种命令的表现方式:
[root@haha2 ~]# /usr/bin/cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
上面这个命令是找到我们需要程序的路径,然后对后面的内容进行命令
[root@haha2 ~]# cat /etc/shells
这个是直接调用命令
二者都可以
绝对路径:从根开始
[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
相对路径:从当前目录开始
[root@localhost ~]# cd /etc
[root@localhost etc]# cat shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
相对路径的区别在于,绝对路径会从根开始开始写要进入文件的路径,对这个路径进行指令,而相对路径是顺着路径进入目标文件里在这个文件里对目标进行指令
目录的简记和重点
/ :存放的系统内所有文件
/boot :系统启动相关的文件
/root
/home
/bin /sbin /usr 存放二进制文件的目录
/etc 系统和服务相关的配置文件
/var 日志文件存放的目录
/dev 设备文件存放的目录
/mnt 挂载点目录
CSDN-Ada助手: 恭喜用户第20篇博客《第八章用户与组的管理(视频)》发布成功!持续创作是不易的,你已经做得很棒了!接下来,或许可以考虑深入探讨用户与组管理的细节,或者结合实际案例进行分析,让读者更易理解和应用。希望你能继续保持创作的热情,为大家带来更多有价值的内容!期待你的下一篇作品!
CSDN-Ada助手: 恭喜您发布了第19篇博客!您的持续创作精神令人钦佩。希望您能继续保持这样的热情和努力,不断提升自己的写作技巧和内容质量。或许可以考虑在未来的创作中加入更多个人观点和见解,让读者更加深入地了解您的想法。期待您更多精彩的作品!祝您写作愉快!
CSDN-Ada助手: 恭喜作者发布了第18篇博客!看到标题是“第六章 打包压缩与解压缩”,我对这个主题非常感兴趣。继续分享关于打包压缩与解压缩的知识,一定会对读者有很大帮助。希望作者在下一篇博客中可以深入探讨一些实际案例或者应用场景,这样读者更容易理解和应用所学知识。期待你更多的精彩内容,加油!
CSDN-Ada助手: 恭喜您撰写了第16篇博客“第五章 文件内容显示吧”!持续创作是提升自己的最好方式,您的坚持和努力让我们看到了您的进步。希望您在未来的创作中可以更加深入地挖掘文件内容显示的主题,可以尝试结合实例或者案例进行分析,让读者更加深入地了解这个话题。期待您的下一篇作品!加油!
CSDN-Ada助手: 恭喜用户写下了第17篇博客!看到你在前段时间的练习题上取得了进展,真的让人挺欣慰的。希望你能继续保持这种创作热情,不断提升自己的写作水平。或许下一步可以考虑将这些练习题整理成一份专题,分享给更多人,让大家都能受益。加油!希望你继续保持创作的热情!