Linux基础知识最后一篇

在这里插入图片描述
我不会逃跑,因为我知道在我的背后有我最至爱的人。——艾斯


注意,这知识基础的是的最后一篇,不是linux知识的最后一篇,linux体系知识可以说是浩瀚无垠,而我这几篇文章可以说只是冰山一角,linux可以做的事情数不胜数…

今天就来介绍linux 基础知识和命令 的最后一篇啦…

一、文件的压缩与解压

我们在Windows下安装软件时,通常都是获取到软件的压缩包,解压以后可以得到软件的安装包和一些说明信息,而Linux下也有几个常用的压缩与解压命令

1.1 文件与文件夹的打包和解包

通常我们不会单纯的压缩一个文件,而是将多个文件或者文件夹打包好生成一个 .tar 格式的文件,再使用压缩命令进行压缩,要注意的是,tar命令进行打包时并不会压缩文件,只是将他们打包而已,打包用法:

tar -cf xx.tar file1 file2 dir1 dir2

将file1,file2,dir1和dir2打包生成一个xx.tar 的文件。

实例:
在这里插入图片描述

解包命令:

tar -xf xx.tar -C path

-C 可指定解包到哪里,默认当前路径

实例
在这里插入图片描述
文件在打包和解包后,都不会删除原有的文件。

1.2 gzip 压缩

gizp压缩会生成一个 .gz 格式的文件,单独使用时只能对单个文件进行压缩,也可以同时压缩多个文件,但只会一 一生成对应的 .gz 文件;不能对文件夹进行压缩。

压缩格式

gzip filename

解压:

gzip -d xx.gz

演示:

在这里插入图片描述
可以观察到,压缩和解压系统会删除用来操作的原始文件

1.3 bzip2 压缩

用法与 gzip 一样,但压缩效率优于前者,压缩时生成 .bz2 格式的文件

实例:

在这里插入图片描述
压缩与解压命令需要对应,.gz 的文件不能使用 bzip2 来解压。

1.4 打包并压缩

格式 压缩 解压 备注
.tar.gz tar -czf xx.tar.gz file dir tar -xzf xx.tar.gz -C path 支持文件和文件夹,选项中的z表示使用gzip压缩
.tar.bz2 tar -cjf xx.tar.gz file dir tar -xjf xx.tar.gz -C path 支持文件和文件夹,选项中的j表示使用bzip2压缩

实例:
使用gzip进行压缩与解压:

在这里插入图片描述

使用bzip2进行压缩与解压:
在这里插入图片描述

1.5 linux下的其他压缩命令

linux 默认装配了 gzip 与 bzip2 两个压缩软件,另外还有几个压缩命令是需要下载的,他们是

  • rar – unrar
  • zip – unzip
  • 7z

这几个压缩命令可通过
sudo apt-get install 来下载。

二、系统管理命令

2.1 date 命令

显示或设定系统的日期与时间

命令选项:

-d<字符串>  显示字符串所指的日期与时间。字符串前后必须加上双引号。
-s<字符串>  根据字符串来设置日期与时间。字符串前后必须加上双引号。
-u  显示GMT。
%H 小时(00-23)
%I 小时(00-12)
%M 分钟(以00-59来表示)
%s 总秒数。起算时间为1970-01-01 00:00:00 UTC。
%S 秒(以本地的惯用法来表示)
%a 星期的缩写。
%A 星期的完整名称。
%d 日期(以01-31来表示)。
%D 日期(含年月日)。
%m 月份(以01-12来表示)。
%y 年份(以00-99来表示)。
%Y 年份(以四位数来表示)。

实例
在这里插入图片描述

2.2 free 命令

显示系统内存使用情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。

命令选项:

-b 以Byte显示内存使用情况
-k 以kb为单位显示内存使用情况
-m 以mb为单位显示内存使用情况
-g 以gb为单位显示内存使用情况
-s<间隔秒数> 持续显示内存
-t 显示内存使用总合

实例:

  • 显示内存使用情况
free
free -k
free -m
  • 以总和的形式显示内存的使用信息
free -t
  • 周期性查询
free -s 10

2.3 kill 命令

发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。如果任无法终止该程序可用"-KILL" 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。

命令选项:

-l  信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-a  当处理当前进程时,不限制命令名和进程号的对应关系
-p  指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s  指定发送信号
-u  指定用户

实例:

kill -9 $(ps -ef | grep pro1)

2.4 ps 命令

ps(process status),用来查看当前运行的进程状态,一次性查看,如果需要动态连续结果使用 top

linux上进程有5种状态:
1. 运行(正在运行或在运行队列中等待)
2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)

ps 工具标识进程的5种状态码:

D 不可中断 uninterruptible sleep (usually IO)
R 运行 runnable (on run queue)
S 中断 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process

命令选项:

-A 显示所有进程
a 显示所有进程
-a 显示同一终端下所有进程
c 显示进程真实名称
e 显示环境变量
f 显示进程间的关系
r 显示当前终端运行的进程
-aux 显示所有包含其它使用的进程

实例:

  • 显示当前所有进程环境变量及进程间的关系
ps -ef
  • 显示当前所有进程
ps -A

与grep联用查找指定进程

ps -aux | grep xx

2.5 rpm 命令

Linux rpm 命令用于管理套件。

rpm(redhat package manager) 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。

# 查看系统自带jdk
rpm -qa | grep jdk
# 删除系统自带jdk
rpm -e --nodeps 查看jdk显示的数据
# 安装jdk
rpm -ivh jdk-7u80-linux-x64.rpm

2.6 top 命令

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

选项:

-c 显示完整的进程命令
-s 保密模式
-p <进程号> 指定进程显示
-n <次数>循环显示次数

实例:
在这里插入图片描述
第一行:系统时间是12:01:42,系统已经运行了6天23小时48分钟,load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
第二行:共有246个进程,1个正在执行,245处于休眠,stopped状态的有0个,僵尸进程有0个;
第三行:从左至右依次是:用户空间占用CPU的百分比,内核空间占用CPU的百分比,改变过优先级的进程占用CPU百分比,空闲CPU百分比,IO等待占用CPU百分比,硬中断占用CPU百分比,软中断占用CPU百分比;
第四行(内存):从左至右依次是:物理内存总量,使用中的内存总量,空闲内存总量,缓存的内存总量。
第五行(交换分区):从左至右依次是:交换区总量,使用的交换区总量,空闲的交换区总量,缓存的内存量;

下面就是各个进程的相关信息了:

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

关于Linux基础知识的总结就先告一段落了,后面该安排一下数据结构和算法了…

猜你喜欢

转载自blog.csdn.net/weixin_45121946/article/details/106437395
今日推荐