linux练习题

开启Linux操作系统,要求以root用户登录GNOME图形界面,语言支持选择为汉语

使用快捷键切换到虚拟终端2,使用普通用户身份登录,查看系统提示符

使用命令退出虚拟终端2上登录的用户

使用快捷键切换到虚拟终端5,使用管理员身份登录,查看系统提示符

  使用命令退出虚拟终端5上登录的用户

  切回图形界面,右单击桌面打开终端,输入关闭系统的命令

  查看哪些用户在系统上工作

  修改当前时间为2018年8月26号11:28

  查看2015年10月份日历

 

  使用两种方法查看ls命令的使用说明

  ls –help

  man ls

  清除屏幕  Crtl+L

  使用“useradd tom”命令新建tom用户,为tom用户设置密码“123”

  切换当前用户为tom

  查看当前登陆Linux系统所使用的用户名

  开启Linux操作系统,要求以root用户登录GNOME图形界面

  右击桌面打开终端,使用“useradd lucy”命令创建lucy用户

  使用鼠标点击的方法进入根目录 

  点击进入root用户的家目录 

  点击进入lucy用户的家目录

  点击进入用来存放常用的可执行文件的目录 

  点击进入用来存放系统的可执行文件的目录 

  点击进入设备文件目录

  点击进入配置文件目录 

  创建目录wg

  使用绝对路径的方法在wg目录下新建文件a.txt

  进入wg目录

  使用相对路径的方法在当前目录下新建wg01目录和b.txt文件

  以长列表格式列出当前目录下的内容

  删除空目录wg01

  进入上一级工作目录

  强制删除非空目录wg

  复制/etc/passwd到当前目录,名为file1

  不停的以只读的方式查看file1文件的内容

  查看file1文件的前3行内容

  查看file1文件的后2行内容 

  以百分比的方式分页查看file1文件的内容

  以上下翻页的方法分页查看file1文件的内容  less file1

 

  创建如下目录结构

  sh-3.2# tree /FtpServer/

  /FtpServer/

  ├── bin

  │   ├── register.py

  │   └── start.py

  ├── conf

  │   └── settings.py

  ├── core

  │   └── server.py

  ├── db

  │   └── user.db

  ├── lib

  │   └── common.py

  └── log

      └── access.log 

  1:切换到路径/tmp下,以追加的方式往start.py内写入内容

  2:查看当前所在的路径

  3:切换到log目录下,新建目录access,然后把access.log移动到该目录下。

  4:切换到core目录下,然后在该路径下新建auth.py文件

  5. 开启两个终端,一个终端往access.log文件中追加内容,然后在另外一个终端动态查看access.log新增的内容。 

  6. 关闭上述的终端,然后以覆盖的方式往access.log中写入内容 

  7: 删除/FtpServer目录 

 

 

作业一:

1)    新建用户natasha,uid为1000,gid为555,备注信息为“master”

2)    修改natasha用户的家目录为/Natasha

3)    查看用户信息配置文件的最后一行

4)    为natasha用户设置密码“123”

5)    查看用户密码配置文件的最后一行

6)    将natasha用户账户锁定

7)    将natasha用户账户解锁

 

8)    新建组police,gid为999

9)    查看组配置文件的最后一行

10)  将natasha用户加入police组

11)   修改police组的组名为jingcha

12)  删除natasha用户,连家目录和邮箱一起删除

 

13)  删除jingcha组

 

作业二:

1)    在用户的主目录下创建目录test,进入test创建空文件file1

2)    以长格式形式显示文件信息,注意文件的权限和所属用户和组

3)    为文件file1设置权限,使其他用户可以对此文件进行写操作。

4)    查看设置结果,

5)    取消同组用户对文件file1的读取权限,并查看设置结果。

6)    用数字表示法为文件file设置权限,所有者可读、可写、可执行,所属组用户和其他用户只具有读和执行的权限。设置完成后查看设置。

7)    用数字形式更改文件file1的权限,使所有者只能读取此文件。其他任何用户都没有权限。查看设置结果。

8)    回到上层目录,查看test的权限

9)    为其他用户添加对此目录的写权限

作业三:

以操作文件的方式,新建一个用户alex

作业四:

1) 新建目录/test/dir,属主为tom,数组为group1,/test目录的权限为777

2) 新建用户jack,切换到jack用户下,验证jack用户对dir目录的rwx权限(开启另外一个终端,依次修改dir目录的others权限)

3)将jack加入group1组,验证jack用户对dir目录的rwx权限(开启另外一个终端,依次修改dir目录的group权限)

 

4)切换到tom用户,验证tom用户对dir目录的rwx权限(开启另外一个终端,依次修改dir目录的user权限)

 

5)在dir目录内新建文件tom.txt,属主为tom,属组为group1,/test目录的权限为777

 

6)新建用户rose,切换到rose用户下,验证rose用户对tom.txt的rwx权限(开启另外一个终端,依次修改tom.txt的others权限来配合验证过程)

 

 

 
 

作业一:

1)  将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖)

    cat /etc/passwd /etc/group > /1.txt

2)  将用户信息数据库文件和用户密码数据库文件纵向合并为一个文件/2.txt(追加)

    cat /etc/passwd /etc/shadow >> /2.txt

3)  将/1.txt、/2.txt两个文件打包为/1.tar

    tar cvf /1.tar /1.txt /2.txt

4)  使用gzip命令压缩1.txt文件名为1.txt.gz

    gzip /1.txt

5)  解压缩1.txt.gz

    gunzip /1.txt.gz

6)  使用bzip2压缩1.txt压缩后文件名为1.txt.bz2

    bzip2 /1.txt

7)  解压缩1.txt.bz2

    bunzip2 /1.txt.bz2

8)  解包1.tar,解包后文件存放到/tmp目录下

    tar xvf /1.bar -C /tmp

9)  使用tar命令打包并且压缩/1.txt、/2.txt,得到的文件名为1.tar.gz

    tar cvzf 1.tar.gz /1.txt /2.txt

10) 解包1.tar.gz,解包后文件存放到/tmp目录下

    tar xvzf /1.tar.gz -C /tmp

作业二:

1) 使用vi编辑器编辑文件/1.txt进入编辑模式写入内容“hello world”

    vim /1.txt 按a—》进入编辑模式 输入hello world

2)  进入命令行模式复制改行内容,在下方粘贴80行

    按Ese进去命令行模式 yy复制当前行 80p在下方粘贴80行

3)  快速移动光标到文件的最后一行

    shift+g光标移动到最后一行

4)  快速移动光标到当前屏幕的中间一行

    shift+m

5)  快速移动光标到文件的第五行

    5gg

6)  在下方插入新的一行内容“welcome to beijing”

    按o—》输入welcome to beijing

7)  删除刚插入的一行

    按Esc进去命令行模式,按dd

8)  撤销上一步的操作

    按u

9)  进入扩展模式,执行文件的保存退出操作

    按shift+:进入扩展模式 输入wq回车保存退出

作业三:

1) 单用户模式破解root密码

方法一:①开机看到内核条目时候,按e开始编辑。见到如下界面。

②在kernel中找到ro,并改为rw bin=/sysroot/bin/sh。按Ctrl+x重启系统。 

③输入chroot /sysroot运行,然后改密码,可以用passwd命令也可以进入/etc/passwd将需要修改的用户的密码占位符删除保存退出(此时该用户没有密码)。

④为了保证一些文件受到selinux上下文的影响,所以必须执行下面的命令:

touch /.autorelabel。可以强制重启。

⑤普通进入系统,可以密码进入修改密码的用户,也可以无密码进入密码被删除的用户。

方法二:①开机看到内核条目时候,按e开始编辑。在kernel中的最后加上init=/bin/sh,同时去掉rhgb和 quiet参数,按Ctrl+x启动系统。 

②输入mount -o remount,rw /运行以rw的方式重新挂载/(否则没有写权限),然后改密码,可以用passwd命令也可以进入/etc/passwd将需要修改的用户的密码占位符删除保存退出(此时该用户没有密码)。

③为了保证一些文件受到selinux上下文的影响,所以必须执行下面的命令:

touch /.autorelabel。此时不能强制重启。

④需要输入exec /sbin/init 初始化和重启系统。初始化完毕后可正常用密码的用户或者无密码的用户进入系统。

2) 救援模式破解root密码

1、开机按F2进去BIOS,选择启动项为CD-ROM Drive,保存并重启。

2、重启进去光盘启动,选择troubleshooting选项,再选择Rescue a CentOS system选项。

3、点击Continue,不能选Skip。

4、一直点击OK进入如下界面。

5、输入chroot /mnt/sysimage,接着使用命令修改用户密码后重启。

6、重启后还要进去BISO中修改启动项为Hard Drive。保存后重启。

7、正常进去系统输入密码进入。

附件1 linux系统启动流程

最初始阶段
当我们打开计算机电源,计算机会自动从主板的BIOS(Basic Input/Output System)读取其中所存储的程序。这一程序通常知道一些直接连接在主板上的硬件(硬盘,网络接口,键盘,串口,并口)。现在大部分的BIOS允许你从软盘、光盘或者硬盘中选择一个来启动计算机。
下一步,计算机将从你所选择的存储设备中读取起始的512 bytes(比如光盘一开是的512 bytes,如果我们从光盘启动的话)。这512 bytes叫做主引导记录MBR (master boot record)。MBR会告诉电脑从该设备的某一个分区(partition)来装载引导加载程序(boot loader)。Boot loader储存有操作系统(OS)的相关信息,比如操作系统名称,操作系统内核 (kernel)所在位置等。常用的boot loader有GRUB和LILO。
随后,boot loader会帮助我们加载kernel。kernel实际上是一个用来操作计算机的程序,它是计算机操作系统的内核,主要的任务是管理计算机的硬件资源,充当软件和硬件的接口。操作系统上的任何操作都要通过kernel传达给硬件。Windows和Linux各自有自己kernel。狭义的操作系统就是指kernel,广义的操作系统包括kernel以及kernel之上的各种应用。
(Linus Torvalds与其说是Linux之父,不如说是Linux kernel之父。他依然负责Linux kernel的开发和维护。至于Ubuntu, Red Hat, 它们都是基于相同的kernel之上,囊括了不同的应用和界面构成的一个更加完整的操作系统版本。)
实际上,我们可以在多个分区安装boot loader,每个boot loader对应不同的操作系统,在读取MBR的时候选择我们想要启动的boot loader。这就是多操作系统的原理。
小结:BIOS -> MBR -> boot loader -> kernel
kernel
如果我们加载的是Linux kernel,Linux kernel开始工作。kernel会首先预留自己运行所需的内存空间,然后通过驱动程序(driver)检测计算机硬件。这样,操作系统就可以知道自己有哪些硬件可用。随后,kernel会启动一个init进程。它是Linux系统中的1号进程(Linux系统没有0号进程)。到此,kernel就完成了在计算机启动阶段的工作,交接给init来管理。
小结: kernel -> init process
init process
(根据boot loader的选项,Linux此时可以进入单用户模式(single user mode)。在此模式下,初始脚本还没有开始执行,我们可以检测并修复计算机可能存在的错误)
随后,init会运行一系列的初始脚本(startup scripts),这些脚本是Linux中常见的shell scripts。这些脚本执行如下功能:
设置计算机名称,时区,检测文件系统,挂载硬盘,清空临时文件,设置网络……
当这些初始脚本,操作系统已经完全准备好了,只是,还没有人可以登录!!!init会给出登录(login)对话框,或者是图形化的登录界面。

输入用户名(比如说vamei)和密码,DONE!
在此后的过程中,你将以用户(user)vamei的身份操作电脑。此外,根据你创建用户时的设定,Linux还会将你归到某个组(group)中,比如可以是stupid组,或者是vamei组。
所以你将是用户vamei, 同时是vamei组的组员。(注意,组vamei和用户vamei只是重名而已,就好想你可以叫Dell, 同时还是Dell公司的老板一样。你完全也可以是用户vamei,同时为stupid组的组员)
总结
BIOS -> MBR -> boot loader -> kernel -> init process -> login用户,组 

 

作业一:
1)开启Linux系统前添加一块大小为15G的SCSI硬盘

2)开启系统,右击桌面,打开终端

3)为新加的硬盘分区,一个主分区大小为5G,剩余空间给扩展分区,在扩展分区上划分1个逻辑分区,大小为5G 

4)格式化主分区为ext3系统 

5)将逻辑分区设置为交换分区

6)启用上一步的交换分区
7)查看交换分区的状态

作业二:

 free命令查看内存

整理buffer与cache的作用

buffer是指被将输出到硬盘的数据占用

cache是指从被硬盘中读取出来的数据占用

计算真实的内存使用率

实际使用率=751420/1003432*100%=74.88%
作业三:dd命令测试硬盘速度

作业四:查找一个名为ssh的进程,并且将其强制杀死

 

 

 

 

 

作业结果,截图发到crm平台,会有老师为大家打分给成绩,其中作业四不算考核

作业一:rpm命令

1)  挂载光盘文件到/media目录

mount /dev/sr0 /media

 

2)  进去/media目录下的Packages目录

 

3)  查看系统已安装的所有rpm包

rpm -qa  

 

 4)  查看系统是否安装dhcp软件包

rpm -q dhcp* 查看所有以dhcp开头的染软件包

 

5)  安装dhcp软件包

rpm -ivh dhcp-4.2+Tab键

 

6)  查看dhcp软件包的信息

rpm -qi dhcp

 

7)  查看dhcp软件包中所包含的所有文件

rpm -ql dhcp

 

8)  查看/bin/ls文件是由哪个软件包产生

rpm -qf /bin/ls

 

9)  卸载dhcp软件包

rpm -evh dhcp

作业二:yum命令

1) 自定义yum仓库:createrepo

1、先创建/createrepo的文件夹mkdir /createrepo

2、将光盘里的软件包里有关http的软件包复制到自己的库里 

    /cp /media/Packages/http* /createrepo

3、再创建库的配置文件  createrepo /createrepo生成repodata文件,就完成创建自己的库

 

2) 自定义repo文件

1、进去到repo配置文件的目录下cd /etc/yum.repos.d/

2、新建一个自己.repo文件touch myrepo.repo

3、编辑myrepo.repo的内容,我复制了其中已经配好的文件再进去编辑,编辑内容如下下图。

4、把其他的配置文件都放到一个文件夹中备份,保证自己的文件能够生效。

5、使用yum clean all,显示的是在清理我配置好的软件源,说明配置生效了。 

 

3) 使用yum命令安装httpd软件包

yum install httpd -y安装httpd软件包

安装过程中我出现了有依赖关系的包找不到的情况。我就把配置文件换成原来的,在网上下载需要的软件包,安装完成换成自己的repo文件,再装httpd的软件包。

 

4) 卸载httpd软件包:yum –y remove 软件名

yum -y remove httpd

 

 5) 使用yum安装组件'KDE 桌面':yum –y groupinstall 组件名

1、自己的软件包里肯定没有这些组安装包,把自己的repo配置文件的源改成了光盘,那要装的时候就能找到了。

 

2、使用yum grouplist查看下有没有要安装的包

 

3、yum -y groupinstall kde plasma workapaces

 

6)  掌握使用yum删除组件‘KDE 桌面’:yum –y groupremove 组件名

yum -y groupremove kde plasma workapaces

 

7) 掌握清除yum缓存:yum clean all

 

8) 使用yum查找软件包:yum search 软件包名

yum search httpd

 

作业三:源码安装python

1、到Python官网上下载最新的源码:

https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz

https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz

2、将打包文件放入虚拟机中查看一下。将压缩包解压到/local/python/中

tar xvf Python-3.6.1.tgz -C /local/python/ 

 

3、进去/local/python/Python/Python-3.6.1中可以查看解压出来的文件

 

4、执行configure文件进行编译前的配置,将装到/local/python下。

    ./configure --prefix=/local/python

 

5、make  开始编译过程,将C语言编译成计算机可以识别的汇编语言。编制以前要装开发工具。yum groupinstall开发工具

 

编译过程中出现错误,zlib不可用。

把和zlib的所有的包都装一下,看到只是少了zlib-devel的包。

 

装完之后接着make install完成安装。

 

6、进去安装的目录/local/python查看发现有bin目录。进去bin目录执行./python3.6就可以使用python了。print(‘hello world’),显示‘hello word’字符串。使用 exit() 或者Ctrl-D退出。

Python的源码安装就完成了。

 

 
 
 

作业一:部署samba

每个用户有自己的目录,可以浏览内容,也可以删除

所有的用户共享一个目录,只能浏览内容,不能删

1、关闭防火墙、改变SELinux的运行状态

2、安装samba服务

3、使用默认配置smb.conf。

4、添加系统用户,增加smb密码。

5、映射网络文件夹,填写文件路径,用户和密码。

6、可以正常使用网盘。其他用户可以相应建自己的用户密码使用网盘。

7、建共享文件夹,进入smb.conf配置文件进行配置/home/share为共享文件夹,写权限开启。

 8、在/home目录下建立share文件夹,文件夹权限默认组用户和其他人没有写权限,只能看,不能删除。给加上写权限就可操作。

作业二:nginx服务

二进制安装nginx包

作为web服务修改配置文件

让配置生效,验证配置

1、准备装环境。

2、先装扩展包

再装nginx服务

3、打开编辑配置文件保存。# vim /etc/nginx/nginx.conf

/etc/nginx

/usr/share/nginx/html

启动服务,查看进程,开了4个进程。

在浏览器输入192.168.16.147,可看出内容。

作业三:nginx反向代理三台web

实现基于轮询的方式调度三台web,并验证结果

实现基于权重的方式调度三台web,并验证结果

实现基于hash的方式调用三台web,并验证结果

一、在一台虚拟机上开1台代理,3台web服务

1、在根目录下创建nginx_con文件夹,里面放4个配置文件。

先配置代理的配置文件,配置如下。

 配置web服务的配置文件,改端口和网页文件的根目录。

2、只启动代理服务,还没启动web服务,输入ip看不到结果。

3、开启3台web服务,查看进程,共有8个有关Nginx的进程。查看端口情况。80、8080、8081、8082都开启处于监听状态。

4、查看效果。分别输入8080、8081、8082结果如下。

只输入192.168.31.136,刷新网页轮训出现web1、web2、web3。三种结果。

二、修改代理配置文件。

Web1的权重为3,web2的权重是2,web3的权重默认为1。

验证刷新的效果是web1-> web2-> web3-> web1-> web1-> web2然后循环。一次循环中web1出现3次,web2出现2次,web3出现1次。

三、修改代理配置文件。

验证效果是输入地址显示出web2的内容,再刷新也一直是出web2的内容。

 
 
 

作业一:

nginx反向代理三台web服务器,实现负载均衡

所有的web服务共享一台nfs的存储

1、  环境准备

2、  安装nfs。

3、做文件系统。新添加一块5G的盘,做成文件系统。

4、创建一个共享的文件夹share,将sdb挂载在share下。

5、打开/etc/exports进行配置保存。

6、将/share的权限放开,让客户端可读可写。

7、为rpcbind和nfs做开机启动,先启动rpcbind服务,再启动nfs。查看启动状态。

8、给web服务器装nfs。设置开机启动服务,再启动服务。将共享的目录挂载到/opt下。

这样就可以在/opt下读写文件,创建一个index.html的网页文件。在/share文件下就可以看到。

9、nfs服务弄好了就需要将3台web服务都配置到nfs服务器下的网页根目录。先将web1的配置文件更改一下,将server的root文件改为/opt。开启web1的nginx服务,看一下效果。成功!继续配置web2和web3的配置文件。

配置完后,启动nginx代理和web2和web2服务。

10、可以成功看到效果了。

在nfs服务端更改index.html的内容。再刷新页面,会看到相同的结果。这么一来再任意一个nginx服务端修改文件都会修改nfs的文件,而且是唯一的。这样的内容就统一起来。

 

作业一:grep作业(正则表达式及字符处理)

    目标文件/etc/passwd,使用grep命令或egrep

1. 显示出所有含有root的行:

# grep 'root' /etc/passwd

2. 输出任何包含bash的所有行,还要输出紧接着这行的上下各两行的内容:

# grep -C 2 'bash' /etc/passwd

 

3. 显示出有多少行含有nologin。

# grep -c 'nologin' /etc/passwd

4.显示出那些行含有root,并将行号一块输出。

 # grep -n 'root' /etc/passwd

5.新建用户

        abominable

        abominate

        anomie

        atomize

编写正则表达式,将他们匹配出来

# egrep 'a.omi(.){0,4}e' /etc/passwd

6.建四个用户

        Alex213sb

        Wpq2222b

        yH438PIG

        egon666

        过滤出用户名组成是字母+数字+字母的行

(1)# egrep '([a-Z]){2,4}([0-9]){3,4}([a-Z]){1,3}' /etc/passwd

(2)# egrep '^[a-Z]+[0-9]+[a-Z]+' /etc/passwd

7.显示出/etc目录下所有包含root的文件名

    # grep -rl 'root' /etc

8. 过滤掉/etc/ssh/sshd_config内所有注释和所有空行

其中有一行是前面不是注释,后面带注释。如下:

# egrep -v '^$|^#' /etc/ssh/sshd_config这条命令过滤掉空行和开头是注释的行

egrep -v '^$|#' /etc/ssh/sshd_config这条命令过滤掉空行和带#的所有行

作业二:

    linux下源码安装python,并设置PATH

1、 下载Python源码包放到root的根目录下

https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz

2、 tar -xvf Python-3.6.1.tgz -C /usr/local/python3.6

3、进入/usr/local/python3.6/Python-3.6.1/查看文件

4、安装开发工具,为编译做准备。

 yum -y groupinstall 开发工具

5、进行编译前配置。

./configure --prefix=/usr/local/python3.6/

6、执行make && make install

出现错误

安装zlib有关的软件包后,继续make && make install

7、安装完毕。查看安装目录出现bin、include、lib、share等目录。执行bin/python3.6可以运行python了。

8、设置PATH。要设置成登录shell下可生效的PATH,所以将路径写入/etc/profile。

9、需要登录一下才能生效。在任意目录下输入python3或者python3.6都可以。环境变量就设置完成。

windows下安装python,并设置PATH

1、下载安装包进行安装。选中红框中自动配置PATH。我们不选,自己设置。

2、安装完成后进入cmd,直接打Python,不会启动Python3.6,输入完整路径才行。

3、进入电脑高级属性将Python的路径加入到PATH中。保存退出。

4、重启cmd。输入python,便可直接打开Python3.6.

选做题:开发脚本自动部署及监控

    1.编写脚本自动部署反向代理、web、nfs;

        要求:

            I、部署nginx反向代理三个web服务,调度算法使用加权轮询;

            II、所有web服务使用共享存储nfs,保证所有web都对其有读写权限,保证数据一致性;

    2.编写监控脚本,监控集群内所有服务存活状态,内存、磁盘剩余率检测,异常则发送报警邮件

    3.编写计划任务,定时运行监控脚本,完成监控操作

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/weiwu1578/articles/8955023.html

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值