Linux命令大全(快速入门)第三部分

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

RPM软件包管理

RPM安装软件的默认路径:

注意:
  • /etc 配置文件放置目录
  • /usr/bin 一些可执行文件
  • /usr/lib 一些程序使用的动态链接库
  • /usr/share/doc 一些基本的软件使用手册与说明文件
  • /usr/share/man 一些man page档案
        常用的 RPM 软件包命令

参数说明:
  • -iinstall的意思,安装
  • -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:数字证书的公钥文件所在位置,使用默认值即可。
注意:
  1. yum会自动识别/etc/yum.repos.d/目录以.repo结尾的文件。
  2. 当我们修改了配置文件的网址却没有修改容器名称,可以会造成本机的列表与yum服务器的列表不同步,这时就需要手动来清除容器的数据了:

语法:yum clean [packages|headers|all]

  • 参数:
  • packages:将已下载的软件文件删除
  • headers:将下载的软件文件头删除
  • all:将所有容器数据都删除
  • 例:删除已下载过的所有容器相关数据(含软件本身与列表)
  • yum clean all

配置阿里yum 

 YUM使用手册

 小技巧:

        使用参数-y ,当遇到需要等待用户输入时,这个选项会提供 yes 的响应,如上面的例子可以写成:

Linux下常用软件安装_JDKTomcat安装

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 号码。
温馨提示:
  • egrepgrep的扩展和grep -e 是一样的...
  • grep中的匹配字符,全部当作字符串来处理,但是不支持正则表达式的特殊元字符....
  • egrep可以支持元字符...
  • '^':指匹配的字符串在行首,
  • '$':指匹配的字符串在行尾,

top

        查看系统健康状态 windows 加强版 任务管理器

语法:

选项

示例1

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

top 是一个不错的进程观察工具,但不同于 ps 是静态的结果输出。
top 这个进程可以持续地监测整个系统的进程的工作状态。

显示详解:

  • 当前时间
  • 系统已运行的时间
  • 当前登录用户的数量
  • 相应最近51015分钟内的平均负载。

可以使用'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时间
  • sysystem: 运行内核进程的CPU时间
  • niniced:运行已调整优先级的用户进程的CPU时间
  • waIO 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防火墙的配置

  1. 使用firewall-cmd 命令行工具。
  2. 使用firewall-config 图形工具。
  3. 编写/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. 1对服务程序的功能进行限制(确保程序干不了出格的事情)
  2. 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( 这就是对外的终端 )

敌人

解释:

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

Linux命令快速入门完结了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值