Linux操作系统~必考面试题⑨

1、rpm 命令

Linux rpm 命令用于管理套件。

rpm(redhat package manager) 原本是 Red Hat Linux 发行版专门用来管理Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。

RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。

  1. 查看系统自带jdk:

python 复制代码
rpm ‐qa | grep jdk
  1. 删除系统自带jdk:

python 复制代码
rpm ‐e ‐‐nodeps 查看jdk显示的数据
  1. 安装jdk:

python 复制代码
rpm ‐ivh jdk‐7u80‐linux‐x64.rpm

2、top 命令

显示当前系统正在执行的进程的相关信息,包括进程 ID、内存占用率、CPU 占用率等常用参数:

‐c 显示完整的进程命令

‐s 保密模式

‐p <进程号> 指定进程显示

‐n <次数>循环显示次数

实例:

  1. top ‐ 14:06:23 up 70 days, 16:44, 2 users, load average: 1.25, 1.32, 1.35
  2. Tasks: 206 total, 1 running, 205 sleeping, 0 stopped, 0 zombie
  3. Cpu(s): 5.9%us, 3.4%sy, 0.0%ni, 90.4%id, 0.0%wa, 0.0%hi, 0.2%si, 0.0%st
  4. Mem: 32949016k total, 14411180k used, 18537836k free, 169884k buffers
  5. Swap: 32764556k total, 0k used, 32764556k free, 3612636k cached
  6. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  7. 28894 root 22 0 1501m 405m 10m S 52.2 1.3 2534:16 java

前五行是当前系统情况整体的统计信息区。

第一行,任务队列信息,同 uptime 命令的执行结果,具体参数说明情况如下:

14:06:23 --- 当前系统时间

up 70 days, 16:44 --- 系统已经运行了70天16小时44分钟(在这期间系统没有重启过的吆!)

2 users --- 当前有2个用户登录系统

load average: 1.15, 1.42, 1.44 --- load average后面的三个数分别是1分钟、5 分钟、15分钟的负载情况。

load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

第二行,Tasks --- 任务(进程),具体信息说明如下:系统现在共有206个进程,其中处于运行中的有1个,205个在休眠(sleep), stoped状态的有0个,zombie状态(僵尸)的有0个。

第三行,cpu状态信息,具体属性说明如下:

  1. 5.9%us --- 用户空间占用CPU的百分比。
  2. 3.4% sy --- 内核空间占用CPU的百分比。
  3. 0.0% ni --- 改变过优先级的进程占用CPU的百分比
  4. 90.4% id --- 空闲CPU百分比
  5. 0.0% wa --- IO等待占用CPU的百分比
  6. 0.0% hi --- 硬中断(Hardware IRQ)占用CPU的百分比
  7. 0.2% si --- 软中断(Software Interrupts)占用CPU的百分比

注:这里CPU的使用比率和windows概念不同,需理解linux系统用户空间和内核空间的相关知识!

第四行,内存状态,具体信息如下:

  1. 32949016k total --- 物理内存总量(32GB)

  2. 14411180k used --- 使用中的内存总量(14GB)

  3. 18537836k free --- 空闲内存总量(18GB)

  4. 清除缓存目录下的 headers:

  5. 3612636k cached --- 缓冲的交换区总量(3.6GB)

第六行,空行。

第七行以下:各进程(任务)的状态监控,项目列信息说明如下:

  1. PID --- 进程id
  2. USER --- 进程所有者
  3. PR --- 进程优先级
  4. NI --- nice值。负值表示高优先级,正值表示低优先级
  5. VIRT --- 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
  6. RES --- 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
  7. SHR --- 共享内存大小,单位kb
  8. S --- 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
  9. %CPU --- 上次更新到现在的CPU时间占用百分比
  10. %MEM --- 进程使用的物理内存百分比
  11. TIME+ --- 进程使用的CPU时间总计,单位1/100秒
  12. COMMAND --- 进程名称(命令名/命令行)

top 交互命令

|----------------------------------------------------------------------------------------------------------------------------------------|
| 1. h 显示top交互命令帮助信息 2. c 切换显示命令名称和完整命令行 3. m 以内存使用率排序 4. P 根据CPU使用百分比大小进行排序 5. T 根据时间/累计时间进行排序 6. W 将当前设置写入 .toprc文件中 7. o或者O 改变显示项目的顺序 |

3、yum 命令

yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。

基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

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

实例

1)安装 pam-devel

python 复制代码
yum install pam‐devel

备份压缩命令

4、bzip2 命令

创建 *.bz2 压缩文件:

python 复制代码
bzip2 test.txt 

解压 *.bz2 文件:

python 复制代码
bzip2 -d test.txt.bz2 

5、gzip 命令

创建一个 *.gz 的压缩文件:

python 复制代码
gzip test.txt 

解压 *.gz 文件:

python 复制代码
gzip -d test.txt.gz 

显示压缩的比率:

python 复制代码
gzip -l *.gz 

6、tar 命令

用来压缩和解压文件。tar 本身不具有压缩功能,只具有打包功能,有关压缩及解压是调用其它的功能来完成。

弄清两个概念:打包和压缩。

打包是指将一大堆文件或目录变成一个总的文件;

压缩则是将一个大的文件通过一些压缩算法变成一个小文件常用参数:
‐c 建立新的压缩文件

‐f 指定压缩文件

‐r 添加文件到已经压缩文件包中

‐u 添加改了和现有的文件到压缩包中

‐x 从压缩包中抽取文件

‐t 显示压缩文件中的内容
‐z 支持gzip压缩

‐j 支持bzip2压缩

‐Z 支持compress解压文件

‐v 显示操作过程

有关 gzip 及 bzip2 压缩:
1)gzip 实例:压缩 gzip fileName .tar.gz 和.tgz 解压:

python 复制代码
gunzip filename.gz 或 gz ip ‐d filename.gz

对应:

python 复制代码
​​​​​​​tar zcvf filename.tar.gz tar zxvf filename.tar.gz

2)bz2实例:压缩 bzip2 ‐z filename .tar.bz2 解压:

python 复制代码
bunzip filename.bz2或bzip ‐d filename.bz2

对应:

python 复制代码
​​​​​​​tar jcvf filename.tar.gz 解压:tar jxvf filename.tar.bz2

实例:

1)将文件全部打包成 tar 包

python 复制代码
tar ‐cvf log.tar 1.log,2.log 或tar ‐cvf log.*

2)将 /etc 下的所有文件及目录打包到指定目录,并使用 gz 压缩

python 复制代码
​​​​​​​tar ‐zcvf /tmp/etc.tar.gz /etc

3)查看刚打包的文件内容(一定加z,因为是使用 gzip 压缩的)

python 复制代码
​​​​​​​tar ‐ztvf /tmp/etc.tar.gz

4)要压缩打包 /home, /etc ,但不要 /home/dmtsai

python 复制代码
​​​​​​​tar ‐‐exclude /home/dmtsai ‐zcvf myfile.tar.gz /home/* /etc

7、unzip 命令

解压 *.zip 文件:

python 复制代码
unzip test.zip 

查看 *.zip 文件的内容:

python 复制代码
unzip -l jasper.zip 
相关推荐
星霜笔记37 分钟前
Docker 部署 MariaDB+phpMyAdmin+Nextcloud 完整教程
运维·数据库·docker·容器·mariadb
_Kayo_3 小时前
node.js 学习笔记3 HTTP
笔记·学习
一只栖枝4 小时前
华为 HCIE 大数据认证中 Linux 命令行的运用及价值
大数据·linux·运维·华为·华为认证·hcie·it
PAK向日葵4 小时前
【算法导论】PDD 0817笔试题题解
算法·面试
wuicer6 小时前
ubuntu 20.04 安装anaconda以及安装spyder
linux·运维·ubuntu
桦说编程6 小时前
Java 中如何创建不可变类型
java·后端·函数式编程
lifallen6 小时前
Java Stream sort算子实现:SortedOps
java·开发语言
IT毕设实战小研6 小时前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
wyiyiyi6 小时前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask
没有bug.的程序员7 小时前
JVM 总览与运行原理:深入Java虚拟机的核心引擎
java·jvm·python·虚拟机