示例1 安装数据库 Linux下软件安装的命令

RPM软件包管理
RPM安装软件的默认路径:
注意:
- /etc 配置文件放置目录
- /usr/bin 一些可执行文件
- /usr/lib 一些程序使用的动态链接库
- /usr/share/doc 一些基本的软件使用手册与说明文件
- /usr/share/man 一些man page档案
常用的 RPM
软件包命令
参数说明:
- -i:install的意思,安装
- -v:查看更详细的安装信息画面
- -h:以安装信息栏显示安装进度
软件安装
如你需要安装一个jdk
,首先要到网上下载一个
jdk
的
rpm
包,如
jdk- 8u171-linux-x64.rpm。最简单的安装命令如下:
不过,这样的参数其实无法显示安装的进度,所以通常我们执行的命令是这样:
卸载软件
使用rpm
的卸载过程一定要由最上层往下卸载,以
rp-pppoe
为例这个软件主要是依据ppp
这个软件来安装的,所以当你要卸载
ppp的时候,就必须先卸载rp-pppoe
才行!
删除的命令非常简单,通过-e
参数就可以完成。不过,很常发生软件属性依赖导致无法山洼某些软件的问题。
注意:
如果删除不想检查依赖关系,加 --nodeps
YUM
YUM通过依赖
rpm
软件包管理器
,
实现了
rpm
软件包管理器在功能上的扩展,
因此
YUM
是不能脱离
rpm
而独立运行的。
注意:
YUM是一个在线软件管理工具,所以使用
YUM
进行的操作大都 是需要在联网的条件下才能正常使用。
YUM的配置文件
容器说明
虽然yum
是你在联网后就能直接使用,不过,由于你系统的站点镜像没选择好,会导致连接速度非常慢!所以,这时候就需要我们去手动修改yum
的设置文档了。
容器查询
首先,可以先查询一下目录yum server
所使用的容器有哪些。
使用命令:yum repolist all
,查询结果如下:
如上图,只有当最右边的status
为
enabled
该容器才算激活,/etc/yum.repos.d/里面会有多个配置文件(文件名以
.repo
结 尾),yum
会从里面逐个查找,所以里面的容器名称不能有重复。
配置文件修改
打开配置文件:vi /etc/yum.repos.d/CenOS-Base.repo
,内容如下
配置文件的说明:
- [base]:代表容器的名字。中括号一定要存在,里面的名称可以随意起,但不能有两个相同的容器名称,否则yum会不知道去哪里找容器相关软件列表文件。
- name:只是说明一下这个容器的意义而已,重要性不高。mirrorlist:列出这个容器可以使用的镜像站点,如果不想使用可以批注掉这一行。
- baseurl:这个最重要,因为后面接的就是容器的实际网址。
- mirrorlist是由yum程序自行去找镜像站点,
- baseurl则是指定固定的一个容器网址。
- enable=1:启动这个容器,默认值也为1。关闭这个容器可以设 置enable=0。
- gpgcheck=1:指定是否需要查阅RPM文件内的数字证书。
- gpgkey:数字证书的公钥文件所在位置,使用默认值即可。
注意:
- yum会自动识别/etc/yum.repos.d/目录以.repo结尾的文件。
- 当我们修改了配置文件的网址却没有修改容器名称,可以会造成本机的列表与yum服务器的列表不同步,这时就需要手动来清除容器的数据了:
语法:yum clean [packages|headers|all]
- 参数:
- packages:将已下载的软件文件删除
- headers:将下载的软件文件头删除
- all:将所有容器数据都删除
- 例:删除已下载过的所有容器相关数据(含软件本身与列表)
- yum clean all
配置阿里yum源
YUM使用手册
小技巧:
使用参数-y
,当遇到需要等待用户输入时,这个选项会提供
yes
的响应,如上面的例子可以写成:
Linux下常用软件安装_JDK和Tomcat安装
Jdk 安装
解压jdk安装包
配置环境变量
生效环境
Tomcat 安装
解压Tomcat安装包
配置环境变量
Linux下常用软件安装_Mysql安装
下载YUM库
安装YUM库
安装数据库
遇到报错
失败原因:
GPG对于包的源
key
的验证没有通过。
解决办法
在yum install
版本后面加上
--nogpgcheck
完成安装,重启mysql
此时MySQL
已经开始正常运行,不过要想进入
MySQL
还得先找出此时root
用户的密码,通过如下命令可以在日志文件中找出密码:
复制粘贴上边的密码进入数据库
输入初始密码,此时不能做任何事情,因为MySQL
默认必须修改密码之后才能操作数据库修改密码命令:
修改密码策略
因为当前的密码太复杂不方便后期做实验,所以使用命令修改密码策略两种方式:
修改密码
开启远程连接
Linux下常用软件安装_MySQL卸载
检查是否安装了MySQL组件。

卸载前关闭MySQL服务

收集MySQL对应的文件夹信息

卸载删除MySQL各类组件

删除MySQL对应的文件夹

删除mysql用户及用户组

Linux进程管理

ps
查看系统中所有进程
语法:

参数
:
- -a 显示所有进程(包括其他用户的进程)
- -u 用户以及其他详细信息
- -x 显示没有控制终端的进程
- USER: 行程拥有者
- PID: pid
- %CPU: 占用的 CPU 使用率
- %MEM: 占用的记忆体使用率
- VSZ: 占用的虚拟记忆体大小
- RSS: 占用的记忆体大小
- TTY: 终端的次要装置号码 (minor device number of tty)
- STAT: 该行程的状态:
- D: 无法中断的休眠状态 (通常 IO 的进程)
- R: 正在执行中
- S: 静止状态
- T: 暂停执行
- Z: 不存在但暂时无法消除
- W: 没有足够的记忆体分页可分配
- <: 高优先序的行程
- N: 低优先序的行程
- L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
- START: 行程开始时间
- TIME: 执行的时间
- COMMAND:所执行的指令
示例1
列出目前所有的正在内存当中的进程。

相关信息
:
- USER:该进程属于哪个使用者账号。
- UID:程序被该 UID 所拥有。
- PID:就是这个程序的 ID 。
- %CPU:该进程使用掉的CPU资源百分比。
- %MEM:该进程所占用的物理内存百分比。
- STAT:
- R:正在运行
- S:正在睡眠
- T:停止了
- Z:已经终止了。
- TIME:该进程实际使用CPU运行的时间
- COMMAND:该进程的实际指令
示例2
找出和cron
与
syslog
这两个服务有关的
PID
号码。

温馨提示:
- egrep是grep的扩展和grep -e 是一样的...
- grep中的匹配字符,全部当作字符串来处理,但是不支持正则表达式的特殊元字符....
- egrep可以支持元字符...
- '^':指匹配的字符串在行首,
- '$':指匹配的字符串在行尾,
top
查看系统健康状态
,
windows
加强版 任务管理器
语法:

选项

示例1
每2s
更新一次
top
,观察整体信息。

top
是一个不错的进程观察工具,但不同于
ps
是静态的结果输出。
top
这个进程可以持续地监测整个系统的进程的工作状态。
显示详解:
- 当前时间
- 系统已运行的时间
- 当前登录用户的数量
- 相应最近5、10和15分钟内的平均负载。
可以使用'l'命令切换uptime的显示。
- 21:45:11 — 当前系统时间
- 0 days, 4:54 — 系统已经运行了4小时54分钟(在这期间没有重启过)
- 2 users — 当前有2个用户登录系统
- load average: 0.24, 0.15, 0.19 — load average 后面的三个数分别是5分钟、10分钟、15分
- 钟的负载情况。
load average数据是每隔
5
秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU
的数量,结果高于5
的时候就表明系统在超负荷运转了。
显示详解:
Tasks — 任务(进程),系统现在共有
144
个进程,其中处于运行中的有1
个,
143
个在休眠(
sleep
),
stoped
状态的有
0
个,zombie状态(僵尸)的有
0个。第二行显示的是任务或者进程的总结。进程可以处于不同的状态。这里显示了全部进程的数量。除此之外,还有正在运行、睡眠、停止、僵尸进程的数量(僵尸是一种进程的状态)。这些进程概括信息可以用't'切换显示

显示详解:
这里显示不同模式下所占
cpu
时间百分比,这些不同的
cpu
时间
表示:
- us, user: 运行(未调整优先级的) 用户进程的CPU时间
- sy,system: 运行内核进程的CPU时间
- ni,niced:运行已调整优先级的用户进程的CPU时间
- wa,IO wait: 用于等待IO完成的CPU时间
- hi:处理硬件中断的CPU时间
- si: 处理软件中断的CPU时间
- st:这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的
- vm,实际上hypervisor也是要消耗一部分CPU处理时间的)。
可以使用
't'
命令切换显示。
1.3% us —
用户空间占用
CPU
的百分比。
1.0% sy —
内核空间占用
CPU
的百分比。
0.0% ni —
改变过优先级的进程占用
CPU
的百分比
97.3% id —
空闲
CPU
百分比
0.0% wa — IO
等待占用
CPU
的百分比
0.3% hi —
硬中断(
Hardware IRQ
)占用
CPU
的百分比
0.0% si —
软中断(
Software Interrupts
)占用
CPU
的百分比
在这里
CPU
的使用比率和
windows
概念不同,如果你不理解用
户空间和内核空间,需要充充电了。
显示详解:
接下来两行显示内存使用率,有点像
'free'
命令。第一行是物理
内存使用,第二行是虚拟内存使用
(
交换空间
)
。
物理内存显示如下
:
全部可用内存、已使用内存、空闲内存、缓
冲内存。相似地:交换部分显示的是:全部、已使用、空闲和
缓冲交换空间。
内存显示可以用
'm'
命令切换。
509248k total —
物理内存总量(
509M
)
495964k used —
使用中的内存总量(
495M
)
13284k free —
空闲内存总量(
13M
)
25364k buffers —
缓存的内存量 (
25M
)
swap
交换分区
492536k total —
交换区总量(
492M
)
11856k used —
使用的交换区总量(
11M
)
480680k free —
空闲交换区总量(
480M
)
202224k cached —
缓冲的交换区总量(
202M
)
这里要说明的是不能用windows
的内存概念理解这些数据,如果按windows
的方式此台服务器
“
危矣
”
:
8G
的内存总量只剩下530M的可用内存。
Linux
的内存管理有其特殊性,复杂点需要一本书说明,这里只是简单说点和我们传统概念 (windows
)的不同。
第四行中使用中的内存总量(used
)指的是现在系统内核控制的内存数,空闲内存总量(free
)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free
中去,因此在
linux
上
free
内存会越来越少,但不用为此担心。
如果出于习惯去计算可用内存数,这里有个近似的计算公式: 第四行的free +
第四行的
buffers +
第五行的
cached
,按这个公式此台服务器的可用内存: 13284+25364+202224 = 240M对于内存监控,在top
里我们要时刻监控第五行
swap
交换分区的used
,如果这个数值在不断的变化,说明内核在不断进行内存和swap
的数据交换,这是真正的内存不够用了。

显示详解:
PID
:进程
ID
,进程的唯一标识符
USER
:进程所有者的实际用户名。
PR
:进程的调度优先级。这个字段的一些值是
'rt'
。这意味这这 些进程运行在实时态。
NI
:进程的
nice
值(优先级)。越小的值意味着越高的优先
级。负值表示高优先级,正值表示低优先级
VIRT
:进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。
VIRT=SWAP+RES
RES
:驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb
。
RES=CODE+DATA
SHR
:
SHR
是进程使用的共享内存。共享内存大小,单位
kb
- S:这个是进程的状态。它有以下不同的值:
- D - 不可中断的睡眠态。
- R – 运行态
- S – 睡眠态
- T – 被跟踪或已停止
- Z – 僵尸态
%CPU
:自从上一次更新时到现在任务所使用的
CPU
时间百分 比。
%MEM
:进程使用的可用物理内存百分比。
TIME+
:任务启动后到现在所使用的全部
CPU
时间,精确到百分之一秒。
COMMAND
:运行进程所使用的命令。进程名称(命令名
/
命令行)
还有许多在默认情况下不会显示的输出,它们可以显示进程的页错误、有效组和组ID和其他更多的信息。
示例
2
假设10 604
是一个已经存在的
PID
,观察该进程。

htop
htop的介绍
htop
是
Linux
系统中的一个互动的进程查看器
,
与
Linux
传统的
top
比较的话,
htop
更
人性化
并且还
支持鼠标
操作
!
htop
的安装


kill
终止进程,kill
的应用是和
ps
或者
pgrep
命名结合在一起使用的。
语法:

注: 信号代码可以省略,常用的信号代码是
- 9,
表示强制终止
示例1
终止所有的httpd
进程。

看上面输出中的第二列,就是进程PID.

注意:
killall 正在运行的进程名
killall gami
kill -9 PID 强制终止进程
netstat
命令是一个监控
TCP/IP
网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。
语法:

参数:
- -a或--all:显示所有连线中的Socket;
- -A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址;
- -c或--continuous:持续列出网络状态;
- -C或--cache:显示路由器配置的快取信息;
- -e或--extend:显示网络其他相关信息;
- -F或--fib:显示FIB;
- -g或--groups:显示多重广播功能群组组员名单;
- -h或--help:在线帮助;
- -i或--interfaces:显示网络界面信息表单;
- -l或--listening:显示监控中的服务器的Socket;
- -M或--masquerade:显示伪装的网络连线;
- -n或--numeric:直接使用ip地址,而不通过域名服务器;
- -N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称;
- -o或--timers:显示计时器;
- -p或--programs:显示正在使用Socket的程序识别码和程序名称;
- -r或--route:显示Routing Table;
- -s或--statistice:显示网络工作信息统计表;
- -t或--tcp:显示TCP传输协议的连线状况;
- -u或--udp:显示UDP传输协议的连线状况;
- -v或--verbose:显示指令执行过程;
- -V或--version:显示版本信息;
- -w或--raw:显示RAW传输协议的连线状况;
- -x或--unix:此参数的效果和指定"-A unix"参数相同;
- --ip或--inet:此参数的效果和指定"-A inet"参数相同。
示例1
列出所有端口
示例2
显示每个协议的统计信息

示例3
显示核心路由信息

示例4
查看端口号

Linux系统服务

Service命令
服务(service)
本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd
防火墙等
)
,因此我们又称为守护进程。
语法:

注意:
service命令其实是去
/etc/init.d
目录下,去执行相关程序
示例1
查看当前防火墙的状况,关闭防火墙和重启防火墙。

Systemd命令
Linux
的启动一直采用
init
进程。

两个缺点:
一是启动时间长。
init
进程是串行启动只有前一个进程启动完,才会启动下一个进程。
二是启动脚本复杂。
init
进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这往往使得脚本变得很长。
systemctl
systemctl
是
Systemd
的主命令,用于管理系统。

systemd-analyze
systemd
-
analyze
命令用于查看启动耗时。

hostnamectl
hostnamectl
命令用于查看当前主机的信息。

timedatectl
timedatectl
命令用于查看当前时区设置。

Systemd
并不是一个命令,而是一组命令,涉及到系统管理的方方面面。
- systemctl 是 Systemd 的主命令管理系统
- systemd-analyze 命令用于查看启动耗时。
- hostnamectl 命令用于查看当前主机的信息。
- localectl 命令用于查看本地化设置。
- timedatectl 命令用于查看当前时区设置。
Chkconfig
chkconfig
命令用来更新、查询、改动不同执行级上的系统服务。比方安装了httpd
服务,而且把启动的脚本放在了
/etc/rc.d/init.d
文件夹下,有时候须要开机自己主动启动它,而有时候则不须要,因 此,就能够使chkconfig
命令来进行控制。

示例1
列出chkconfig 所知道的所有命令。

开启服务。

关闭服务

systemctl 设置服务开机启动、不启动、查看各级别下服务启动状态等常用命令

附录:
经常使用服务介绍
Linux系统定时任务
什么是定时任务
定时任务命令是cond
,
crond
就是计划任务,类似于我们平时生活中的闹钟,定点执行。
为什么要用crond
计划任务主要是做一些周期性的任务,比如凌晨3
点定时备份数据、 晚上23
点开启网站抢购接口、凌晨
0
点关闭抢占接口等。
crontab配置文件
crontab的时间编写规范
crontab命令选项Linux网络防火墙
- -e #编辑定时任务
- -l #查看定时任务
- -r #删除定时任务
- -u #指定其他用户
计划任务实践示例
示例
1
假设在每周一、三、五的凌晨 3
点
25
分,都需要使用
tar
命令把某个网站的数据目录进 行打包处理,使其作为一个备份文件。
Linux网络防火墙
防火墙管理工具
firewalld概述
Centos
系统中集成了多款防火墙管理工具,其中
firewalld
服务是默认的防火墙配置管理工具,它拥有基于 CLI
(命 令行界面)和基于 GUI
(图形用户界面)的两种管理方式。
firewalld 中常用的区域名称及测了规则
firewalld防火墙的配置
- 使用firewall-cmd 命令行工具。
- 使用firewall-config 图形工具。
- 编写/etc/firewalld/中的配置文件。
终端管理工具
Linux 命令时曾经听到,命令行终端是一种极富效率的工作方式,firewalld-cmd 是
firewalld
防火墙配置管理工具的
CLI
(命令行界面)版本。
firewalld-cmd
命令中使用的参数以及作用
注意:
使用 firewalld
配置的防火墙策略默认为运行时
(Runtime)
模式,又称为当前生效模式,而且随着系统的重启会失效。如果想让配 置策略一直存在,就需要使用永久(Permanent)
模式
了,方法就是在用
firewall-cmd
命令正常设置防火墙策略时
添加
--permanent
参数,
这样配置的防火墙策略就可以永久生效了。但是,永久生效模式有一个“不近人情
”
的特点,就是使用它设置的策略只有在系统。
重启之后才能自动生效。
常用示例
区域管理示例
1
显示当前系统中的默认区域
服务管理示例
端口管理示例
SELinux
安全增强型 Linux
(
Security-Enhanced Linux
)简称
SELinux
,它是一个 Linux
内核模块,也是
Linux
的一个安全子系统。
SELinux 主要由美国国家安全局开发。
2.6
及以上版本的
Linux
内核都已经集成了 SELinux
模块。
说明:
当您全神贯注地使用它给照片进行美颜 的时候,它却在后台默默监听着浏览器中输入的密码信息,而这显然不应该是它应做的事情,SELinux 安全子系统就是为了杜绝此类情况 而设计的,它能够从多方面监控违法行为。
- 1对服务程序的功能进行限制(确保程序干不了出格的事情)
- 2 对文件资源的访问资源限制(SELinux安全上下文确保文件资源只能被其他所属的服务程序 进行访问)
SELinux 服务有三种配置模式:
- enforcing:强制启用安全策略模式,将拦截服务的不合法请求。
- permissive:遇到服务越权访问时,只发出警告而不强制拦截。
- disabled:对于越权的行为不警告也不拦截。
SELinux 服务的主配置文件中,定义的是
SELinux
的默认运行状态,可以将其理解为系 统重启后的状态,因此它不会在更后立即生效。可以使用 getenforce
命令获得当前
SELinux
服务的运行模式:
注意:
修改 SELinux
当前的运行模式(
0
为禁用,
1
为启用)。这种修改只是临时的,在系统 重启后就会失效:
setenforce 0
getenforce
Linux内核机制
今天为大家解读一副来自极客漫画网站作者Daniel Stori
关于
Linux有趣的作品。

地基

解释:
地基(底层)由一排排的文件柜组成,然有序,文件柜里放置 着“
文件
”—
电脑中的文件。左上角,有一只胸前挂着
421
号牌的小企鹅,它表示着PID
(进程
ID(Process ID) )
为
421
的进程、它6
正在查看文件柜中的文件,这代表系统中正有一个进程在访问文件系统。在右下角有一只小狗,它是看门狗(watchdog)
、这代表对文件系统的监控。

解释:
左上角有一个小企鹅,站着,仿佛在说些什么这显然是一位家长的人物,不过看起来周围坐的那些小企鹅不是很听话—你看有好多走神的、自顾自聊天的——“
喂喂,说你呢,哇塞娃 (191),转过身来
”
。它代表着
Linux
内核中的初始化(
init
)进程
,也就是我们常说的PID
为
1
的进程。桌子上坐的小企鹅都在等待状态(wait)
中,等待工作任务。
大门

解释:
在这层的左侧,有一只号牌为1341
的小企鹅,守在门口,门上写着80
,说明这个
PID
为
1341
的小企子负责接待
80
端口,也是我们常说的HTTP
(网站)的端口。小企鹅头上有一片羽毛,这片羽毛大有来历,它是著名的HTTP
服务器
Apache
的
Logo
。
解释:
他就是著名的HTTP
服务器
Aache
的
Logo
。

解释:
FTP协议有点老旧了,目前用的人也比以前少了,以至于这里都
没人接待了。

解析:
22端口是
SSH
端口,是一个非常重要的远程连接端口,通常通过这个端口进行远程管理,
所以对这个端口进来的人要仔细审查。它的身上写的52
,说明它是第
52
个小企鹅。
时间

解释:
在这一层中,有一个身上写着219
的小企鹅,他正满头大汗地着自己的手表。这只小企鹅就是定时任务(Crontab
) ,他会时刻关注时间,查看是否要去做某个工作。
解释:
有两个小企鹅扛着管道(PipeLine
)在行走,一只小企鹅可以把自己手上的东西通过这个管道。传递给后面的小企鹅。 想想这个命令 : grep "/sbin/nologin" /etc/passwd |
二楼

解释:
这一层有很多屏幕,每个屏幕写着TTY(
这就是对外的终端
)
。
敌人

解释:
这个小丑是谁呀?我也不知道或许是病毒吧。