chapter02 - 03 作业
1、 分别用cat ac l三个命令查看文件/etc/ssh/sshd_config文件中的内容,并用自己的话总计出这三个文档操作命令的不同之处?
[root@localhost ~]# cat -n /etc/ssh/sshd_config
1 # $OpenBSD: sshd_config,v 1.93 2014/01/10 05:59:19 djm Exp $
2
3 # This is the sshd server system-wide configuration file. See
。
。
。
151 # AllowTcpForwarding no
152 # PermitTTY no
153 # ForceCommand cvs server
[root@localhost ~]# tac /etc/ssh/sshd_config
# ForceCommand cvs server
# PermitTTY no
# AllowTcpForwarding no
。
。
。
# This is the sshd server system-wide configuration file. See
# $OpenBSD: sshd_config,v 1.93 2014/01/10 05:59:19 djm Exp $
[root@localhost ~]# nl /etc/ssh/sshd_config
1 # $OpenBSD: sshd_config,v 1.93 2014/01/10 05:59:19 djm Exp $
2 # This is the sshd server system-wide configuration file. See
3 # sshd_config(5) for more information.
。
。
。
125 # AllowTcpForwarding no
126 # PermitTTY no
127 # ForceCommand cvs server
不同之处:
cat和tac标识空白行,nl不标示空白行
cat以正序的方式显示文件内容,tac以倒叙的方式显示文件的内容
2、 分别用more和less查看/etc/ssh/sshd_config里面的内容,请用总结more和less两个命令的相同和不同之处?
[root@localhost ~]# more /etc/ssh/sshd_config
# $OpenBSD: sshd_config,v 1.93 2014/01/10 05:59:19 djm Exp $ ......
[root@localhost ~]# less /etc/ssh/sshd_config
# $OpenBSD: sshd_config,v 1.93 2014/01/10 05:59:19 djm Exp $ ......
不同之处:
“more”按Enter键和空格键上下滚动,按q键退出
“less” 功能与“more”大致相同,less按pgUp、pgDn键上下翻页,按“/”查找内容
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
[root@localhost ~]# ls
20_pass.txt test.txt 公共 视频 文档 音乐
anaconda-ks.cfg test.txt~ 模板 图片 下载 桌面
[root@localhost ~]# tail -15 /etc/passwd >/root/pass_15.txt
[root@localhost ~]# ls
20_pass.txt pass_15.txt test.txt~ 模板 图片 下载 桌面
anaconda-ks.cfg test.txt 公共 视频 文档 音乐
3、 请用一个命令统计/etc/hosts文件包含有多少行?多少字节?多少单词数?
[root@localhost ~]# wc /etc/hosts
2 10 158 /etc/hosts
5、练习使用grep和egrep
5.1.通过grep管道工具过滤出ifconfig命令显示信息中的IP字段?
[root@localhost ~]# ifconfig | grep "inet"
inet 192.168.100.147 netmask 255.255.255.0 broadcast 192.168.100.255
inet6 fe80::20c:29ff:fe69:4a49 prefixlen 64 scopeid 0x20<link>
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
(先利用ifconfig命令将IP调出来,再通过gerp命令滤除带有“inet”的字段。)
[root@localhost ~]# ifconfig | grep "inet " | grep "t .* n"
inet 192.168.100.147 netmask 255.255.255.0 broadcast 192.168.100.255
inet 127.0.0.1 netmask 255.0.0.0
(继续过滤,滤掉带有“inet6”的段落)
[root@localhost ~]# ifconfig | grep "inet " | grep -o "t .* n"
t 192.168.100.147 n
t 127.0.0.1 n
(通过“-o”参数扣出带有IP的字段)
[root@localhost ~]# ifconfig | grep "inet " | grep -o "t .* n" | grep -o " .* "
192.168.100.147
127.0.0.1
(再次过滤把数字抠出来)
[root@localhost ~]# ifconfig | grep "inet " | grep -o "t.*n"| " | head -1
192.168.100.147
(利用“head”命令摘出第一段,IP字段查看完毕)
5.2.将/etc/passwd文件中的前20行重定向保存到/root下名称为pass?
[root@localhost ~]# head -20 /etc/passwd >/root/pass
[root@localhost ~]# ls
20_pass.txt pass test.txt 公共 视频 文档 音乐
anaconda-ks.cfg pass_15.txt test.txt~ 模板 图片 下载 桌面
5.3.过滤/etc/passwd文件中含有/sbin/nologin 的行并统计行数?
[root@localhost ~]# grep "/sbin/nologin" /etc/passwd | wc -l
35
5.4 过滤/etc/passwd文件中以sh结尾的行,及以 root开头的行,不显示包含login的行?
[root@localhost ~]# grep "sh$" /etc/passwd
root:x:0:0:root:/root:/bin/bash
tom:x:1000:1000:tom:/home/tom:/bin/bash
[root@localhost ~]# grep "^root" /etc/passwd | 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 yes
GSSAPICleanupCredentials no
UsePAM yes
X11Forwarding yes
UsePrivilegeSeparation sandbox # Default for new installations.
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 yes
GSSAPICleanupCredentials no
UsePAM yes
X11Forwarding yes
UsePrivilegeSeparation sandbox # Default for new installations.
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 ~]# cd /etc
(进入etc文件夹)
[root@localhost etc]# tar czf /root/file.tar.gz passwd
(压缩文件并命名)
[root@localhost etc]# ls /root
20_pass.txt file.tar.gz pass_15.txt test.txt~ 模板 图片 下载 桌面
anaconda-ks.cfg pass test.txt 公共 视频 文档 音乐
(查看)
6.2通过tar命令将/etc/passwd文件打包压缩成/root/file.tar.bz2
[root@localhost ~]# cd /etc
[root@localhost etc]# tar cjf /root/file.tar.bz2 passwd
[root@localhost etc]# ls /root
20_pass.txt file.tar.bz2 pass test.txt 公共 视频 文档 音乐
anaconda-ks.cfg file.tar.gz pass_15.txt test.txt~ 模板 图片 下载 桌面
(做法与上题一样)
6.3创建空文件夹/web/test1,并将file.tar.bz2 解包并释放到/web/test1目录下?
[root@localhost ~]# mkdir -p /web/test1/
(创建空文件夹/web/test1)
[root@localhost ~]# tar -xf file.tar.bz2 -C /web/test1
(将file.tar.bz2 解包并释放到/web/test1目录下)
[root@localhost ~]# ls /web/test1
passwd
(查看)
7.1 通过vi编辑/web/test1/passwd文件将文件里为root单词全部替换成benet。
[root@localhost ~]# vi /web/test1/passwd
(通过vi编辑/web/test1/passwd)
:% s/root/benet/g
(将文件里为root单词全部替换成benet)
7.2 通过vi编辑 删除pass文件第1、5、10行。
[root@localhost ~]# vi /web/test1/passwd
:set nu
:1G D
:5G D
:10G D
7.3 在vi中显示pass文件行号复制文件2 3 4行粘贴到以lp开头的行下。
[root@localhost ~]# vi pass
: set nu
将光标移动至第二行,3yy
将光标移动到ip行,p
7.4 通过vi编辑 查找文件内包含mail var等字符串,并记录所在行号。
mail(12)
var(4,5,8,12,15,21,23)
7.5 通过vi编辑 快速跳转到文件的第二行,通过r 读取 /etc/hosts 文件的内容到第二行下。
:r /etc/hosts
7.6将更改后的文件使用vim另存为/root/new_pass。
:w /root/new_pass
[root@localhost ~]# ls /root/
20_pass.txt file.tar.bz2 new_pass pass_15.txt test.txt~ 模板 图片 下载 桌面
anaconda-ks.cfg file.tar.gz pass test.txt 公共 视频 文档 音乐
7.7将new_pass文件压缩成gz格式并改名为npass.gz文件。
[root@localhost ~]# tar -czf npass.gz new_pass
[root@localhost ~]# ls /root 0
20_pass.txt file.tar.bz2 new_pass pass test.txt 公共 视频 文档 音乐
anaconda-ks.cfg file.tar.gz npass.gz pass_15.txt test.txt~ 模板 图片 下载 桌面
8统计/dev 目录下的文件数量。
包含文件夹
[root@localhost dev]# ls -l | grep -v "总用量" | wc -l
155
[root@localhost dev]# ls | wc -l
155
不包含文件夹
[root@localhost dev]# ls -l /dev | grep -v "drwxr" | grep -v "总用量" | wc -l
138
9.1在/boot下查找文件名以vmlinuz开头的文件?
[root@localhost dev]# ls /boot
config-3.10.0-229.el7.x86_64 initrd-plymouth.img
grub symvers-3.10.0-229.el7.x86_64.gz
grub2 System.map-3.10.0-229.el7.x86_64
initramfs-0-rescue-7f8ba12e352e4670a26f091cb7a2014d.img vmlinuz-0-rescue-7f8ba12e352e4670a26f091cb7a2014d
initramfs-3.10.0-229.el7.x86_64.img vmlinuz-3.10.0-229.el7.x86_64
(查询boot文件夹下的文件)
[root@localhost dev]# ls /boot | grep "vmlinuz"
vmlinuz-0-rescue-7f8ba12e352e4670a26f091cb7a2014d
vmlinuz-3.10.0-229.el7.x86_64
(过滤出含有vmlinuz的字段)
[root@localhost dev]# ls /boot | grep "vmlinuz" | wc -l
2
(统计行数)
9.2在/boot下查找文件大小大于3M 小于 20M 的文件
[root@localhost dev]# find /boot -size +3M -a -size -20M
/boot/vmlinuz-3.10.0-229.el7.x86_64
/boot/vmlinuz-0-rescue-7f8ba12e352e4670a26f091cb7a2014d
/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 ~]# ls /media/(查看)
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
[root@localhost ~]# cd /etc/yum.r*(构建本地YUM仓库文档)
[root@localhost yum.repos.d]# mkdir a/(构建本地YUM仓库文档)
[root@localhost yum.repos.d]# mv C* a/(构建本地YUM仓库文档)
[root@localhost yum.repos.d]# vi ./local.repo(创建本地yum仓库文档)
[cdrom] //仓库名称
name=cdrom
baseurl=file:///media //指定rpm包的位置
enabled=1 //启用本地yum仓库
gpgcheck=0 //禁用gpg校验
[root@localhost yum.repos.d]# yum -y clean all(清除yum缓存)
已加载插件:fastestmirror, langpacks
正在清理软件源: cdrom
Cleaning up everything
Cleaning up list of fastest mirrors
[root@localhost yum.repos.d]# yum makecache(重建yum缓存)
已加载插件:fastestmirror, langpacks
cdrom | 3.6 kB 00:00:00
(1/4): cdrom/group_gz | 154 kB 00:00:00
(2/4): cdrom/filelists_db | 2.7 MB 00:00:00
(3/4): cdrom/other_db | 1.1 MB 00:00:00
(4/4): cdrom/primary_db | 2.7 MB 00:00:00
Determining fastest mirrors
元数据缓存已建立
11、用yum命令安装vsftpd,查询安装情况,最后卸载vsftpd,并再次查询卸载情况?
[root@localhost ~]# rpm -q vsftpd
未安装软件包 vsftpd
(查询是否安装vsftpd)
[root@localhost ~]# yum -y install vsftpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
。
。
。
完毕!
(用yum安装vsftpd)
[root@localhost ~]# rpm -q vsftpd
vsftpd-3.0.2-9.el7.x86_64
(用yum安装vsftpd)
[root@localhost ~]# yum -y remove vsftpd
已加载插件:fastestmirror, langpacks
正在解决依赖关系
--> 正在检查事务
。
。
。
完毕!
(用yum卸载vsftpd)
[root@localhost ~]# rpm -q vsftpd
未安装软件包 vsftpd
(查询是否卸载vsftpd)
12、用rpm命令安装vsftpd,查询安装情况,最后卸载vsftpd,并再次查询卸载情况?
[root@localhost ~]# rpm -q vsftpd"vsftpd"
未安装软件包 vsftpdvsftpd
(超序是否安装vsftpdvsftpd包)
[root@localhost ~]# find / -name "vsftpd*.rpm"
/media/Packages/vsftpd-3.0.2-9.el7.x86_64.rpm
(查找安装vsftpdvsftpd包)
[root@localhost ~]# cd /media/Packages/
(进入/media/Packages/)
[root@localhost Packages]# rpm -ihv vsftpd-3.0.2-9.el7.x86_64.rpm
警告: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%]
(安装rpm包)
[root@localhost Packages]# rpm -q vsftpd
vsftpd-3.0.2-9.el7.x86_64
(查询是否安装rpm包)
[root@localhost Packages]# rpm -e vsftpd
(卸载rpm包)
[root@localhost Packages]# rpm -q vsftpd
未安装软件包 vsftpd
(查询是否安装rpm包)
13、通过源码方式通过解包、配置、编译、安装四个步骤安装源码软件httpd-2.2.17.tar.gz?并进行测试?
[root@localhost Packages]# yum -y install gcc gcc-c++ make
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
。
。
。
完毕!
(准备操作,先安装c++)
[root@localhost ~]# tar -xf httpd-2.2.17.tar.gz -C /usr/src
(解包到/usr/src)
[root@localhost ~]# cd /usr/src/httpd-2.2.17/
(进入包)
[root@localhost httpd-2.2.17]# ./configure –prefix=/usr/local/apache
。
。
。
config.status: creating build/config_vars.sh
config.status: creating include/ap_config_auto.h
config.status: executing default commands
(预配置)
[root@localhost httpd-2.2.17]# make
。
。
。
prutil-1.la /usr/src/httpd-2.2.17/srclib/apr-util/xml/expat/libexpat.la /usr/src/httpd-2.2.17/srclib/apr/libapr-1.la -lrt -lcrypt -lpthread -ldl
make[1]: 离开目录“/usr/src/httpd-2.2.17”
(编译)
[root@localhost httpd-2.2.17]# make install
Making install in srclib
make[1]: 进入目录“/usr/src/httpd-2.2.17/srclib”
。
。
。
mkdir /usr/local/apache/man/man8
mkdir /usr/local/apache/manual
make[1]: 离开目录“/usr/src/httpd-2.2.17”
(安装)
[root@localhost httpd-2.2.17]# cd /usr/local/apache/conf/
(进入/usr/local/apache/conf/)
[root@localhost conf]# cp httpd.conf httpd.conf.bak
(拷贝httpd.conf httpd.conf.bak)
[root@localhost conf]# vi /usr/local/apache/conf/httpd.conf
(修改配置文件)
[root@localhost conf]# /usr/local/apache/bin/apachectl start
(启动)
[root@localhost conf]# yum -y install lynx
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
。
。
。
完毕
(安装lynx)
[root@localhost conf]# lynx 127.0.0.1
(运行)