Linux的文本编辑器VI/VIM
VI编辑器 是UNIX和Linux系统下标准的文本编辑器,而且对于所有UNIX及Linux系统的版本而言,vi编辑器 都是完全相同的.Vim 是vi的升级版本,它在vi的基础上增加了一些功能,但在基础命令上两者是完全兼容 的.
VI/VIM主要用于建立、编辑、显示文本文件.它与其他编辑器不同,因为它没有菜单 ,只有命令.在Linux系统下,vi编辑器是全屏幕文本编辑的代表,提供了丰富的编辑功能.虽然vi编辑器相对来说比较简陋,对初学者来说可能不太友好,但在Linux中,vi编辑器的作用非常重要,特别是在配置各种服务器时,修改配置文件时非常实用.在这些场景中,熟练使用vi编辑器可以提高工作效率.
Vim编辑器三种模式
命令模式(command mode)
插入模式(Insert mode)/[输入模式]、
底线命令模式(last line mode)/[编辑模式 ]
1. 命令模式 只要启动 vi/vim [文件名] ,便进入了命令模式 .在这个状态下,敲击键盘动作会被Vim识别为命令,而非输入字符.例如,此时按下i 并不会输入一个字符,而是被当作了一个命令.
以下是常用的几个命令:
i
切换到输入模式,以输入字符.
x
删除当前光标所在处的字符.
:
切换到底行命令模式,在最底下一行输入命令.
2. 输入模式 在命令模式 下按下i 就进入了输入模式 .
在输入模式 中,可以使用以下按键:
字符按键以及Shift组合,输入字符
ENTER,回车键,换行
BACKSPACE,退格键,删除光标前一个字符
DEL,删除键,删除光标后一个字符
方向键,在文本中移动光标
HOME/END,移动光标到行首/行尾
Page Up/Page Down,上/下翻页
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
ESC,退出输入模式,切换到命令模式
3. 底线模式/编辑模式 在命令模式 下按下冒号(:)就进入了底线命令模式 .
底线命令模式 可以输入单个或多个字符的命令,可用的命令非常多.
在底线命令模式 中,基本的命令有(已经省略了冒号):
按ESC 键可随时退出底线命令模式.
VI常规操作 1. vi的启动和退出 直接输入命令 vi
不指定文件名,由于这是一个没有命名的空文件,会显示 vi 的版本信息.
或者直接使用 vi
打开文件,如果文件存在,则打开该存在的文件;如果文件不存在的话,将以我们指定的参数作为文件名.
输入 q!
是强制退出,同时没有保存当前文件内容.如果文件没有进行修改,或者已经保存完毕,也可以使用 q
退出.保存退出使用 wq
,保存强制退出使用 wq!
.
命令
描述
vi filename
打开或者新建一个文件,并将光标置于第一行的首部
vi -r filename
恢复上次VI打开时崩溃的文件
vi -R filename
把指定的文件以只读方式放入编辑器中
vi + filename
打开文件并将光标置于最后一行的首部
vi +n filename
打开文件,并将光标置于第n行的首部
vi +/pattern filename
打开文件,并将光标置于第一个与pattern匹配的位置
vi –c command filename
在对文件进行编辑前,先执行指定的命令
VIM常用操作 1. 插入命令
命令
作用
模式
a
在光标所在字符后插入
命令模式
A
在光标所在行尾插入
命令模式
i
在光标所在字符前插入
命令模式
I
在光标所在行行首插入
命令模式
o
在光标下插入新行
命令模式
O
在光标上插入新行
命令模式
2. 定位命令
命令
作用
模式
:set nu
显示行号
底线模式
:set nonu
取消行号
底线模式
gg | G
到第一行 | 到最后一行
命令模式
nG
到第n行
命令模式
:n
到第n行
底线模式
$
移至行尾
命令模式
0
移至行首
命令模式
光标方向的移动,除了可以使用方向键,还可以使用以下命令:
向上移动光标:k
向左移动光标:h
向右移动光标:l
向下移动光标:j
翻页命令
Ctrl+F向前翻整页 Ctrl+U向前翻半页
Ctrl+B向后翻整页 Ctrl+D向后翻半页
3. 删除命令
命令
作用
模式
x
删除光标所在处字符
命令模式
nx
删除光标所在处后n个字符
命令模式
dd
删除光标所在行,ndd删除n行
命令模式
dG
删除光标所在行到文件末尾内容
命令模式
D
删除光标所在处到行尾内容
命令模式
:n1,n2d
删除指定范围的行 例如:10,12d
底线模式
4. 复制和剪切命令
命令
作用
模式
yy
复制当前行
命令模式
nyy
复制当前行以下n行 例如 3yy
命令模式
dd
剪切当前行
命令模式
ndd
剪切当前行以下n行
命令模式
p、P
粘贴在当前光标所在行下或行上
命令模式
5. 替换和取消命令
命令
作用
模式
r
取代光标所在处字符 ,按r后输入替换的字符
命令模式、底线模式
R
从光标所在处开始替换字符,按Esc结束
命令模式
u
取消上一步操作
命令模式
底线模式下
: r 文件名 可以导入文件中的内容到光标位置 r /etc/issue : !命令 可以在不退出VIM的情况下输入命令 !which ls : r !date 把时间插入到vim中
6. 搜索和搜索替换命令
命令
作用
模式
/ 要查找的字符窜
搜索指定字符串 搜索时忽略大小写 :set ic 、set noic
命令模式
n(按键)
搜索指定字符串的下一个出现位置
命令模式
:%s/old/new/g
全文替换指定字符串
底线模式
:n1,n2s/old/new/g
在一定范围内替换指定字符串
底线模式
替换范围
%s 全文替换
起始行,终止行s /要替换的字符串/替换的新的字符串/g(g不询问,c询问操作)
7. 保存和退出命令
命令
作用
模式
:w
保存修改
底线模式
:w new_filename
另存为指定文件
底线模式
:wq
保存修改并退出
底线模式
ZZ
快捷键,保存修改并退出或shift+zz
命令模式
:q!
不保存修改退出
底线模式
:wq!
强行保存修改并退出(文件所有者及root可使用)
底线模式
Linux软件包管理 软件包管理简介
软件包在Linux系统中是程序安装和管理的基础.根据软件包的类型,可以分为源码包和二进制包,下面是对这两种包的详细介绍及其优缺点.
源码包 源码包通常包含C语言或其他编程语言的源代码,允许用户阅读和修改代码.源码包的安装过程比较慢,因为它需要在本地系统上编译成二进制文件才能运行,类似于Windows系统的安装过程.
优点:
开源:用户可以自由修改源代码. 可定制化:用户可以根据需求选择需要的功能. 系统适配性高:编译安装可优化软件性能,提高系统稳定性. 卸载方便:通常可以通过简单的命令来完全卸载. 缺点:
安装步骤繁琐:尤其是安装大型软件集合时,容易出错. 安装时间长:编译过程可能需要较长时间. 错误处理困难:新手可能难以解决编译过程中的错误. 二进制包 二进制包是经过编译的包,其中最常见的类型是RPM包,它是许多Linux发行版的默认包格式.
优点:
简单快速:包管理系统允许通过简单的命令快速安装、升级、查询和卸载软件. 安装速度快:比源码包安装快很多,因为不需要编译. 缺点:
源代码不可见:用户无法查看或修改源代码. 功能选择不如源码包灵活:用户不能自定义功能和选项. 依赖问题:软件之间的依赖关系可能导致一系列的依赖性安装问题.
RPM包管理-rpm命令管理 RPM包命名原则 RPM包的命名遵循一定的原则,以确保用户可以从文件名中快速得到关于软件包的详细信息.以下是RPM包命名原则的详细解析:
1 2 3 4 5 6 7 8 包全名: httpd-2.2.15-15.el6.centos.1.i686.rpm 包分解: - httpd 软件包名称- 2.2.15 软件版本号- 15 软件发布的次数(修订版本)- el6.centos 适合的Linux发行版(el6代表Enterprise Linux 6,centos表明是为CentOS定制)- i686 适合的硬件架构(i686为32位系统)- .rpm 文件扩展名,表示这是一个RPM包
每部分的具体含义如下:
软件包名称 (httpd
): 这是软件包的基本名称,通告了用户这是哪个软件的包.
软件版本号 (2.2.15
): 表示该软件包含的软件版本,有助于用户了解软件的功能和兼容性.
软件发布次数 (15
): 该数字通常代表软件包维护者的修订次数,有时候也包含安全补丁和重要更新.
适合的Linux发行版 (el6.centos
): 这表明了软件包是为哪个Linux发行版或版本定制的,有时候包括了适合的系统版本.
适合的硬件架构 (i686
): 告诉用户这个包是为哪种CPU架构编译的,例如i686通常指32位架构的处理器.
RPM包扩展名 (.rpm
): 明确这是一个RPM格式的软件包,告诉用户可以使用RPM兼容的包管理器进行安装和管理.
RPM包依赖性
树形依赖:a–>b–>c(最典型的依赖)
环形依赖:a–>b–>c–>a
模块依赖:模块依赖查询网站
包全名与包名
包全名:操作的包是没有安装的软件包时,使用包全名.而且要注意路径(安装)
包名:操作已经安装的软件包时,使用包名.是搜索/var/lib/rpm/中的数据库(执行、卸载)
RPM安装 1 2 3 4 5 6 rpm -ivh 包全名 选项: -i(install) 安装 -v(verbose) 显示详细信息 -h(hash ) 显示进度 --nodeps 不检测依赖性
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 [root@192 Packages] httpd-2.4.6-95.el7.centos.x86_64.rpm httpd-manual-2.4.6-95.el7.centos.noarch.rpm httpd-devel-2.4.6-95.el7.centos.x86_64.rpm httpd-tools-2.4.6-95.el7.centos.x86_64.rpm [root@192 Packages] 错误:依赖检测失败: /etc/mime.types 被 httpd-2.4.6-95.el7.centos.x86_64 需要 httpd-tools = 2.4.6-95.el7.centos 被 httpd-2.4.6-95.el7.centos.x86_64 需要 [root@192 Packages] 准备中... 正在升级/安装... 1:httpd-tools-2.4.6-95.el7.centos 我们主要看第2个100% [root@192 Packages] 错误:依赖检测失败: /etc/mime.types 被 httpd-2.4.6-95.el7.centos.x86_64 需要 [root@192 Packages] 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.huaweicloud.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com 软件包:httpd.x86_64 2.4.6-97.el7.centos.2 依赖:/bin/sh provider: bash.x86_64 4.2.46-35.el7_9 依赖:/etc/mime.types provider: mailcap.noarch 2.1.41-2.el7 依赖:/usr/sbin/groupadd provider: shadow-utils.x86_64 2:4.6-5.el7 依赖:/usr/sbin/useradd provider: shadow-utils.x86_64 2:4.6-5.el7 依赖:httpd-tools = 2.4.6-97.el7.centos.2 [root@192 Packages] 准备中... 正在升级/安装... 1:mailcap-2.1.41-2.el7 [root@192 Packages] httpd-2.4.6-95.el7.centos.x86_64.rpm httpd-manual-2.4.6-95.el7.centos.noarch.rpm httpd-devel-2.4.6-95.el7.centos.x86_64.rpm httpd-tools-2.4.6-95.el7.centos.x86_64.rpm [root@192 Packages] 准备中... 正在升级/安装... 1:httpd-2.4.6-95.el7.centos 我在安装htppd升级包的时候奔溃了,依赖的包太多了!需要用到yum在处理依赖性的方法
RPM包升级 1 2 3 rpm -Uvh 包全名 选项: -U(upgrade) 升级
卸载 1 2 3 4 rpm -e 包名 选项: -e(erase) 卸载 --nodeps 不检测依赖性
1 2 3 4 5 6 [root@192 Packages] 错误:依赖检测失败: httpd = 2.4.6-95.el7.centos 被 (已安裝) httpd-manual-2.4.6-95.el7.centos.noarch 需要 [root@192 Packages] [root@192 Packages]
RPM包管理-其他内容 查询是否安装 1 2 3 4 5 6 7 8 9 [root@192 /] 选项: -q 查询(query) [root@192 /] 选项: -a 所有(all) [root@192 /] httpd-tools-2.4.6-95.el7.centos.x86_64
查询软件包详细信息 1 2 3 4 [root@192 /] 选项: -i 查询软件信息(information) -p 查询未安装包信息(package)[包全名]
查询包中文件安装位置 1 2 3 4 [root@192 /] 选项: -l 列表(list) -p 查询未安装包信息(package)
查询系统文件属于哪个RPM包 1 2 3 [root@192 /] 选项: -f 查询系统文件属于哪个软件包(file)
查询软件包的依赖性 1 2 3 4 [root@192 /] 选项: -R 查询软件包的依赖性(requires) -p 查询未安装包信息(package)
RPM包检验(查看被修改的文件) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [root@192 /] 选项: -V 校验指定RPM包中的文件(verify) 验证内容中的8个信息的具体内容如下: S 文件大小是否改变 M 文件的类型或文件的权限(rwx)是否被改变 5 文件MD5校验和是否改变(可以看成文件内容是否改变) D 设备中,从代码是否改变 L 文件路径是否改变 U 文件的属主(所有者)是否改变 G 文件的属组是否改变 T 文件的修改时间是否改变 文件类型 c 配置文件(config file) d 普通文档(documentation) g "鬼" 文件(ghost file),很少见,就是该文件不应该被这个RPM包包含 l 授权文件(license file) r 描述文件(read me)
RPM包中文件提取 (文件修复用的) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [root@192 /] rpm2cpio cpio [root@192 /] 选项: -i: copy-in模式,还原 -d: 还原时自动新建目录 -v: 显示还原过程 范例:测试文件修改功能 [root@192 ~] coreutils-8.22-24.el7_9.2.x86_64 [root@192 ~] [root@192 ~] bash: ls : 未找到命令... 相似命令是: 'lz' [root@192 ~] 28603 块 [root@192 ~]
RPM包管理-yum在线管理
IP地址配置和网络yum源 1 2 3 4 5 6 [root@192 ~] [root@192 ~] PING ww1.sinaimg.cn.w.alikunlun.com (124.165.216.217) 56(84) bytes of data. 64 bytes from 217.216.165.124.adsl-pool.sx.cn (124.165.216.217): icmp_seq=1 ttl=57 time=6.73 ms 64 bytes from 217.216.165.124.adsl-pool.sx.cn (124.165.216.217): icmp_seq=2 ttl=57 time=7.03 ms 64 bytes from 217.216.165.124.adsl-pool.sx.cn (124.165.216.217): icmp_seq=3 ttl= 57 time=6.94 ms< /FONT>
1 2 3 4 5 6 7 8 [root@192 ~] [root@192 yum.repos.d] [root@192 yum.repos.d]
在CentOS-Base.repo
文件中,各项配置的意义如下:
[base]
:容器名称或标识符,必须置于方括号[]
内.在yum配置中,它定义了一个仓库的唯一标识.
name
:仓库的说明,可以是任意描述性文本,方便用户识别.
mirrorlist
:软件包镜像站点的URL.通常是一个服务器列表,yum会根据这个列表找到最好的服务器进行软件包下载.这一行可以被注释掉,如果你打算直接使用baseurl
.
baseurl
:定义yum源服务器的地址,即软件包的实际下载位置.默认指向CentOS官方源,可以修改为其他高速或本地镜像地址.
enabled
:指定该仓库是否被启用.1
或省略表示启用,而0
表示禁用.
gpgcheck
:决定是否进行GPG密钥检查.1
表示启用RPM包的数字签名验证,0
表示关闭验证,这样可能会增加系统安全风险.
gpgkey
:GPG密钥的公钥文件位置,用于验证软件包的完整性和出版商的可靠性.通常不需要修改.
yum命令 查询
1 2 [root@192 yum.repos.d] [root@192 yum.repos.d]
安装
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 [root@192 yum.repos.d] 选项: install 安装 -y 自动回答yes [root@192 yum.repos.d] 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.huaweicloud.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com base | 3.6 kB 00:00:00 extras | 2.9 kB 00:00:00 updates | 2.9 kB 00:00:00 正在解决依赖关系 --> 正在检查事务 ---> 软件包 httpd.x86_64.0.2.4.6-97.el7.centos.2 将被 安装 --> 正在处理依赖关系 httpd-tools = 2.4.6-97.el7.centos.2,它被软件包 httpd-2.4.6-97.el7.centos.2.x86_64 需要 --> 正在检查事务 ---> 软件包 httpd-tools.x86_64.0.2.4.6-95.el7.centos 将被 升级 ---> 软件包 httpd-tools.x86_64.0.2.4.6-97.el7.centos.2 将被 更新 --> 解决依赖关系完成 依赖关系解决 ========================================================================================================================================== Package 架构 版本 源 大小 ========================================================================================================================================== 正在安装: httpd x86_64 2.4.6-97.el7.centos.2 updates 2.7 M 为依赖而更新: httpd-tools x86_64 2.4.6-97.el7.centos.2 updates 94 k 事务概要 ========================================================================================================================================== 安装 1 软件包 升级 ( 1 依赖软件包) 总下载量:2.8 M Downloading packages: No Presto metadata available for updates (1/2): httpd-tools-2.4.6-97.el7.centos.2.x86_64.rpm | 94 kB 00:00:00 (2/2): httpd-2.4.6-97.el7.centos.2.x86_64.rpm | 2.7 MB 00:00:00 ------------------------------------------------------------------------------------------------------------------------------------------ 总计 3.6 MB/s | 2.8 MB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction 警告:RPM 数据库已被非 yum 程序修改. 正在更新 : httpd-tools-2.4.6-97.el7.centos.2.x86_64 1/3 正在安装 : httpd-2.4.6-97.el7.centos.2.x86_64 2/3 清理 : httpd-tools-2.4.6-95.el7.centos.x86_64 3/3 验证中 : httpd-2.4.6-97.el7.centos.2.x86_64 1/3 验证中 : httpd-tools-2.4.6-97.el7.centos.2.x86_64 2/3 验证中 : httpd-tools-2.4.6-95.el7.centos.x86_64 3/3 已安装: httpd.x86_64 0:2.4.6-97.el7.centos.2 作为依赖被升级: httpd-tools.x86_64 0:2.4.6-97.el7.centos.2 完毕! [root@192 yum.repos.d]
升级
1 2 3 4 [root@192 yum.repos.d] 选项: update 升级 -y 自动回答yes
卸载
1 2 3 4 5 6 [root@192 yum.repos.d] 选项: remove 卸载 -y 自动回答yes 强调服务器安装原理:安装最小化安装不安装多余软件,使用什么软件安装什么软件,尽量不卸载,尤其是yum卸载,尽量不用
YUM软件组管理命令 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 28 29 30 31 32 33 34 35 [root@192 yum.repos.d] 已加载插件:fastestmirror, langpacks 没有安装组信息文件 Maybe run: yum groups mark convert (see man yum) Loading mirror speeds from cached hostfile * base: mirrors.huaweicloud.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com 可用的环境分组: 最小安装 基础设施服务器 计算节点 文件及打印服务器 基本网页服务器 虚拟化主机 带 GUI 的服务器 GNOME 桌面 KDE Plasma Workspaces 开发及生成工作站 可用组: 传统 UNIX 兼容性 兼容性程序库 图形管理工具 安全性工具 开发工具 控制台互联网工具 智能卡支持 科学记数法支持 系统管理 系统管理工具 完成 [root@192 yum.repos.d] [root@192 yum.repos.d]
光盘yum源搭建步骤 挂载光盘
让网络yum源文件失效
1 2 3 4 5 [root@192 ~] [root@192 yum.repos.d] CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo CentOS-x86_64-kernel.repo [root@192 yum.repos.d]
修改光盘yum源文件
1 2 3 4 5 6 7 8 9 10 11 [root@192 yum.repos.d] [c7-media] name=CentOS-$releasever - Media baseurl=file:///mnt/cdrom/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
源码包管理 源码包和RPM包的区别 区别
安装之前的区别:概念上的区别
安装之后的区别:安装位置不同
RPM包安装位置 是安装在默认位置中:RPM包默认安装路径
/etc/
配置文件安装目录
/usr/bin/
可执行的命令安装目录
/usr/lib/
程序所使用的函数库保存位置
/usr/share/doc/
基本的软件使用手册保存位置
usr/share/man
帮助文件保存位置
1 2 3 4 5 6 7 8 9 10 11 [root@my-think ~] httpd-2.4.6-97.el7.centos.2.x86_64 [root@my-think ~] /etc/httpd /etc/httpd/conf /etc/httpd/conf.d /etc/httpd/conf.d/README /etc/httpd/conf.d/autoindex.conf /etc/httpd/conf.d/userdir.conf /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.modules.d ...
源码包安装位置 安装在指定位置当中,一般是/usr/local/软件名/
可以在编译的时候指定位置./configure --prefix=/usr/local/nginx
安装位置不同带来的影响 RPM包安装的服务可以使用系统服务管理命令(service)来管理
例如的apache的启动方法是:
RPM包安装的启动方法 启动httpd服务 : 使用service
命令是传统的方法,但在新版的Red Hat系列系统中(使用systemd作为init系统的版本),service
命令会被重定向到systemctl
命令.
1 2 [root@my-think init.d] Redirecting to /bin/systemctl start httpd.service
开放防火墙端口80 : 通过firewall-cmd
命令可以管理firewalld服务,它是Red Hat系列系统中默认的防火墙管理工具.这两条命令成功地将TCP端口80添加到了公共区域(public zone)并且永久生效,然后重新加载了防火墙的配置.
1 2 3 4 [root@my-think bin] success [root@my-think bin] success
开放端口80是为了允许HTTP流量(通常是网页服务器的流量)进入服务器.
访问网页服务器 : 假设服务器的IP地址是192.168.1.8,您可以通过浏览器访问http://192.168.1.8
.如果httpd已经启动并且防火墙端口已开放,您应该能够看到在/var/www/html
目录中的默认网页或您创建的index.html
.
源码包的启动方法 启动httpd服务 :如果是从源码编译安装的Apache httpd(比如安装到/usr/local/apache2
),那么您需要使用安装路径下提供的控制脚本(如apachectl
)来管理服务.
1 /usr/local/apache2/bin/apachectl start
开放防火墙端口80 : 通过firewall-cmd
命令可以管理firewalld服务,它是Red Hat系列系统中默认的防火墙管理工具.这两条命令成功地将TCP端口80添加到了公共区域(public zone)并且永久生效,然后重新加载了防火墙的配置.
1 2 3 4 [root@my-think bin] success [root@my-think bin] success
开放端口80是为了允许HTTP流量(通常是网页服务器的流量)进入服务器.
访问网页服务器 : 假设服务器的IP地址是192.168.1.8,您可以通过浏览器访问http://192.168.1.8
.如果httpd已经启动并且防火墙端口已开放,您应该能够看到在/var/www/html
目录中的默认网页或您创建的index.html
.
源码包安装过程 安装准备
安装C语言编译器 :确保系统中已经安装了C语言编译器,这是编译源码的基础.
下载源码包 :源码包可以从官方网站下载,例如Apache服务器源码包可从这里 下载.
安装注意事项
源代码保存位置 :推荐保存在/usr/local/src/
.
软件安装位置 :推荐安装在/usr/local/
.
确定安装过程中是否报错 :
安装过程中断停止.
出现error
、warning
或no
的提示.
源码包安装过程 下面是基于Linux环境的Apache源码包安装示例:
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 28 29 30 31 tar -zxvf httpd-2.4.51.tar.gz [root@my-think src] 48M httpd-2.4.51 [root@my-think httpd-2.4.51] configure: error: APR-util not found. Please read the documentation. $ make make clean $ make install $ /usr/local/apache2/bin/apachectl start
源码包的卸载 源码包的卸载十分简单,不需要使用专用的卸载命令.只需直接删除安装目录即可:
1 2 rm -rf /usr/local/apache2
测验 1. Linux操作系统中名为"sdb6"的分区代表什么意思? 2. 简述Linux操作系统的基本引导过程 开机自检 MBR引导 GRUB菜单 加载内核 init进程初始化 3. CentOS中第一个运行的进程是什么? 4. Systemd的常见的单元类型中service与target分表代表什么意思? 5. 用表格显示Systemd的目标与SysVinit的运行级别对应关系,并说明其含义? Systemd SysVinit 含义 target 0 关机 rescue.target 1 单用户模式 multi-user.target 3 字符端 graphical.target 5 图形化 reboot.target 6 重启
6. 假如在CentOS中启动并查看apache服务的运行状态的命令分别是什么? 1 2 3 [root@localhost ~] [root@localhost ~] [root@localhost ~]
7. 在CentOS中执行哪几条命令可以将系统运行目标切换至图形化模式? 1 2 3 4 systemctl set-default multi-user.target systemctl set-default graphical.target
8. 在CentOS中执行什么命令可以将apache服务设置为开机自动启动? 1 2 3 [root@localhost ~] [root@localhost ~] /usr/sbin/httpd
9. 若CentOS运行在字符界面模式,所有开机自启服务的软链接存放在什么目录下? 1 ls /etc/systemd/multi-user.target.wants/
10. 在CentOS中执行什么命令可以查看当前系统中所有已经激活的系统服务? 1 systemctl list-units -t service
11. Linux操作系统通用的命令行格式是什么? 12. 列表对比Linux操作系统下获取命令帮助的方法 13. 操作命令选项的时候"-"和"--"的区别是什么? 14. help和--help分别代表什么意思? 15. 重定向符的作用是什么? 16. 列表对比pwd、cd、ls、du命令的作用、命令格式、常用选项 命令 作用 格式 常用选项 pwd
显示当前所在工作目录 pwd
pwd
cd
切换工作目录 cd 目标位置
cd 目标位置
ls
列表显示目录内容 ls
-l -a -A -d -h -R -color
du
统计目录及文件空间占用情况 du [选项] [文件或目录]
-a -h -s
17. 绝对路径与相对路径的区别是什么? 1 2 3 4 5 参照物不同 /opt/clash ./clash
18. 常见相对路径的表现形式有哪几种? 19. 如何查看系统存在哪些别名命令? 20. 当目标文件存在时,使用touch命令创建该文件,命令执行结果是什么? 21. 列表比较软链接与硬链接的区别 软链接 硬链接 删除原始文件后 失效 依旧可用 使用范围 适用于文件或目录 只可用于文件 保存位置 与原始文件可以位于不同的文件系统中 必须与原始文件在同一个文件系统(如一个Linux分区)内
22. 在刚装好的linux系统上使用`mkdir /test/lol/dark`命令,是否会成功,原因是什么? 1 不会成功,因为不能递归创建,如果递归创建需要加-p参数
23. 列表对比cp、rm、mv命令的作用、命令格式、常用选项 命令 作用 格式 常用选项 cp
复制文件或目录 cp [选项] 源文件或目录 目标文件或目录
-f -i -p -r
rm
删除文件或目录 rm [选项] 要删除的文件或目录
-f -i -r
mv
移动文件或目录 mv [选项] 源文件或目录 目标文件或目录
无
24. cp复制目录的时候总提示失败,分析原因可能有哪些? 25. rm删除目录失败,需要附加什么选项? 26. mv命令除了移动对象以外还有什么作用? 27. find命令与which命令的区别是什么? 28. find命令的语法与主要选项都有哪些?各选项的作用是什么? 1 2 3 4 find [查找范围] [查找条件表达式] -name -type -size
29. 如何用一条命令查找出文件大小大于10k并且名字以chain开头的文件 1 find / -name chain* -a -size -10k
30. 在Linux命令行中按Ctrl+L组合键的作用是什么? 31. 获得Linux命令的在线帮助的方式有哪些?简述各自的特点和区别? 帮助命令 特点 区别 man
提供详细的命令使用说明和选项信息. 包含详尽的信息,适用于深入学习命令.可能不包含最新的命令选项. info
提供与man
类似,但可能更详细的信息,支持超链接. 信息组织结构类似于网页,用于浏览相关命令的详细信息及其上下文. --help
快速获取命令的基本用法和可用选项的简要说明. 用于快速查阅命令的基本信息,通常在命令后直接使用. whatis
显示一条命令的简短描述. 提供命令的简单概述,适用于快速理解命令的基本功能. /usr/share/doc/
浏览特定软件包提供的文档. 包含特定软件包的额外文档,使用文件浏览器或命令行工具查看. 在线资源 访问互联网上的资源,如官方文档、论坛和教程. 提供最新和最全面的信息,需要互联网连接.
32. 在Linux命令行下执行"ls -ld"命令的作用是什么? 33. 执行什么命令可以分别统计/boot目录中所有文件、子目录各自占用的空间大小? 34. 依次执行什么命令可以为文件/bin/bzip2 创建一个软链接文件/bin/wx/bzip2 ? 1 ln -s /bin/zip2 /bin/wx/bzip2
35. 执行什么命令可以把目录/boot/grub、文件/etc/apg.conf复制到当前目录下的public_html文件夹中? 1 cp /boot/grub /etc/apg.conf ./public_html/ -r
36. 在Linux命令行中执行"echo $PATH"命令的作用是什么? 37. 执行什么命令可以在/etc目录下查找"超过1024KB"和"名称以.conf结尾"的文件? 1 find /etc/ -name *.conf -a -size -1024k
38. 列表对比Linux系统下可以查看文件内容命令的作用、命令格式、常用选项 命令 作用 格式 选项 cat
显示出文件的内容 cat [选项] 文件名
-n -b
more
全屏方式分页显示文件内容 more [选项] 文件名
enter 空格 q
less
与more
命令相同,但扩展功能更多 less [选项] 文件名
page up/page down/ "/"/n/N
wc
统计文件中的单词数量等信息 wc [选项] 目标文件
-l -w -c
head
查看文件开头的一部分内容(默认为10行) head -n 文件名
-n
tail
查看文件结尾的少部分内容(默认为10行) tail [选项] [文件名]
-n -f
grep
在文件中查找并显示包含指定字符串的行 grep [选项] 查找条件 目标文件
-i -v
39. 使用grep命令过滤文件内容时"\^"、"\$"与"\^$"分别表示什么作用? 40. 如何得到httpd.comf文件中除去注释和空行后的有效信息? 1 cat /etc/httpd/conf/httpd.conf | grep -v ^$ |grep -v ^.*