一、搭建Linux学习环境
如何安装linux操作系统:
(1)安装独立的Linux系统,不再安装其他操作系统。
(2)安装Windows与Linux并存的多操作系统,启动时通过菜单选择要启动的操作系统。
(3)在虚拟机中安装Linux操作系统。
本次学习采用第三种方式,在虚拟机中安装linux操作系统。
先下载vmware workstation pro软件,下载地址:https://www.vmware.com/products/workstationpro/workstation-pro-evaluation.html
下载完成后,退出所有的安全软件,并安装该软件。安装完成后需要激活,激活完成后打开该软件。
1.1 新建虚拟机
打开vmware workstation 16 ,首页点击“新建虚拟机”或文件>“新建虚拟机”
点击创建虚拟机,选择自定义(高级)
进入新建虚拟机向导后,选择虚拟机硬件兼容性(默认即可),点击下一步
进入“安装客户机操作系统”后,选择稍后安装操作系统,点击下一步
进入"选择客户操作系统"界面,操作系统选择“Linux”,版本根据自己需要安装的镜像版本选择,本次安装选择“Red Hat Enterprise Linux 8 64位”,点击下一步
进入“命名虚拟机”,创建虚拟机名称,选择虚拟机位置,点击下一步
进入“处理器配置”,选择处理器基本配置(根据电脑实际配置和实际使用用途进行选择,本机学习机,选择默认单核单处理器配置),点击下一步
进入“此虚拟机内存”,为该虚拟机创建可用内存,点击下一步
进入“网络类型”,选择网络连接,点击下一步
进入“选择I/O控制器类型”,选择默认配置,点击下一步
进入“选择磁盘类型”,选择默认配置,点击下一步
进入“选择磁盘”,选择创建新虚拟磁盘,点击下一步
进入“指定磁盘容量”,配置磁盘大小为30G,选择“将虚拟磁盘拆分成多个文件”,点击下一步
进入“指定磁盘文件”,点击下一步(此文件为虚拟机存储文件,保存好,轻切记不可删除此文件)
进入“已准备好创建虚拟机”,点击完成
1.2 安装linux操作系统(rhel-8.5-x86_64-dvd.iso)
在vm中看到创建的新虚拟机,选择CD/DVD(SATA)
进入之后,选择“使用ISO映像文件”,选择本次安装的操作系统,rhel-8.5-x86_64-dvd.iso,点击确定
在RHEL8虚拟中,点击“开启此虚拟机”
.鼠标点进去,用键盘选择第一项,Install Red Hat Enterprise Linux 8.5 等待界面加载完成
进入语言界面,建议选English,中文在redhat系统可能会出现部分乱码情况,选择语言后,点击“Continue”
选择系统时区(日期与时间),选择完毕点击“Done”
安装源默认为光盘,无需修改。软件选择Server with GUI(带有图形化界面),点击"Done"
选择软件安装位置,选择“Custom”
点击“+”号进行磁盘分区,依次次分配/boot,swap,/,分区完成后,点击“Done”
点击"Accept Changes",
点击Root Passwd 修改管理员密码,修改完成后点击“Done”
点击“User Creation”,创建用户xue,点击“Done”
点击Begin Installation(开始安装)
安装系统中
系统安装完成,点击“Reboot System”(重启机器)
登录root用户
进入系统桌面,默认点击下一步
系统搭建完毕
二、修改主机名为server.local
[root@server Desktop]# hostname server.local #临时修改主机名
[root@server Desktop]# cat /etc/hostname
localhost.localdomain
[root@server Desktop]# hostnamectl set-hostname server.local #永久修改主机名
[root@server Desktop]# cat /etc/hostname
server.local
三、将虚拟机的网络连接模式分别调换成仅主机模式、nat模式、桥接模式并获取ip地址使用ssh通过不同用户远程连接
3.1 仅主机模式
编辑虚拟机配置,修改网络适配器为“仅主机模式”,点击确定
修改后利用‘ifconfig’或‘ip address’查看ip地址
通过dncp服务获取ip地址
[root@server Desktop]# nmcli connection up ens160
ssh远程链接192.168.164.128 (仅主机模式)
输入用户名密码
点击“接受并保存”
连接远程服务器后,开始验证ssh连接
3.2 Nat模式
网络模式修改为Nat模式
输入命令[root@server network-scripts]# nmcli device connect ens224
ssh连接远程服务器并验证
3.3 桥接模式
网卡模式修改为“桥接模式”
桥接模式自动获取ip地址[root@server Desktop]# nmcli connection up ens160
桥接模式和本地宿主机处于同一ip端,查看本地链接 win+R 后输入CMD,ipconfig
ssh连接远程服务器并验证
四、远程连接成功后,总结哪种网络模式可以上网(可以使用ping命令测试)并查看root用户和普通用户的家目录的不同
4.1 ping命令测试“仅主机网络模式”
[root@server ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:67:ec:df brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:67:ec:df brd ff:ff:ff:ff:ff:ff
9: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:ce:0b:01 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.128/24 brd 192.168.100.255 scope global dynamic noprefixroute ens160
valid_lft 1772sec preferred_lft 1772sec
inet6 fe80::20c:29ff:fece:b01/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@server ~]# ping www.baidu.com
ping: www.baidu.com: Name or service not known
ping www.baidu.com 网络不通
4.2 ping命令测试“NAT网络模式”
[root@server ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:67:ec:df brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:67:ec:df brd ff:ff:ff:ff:ff:ff
8: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:ce:0b:0b brd ff:ff:ff:ff:ff:ff
inet 192.168.200.128/24 brd 192.168.200.255 scope global dynamic noprefixroute ens224
valid_lft 1741sec preferred_lft 1741sec
inet6 fe80::4b4b:7e64:cdc2:db39/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@server ~]# ping www.baidu.com
PING www.a.shifen.com (14.215.177.39) 56(84) bytes of data.
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=1 ttl=128 time=77.0 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=2 ttl=128 time=54.1 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=3 ttl=128 time=76.8 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=4 ttl=128 time=75.9 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=5 ttl=128 time=52.9 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=6 ttl=128 time=62.9 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=7 ttl=128 time=74.7 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=8 ttl=128 time=92.4 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=9 ttl=128 time=39.9 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=10 ttl=128 time=41.3 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=11 ttl=128 time=65.5 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=12 ttl=128 time=102 ms
ping www.baidu.com 网络正常
4.3 ping命令测试“桥接网络模式”
[root@server ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:67:ec:df brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:67:ec:df brd ff:ff:ff:ff:ff:ff
7: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:ce:0b:01 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.84/24 brd 192.168.3.255 scope global dynamic noprefixroute ens160
valid_lft 85611sec preferred_lft 85611sec
inet6 fe80::20c:29ff:fece:b01/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@server ~]# ping www.baidu.com
PING www.a.shifen.com (14.215.177.39) 56(84) bytes of data.
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=1 ttl=55 time=38.2 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=2 ttl=55 time=49.8 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=3 ttl=55 time=44.4 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=4 ttl=55 time=41.5 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=5 ttl=55 time=47.2 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=6 ttl=55 time=38.9 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=7 ttl=55 time=42.4 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=8 ttl=55 time=36.8 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=9 ttl=55 time=41.1 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=10 ttl=55 time=37.2 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=11 ttl=55 time=43.1 ms
ping www.baidu.com 网络正常
4.4 查看root用户和普通用户的家目录
查看root用户及root用户家目录
[root@server ~]# whoami #查看当前登录用户
root
[root@server ~]# cd #进入家目录
[root@server ~]# pwd #查看当前路径(用户家目录)
/root
查看不同用户及用户家目录页
[root@server ~]# su - xue #切换普通用户
[xue@server ~]$ whoami #查看当前登录用户
xue
[xue@server ~]$ pwd #查看当前路径(用户家目录)
/home/xue
[xue@server ~]$ ll -d /home/xue #查看用户家目录
drwx------. 4 xue xue 113 Oct 19 12:18 /home/xue
五、破解密码
5.1 rd.break 方式破解root密码
重启系统进入系统引导界面,在第一行按“e”
找到Linux开头的这一行,在文件末尾输出rd.break (输入时记得添加空格)
输入完成按ctl+x,出现如下界面
依次输入如下命令:
#sysroot目录只有 ro只读权限,重新以读写的方式挂载/sysroot
mount -o remount,rw /sysroot
#改变系统的root信息,将/sysroot当作根目录使用
chroot /sysroot
#passwd代表修改root用户密码
passwd
#selinux放行此次操作
touch /.autorelabel
连续输入exit两次,从新载入系统,系统启动成功后,用新密码登录即可;
5.2 init=/bin/sh 方式破解root密码
重启系统进入系统引导界面,在第一行按“e”
在linux所在参数行尾添加以下内容:
1)将ro修改为rw
2)末尾添加init=/bin/sh
进入页面后,依次输入如下命令:
#修改root密码
passwd
#selinux放行此次操作
touch /.autorelabel
运行exec /sbin/reboot
重启命令,重启完毕后使用新密码进入系统即可
六、linux的组成
- Linux内核:内核是系统的核心,是运行程序和管理 像磁盘和打印机等硬件设备的核心程序。
- 文件系统: 文件存放在磁盘等存储设备上的组织方法。Linux能支持多种目前浒的文件系统,如 ext4、FAT、VFAT、ISO9660、NFS、SMB等。
- Shell:Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。
- 应用程序:包括文本编辑器、编程语言、X Window、办公套件、Internet工具、数据库等
七、linux的系统结构与文件类型
7.1 linux系统结构
- 使用树形目录结构来组织和管理文件。
- 整个系统只有一个根目录(树根),Linux的根目录用“/”表示
- 其他所有分区以及外部设备(如硬盘、光驱等)都是以根目录为起点,挂接在目录树的某个目录中 的,通过访问挂载点目录,即可实现对这些分区的访问。
文件名 | 描述 |
---|---|
/ | Linux文件系统的最上层根目录,其他所有目录均是该目录的子目录 |
/boot | 存放系统启动时所需的文件,这些文件若损坏常会导致系统无法启动,一般不要改动 |
/root | 超级用户的个人目录,普通用户没有权限访问 |
/home | 存放一般用户的个人目录 |
/bin | Binary的缩写,存放普通用户可执行的程序或命令 |
/sbin | 和/bin类似,这些文件往往用来进行系统管理,只有root可使用 |
/lib | 是库(library)英文缩写,存放系统的各种库文件 |
/lib64 | 存放系统本身需要用到64位程序的共享函数库(library) |
/usr | 一般用户程序安装所在的目录,用于安装各种应用程序 |
/opt | 该目录通常提供给较大型的第三方应用程序使用,例如Sun Staroffice、Corel WordPerfect,这可避免将文件分散至整个文件系统 |
/etc | 存放了系统管理时要用到的各种配置文件和子目录 |
/var | 通常各种系统日志文件放在这里 |
/run | 保存自系统启动以来描述系统信息的文件 |
/dev | dev 是设备(device)的英文缩写。包含所有的设备文件 |
/mnt 和/media | 可以临时将别的文件系统挂在这个目录下,即为其他的文件系统提供安装点 |
/tmp | 用来存放不同程序执行时产生的临时文件 |
/srv | srv 是服务(server)的简写,服务启动之后需要访问的数据目录 |
/sys | 本目录是将内核的一些信息映射文件,以供应用程序所用 |
/proc | 可以在这个目录下获取系统信息。这些信息是在内存中由系统自己产生的 |
7.2 linux文件类型
使用’ls -l’命令 查看到 的第一 个字符 | 文件类型 | 说明 |
---|---|---|
- | 普通文件 | 类似于Windows的记事本 |
d | 目录文件 | 类似于windows文件夹 |
c | 字符设备文件 | 串行端口设备,顺序读写,键盘 |
b | 块设备文件 | 可供存储的接口设备,随机读写,硬盘 |
p | 管道文件 | 用于进程间的通信 |
s | 套接字文件 | 通常用于网络上的通信。可以启动一个程序来监听客户端的要求,客户 端可以通过套接字来进行数据通信 |
l | 符号链接又叫软链接,和原文件不是一个文件 | 例如Windows的快捷方式,如果原始文件被删除,所有指向它的符号链 接也就都被破坏了。软链接有自己的node,是linux特殊文件的一种, 作为一个文件,它的数据是它所连接的文件的路径。符号链接可以跨越 文件系统,也可以为目录建立。 |
硬链接 | 只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理 索引(也称为inode)。当移动或者删除原始文件时,硬链接不会被破 坏,因为它所引用的是文件的物理数据而不是文件在件结构中的位置。 |