Linux和Unix的关系

image.png

虚拟机安装Linux

image.png

虚拟机资源分配

硬盘20gb
内存2gb
处理器数量-母机的处理器数量+母鸡的处理器核心数。

虚拟机硬件设置

虚拟机CD/DVD-挂靠centos系统安装映像文件

网络适配器-虚拟机的网络连接的3种方式(Brige、NAT、Only Host), 一般采用NAT模式

图注:教室局域网的网段是192.168.14.xx,张三、王五、李四的母机ip都同属于该网段,但张三和王五的子机采用不同的网络连接方式。
image.png

  • 张三的虚拟机采用Brige桥接模式。子机的ip直接占用一个母机ip所在局域网的网段。
    • 好处是同属局域网的设备能直接相互通讯。
    • 坏处是同网段可容纳的ip数量有限,所以子机占用局域网网段ip可能造成ip冲突。
  • 王五的虚拟机采用NAT网络转换模式。母机ip是局域网ip,采用NAT模式时,虚拟机会创建一个局域网的内网(内网的ip在同一个网段,但并不同于局域网网段,所以内网ip不占用局域网ip),并分配不同的内网的ip给母机和子机(此时母机有两个ip,即局域网ip(对应真实网卡)和内网ip(对应虚拟网卡))。母机的局域网ip则作为代理ip,以帮助内网的设备和外界通讯。
    • 好处是子机ip不占用局域网网段内的ip,不会造成ip冲突。
    • 坏处是子机ip属于在局域网的内网,它可以通过代理ip来和局域网网段ip通讯,但是其他局域网网段ip则无法直接与处于内网的子机通讯,只能转发给代理ip,再由代理ip转发给内网的子机。

      Nat网络连接模式补充

      NAT模式借助虚拟NAT设备和虚拟DHCP服务器,使得虚拟机可以联网。
      image.png
      在NAT模式中,主机网卡直接与虚拟NAT设备相连,然后虚拟NAT设备与虚拟DHCP服务器一起连接在虚拟交换机VMnet8上,这样就实现了虚拟机联网。
      那么我们会觉得很奇怪,为什么需要虚拟网卡VMware Network Adapter VMnet8呢?
      原来我们的VMware Network Adapter VMnet8虚拟网卡主要是为了实现主机与虚拟机之间的通信。

https://blog.51cto.com/u_13648313/2164309

centos安装过程(centos6.8为例):

语言:中文简体

键盘:美国英语

时区:中国上海

主机名:自定义,比如hadoop01

centos磁盘分区(“创建自定义布局”选项): boot,swap,root

image.png

  • boot分区:存放系统启动文件。

挂载点/boot,文件系统类型ext4,固定大小200mb。

  • swap分区:内存不够用时,分配磁盘空间作为虚拟内存。

无需挂载点,文件系统类型swap,大小固定为和虚拟机分配物理内存一致

  • root分区

挂载点/,文件系统类型ext4,大小为全部可用空间。

自定义额外软件安装

默认为最小安装,即不附带额外的软件。
这里建议自定义安装,仅需要勾选如下软件:

  • 基本系统
    • 兼容程序库
    • 基本
    • 调试工具
  • 语言支持
    • 中文支持

      普通用户:暂时不用创建。

      Kdump: 是否捕获内存奔溃信息。可关闭,建议开启。

CentOS没有分配IP吗?

背景知识: hw 代表hardware ether 代表ethernet ,eth0,eth1,eth2,代表网卡一,网卡二,网卡三 lo代表127.0.0.1,即localhost

网络连接一般为NAT方式。

    1. 没有ip是这样的:输入ifconfig命令显示网络设备,除了lo之外,找不到ether(网卡),也不看见ip地址。

image.png

    1. 确认是否挂载了网卡:输入ifconfig -a 命令,下方应该有ether(见图即eth0)。记录下ether序号和网卡地址,即图中,eth0和image.png
      • 注:如果没有ether的话,说明没有网卡,该情况在虚拟机设置中应该可以解决。

image.png

    1. 修改已挂载的网卡的配置文件(以网卡序号eth0为例子,可类推):
      • 修改/etc/sysconfig/network-scripts/ifcfg-eth0配置文件,修改选项为 ONBOOT=yes
      • 退出文件修改后,使用service network restart命令来重启网络服务。即可!

上述ifcfg-eth0配置文件不存在,若按下图内容可自行创建该文件。
image.png
重启网络服务后
image.png
image.png

centos目录结构介绍:目录树、一切皆文件

不要轻易修改 /proc,/srv,/sys 三个目录,可能引发系统奔溃。
image.png

image.png
image.png
image.png
image.png
image.png

远程连接centos

前提:确保Linux服务器开启sshd服务(该服务监听22号端口): setup命令 -> 系统服务-> sshd
其他:

  • 获取服务器ip: ifconfig命令 -> inet addr: xxxx 。默认为动态分配ip,后续会讲到如何指定ip。
    • 注意:ifconfig命令后,在网卡名和”lo”下都有inet addr字段,请忽略”lo”(它表示回环地址127.0.0.1),我们需要网卡下的ip地址。
  • 连接成功但中文乱码:确认远程shell客户端的字符编码是否和linux服务器字符编码一致(linux默认采用utf-8字符编码)

image.png

Vim编辑器: 3种模式

image.png

正常模式下常见操作命令

  • yy 拷贝光标所在行, 5yy拷贝光标及下的5行,p粘贴拷贝。
  • dd 删除光标所在行,5dd删除光标及下的5行。
  • : 进入命令行模式, 在命令行中输入
    • q退出文件, wq 保持并退出文件,q! 强制退出文件, wq!强制保存并退出文件。
    • set nu 显示行号, set nonu关闭行号显示
    • /关键字 来查找 关键字,输入n查找下一个。
  • u 撤销上一步内容修改
  • 行号跳转:
    • 跳转到第5行:首先确保行号显示已打开,然后在命令行模式中输入5
    • 跳转到首行:正常模式下,键入gg命令
    • 跳转到尾行:正常模式下,键入G命令

开机重启、用户登陆注销

关机重启: halt 、reboot

halt 等价于 shutdown -h now reboot 等价于 shutdown -r now

image.png

用户登陆注销:logout、exit

image.png

用户管理:

概念:用户、用户组、家目录

Linux的用户至少要属于一个组。

image.png

3个配置文件

image.png

  • 用户配置文件/etc/passwd ,内容如: xj:x:500:500::/home/xj:/bin/bash
  • 用户组配置文件/etc/group,内容如:dev:x:502:,涉及 groupname,x,gid。
  • 口令配置文件/etc/shadow

用户

注:下面命令可能需在root用户下进行

useradd xj

操作涉及用户、用户组、家目录:

  • 创建名为xj的用户
  • 创建名为xj用户组
  • 创建地址为/home/xj的目录。
  • xj用户归属到xj用户组中
  • xj用户的家目录指定为/home/xj

    useradd -d /home/cat xj

    创建xj用户,且家目录指定为/home/cat

    useradd -g dev xj

    创建xj用户,且归属到dev用户组

    passwd xj

    为xj用户修改登陆密码

    su xj

    切换到xj用户

    userdel xj

    删除xj用户,但保留家目录。

    userdel -r xj

    删除xj用户,并删除家目录。

    id root

    查询root用户的 “uid gid 组名”,结果如下:uid=500(xj) gid=500(xj) 组=500(xj)

    whoami

    即who am i,查看当前登陆用户。

    用户组

    groupadd dev

    创建名为dev的用户组

    groupdel dev

    删除dev用户组

    usermod -g dev xj

    将xj用户修改到dev用户组

Linux实用指令

运行级别指令-init

Linux系统的6个运行级别,对应/etc/inittab文件。

类比windows的安全模式。

image.png

init 3

切换到系统运行级别3。(是一般shell模式下需要的系统级别)
等价于/etc/inittab文件的如下行id:3:initdefault:

init 5

切换到系统运行级别5。 (图形界面模式需要的系统级别)

如何找回root密码?(如何进入单用户级别)

关键:在单用户级别,登陆root用户不需要密码。
前提:必须在本机操作。远程shell下无法进入单用户级别。
下面是进入单用户模式的方法:

    1. 关机重启机器,在linux进入系统引导界面时,按回车键进入GNU界面。如下图,并按e键来编辑启动前的命令:

image.png

    1. 选择kernel选项,按e键来编辑关于它的启动前命令。 如下图:

image.png

    1. 如下图,进入命令编辑界面后,在命令末尾添加1(即单用户级别),并按回车键确认并返回GUN界面。

image.png

    1. 回到如下GUN界面中。 按b键来启动系统,且为单用户系统级别,可无需密码直接登陆root,登陆后使用passwd root命令来修改root密码即可。

image.png

见下图: Telling INIT to go to single user mode , 即标识了单用户系统级别。

image.png


man ls

查询ls指令的手册mannul)

help ls

查询

文件目录指令

pwd

显示当前绝对路径

ls

显示目录下文件(不含隐藏文件)

ls -a

-a 显示所有目录下文件(含隐藏文件)

ls -l

-l 更详细地显示目录的文件信息

ls -lh

-h “—human”,更友好地显示文件信息,比如文件大小以M为单位显示等。

ls -l log.txt

详细显示指定文件信息

cd

change dir 切换目录

mkdir -p /home/animal/cat

-p 创建多级目录。 —parents

rmdir -rf /home/animal/cat

-rf 强制删除非空目录

touch hello.txt

创建一个文件

touch hello1.txt hello2.txt

创建多个文件

cp -r source dest

-r 递归复制,适合目录文件

\cp -r source dest

\cp 忽略提示,强制覆盖

rm

mv

cat

cat -n

-n 显示行号

cat /etc/profile | more

配合more命令:分屏查看文件内容。

more /etc/profile

分屏查看文件内容(一次性载入文件)
image.png

less /etc/profile

分屏查看文件内容(需要时才载入页)。
image.png

重定向>和追加>>

将内容写入目标文件,文件不存在则创建。
> 覆盖写
>> 追加写

>和>>案例

ls -l > log.txt 将列表内容覆盖写入log.txt文件
ls -l >> log.txt 将列表内容追加写入log.txt文件
cat log.txt > log2.txt 将log.txt文件内容覆盖写入log2.txt文件
echo “hello world” >> log.txt 将字段追加写入log.txt文件
cal >> log.txt 将当前日历信息追加写入log.txt文件中。
date >> log.txt 将当前日期信息追加写入log.txt文件中。

echo “hello”

输出内容到控制台

echo $PATH

输出当前环境变量到控制台

head -n 5 log.txt

显示文件内容的前5行。
不带-n 参数,默认为前10行

tail -n 5 log.txt

与head相反,显示后5行。

tail -f log.txt (重要)

追踪并显示文档内容的更新。比如实时查看异常日志时。

ln

  • ln -s /home homelink 为目录或文件新建软连接。注意:源需要绝对路径
  • rm -rf homelink 删除软连接

    history

  • history 查看执行指令的历史。

  • history 10 查看最近10个执行指令的历史
  • !4 执行第4个历史执行指令。

    date

    当前日期

    date “+%Y-%m-%d”

    指定日期格式。再比如”+%m月%d日”

    date -s “2020-11-11 11:22:22”

    设置系统时间

    cal

    显示当月日历

    cal 2020

    显示一年日历

    find

    find [搜索范围] [选项]
    image.png

    find案例

    find /home -name log.txt 查找/home目录下名为log.txt的文件
    find /home -name *.txt 按照通配符查找文件
    find /opt -user xj 查找/opt目录下属于xj用户的文件
    find / -size +20M 查找根目录下大于20Mb的文件。 单位: k,M,G
    find / -size 20M … 等于…
    find / -size -20M … 小于…

    locate

    local指令可以事先建立文件索引,以实现快速查找。
    为保证查询结果的准确度,需要定期更新locate索引。
    案例:
    updatedb 更新locate索引
    locate log.txt 查找log.txt文件

    grep 和 |

    grep按关键字过滤查找: grep [选项] 查找内容 源文件。 -n 显示行号, -i 忽略大小写。
    “|” 管道符,表示将前一个指令的处理结果传递给后面的指令处理。

    cat log.txt | grep -ni hello

    匹配log.txt文件中hello关键字
    -n 显示所在行号
    -i 忽略大小写

    压缩解压(gzip,zip),打包(tar)

    gzip log.txt

    转化log.txt文件为log.txt.gz文件。注:不保留源文件

    gunzip log.txt.gz

    转化log.txt.gz文件为log.txt文件

    zip -r mypackage.zip /home/

    -r 递归压缩,即压缩目录。
    将home目录压缩为mypackage.zip文件。

    zip -d /opt/tmp mypackage.zip

    -d 指定解压目录
    将mypackage.zip解压到/opt/tmp目录下

    tar -zcvf package.tar.gz log1.txt log2.txt

    tar打包指令。
    将多个文件打包并压缩为package.tar.gz文件
    -c 产生.tar打包文件
    -v 可视化打包过程
    -f 指定压缩后的文件名
    -z 打包同时压缩
    -x 解包.tar文件。

注: 打包为.tar文件, 打包且压缩为.tar.gz文件

tar -zcvf package.tar.gz /home/

将/home目录打包为package.tar.gz文件

tar -zxvf package.tar.gz

解包package.tar.gz文件到当前目录

tar -zxvf package.tar.gz /opt/tmp

指定解包目录

组管理和权限管理

下述文件包括目录文件

文件归属:所有者,所在组,其他组。

image.png

组管理

查看文件所有者和所在组 ls -ahl log.txt

文件的所有者默认是其创建者。
文件的所在组默认是其创建者所在的用户组。

修改文件所有者 chown xj log.txt

change owner
修改log.txt文件所有者为xj用户。
注:文件的所在组并不会发生变化。(不会修改为新主人所在的用户组)

修改文件所在组 chgrp dev log.txt

change group
修改log.txt文件所在组为dev组

修改用户所在组 usermod -g dev xj

修改xj用户到dev组

修改用户的家目录 usermod -d /home/cat xj

-d, —home “HOME_DIR”

递归操作: chown -R xj cat/

递归地将目录及其中所有文件的所有者修改为xj用户

递归操作: chgrp -R dev cat/

递归地将目录及其中所有文件的所在组修改为dev组

文件属性:5种文件类型、所有者权限、所在组权限、其他组权限、文件名、表文件的硬连接符号1或表目录的子目录个数、所有者、所在组、文件大小或4096的目录固定大小、最后修改时间、文件名

image.png
image.png

权限管理(rwx,r=4,w=2,x=1):

文件的rwx权限、目录的rwx权限

注意:rwx可用数字表示,r=4,w=2,x=1,rwx=4+2+1=7。
特别注意:文件(包括目录文件)的删除权限对应的是对文件所在目录的可写权限,而非对文件本身的可写权限。
image.png

修改文件权限 chmod

修改指定对象的文件权限:u:所有者 g:所在组 o:其他组 a:所有人
image.png

chmod u=rwx,g=rx,o=rx log.txt

修改文件权限,所有者rwx权限,所在组rx权限,其他组rx权限

chmod u-x,g+w log.txt

修改文件权限,所有者撤销x权限,所在组增加w权限

chmod a+r log.txt

为所有人增加r权限

chmod 755 log.txt

rwx=4+2+1=7
rx=4+1=5
755简洁表示了所有者、所在组、其他组的文件权限,755分别表示 rwx,rx,rx 权限。

递归操作: chmod -R 755 cat/

递归地将目录及其中所有文件的所有者修改为xj用户

crontab 任务调度

cron希腊语chronos,时间。

image.png

crontab指令

image.png
使用说明:

  • crontab -e

上述指令后出现用户的任务编辑窗口!比如 /1 * date >> /home/date.log 每个一分钟记录一次日期到文件中,如下关于时间的占位符。

  • crontab -l

列出所有任务

  • contab -r

终止任务调度。

  • service crond restart

重启任务调度

image.png
image.png
image.png

crontab + shell文件

下面是先写好shell文件,再使用crontab -e 来编辑定时任务来执行shell文件。 注意:给shell文件确保可执行权限。
image.png

磁盘分区和挂载(root权限下)

分区格式:mbr分区、gtp分区(更好)image.png

image.png

Linux分区的思想(挂载)

Linux只有一个独立且唯一的文件结构,它只有一个更目录。任何分区都是只是整个文件系统的一部分(将它们挂载到指定的目录文件)
image.png

分区标识:IDE硬盘、SCSI硬盘(常见)

image.png

lsblk -f 查看文件系统信息

image.png
解释:磁盘分区编号、分区类型、磁盘唯一标识、挂载的目录文件。

lsblk指令 - 老师不离开

挂载:如何增加一个硬盘?(root权限下)

5个步骤:

  1. 虚拟机添加硬盘
  2. 分区
  3. 格式化
  4. 挂载
  5. 设置可以自动挂载(永久挂载)。

步骤1: 为虚拟机添加一个2gb新硬盘,并重启虚拟机。

image.png
执行lsblk指令,如图,有个2gb的sdb标识的硬盘。 注:sdb标识表示“是基本从属盘的scsi硬盘”。
image.png
如下,新硬盘对应的路径为/dev/sdb,注意:还无法访问它,需要接下来的步骤。
注:/dev是linux的设备分区目录
image.png

步骤2:执行fdisk /dev/sdb指令将分区信息到磁盘/dev/sdb。

该指令后是一系列询问指令。先输入n表示增加新分区,在输入p表示主分区(或e表示扩展分区),输入分区编号(默认即可),输入柱面大小(cylinders)(默认即可),最后w表示写入分区信息到磁盘并退出。
操作正确的提示如下:
image.png
下面可见,sdb1就是刚才创建的编号为1的磁盘。但还没有磁盘唯一标识,需要接下来的步骤。
image.png

步骤3: 格式化磁盘 mkfs -t ext4 /dev/sdb1

image.png
下面,新磁盘sdb1已被格式化,并带有唯一标识。
image.png

步骤4: 将磁盘分区挂载到指定目录 mount /dev/sdb1 /home/newdisk 。 (磁盘可被访问了)

注意: 此时挂载是临时的。永久挂载?见接下来步骤。
image.png
如下:sdb1、ext4 、磁盘唯一标识、挂载的目录文件。image.png

步骤5: 自动挂载(永久挂载) 修改/etc/fstab文件 (注:确保挂载目录提前创建)

原文件内容
image.png
修改后的文件内容
image.png
重启系统后,挂载依然存在,见下sdb1,已被挂载到/home/newdisk目录文件上。
image.png

撤销挂载: umount 挂载的目录文件路径 或 磁盘文件

umount /home/newdisk 或 umount /dev/sdb1
注:先退出挂载目录文件,再执行撤销挂载指令

统计文件数量、空间占用

统计磁盘的空间使用 df -lh

-h human
image.png

统计目录的空间占用 du -ach /home/

image.png

统计目录下的文件数量:ls -l /lib64 | grep “^-“ | wc -l

“^-“ 匹配以-为开头的一行。注:ls指令的输出中, -开头标识文件,d开头标识目录
wc -l : —lines 打印行的统计。
image.png

统计目录下的目录数量:ls -l /lib64 | grep “^d” | wc -l

image.png

递归统计目录下的文件数量 ls -l R/lib64 | grep “^-“ | wc -l

image.png

显示目录的树状结构 tree指令 (先安装:yum install tree)

网络配置

虚拟网卡、真实网卡

  • 母机的真实网卡对应的ip是属于局域网的网段,该局域网可以通过网关来访问因特网。
  • 当子机与母机网络连接时采用NAT模式时,虚拟机创建一块虚拟网卡,并给虚拟网卡分配了同一个网段下的不同ip(该网段不同于局域网的网段,所以不占用局域网ip)。由此,子机和母机通过虚拟网卡对应的ip建立了直接连接。而子机与局域网内或因特网其他设备则是借由母机的真实网卡对应的ip来进行间接连接(代理连接)。image.png

    创建虚拟网络NAT

    1. VMware-mac版的创建一个虚拟网络。如下vmnet2。

    image.png

    2. 在mac上配置该虚拟网络(子网\mask\网关)

  • 配置子网ip和mask

    1. cd /Library/Preferences/VMware\ Fusion/
    2. sudo vim networking

    image.png
    见下是文件中的VNET_2开头的配置就是我们创建虚拟网络。注:默认的子网地址和掩码正是我们自定义的。
    image.png

  • 配置网关和mask

    1. cd /Library/Preferences/VMware\ Fusion/
    2. sudo vim vmnet2/

    image.png

3. 使用虚拟网络。见下子机中的设置。

image.png

linux中:查看ip、网关、dns、主机名

下面是dhcp自动获取的ip、网关、dns。查看它们可以作为配置静态ip的参考。
ifconfig -a ip=172.16.133.128
image.png
用route -n指令。 网关=172.16.133.2
image.png
cat /etc/resov.conf指令来查看域名服务器: dns=172.16.133.2
image.png
hostname 指令,查看主机名
image.png

母机(mac为例):查看ip、网关等

image.png

配置静态ip(/etc/sysconfig/network-scripts/ifcfg-eth0文件)

/etc/sysconfig/network-scripts/ifcfg-eth0文件 (如果是eth0网卡的话,其他网卡对应的配置文件类推)
另外:centos7以上版本为/etc/sysconfig/network-scripts/ifcfg-ens33文件

该文件的关键配置项:ONBBOT=yes, BOOTPROTO=static。IPADDR, GATEWAY, DNS1 是指定的ip、网关、dns。

image.png

文件修改前,eth0网卡通过dhcp自动获取ip、网关、dns。

查看/etc/sysconfig/network-scripts/ifcfg-eth0 ,可见BOOTPROTO=dhcp。
image.png

文件修改后,1. eth0网卡指定为静态的ip、网关、dns。 2. service network restart重启网络服务。

  • 可以参考dhcp自动获取的ip、网关、dns等可用的配置进行修改。或者见下创建虚拟网络NAT来自定义设置子网ip等。
  • 修改后dns不行可以尝试增加DNS2=114.114.114.114

image.png
测试结果:下面可见已被修改为指定ip,且可以ping通互联网。 重启linux也是一样的。
image.png
image.png

重启网络服务:service network restart指令

修改主机名

注意重启linux
image.png

hosts文件:域名与ip的映射

比如www.baidu.com域名,若hosts中存在ip映射,那么直接使用该ip,否则去dns服务器查询域名对应的ip。

hosts文件:主机名映射本机ip

image.png

进程管理

image.png
image.png

ps -aux

image.png
image.png
STAT项补充: z - zombie僵尸进程
image.png

ps -aux | more

ps -aux | grep sshd

ps -ef

以全格式查看进程,可查看父进程

pstree -pu

查看进程树
-p 显示pid
-u 显示uid

kill 进程id

killall 名称,可带通配符

kill -9 进程id

-9 强制关闭进程

kill案例:终止sshd、终止非法登陆

ps -aux | grep sshd 找到非法用户的sshd进程id
kill pidp

killall案例:终止父进程和所有子进程

killall jupyter

服务管理 service指令(cenos7后是systemctl指令)、chkconfig指令


  • 服务本质是进程,但是运行在后台,通常会监听某个端口,等待其他程序的请求,因此又被称为守护进程
  • 服务运行级别与服务之间的关系:每个服务都设定了在xx运行级别下是否自启动。

image.png
image.png

service指令:即时生效且临时有效

service iptables status 查看防火墙(即开放的端口)

image.png

service iptables start 启动防火墙

service iptables stop 停止防火墙

talent 192.168.184.13:22 查看22端口是否被监听且可访问

/etc/init.d/ 目录下存放了所有服务

image.png

ls -l /etc/init.d/

ls -l /etc/init.d/sshd

chkconfig指令:为服务设置运行级别(重启生效,且永久有效)

服务运行级别与服务之间的关系:每个服务都设定了在xx系统运行级别下是否自启动。
image.png

修改默认系统运行级别 vim /etc/inittab

image.png

chkconfig —list

查看所有服务在xx系统运行级别是否自启动
image.png

chkconfig —list | grep sshd

指定服务的运行级别
image.png

chkconfig —level 5 sshd off

设置sshd服务在系统运行级别5下不自启动。

service和chkconfig重要案例

image.png

动态监控进程 top

top -u root

指定用户监控

top -d 10

指定10秒更新一次

top的互动指令:k、P、M、N、q

k,输入要kill的目标pid
P - 按cpu使用率排序
M - 按内存占用排序
N - 以PID排序
q - 退出top


监控网络状态 netstat

netstat -anp | more 查看所有网络服务

image.png

netstat -anp | grep sshd 查看指定网络服务

netstat -tunlp

image.png

iotop 监控查看io读写

rpm包的管理

image.png
image.png

rpm -qa 查询已安装软件包

rpm -q firefox 查询指定包是否安装

rpm -qi firefox 查询指定包信息

rpm -ql firefox 查询指定包的下所有文件的安装路径

rpm -qf 文件路径 查询指定文件属于那个包

rpm -e firefox 卸载指定软件包

rpm -e —nodeps firefox 忽略依赖,强制卸载指定包(不推荐)

rpm -ivh xxx.rpm 离线安装包

image.png

yum包管理 - 基于rpm

image.png

yum install firefox

默认安装最新版本的指定包

yun常用命令

    1. 列出所有可更新的软件清单命令:yum check-update
    1. 更新所有软件命令:yum update
    1. 仅安装指定的软件命令:yum install
    1. 仅更新指定的软件命令:yum update
    1. 列出所有可安裝的软件清单命令:yum list
    1. 删除软件包命令:yum remove
    1. 查找软件包命令:yum search
    1. 清除缓存命令:
      • yum clean packages: 清除缓存目录下的软件包
      • yum clean headers: 清除缓存目录下的 headers
      • yum clean oldheaders: 清除缓存目录下旧的 headers
      • yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 head

        yum 国内源

        网易(163)yum源是国内最好的yum源之一 ,无论是速度还是软件版本,都非常的不错。
        将yum源设置为163 yum,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到。

安装步骤:
首先备份/etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载对应版本 repo 文件, 放入 /etc/yum.repos.d/ (操作前请做好相应备份)

wget http://mirrors.163.com/.help/CentOS6-Base-163.repo mv CentOS6-Base-163.repo CentOS-Base.repo
运行以下命令生成缓存
yum clean all yum makecache
除了网易之外,国内还有其他不错的 yum 源,比如中科大和搜狐。
中科大的 yum 源,安装方法查看:https://lug.ustc.edu.cn/wiki/mirrors/help/centos
sohu 的 yum 源安装方法查看: http://mirrors.sohu.com/help/centos.html

yum provides libstdc++.so.6

对于 Linux 软件安装时提示缺失库的,可以使用 yum 的 provides 参数查看 libstdc++.so.6 的库文件包含在那个安装包中只需要执行:
yum provides libstdc++.so.6
然后按查询到安装包包名,使用 yum install 安装即可。

面试题

image.png