Linux网络操作系统项目教程2

项目1安装与配置Linux操作系统

文中新建用户,目录,文件一律为mahaoran多建文件,用户,目录会说明

任务1-1安装过程(简写)

二、新建虚拟机

打开虚拟机软件,选择“新建虚拟机”。

在“新建虚拟机向导”中,选择“自定义”模式。

选择虚拟机兼容性,一般选择默认即可。

三、配置虚拟机硬件

选择稍后安装操作系统,因为我们要在虚拟机创建完成后安装CentOS 7。

选择客户机操作系统为Linux,版本选择CentOS 64位。

命名虚拟机,例如“centos-7”。

配置处理器数量,根据您的计算机性能,一般选择2-4个核心。

配置内存大小,建议至少分配2GB内存。

选择网络

选择磁盘类型,默认即可。

创建新的虚拟磁盘,设置磁盘大小为20GB以上,并选择将磁盘拆分成多个文件。

四、安装CentOS 7

在虚拟机设置中,选择CD/DVD,然后选择使用ISO镜像文件,并浏览选择您下载的CentOS 7镜像文件。

开启虚拟机,您将看到CentOS 7的安装界面。

选择“Install CentOS 7”,进入安装界面。

选择安装过程中的语言,建议选择中文-简体中文。

在软件安装界面,有一定基础的可以选择最小安装以节省空间和时间,或者选择GNOME桌面等图形化界面进行安装。

选择安装位置,为了节约时间,可以选择自动分配分区。

配置网络和主机名,设置网络并开启以太网,设置您喜欢的主机名。

最后,点击“开始安装”按钮,等待系统安装完成。

任务1-3 重置root用户管理员密码

1.在终端输入“reboot”进行重启,重启至引导界面,按'E'键进入 内核编辑 界面

2.在内核编辑界面的Linux参数行的最后面追加“rd.break”参数,然后按下“ctrl+x”组合键来运行修改过的内核程序

3.等待30s左右,系统进入紧急救援模式,依次输入以下命令

mount -o remout,rw /sysroot

chroot /sysroot

passwd

touch / .autorelabel

exit

reboot

除了书上介绍的我自己知道的还有一种方法

同上进入编辑界面

在语言行追加输入“rw single init=/bin/bash”如图片所示,然后按住ctrl+x重启系统

1.png

进入bash界面后输入passwd重新设置root密码

2.png

接着输入exec /sbin/init 重启系统,密码修改完成

任务1-4 使用yum和dnf

创建挂载ISO映像文件的文件夹

1.新建配置文件

vim /etc/yum.repos.d/dvd.repo

cat /etc/yum.repos.d/dvd.repo

配置文件在p20,作者在这里就简单操作并且给出回显

1.1新建配置文件.png

挂载iso镜像文件

2.清理缓存并建立元数据缓存

dnf clean all

dnf makecache //建立元数据缓存

1.2的DNF配置.png

3.查看软件包信息

dnf repolist

dnf list

dnf list installed

dnf search network-scripts

dnf provides/bin/bash

dnf info network-scripts

4.安装network-scripts软件(无需信息确认)

dnf install network-scripts-y

后面全是报错就不报回显了.......

任务1-5 systemd初始化进程服务

多用户的图形界面转换为多用户文本界面,及多用户的文本界面转换为多用户的图形界面

systemctl get-default

systemctl set-default multi-user.target

reboot

//接下来是 文本转图形

systemctl set-default graphical.target

reboot

1.3.1图形化.png

1.3.2图形化.png

任务1-6 启动shell

普通用户结尾为$,管理员用户结尾为#(一般为root)

su - mahaoran //切换为普通用户

su - root //切换为root用户,需要输入root用户密码

1.4切换用户.png

任务1-7 制作快照(略)

项目2Linux常用命令与vim

修改主机名

hostnamectl set-hostname [主机名]

2.1.1修改主机名称.png

2.1.2修改主机名称.png

任务2-1 熟练使用文件目录类命令(回显也在代码块中)

pwd //显示用户当前所在目录

(base) [root@defense ~]# pwd

/root

cd [目录名称] //在不同目录之间来回切换

(base) [root@defense ~]# mkdir mahaoran(创建目录)

(base) [root@defense ~]# cd mahaoran

(base) [root@defense mahaoran]#(切换成功)

ls [选项] [目录或文件] //列出文件或目录信息(选项具体用法参考p28,在此不做过多解释)

(base) [root@defense mahaoran]# ls -a

. ..(啥都没有)

cat [选项] [文件名] //显示文件内容,或将多个文件合并为一个文件 (选项参考p29)

(base) [root@defense mahaoran]# cat /etc/passwd

root:x:0:0:root:/root:/bin/bash

mahaoran:x:1001:1001::/home/mahaoran:/bin/bash

more [选项] [文件名] //分页显示文件内容(选项参考p29)

(base) [root@defense mahaoran]# more /etc/passwd

mahaoran:x:1001:1001::/home/mahaoran:/bin/bash

less [选项] [文件名] //more命令的加强版,同时还支持快速查找(选项参考p30)

(base) [root@defense mahaoran]# less /etc/passwd

mahaoran:x:1001:1001::/home/mahaoran:/bin/bash(没做修改)

head [选项] [文件名] //显示文件开头内容(选项参考p30)

(base) [root@defense mahaoran]# head -n 3 /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin(显示passwd的前三行)

tail [选项] [文件名] //显示文件内容的末尾,同时还可以持续刷新文件内容(选项参考p30)

(base) [root@defense mahaoran]# tail -n 3 /etc/passwd

nginx:x:987:981:Nginx web server:/var/lib/nginx:/sbin/nologin

mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin

mahaoran:x:1001:1001::/home/mahaoran:/bin/bash(显示passwd的后三行)

mkdir [选项] [目录名] //创建一个目录(选项参考p30)

(base) [root@defense ~]# mkdir mahaoran

rmdir [选项] [目录名] //删除空目录(选项参考p31)

(base) [root@mahaoran ~]# rmdir eng

cp [选项] [源文件] //用于文件或目录的复制(选项参考p31)

(base) [root@mahaoran ~]# cp ~/.bashrc /tmp/bashrc(将.bashrc复制到/tmp下)

mv [选项] [源文件或目录 目标文件或目录] //用于文件或目录的移动和改名(选项参考p32)

(base) [root@mahaoran ~]# mv /tmp/wtmp /user/(将文件移动到根目录下)

rm [选项] [文件名或目录名] //主要用于文件或目录的删除(选项参考p33)

(base) [root@mahaoran ~]# mkdir /dirl;cd /dirl

(base) [root@mahaoran dirl]# touch aa.txt bb.txt;mkdir subdirll;ll

(base) [root@mahaoran dirl]# rm -iR subdirll

rm: remove directory ‘subdirll’? y (创建删除一条龙)

touch [选项] [文件名或目录名] //建立文件或更新文件的修改日期 (选项参考p33)

(base) [root@mahaoran ~]# touch -d 20241104 eng (创建一个eng文件并且修改创建日期为2024年11月4日)

rpm [选项] [软件包名] //对于RPM软件包进行管理(选项参考p33-p34)

(base) [root@mahaoran ~]# rpm -qa|more

pytalloc-2.1.16-1.el7.x86_64

hunspell-en-0.20121024-6.el7.noarch

libevdev-1.5.6-1.el7.x86_64

skkdic-20130104-6.T1435.el7.noarch

libgnomekbd-3.26.0-3.el7.x86_64(查询系统所有软件安装包 复制内容为部分)

whereis [选项] [命令名称] //寻找命令的可执行文件的所在位置(选项参考p34-p35)

(base) [root@mahaoran ~]# whereis rpm

rpm: /usr/bin/rpm /usr/lib/rpm /etc/rpm /usr/share/man/man8/rpm.8.gz(查找rpm命令的位置)

find [路径] [匹配表达式] //查找文件(参考p35)

(base) [root@mahaoran ~]# find .

./mahaoran

./aa

./eng(查找.路径的文件,目录 复制为截取的部分 )

grep [选项] [要查找的字符串 文件名] //查找文件中包含指定字符串的行(选项参考p36)

(base) [root@mahaoran ~]# grep -2 root /etc/passwd

root:x:0:0:root:/root:/bin/bash

dd [选项] //按照指定大小和数量的数据块来复制或转换文件(选项参考p36-p37)

(base) [root@mahaoran ~]# dd if=/dev/cdrom of=RHEL-sever-8.0-x86_64.iso(压缩一个iso文件)

任务2-2 熟练使用系统信息类命令

dmesg //用实列名称和物理名称来标识连到系统上的设备,也可用来显示系统诊断信息,操作系统版本号及其他信息

free //主要是用来查看系统内存,虚拟内存的大小和占用情况

timedatectl //详情查看p38

cal //显示指定月份或年份的日历

clock //从计算机的硬件获得日期和时间

2.2熟练使用系统信息类ml.png

任务2-3 熟练使用进程管理类命令

ps [选项] //查看系统进程(选项查看p39)

[root@mahaoran ~]# ps -au (显示用户名和启动时间)

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 7141 0.5 8.6 411684 85736 tty1 Ssl+ 19:09 0:02 /usr/bin/X :0

root 8646 0.0 0.3 116740 3356 pts/0 Ss 19:16 0:00 bash

root 8715 0.0 0.1 155360 1896 pts/0 R+ 19:19 0:00 ps -au

pidof [选项] [服务名称] //查询某个指定服务进程号码值

[root@mahaoran ~]# pidof sshd 查询本机sshd服务进程

6593

kill [选项]

[进程名称] //关闭终端

base) [root@defense ~]# ps

PID TTY TIME CMD

2884 pts/0 00:00:00 bash

2957 pts/0 00:00:00 ps

(base) [root@defense ~]# kill -s SIGKILL 1488

killall [选项] [进程名称] //终止某个进程的全部进程 (见p40)

(base) [root@defense ~]# pidof sshd

1201

(base) [root@defense ~]# killall -9 sshd

(base) [root@defense ~]# pidof sshd

nice //改变进程优先级

(base) [root@defense ~]# nice --2 ps -1

PID TTY STAT TIME COMMAND

1 ? Ss 0:01 /usr/lib/systemd/systemd --switched-root --system --

renice //根据进程号来改变进程优先级

(base) [root@defense ~]# ps -l

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

4 S 0 2884 2877 0 80 0 - 29082 do_wai pts/0 00:00:00 bash

0 R 0 51697 2884 0 80 0 - 38338 - pts/0 00:00:00 ps

(base) [root@defense ~]# renice -6 2884

2884 (process ID) old priority 0, new priority -6

top //top命令界面每五秒刷新一次

jobs ,bg ,fg //用于查看在后台运行的程序

(base) [root@defense ~]# find / -name h*

/boot/grub2/i386-pc/halt.mod

/boot/grub2/i386-pc/hashsum.mod

/root/anaconda3/pkgs/statsmodels-0.11.1-py38h7b6447c_0/info/hash_input.json

^C

(base) [root@defense ~]# jobs

(base) [root@defense ~]# ^C

任务2-4 熟练使用其他常用命令

clear //用于清除命令行终端内容

uname //显示系统信息

(base) [root@defense ~]# uname -a

Linux defense 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

man //列出命令帮助手册

(base) [root@mahaoran ~]# man ls

shutdown [选项] 时间 [警告信息] //在指定时间关闭系统

(base) [root@mahaoran ~]# shutdown -h now(系统关机了........图在下面)

halt //立即停止系统,但不关闭电源

reboot //重新启动系统

poweroff //立即停止系统并关闭电源

aliad //创建命令的别名

[root@mahaoran ~]# alias mand="vim /etc/man_db.conf"

#输入mand会怎样

unalias //取消别名的定义

history //显示用户最近执行的命令

wget [选项] 下载地址 //在终端中下载网络文件

who [选项] //查看当前登录的主机用户终端信息

last [选项] //查看所有的登录记录

2.4last命令.png

123.png

任务 2-5 熟练使用vim编辑器

启动与退出 vim

vim myfile

:w //保存

:w filename //另存为filename

:wq //保存退出

:wq filename //以filename为文件名保存后退出

:q! //不保存退出

:x //应该是保存并退出,功能与:wq相同

2.5 vim.1.png

使用vim 大表格详情见书p45-p49

项目3管理Linux服务器的用户和组

3.1.1理解用户账户和组

用户名 密码 用户标识(UID) 用户主目录 登录shall 组 组标识(GID)

root用户的UID为0 , 系统用户默认为1~999 UID可指定 默认从1000开始排列 GID默认也从1000开始排列

3.1.2理解用户账户文件

/etc/passwd

passwd 文件的每一行用“:”分隔为7个字段 每个字段分对应

用户名

加密口令

UID

GID

用户的描述信息

主目录

命令解释(登录shall)

useradd xiawengjun; useradd mahaoran; useradd zhuguojiang //使用useradd添加用户

cat /etc/passwd //使用cat查看用户是否被创建

3.1.2.1.png

/etc/shadow

所有用户对于/etc/shadow 文件均有读取权限

(ps:字段说明在p56)

3.1.2.2.png

/etc/login.defs

(ps:字段说明在p56—57)

3.1.2.3.png

3.1.3理解组文件

组账户的信息存放于/etc/group文件中,关于组管理的信息则存放于/etc/gshadow文件中

/etc/group

任何用户都可读取。用于存放用户的组账户信息

(root用户的GID为0 没有其他组成员其他见书上p57)

3.1.3.1.png

/etc/gshadow

用于存放组的加密口令 组管理员等信息 该文件只有root用户可以读取

(详见p57)

3.1.3.2.png

3.2项目设计与准备(略)

3.3 项目实施

任务 3-1 新建用户

(就以刚刚创建的三个用户为例, 后期有需要再加)

useradd [选项] <username> //创建用户

新建一个用户(shixiaozhou)UID为1010 指定私有组为xia(标识符为1010)用户主目录为/home/shixaiozhou 用户的shell为/bin/bash 用户密码为12345678,账户永不过期

3.2.1.png

附代码串如下:

[root@mahaoran ~]# groupadd -g 1010 xia

[root@mahaoran ~]# useradd -u 1010 -g 1010 -d /home/shixiaozhou -s /bin/bash -p 12345678 -f -1 shixiaozhou

[root@mahaoran ~]# tail -1 /etc/passwd

shixiaozhou:x:1010:1010::/home/shixiaozhou:/bin/bash

[root@mahaoran ~]# grep shixiaozhou /etc/shadow

shixiaozhou:12345678:20041:0:99999:7:::

[root@mahaoran ~]# useradd shixiaozhou

useradd:用户“shixiaozhou”已存在

任务 3-2 设置用户账户口令

passwd [选项] [username]

3.2.2.1.png

chage -[用户]

3.2.3.png

任务 3-3 维护用户账户

usermod [选项] 用户名 //用于修改用户账户属性

3.3.1.png

禁用和恢复用户账户

3.3.2.png

任务 3-4 管理组

addgroup或groupadd //创建组

3.4.1.png

任务 3-5 使用su命令

su [-(加上-就是完全切换用户))] [用户名称]

3.5.1.png

任务 3-6 使用常用的账户管理命令

vipw //直接对用户账户文件进行编辑

vigr //直接对/etc/group进行编辑

pwck //验证用户账户文件认证信息的完整性

grpck //验证组文件认证的完整性

id //显示一个用户的uid和gid以及用户所属的组列表

whoami //显示当前用户名称

newgrp //转换用户到指定组

(上列代码均在其他章节有所使用,故不图片解释)

项目4 配置与管理文件系统

(本项目将全程使用图片解释)

任务4-1管理Linux系统

代码解释:

ll //ls -l或ll显示文件的详细信息

chmod //上文有解释

4.1.png

任务 4-2 修改文件与目录的默认权限与隐藏权限

4.2.png

任务 4-3 使用文件访问控制列表

setfacl [选项] 文件名称 //管理文件的ACL权限

getfacl [选项] 文件名称 //显示文件的ACL权限

4.3.png

posted @ 2024-11-18 20:13  花柒玖  阅读(96)  评论(0)    收藏  举报