【用户和组作业】

1、创建用户user01

1
[root@c-6 ~]# useradd  user01

2、创建组QF2403、hr、qf,要求QF2403组的GID是2208

1
2
3
[root@c-6 ~]# groupadd QF2403 -g 2208
[root@c-6 ~]# groupadd hr
[root@c-6 ~]# groupadd qf

3、创建用户user02,要求该用户主组为QF2403,附属组为hr,UID=2208,shell信息是/bin/bash

1
[root@c-6 ~]# useradd user02 -g QF2403 -G hr -u 2208 -s /bin/bash

【文件权限作业】

提示:【针对与文件而言,如果要执行该文件,不仅需要该文件的X权限,而且同时需要该文件的r权限,否则执行权限不生效】

【针对与目录而言,如果要在该目录内创建文件或者删除文件,则需要该目录的W权限,而且同时需要该目录的执行权限,否则W权限不生效】

1、使用root用户在/home下创建目录A

1
[root@c-6 ~]# mkdir /home/A

2、修改A目录的属组为QF2403

1
[root@c-6 ~]# chown .QF2403 /home/A

3、创建A目录下的B目录并在A目录与B目录下都创建文件T-1

1
2
3
[root@c-6 ~]# mkdir /home/A/B
[root@c-6 ~]# touch /home/A/T-1
[root@c-6 ~]# touch /home/A/B/T-1

4、修改A目录下的所有文件属组都为QF2403

1
[root@c-6 ~]# chown  .QF2403 /home/A -R

5、修改目录A的权限为700

1
[root@c-6 ~]# chmod 700 /home/A

6、修改B下的T-1文件权限为所有人都可以执行该文件

1
[root@c-6 ~]# chmod a+x /home/A/B/T-1

7、在/home下创建一个目录“D-1”,要求该目录的UGO限是000,目录的拥有者是root,所属组root。

1
2
3
[root@c-6 ~]# mkdir /home/D-1
[root@c-6 ~]# chown root.root /home/D-1/
[root@c-6 ~]# chmod 000 /home/D-1/

8、请使用root用户来创建用户alan、tom,并合理修改D-1目录的权限,使alan用户可以在D-1目录内创建文件,但是tom用户没有任何权限。

1
2
3
4
[root@c-6 ~]# useradd  alan
[root@c-6 ~]# useradd tom
[root@c-6 ~]# chown .alan /home/D-1/
[root@c-6 ~]# chmod 030 /home/D-1/

9、在8题的基础上继续修改权限,要求alan组成员可以在D-1目录内创建普通文件,但是只有普通文件对应的拥有者才能在该普通文件内写入内容,其他用户对没有有任何权限。

1
[root@c-6 ~]# chmod o+t /home/D-1/

【文件管理与用户管理作业】

目的:修改一些重要文件前一定要先备份,文件结尾用.bak .back
1.将/etc/sysconfig/network-scripts/ifcfg-ens33 复制到/tmp下并且重新命名为ifcfg-ens33.bak

1
[root@c-6 ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens33 /tmp/ifcfg-ens33.bak

2 在/etc/yum.repos.d/ 下创建 yumlist的文件夹。并且在此文件夹下创建 yum.repo文件

1
2
[root@c-6 ~]# mkdir /etc/yum.repos.d/yumlist
[root@c-6 ~]# touch /etc/yum.repos.d/yumlist/yum.repo

3 进入 yum.repo文件 编辑文件内容 hello world

1
2
[root@c-6 ~]# vi /etc/yum.repos.d/yumlist/yum.repo
hello world

4 将 hello world 复制10行后保存文件

1
2
yy#复制
10p#复制10行

5 将hello全部替换为 welcome

1
%s/hello/welcome/

6 快捷键删除第二行到页尾的文件内容,操作后不要保存,请直接退出

1
dG

7 将yum.repo文件 移动到/tmp下

1
[root@c-6 ~]# mv /etc/yum.repos.d/yumlist/yum.repo  /tmp/

8 在/tmp/yum.repo里显示行号

1
set nu

9./etc/passwd 第二段是干什么的?以什么分割?

1
第二段是用户密码,以冒号分割

10.给服务器添加3个账号 xiaozhang xiaoli xiaowang

1
2
3
[root@c-6 ~]# useradd xiaozhang
[root@c-6 ~]# useradd xiaoli
[root@c-6 ~]# useradd xiaowang

11.修改普通用户xiaowang 和root的密码

1
2
[root@c-6 ~]# passwd xiaowang
[root@c-6 ~]# passwd

12.创建用户jack和tom属于hr,wc组

1
2
[root@c-6 ~]# useradd jack -G hr,wc
[root@c-6 ~]# useradd tom -G hr,wc

13.创建用户tony,属于hr,不属于wc组,并且将3个人的密码修改为 qianfeng

1
2
3
4
[root@c-6 ~]# useradd tony -G hr
[root@c-6 ~]# passwd jack
[root@c-6 ~]# passwd tom
[root@c-6 ~]# passwd tony

14.将/etc/passwd前10行 内容写到 /tmp/passwd下。 然后将4-6行的 root换成haha

1
2
3
4
5
第一种:
[root@c-6 ~]# vi /etc/passwd
1,10 w /tmp/passwd
第二种:
[root@c-6 ~]# tail -10 /etc/passwd|xargs -i echo "{}" >/tmp/passwd

【简述思考题】

1、通过搜索百度思考如何更换163的yum源

1
首先先将/etc/yum.repos.d/目录下的所有文件移走备份以防丢失,然后通过wget命令从163源镜像下载.repo文件到/etc/yum.pos.d/目录下即可,随后yum repolist即可查看到。

2、通过搜索百度思考如何将指定仓库(例如epel源)的rpm包全部下载到当前机器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
(1)使用 reposync 命令下载仓库
reposync 是一个用于下载 YUM 仓库中 RPM 包的工具。首先,确保你的系统上安装了 yum-utils 包,因为 reposync 命令通常包含在其中。

sudo yum install yum-utils
然后,使用 reposync 命令下载 epel 源的所有 RPM 包:

sudo reposync --repoid=epel --download_path=/path/to/save/packages
--repoid=epel 指定要下载的仓库,这里是 epel 源。
--download_path=/path/to/save/packages 指定下载后 RPM 包保存的路径。请将 /path/to/save/packages 替换为你希望保存 RPM 包的实际路径。
如果你不指定 --download_path,reposync 将默认下载到当前工作目录。

(2)使用 yumdownloader 命令下载特定包
如果你只需要下载仓库中的特定包,可以使用 yumdownloader 命令。同样地,首先确保安装了 yum-utils 包。

sudo yum install yum-utils
然后,使用 yumdownloader 下载特定包:

sudo yumdownloader --destdir=/path/to/save/packages packagename
--destdir=/path/to/save/packages 指定下载后包保存的路径。
packagename 是你要下载的 RPM 包的名称。你可以多次使用 yumdownloader 下载多个包。
类似地,如果不指定 --destdir,yumdownloader 将默认下载到当前工作目录。

3、创建一个以当前时间日期.txt命名的文件(例如:20241231-20:30:00.txt)

1
[root@c-6 ~]# date +"%Y%m%d-%H:%M:%S"|xargs -i  touch {}.txt

4、用指定命令表示,基本权限UGO中rwx对于目录以及普通文件的影响。(例如:普通文件r权限影响cat命令的使用)

1
2
3
4
5
6
7
8
文件:
r:cat head tail vi/vim grep less more sort bash、sh、.和source执行
w:echo vi/vim(不能修改保存) cat+重定向写入
x:影响绝对路径执行脚本,不影响bash、sh、.和source执行(同时有rx才可绝对路径执行,而bash、sh、.和source只需有r权限可以执行)
目录:
r:ls
w:mkdir touch echo写入创建文件 cat写入创建文件 vi/vim写入保存新文件
x:cd ls(会报错但是可以查看) cat(查看目录内的文件) mkdir touch (同时需要w x)

5、思考都有什么情况会导致创建用户失败?

1
2
3
4
5
1、权限问题,当前用户没有足够的权限,将无法成功创建新用户账号;
2、用户名已存在,新的用户名将无效;
3、无法访问/etc/passwd文件,访问权限不正确,可能导致无法创建新用户;
4、用户配额限制,系统限制了可以创建的用户数量;
5、资源不足,导致无法创建新用户。

6、请描述下linux系统下源代码编译安装软件的大致步骤。

1
2
3
1、安装配置编译环境,并下载对应的源码包
2、编辑并安装
3、启动对应服务(绝对路径)

7、简述yum、rpm、源码安装的优缺点。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
rpm:
优点:
下载安装包后,可以离线手动安装
缺点:
很多安装包有依赖性,装一个包就带连带着装其他包,大包套小包
相比rpm安装来讲yum的安装更人性化,一般推荐yum联网安装

yum:
优点:
yum最大的优势在于可以联网去下载所需要的rpm包,然后自动安装,安装东西方便快捷
如果要安装的rpm包有依赖关系,yum会帮您解决掉这些依赖关系并依次安装所有rpm包
缺点:
1,yum安装的版本会比较低,一般不是最新版本
2,yum安装过程人为无法干预,不能按需安装,源里面有什么就安装什么,
3,不能自定义软件的模块和功能,不能自定义软件部署的路径,对后期的维护成本会增加
4,需要维护yum源的网络库,找到合适的repo库,否则找不到安装软件
5,大部分生产环境要求服务器的环境配置要一致,统一环境如果需要升级某个程序版本,一个脚本几条命令就可以解决。如果是yum安装,机房和机房之间,国家和国家之间,yum的库不能保持一致,会很麻烦的问题

源码安装:
优点:
编译安装过程,可以设定参数,按照需求进行安装,安装的版本可以选择,灵活性比较大
可以自定义部署的路径,进行统一的管理,减轻后期的维护工作量
缺点:
1,编译,安装,配置,部署比较复杂
2,不能自动解决软件包之间的依赖关系
3,由于安装包过新,或版本过低,或是其他问题,导致依赖的包没有,就要解决包的依赖问题可能装一个小东西,就要解决一堆包的依赖问题,花很多时间解决包的依赖问题
4,不敢随便升级系统,升级系统可能会导致以前手动装的东西,不能用

8、写出6个以上可以查看文件内容的命令。

1
vi/vim head tail cat less more sort

9、通过百度了解Linux系统开机过程?

1
2
3
4
5
(1)硬件初始化
(2)引导加载程序
(3)内核初始化
(4)启动systemd
(5)用户空间启动

10、通过百度了解怎么禁止远程root用户登录?

1
2
3
4
5
6
7
8
9
10
11
1、执行备份
使用cp命令来复制/etc/ssh/sshd_config文件复制一份并命名为sshd_config_bak。
cp -p /etc/ssh/sshd config /etc/ssh/sshd config ba
2、先新建一个普通用户并设置高强度密码,防止设备上只存在root用户可用时,无法远程访问
useradd ldq
passwd ldq
3、编辑/etc/ssh/sshd_config文件
编辑/etc/ssh/sshd_config文件,将PermitRootLogin的值修改为no并去掉注释:
将PermitRootLogin设置为no,会禁止root用户通过SSH登录到系统。
4、重启SSH服务
在禁止root用户远程登录之前,确保至少有一个其他用户可以正常远程登录。这样可以确保在禁止root用户登录后,仍然可以通过其他用户账户来管理系统,以避免因为禁止root登录而导致无法远程访问系统的情况发生。

【命令实操题】

1.创建用户tom,jack,zhuzhuxia;zhuzhuxia用户的附加组为tom

1
2
3
4
5
[root@c-6 ~]# useradd tom
[root@c-6 ~]# useradd jack
[root@c-6 ~]# useradd zhuzhuxia -G tom
[root@c-6 ~]# id zhuzhuxia
uid=2212(zhuzhuxia) gid=2212(zhuzhuxia) 组=2212(zhuzhuxia),2210(tom)

2.切换到用户tom,在/tmp目录下创建文件tom.txt (观察文件的归属和权限)

1
2
3
4
[root@c-6 ~]# su - tom
[tom@c-6 ~]$ touch /tmp/tom.txt
[tom@c-6 ~]$ ll /tmp/tom.txt
-rw-rw-r--. 1 tom tom 0 6月 29 09:30 tom.txt

3.将tom创建的文件权限修改为rw-r—–

1
2
3
[tom@c-6 ~]$ chmod 640 /tmp/tom.txt 
[tom@c-6 ~]$ ll /tmp/tom.txt
-rw-r-----. 1 tom tom 0 6月 29 09:30 /tmp/tom.txt

4.向tom创建的文件中写入内容”Tihs is tom file ,dont touch”

1
2
3
[tom@c-6 ~]$ echo "Tihs is tom file ,dont touch" >/tmp/tom.txt 
[tom@c-6 ~]$ cat /tmp/tom.txt
Tihs is tom file ,dont touch

5.请问: jack,zhuzhuxia能不能查看文件的内容?

1
jack不可以查看,tom是其他人,其他人无任何权限。zhuzhuxia可以查看,因为zhuzhuxia是tom组的成员,tom组具有查看权限。

6.创建一个目录/opt/test目录,要求该目录的属组为it组,任何用户在该目录下创建文件继承该目录的属组?

1
2
3
4
[root@c-6 ~]# mkdir /opt/test
[root@c-6 ~]# groupadd it
[root@c-6 ~]# chown .it /opt/test/
[root@c-6 ~]# chmod g+s /opt/test/

7.使用root用户创建目录/prov,修改属主为tom,属组为tom,权限为750

1
2
[root@c-6 ~]# chown tom.tom /prov
[root@c-6 ~]# chmod 750 /prov

8.列出/home/下面的所有文件包括隐藏文件?

1
[root@c-6 ~]# ll -a /home/

9.查看自己的ip地址,并解释ip地址的作用。

1
[root@c-6 ~]# ip a

确定一台主机在网络当中的位置
10.chown是用来做什么的?chmod是用来做什么的?

1
2
chown:修改文件的属主(拥有者)和属组
chmod:修改文件的UGO权限

11.使用输入重定向的方式对alan.txt文件增加诗词《登鹳雀楼》。

1
[root@c-6 ~]# echo "《登鹳雀楼》" >alan.txt

12.执行命令’ cat /etc/passwd /opt/QF2206 ‘并将正确输出写到OK.txt,错误输出写到NO.txt文件中。

1
[root@c-6 ~]# cat /etc/passwd /opt/QF2206 1>OK.txt 2>NO.txt

计划任务【作业】

1.计划每星期天早8点服务器定时重启,如何实现?

1
2
3
4
[root@c-6 ~]# vi 1.sh
/usr/sbin/reboot
[root@c-6 ~]# crontab -e
50 16 * * * /root/2-1.sh

2.某系统管理员需要每天做一定的重复工作,编制一个解决方案:
(1).从下午 4:50 删除/abc 目录下的全部子目录和全部文件;

1
2
3
4
[root@c-6 ~]# vi 2-1.sh
/usr/bin/rm -rf /abc/*
[root@c-6 ~]# crontab -e
50 16 * * * /root/2-1.sh

(2).每逢周一下午 5:50 将/data目录下的所有目录和文件归档并压缩为文件backup.tar.gz;

1
2
3
4
[root@c-6 ~]# vi 2-2.sh
/usr/bin/tar cvf backup.tar.gz ..data
[root@c-6 ~]# crontab -e
50 17 * * 1 /root/2-2.sh

(3).在早上 8:00 开机后启动crontab。

1
2
3
4
[root@c-6 ~]# vi 3.sh
/usr/bin/systemctl start crond
[root@c-6 ~]# crontab -e
0 8 * * * /root/3.sh

【作业1】:

1、alias
创建别名QF,使QF具有跟rm -rf一样的效果。

1
[root@c-6 ~]# alias QF='rm -rf'

2、history
该命令可以显示最多个历史命令?

1
1000条 /etc/profile 46行可以修改

3、mkdir
a、在/root内创建目录dir-1、dir-2 ….dir-100

1
[root@c-6 ~]# mkdir /root/dir-{1..100}

b、接下来在dir-1目录内创建A目录,在A目录内创建B目录(要求使用连级创建)

1
[root@c-6 ~]# mkdir /root/dir-1/A/B -p

4、touch
a、在/root/dir-1/A/B内创建文件file-1 到 file-10,这10个文件

1
[root@c-6 ~]# touch /root/file-{1..10}

b、在file-1文件内使用echo追加重定向的方式写入内容“Hi Linux”

1
[root@c-6 ~]# echo "Hi Linux" >> /root/file-1

5、cp
a、复制目录/root/dir-1到/opt

1
[root@c-6 ~]# cp -rvf /root/dir-1 /opt/

​ b、复制目录/root/dir-100到/opt并改名为QF2208

1
[root@c-6 ~]# cp -rvf dir-100 /opt/QF2208

6、mv
a、将/opt下的dir-1目录改名为TEST

1
[root@c-6 ~]# mv /opt/dir-1 /opt/TEST

​ b、移动/opt下的QF2208目录到/root

1
[root@c-6 ~]# mv /opt/TEST/ /root/

7、rm
删除/root下所有以dir开头的文件

1
[root@c-6 ~]# rm -rf /root/dir*

8、cat
以显示行号的方式查看/opt/TEST/A/B/file-1

1
[root@c-6 ~]# cat -n /opt/TEST/A/B/file-1

【作业2】:

This is my summer vacation. I intend to finish the operation.
Then, take a look at China’s famous novel.
Look at some day.
Of course, also want to play with the computer, watch TV.
Early every morning to get up and running to run, do other sports.
But it is conducive to our body!
But one thing should not be forgotten.
must help parents do the housework!
My holiday arrangements like?
something good?
give suggestions?

一、使用Linux中的vim文件编辑器完成下题(先将上方内容粘贴你创建的文件内并保存。):

​ 1、将文章中的第五行内容复制并粘贴到最后一行下方。

1
yy  p

​ 2、删除第三行下方的所有内容。

1
dG

​ 3、替换文章中所有的to为TO

1
%s/to/TO/

​ 4、将第一行内容另存到/opt下名为cp.txt

1
1 w /opt/cp.txt

​ 5、强制退出不保存

1
q!

二、用户和组

​ 1、创建用户user01

1
[root@c-6 ~]# useradd user01

​ 2、创建组QF2208、hr、qf,要求QF2208组的GID是2208

1
2
3
4
[root@c-6 ~]# groupadd QF2208
[root@c-6 ~]# groupadd hr
[root@c-6 ~]# groupadd qf
[root@c-6 ~]# groupmod -g 2208 QF2208

3、创建用户user02,要求该用户主组为QF2208,附属组为hr,UID=2208,shell信息是/bin/bash

1
[root@c-6 ~]# useradd user02 -g QF2208 -G hr -u 2208 -s /bin/bash

【作业3】:

1、使用root用户在/home下创建目录A

1
[root@c-6 ~]# mkdir /home/A

2、修改A目录的属组为QF2208

1
[root@c-6 ~]# chown .QF2208 /home/A/

3、创建A目录下的B目录并在A目录与B目录下都创建文件T-1

1
2
3
[root@c-6 ~]# mkdir /home/A/B
[root@c-6 ~]# touch /home/A/T-1
[root@c-6 ~]# touch /home/A/B/T-1

4、修改A目录下的所有文件属组都为QF2208

1
[root@c-6 ~]# chown -R .QF2208 /home/A/

5、修改目录A的权限为700

1
[root@c-6 ~]# chmod 700 /home/A

6、修改B下的T-1文件权限为所有人都可以执行该文件

1
2
[root@c-6 ~]# chmod a+x /home/A/B/T-1
[root@c-6 ~]# chmod a+r /home/A/B/T-1

注:【针对与文件而言,如果要执行该文件,不仅需要该文件的X权限,而且同时需要该文件的r权限,否则执行权限不生效】

【针对与目录而言,如果要在该目录内创建文件或者删除文件,则需要该目录的W权限,而且同时需要该目录的执行权限,否则W权限不生效】

7、在/home下创建一个目录“D-1”,要求该目录的UGO限是000,目录的拥有者是root,所属组root。

1
2
3
[root@c-6 ~]# mkdir /home/D-1
[root@c-6 ~]# chmod 000 /home/D-1
[root@c-6 ~]# chown root.root /home/D-1/

8、请使用root用户来创建用户alan、tom,并合理修改D-1目录的权限,使alan用户可以在D-1目录内创建文件,但是tom用户没有任何权限。

1
2
3
4
[root@c-6 ~]# useradd alan 
[root@c-6 ~]# useradd tom
[root@c-6 ~]# chown alan /home/D-1/
[root@c-6 ~]# chmod 300 /home/D-1/

9、在8题的基础上继续修改权限,要求alan组成员可以在D-1目录内创建普通文件,但是只有普通文件对应的拥有者才能在该普通文件内写入内容,其他用户对没有有任何权限。(g+s o+t)

1
2
3
[root@c-6 ~]# chown .alan /home/D-1/
[root@c-6 ~]# chmod 330 /home/D-1/
[root@c-6 ~]# chmod o+t /home/D-1/

10、使用输入重定向的方式对alan.txt文件增加诗词《静夜思》。

1
2
3
[root@c-6 ~]# cat > /root/alan.txt <<EOF
>《静夜思》
>EOF

12.执行命令’ cat /etc/passwd /opt/QF2206’并将正确输出写到/OK.txt,错误输出写到NO.txt文件中。

1
[root@c-6 ~]# cat /etc/passwd /opt/QF2206 1>/root/OK.txt 2>/root/NO.txt

【作业4】:

1、根据一下信息进行推导:
load average: 1.68, 0.64, 0.26
当前服务器CPU是压力递增还是压力递减?

1
服务器CPU是压力递增

2、搜索系统中文件大小再500M以上文件名以e结尾的文件

1
2
[root@c-6 ~]# find /   -name "*e"  -size +500M
/proc/kcore

3、查看文件/etc/passwd 将包含/bin/bash的行保存到/root/ABC.txt文件中。

1
[root@c-6 ~]# cat /etc/passwd |grep "/bin/bash" |xargs -i echo {}  >/root/ABC.tx

4、【扩展】
搜索系统中所有以conf结尾的文件并将小于1M的文件打包压缩为gz格式,保存到/opt/abc.tar.gz文件中

1
[root@c-6 ~]# find / -name "*conf" -size -1M |xargs tar -czvf  ../opt/abc.tar.gz