上机作业 2 2019/7/26
chapter02 - 03 作业
1、分别用cat \tac\nl三个命令查看文件/etc/ssh/sshd_config文件中的内容,并用自己的话总计出这三个文档操作命令的不同之处?
[root@localhost ~]# cat /etc/ssh/sshd_config //查看文件内容
[root@localhost ~]# tac /etc/ssh/sshd_config //倒叙查看
[root@localhost ~]# nl /etc/ssh/sshd_config //查看文件内容标记行号(不标空行)
2、分别用more和less查看/etc/ssh/sshd_config里面的内容,请用总结more和less两个命令的相同和不同之处?
[root@localhost ~]# more /etc/ssh/sshd_config //全屏分页查看文件内容按q退出
[root@localhost ~]#less /etc/ssh/sshd_config //同more 功能更多
3、将/etc/passwd文件中的前20行重定向保存到/root下改名为20_pass.txt,将/etc/passwd文件中的后15行重定向保存到/root下改名为:pass_15.txt
[root@localhost ~]# head -20 /etc/passwd > /root/20_pass.txt //head查看前二十行然后重定向到root下
[root@localhost ~]# tail -15 /etc/passwd > /root/pass_15.txt //tail查看后十五行然后重定向到root下
[root@localhost ~]# ls //查看目录下的文件和目录
20_pass.txt anaconda-ks.cfg pass_15.txt 公共 模板 视频 图片 文档 下载 音乐 桌面
4、请用一个命令统计/etc/hosts文件包含有多少行?多少字节?多少单词数?
[root@localhost ~]# wc /etc/hosts //wc查看文件的行数、单词数、字节
2 10 158 /etc/hosts
5、练习使用grep和egrep
5.1.通过grep管道工具过滤出ifconfig命令显示信息中的IP字段?
[root@localhost ~]# ifconfig| grep "inet " | grep -o "t .* n" | grep -o " .* "|head -1
192.168.100.157
5.2.将/etc/passwd文件中的前20行重定向保存到/root下名称为pass?
[root@localhost ~]# head -20 /etc/passwd > /root/pass //head查看前二十行然后重定向到root下并重命名为pass
[root@localhost ~]# ls //查看目录下的文件和目录
20_pass.txt anaconda-ks.cfg file.tar.bz2 file.tar.gz pass pass_15.txt pass.txt
5.3.过滤/etc/passwd文件中含有/sbin/nologin 的行并统计行数?
[root@localhost ~]# grep '/sbin/nologin' /etc/passwd|wc -l //grep过滤出含要求字符串的行然后用wc -l 统计行数
35
5.4 过滤/etc/passwd文件中以sh结尾的行,及以 root开头的行,不显示包含login的行?
[root@localhost ~]# grep "sh$" /etc/passwd | grep "^root" | grep -v 'login'
root:x:0:0:root:/root:/bin/bash
5.5 分别用grep和egrep过滤出/etc/ssh/sshd_config文件中不包含“#”开头和空白的行?
[root@localhost ~]# grep -v '^#' /etc/ssh/sshd_config | grep -v '^$'
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
SyslogFacility AUTHPRIV
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes
ChallengeResponseAuthentication no
GSSAPIAuthentication no
GSSAPICleanupCredentials no
UsePAM yes
X11Forwarding yes
UsePrivilegeSeparation sandbox # Default for new installations.
UseDNS no
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
Subsystem sftp /usr/libexec/openssh/sftp-server
[root@localhost ~]# egrep -v "^#|^$" /etc/ssh/sshd_config
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
SyslogFacility AUTHPRIV
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes
ChallengeResponseAuthentication no
GSSAPIAuthentication no
GSSAPICleanupCredentials no
UsePAM yes
X11Forwarding yes
UsePrivilegeSeparation sandbox # Default for new installations.
UseDNS no
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
Subsystem sftp /usr/libexec/openssh/sftp-server
6.1 通过tar命令将/etc/passwd文件打包压缩成/root/file.tar.gz
[root@localhost etc]# tar czf /root/file.tar.gz ./passwd
[root@localhost etc]# ls /root
20_pass.txt anaconda-ks.cfg file.tar.gz pass pass_15.txt pass.txt 公共 模板 视频 图片 文档 下载 音乐 桌面
模板 视频 图片 文档 下载 音乐 桌面
6.2通过tar命令将/etc/passwd文件打包压缩成/root/file.tar.bz2
[root@localhost etc]# tar cjf /root/file.tar.bz2 ./passwd
[root@localhost etc]# ls /root
20_pass.txt anaconda-ks.cfg file.tar.bz2 file.tar.gz pass pass_15.txt pass.txt 公共
模板 视频 图片 文档 下载 音乐 桌面
6.3创建空文件夹/web/test1,并将file.tar.bz2 解包并释放到/web/test1目录下?
[root@localhost etc]# mkdir /web/test1 -p
[root@localhost etc]# tar -xf /root/file.tar.bz2 -C /web/test1/
[root@localhost etc]# ls /web/test1/
passwd
7.1 通过vi编辑/web/test1/passwd文件将文件里为root单词全部替换成benet。
[root@localhost ~]# vi /web/test1/passwd
:% s/root/benet/g 在整个文件中将
[root@localhost ~]# head -1 /web/test1/passwd
benet:x:0:0:benet:/benet:/bin/bash
7.2 通过vi编辑 删除pass文件第1、5、10行。
[root@localhost ~]# vi pass
dd //删除
[root@localhost ~]# wc -l pass
17 pass
7.3 在vi中显示pass文件行号复制文件2 3 4行粘贴到以lp开头的行下。
[root@localhost ~]# vi pass1
:set nu //显示文件行号
2G 切换行
3yy 复制光标所在行的3行内容
/lp 查找以lp开头的行
$ 将光标移到行尾
P 黏贴
7.4 通过vi编辑 查找文件内包含mail var等字符串,并记录所在行号。
[root@localhost ~]# vi pass1
:set nu //显示文件行号
/mial //查找含mail的行
12 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
/var //查找含var的行
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
8 adm:x:3:4:adm:/var/adm:/sbin/nologin
12 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
15 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
20 colord:x:998:997:User for colord:/var/lib/colord:/sbin/nologin
23 libstoragemgmt:x:997:995:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
7.5 通过vi编辑 快速跳转到文件的第二行,通过r 读取 /etc/hosts 文件的内容到第二行下。
[root@localhost ~]# vi pass1
2G //快速跳转到文件的第二行
:r /etc/hosts //通过r 读取 /etc/hosts 文件
7.6将更改后的文件使用vim另存为/root/new_pass。
[root@localhost ~]# vi pass1
:w /root/new_pass
7.7将new_pass文件压缩成gz格式并改名为npass.gz文件。
[root@localhost ~]# tar czf npass.gz new_pass
[root@localhost ~]# ls
20_pass.txt file.tar.bz2 new_pass pass pass_15.txt 公共 视频 文档 音乐
anaconda-ks.cfg file.tar.gz npass.gz pass1 pass.txt 模板 图片 下载 桌面
8统计/dev 目录下的文件数量。
[root@localhost ~]# ls /dev | wc -l (含文件夹)
155
[root@localhost ~]# ll /dev | grep -v '^d'| wc -l //(不含文件夹)
139
9.1在/boot下查找文件名以vmlinuz开头的文件?
[root@localhost ~]# find /boot/ -name 'vmlinuz*'
/boot/vmlinuz-3.10.0-229.el7.x86_64
/boot/vmlinuz-0-rescue-c08f3a0bf78c4879ae40ebc6145d4b72
9.2在/boot下查找文件大小大于3M 小于 20M 的文件
[root@localhost ~]# find /boot/ -size +3M -a -size -20M
/boot/vmlinuz-3.10.0-229.el7.x86_64
/boot/vmlinuz-0-rescue-c08f3a0bf78c4879ae40ebc6145d4b72
/boot/initramfs-3.10.0-229.el7.x86_64.img
10 请详细写出构建本地yum仓库的步骤?并在每行命令后面用自己的话做上中文注释?
[root@localhost ~]# umount /dev/sr0 //卸载光盘
[root@localhost ~]# mount /dev/sr0 /media //光盘挂载
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# cd /etc/yum.r*
[root@localhost yum.repos.d]# mkdir a/ //创建文件夹a
[root@localhost yum.repos.d]# mv C* ./a/
[root@localhost yum.repos.d]# vi local.repo //创建本地yum仓库文档
[hfh]
name=hfh
baseurl=file:///media
enbled=1
gpgcheck=0
[root@localhost yum.repos.d]# yum -y clean all //清楚yum缓存
[root@localhost yum.repos.d]# yum makecache //重建yum数据库
11、用yum命令安装vsftpd,查询安装情况,最后卸载vsftpd,并再次查询卸载情况?
[root@localhost yum.repos.d]# rpm -q vsftpd //查看vsftpd是否安装
未安装软件包 vsftpd
[root@localhost yum.repos.d]# yum -y install vsftpd //安装vsftpd
[root@localhost yum.repos.d]# rpm -q vsftpd //查看vsftpd是否安装
vsftpd-3.0.2-9.el7.x86_64
[root@localhost yum.repos.d]# yum -y remove vsftpd //卸载vsftpd
[root@localhost yum.repos.d]# rpm -q vsftpd //查看vsftpd是否安装
未安装软件包 vsftpd
12、用rpm命令安装vsftpd,查询安装情况,最后卸载vsftpd,并再次查询卸载情况?
[[root@localhost ~]# find / -name 'vsftpd*.rpm' //查找vsftpd安装文件位置
/media/Packages/vsftpd-3.0.2-9.el7.x86_64.rpm
[root@localhost ~]# rpm -ivh /media/Packages/vsftpd-3.0.2-9.el7.x86_64.rpm //安装vsftpd
警告:/media/Packages/vsftpd-3.0.2-9.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:vsftpd-3.0.2-9.el7 ################################# [100%]
[root@localhost ~]# rpm -q vsftpd //查看vsftpd是否安装
vsftpd-3.0.2-9.el7.x86_64
[root@localhost ~]# rpm -e vsftpd //卸载vsftpd
[root@localhost ~]# rpm -q vsftpd //查看vsftpd是否安装
未安装软件包 vsftpd
13、通过源码方式通过解包、配置、编译、安装四个步骤安装源码软件httpd-2.2.17.tar.gz?并进行测试?
[root@localhost ~]# yum -y install gcc gcc-c++ //安装gcc gcc-c++
[root@localhost ~]# tar -xf httpd-2.2.17.tar.gz -C /usr/src/ //解压源代码
[root@localhost httpd-2.2.17]# ./configure --prefix=/usr/local/apache //预配置
[root@localhost httpd-2.2.17]# make //编译
[root@localhost httpd-2.2.17]# make install //安装
[root@localhost httpd-2.2.17]# cd /usr/local/apache/conf/ //切换目录
[root@localhost conf]# cp httpd.conf httpd.conf.bak // 备份
[root@localhost conf]# vi httpd.conf
ServerName www.example.com:80 //修改的文件
[root@localhost conf]# /usr/local/apache/bin/apachectl start //启动Apache
[root@localhost ~]# yum -y install lynx // 安装lynx
[root@localhost ~]# lynx 127.0.0.1