当前位置: 首页 > news >正文

快速入门Linux操作系统(二)

目录

前言

一、命令历史,补全和正则表达式

1、命令历史

2、命令补全

3、正则表达式

二、目录和文件的权限

1、修改目录和文件的拥有者

2、权限的标志位

3、文件的权限

4、目录的权限

5、设置权限(八进制语法)

6、设置权限(符号模式)

三、Linux文件内容操作指南

1. cat - 完整显示文件内容

 2. less - 交互式文件查看器(推荐)

 3. more - 分页显示文件内容

 4. wc - 文件统计

 5. grep - 内容搜索

 6. head - 查看文件头部

7. tail - 查看文件尾部 

8. 文件比较与处理

 9、实用技巧组合

四、管道

五、链接

六、软件包的安装与下载

七、打包和压缩

1、zip命令

八、进程

方法一:

方法二:

进程信息字段说明

进程状态 (STAT) 详解

九、性能分析top

1、输出结果说明

2、top常用的选项

3、top交互命令

结语


前言

        读者朋友们大家好,本文衔接快速入门Linux操作系统(一),继续学习如何快速入门Linux操作系统,那么话不多说,让我们一起开始学习吧。

一、命令历史,补全和正则表达式

1、命令历史

        命令历史记录存储在用户主目录的 .bash_history 文件中。

        通过键盘的上、下方向键可以快速浏览并调用之前执行过的命令。如下图:

2、命令补全

使用 lscdvi 等命令时,输入部分名称后按 Tab 键可自动补全文件名或路径。

如果存在多个匹配项,按两次 Tab 键会列出所有可能的补全选项。

在主目录里有两个demo文件,后缀不一样,在补全的时候会出现如上图的现象,需要再往后写几位区分不同后便可以继续补全直到为理想内容。

3、正则表达式

书写目录或文件名时,可以用星号*匹配多个字符,用问号?匹配一个字符。

这是再include目录里查看了所有以.h结尾的文件。

这是以li开头并且后面有两个可替换字符并以.h结尾的文件,只有一个link.h


二、目录和文件的权限

1、修改目录和文件的拥有者

用root用户执行:

chown -R 用户:组 目录和文件列表

-R选项表示连同各子目录一起修改。

注意这里的aaa.txt文件,属于用户mysql dba组,接下来将切换root用户修改他的拥有者

[root@iZwz939wtz3scsnsxplgemZ ~]# chown root:root /home/mysql/aaa.txt

输入上述指令之后再次查看mysql里的文件,就会变成如下图所示的模样

这里abcd.txt也发生了变化是因为之前再这两个文件之间建立了软连接,这个之后再讲,不影响观察现象。

2、权限的标志位

这个再文件和目录操作那一部分讲过

3、文件的权限

1)r:表示具有读取文件内容的权限

2)w:表示具有修改文件内容的权限,同时需要有r权限注意,如果要删除文件,需要有目录的w权限。

3)x:表示具有执行文件的权限,同时需要有r权限注意,文件是否能真的执行,还要由文件本身决定。

4、目录的权限

1)x:表示可以进入目录

2)r:表示可以浏览目录有哪些子目录和文件,同时需要有x权限

3)w:表示可以在目录中新增、删除、移动目录文件,同时需要有x权限

5、设置权限(八进制语法)

权限也可以用八进制的数字表示:r的值为4,w的值为2,x的值为1。
6 rw-  3 -wx  2 -w-   1 --x   0 ---下图更容易理解

使用来修改文件权限

chmod -R 三位的八进制权限 目录和文件列表

-R表示连同子目录一起修改

chmod -R 754 /home/mysql/aaa.txt

我们可以发现aaa.txt权限被修改了,并且可以运行了,这也正是权限修改的结果

6、设置权限(符号模式)

chmod -R whooperatorpermission 目录和文件列表

-R选项表示连同各子目录一起设置。

1)who的说明

who

用户类型

说明

u

user

文件的所有者

g

group

文件所有者

o

others

其它用户

a

all

全部用户,相当于ugo

2)operator的说明

operator

说明

+

增加权限

-

取消权限

=

重新设置权限

举例:

chmod -R u-x /home/mysql/aaa.txt

我们可以清楚的看到权限改变的结果,这种方式比八进制的方法更加直观。


三、Linux文件内容操作指南

1. cat - 完整显示文件内容

cat filename.txt
  • 特点:一次性显示文件全部内容

  • 适用场景:查看小型文本文件(<100行)

  • 常用选项

    • -n:显示行号

    • -b:只对非空行编号

 2. less - 交互式文件查看器(推荐)

less filename.log
  • 导航操作

    • 空格键:向下翻页

    • b:向上翻页

    • j/k:向下/上移动一行

    • /pattern:搜索内容

    • q:退出

  • 优势:支持大文件快速浏览,不会加载整个文件到内存

 3. more - 分页显示文件内容

more filename.txt
  • 基本操作

    • 空格键:下一页

    • b:上一页

    • q:退出

  • 与less区别:功能较简单,不支持回溯查看

 4. wc - 文件统计

wc filename.txt
  • 输出格式行数 单词数 字节数 文件名

  • 常用选项

    • -l:仅统计行数

    • -w:仅统计单词数

    • -c:仅统计字节数

 5. grep - 内容搜索

grep "error" *.log
  • 高级用法

    • -i:忽略大小写

    • -v:反向匹配(显示不包含模式的行)

    • -n:显示匹配行号

    • -r:递归目录搜索

    • -A 3:显示匹配行及后3行

    • -B 2:显示匹配行及前2行

 6. head - 查看文件头部

head -n 20 filename.log
  • 默认:显示前10行

  • 实用技巧

head -c 100 file  # 显示前100个字节

7. tail - 查看文件尾部 

tail -n 15 access.log

实时监控

tail -f application.log  # 实时跟踪日志更新

高级用法

tail -F logfile  # 跟踪可能被轮转的日志文件

8. 文件比较与处理

操作命令示例说明
比较差异diff file1 file2显示文件差异
排序sort data.txt按行排序
去重uniq sorted.txt去除连续重复行
合并cat file1 file2 > merged文件合并
拆分split -l 100 bigfile按行数拆分文件

 9、实用技巧组合

  1. 统计日志中错误出现次数

    grep -c "ERROR" app.log
  2. 监控日志中的新增错误

    tail -f app.log | grep --color "ERROR"

  3. 分析访问量最高的IP

    awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10

  4. 快速查看配置文件(跳过注释和空行)

    grep -vE '^#|^$' /etc/nginx/nginx.conf 


四、管道

        管道是一种强大的进程间通信机制,用竖线符号 `|` 表示。它允许将一个命令的输出直接作为另一个命令的输入,而无需创建临时文件。

基本语法:

command1 | command2 | command3

示例:

查看/etc目录内容并分页显示

ls -l /etc | less

统计当前目录下文件数量

ls | wc -l

查找包含特定文本的文件

grep "error" /var/log/syslog | less

 查找特定进程并统计数量

ps aux | grep nginx | wc -l


五、链接

        Linux链接分硬链接和软链接(符号链接)。

硬链接可以简单的理解为文件的别名,只能为文件创建硬链接,不能为目录创建硬链接。

ln 文件名 链接名

链接不能跨文件系统。

链接允许一个文件拥有多个有效文件,如果为重要文件建立硬,可以防止“误删只有当删除最后一个的时候,文件才会被真正的删除

软链接类似Windows的快捷方式,可以为目录和文件创建软链接。

ln -s 目录或文件名  链接名

注意:硬链接不能用已经存在于目录中的文件名字,linux不允许。


六、软件包的安装与下载

以前,Linux只能用rpm安装软件包,需要手工解决软件包的依赖关系。

软件包A -> 软件包B -> 软件包C

yum(Yellow dog Updater, Modified)是基于rpm软件包管理器,能够从指定的服务器下载软件包并且安装,可以自动处理依赖性关系,一次安装所有依赖的软件包。

使用yum之前,必须保证Linux系统可以访问互联网(因为yum仓库在互联网上)。

软件包的安装和卸载需要系统管理员权限。

1、安装软件包。

yum -y install 软件包名

2、删除软件包。

yum -y remove 软件包名

3、升级软件包。

yum update 软件包名

4、如何知道需要安装的软件包名

百度之。

5、yum仓库

互联网上有很多yum仓库,不需要任何配置就可以使用。

不允许访问互联网的企业用户可能自建yum仓库。

6、查找软件包。

yum update 软件包名

7、列出所有可更新的软件包清单。

yum check-update

8、更新所有软件包。

yum update

9、列出所有可安装软件包的清单;

yum list

七、打包和压缩

1、zip命令

先安装zip的软件包:yum -y install zip unzip

打包压缩:zip -q -r -d -u 压缩包文件名 目录和文件名列表

-q不显示令执行过程

-r:递归处理,打包各级子目录和文件。

-u把文件增加/替换到压缩包中。

-d:从压缩包中删除指定的文件

解包解压: unzip 压缩包文件名 

注意:zip是通用的压缩格式,Windows和Linux都支持。


八、进程

进程就是系统中正在运行的程序(linux的命令也是程序)

方法一:

ps -ef|lessps -ef|grep 关键字

字段全称/含义详细说明
UIDUser ID (用户ID)启动此进程的用户ID,通常可用用户名表示
PIDProcess ID (进程ID)系统分配给进程的唯一数字标识符
PPIDParent Process ID创建此进程的父进程ID,可通过pstree查看进程树关系
CCPU Utilization进程当前CPU占用百分比,持续高值可能表示性能问题
STIMEStart Time (启动时间)进程启动的具体时间,格式通常为"HH:MM:SS"
TTYTerminal Type (终端类型)运行进程的终端类型:
• tty1: 图形终端
• tty2-tty6: 本地字符终端
• pts/0-255: 虚拟终端(SSH等)
• ?: 系统守护进程/无终端关联
TIMECPU Time (CPU时间)进程累计使用的CPU时间,格式为"HH:MM:SS"
CMDCommand (命令)启动此进程的完整命令或程序名称

方法二:

ps aux|lessps aux|grep 关键字

进程信息字段说明

字段全称/描述详细说明
USER/UID用户名/用户ID启动此进程的用户账户名或用户ID
PIDProcess ID系统分配给进程的唯一数字标识符
%CPUCPU 使用百分比进程占用的 CPU 资源百分比,100% 表示占用一个完整 CPU 核心
%MEM内存使用百分比进程占用的物理内存百分比
VSZVirtual Memory Size进程使用的虚拟内存大小(KB),包括共享库和交换空间
RSSResident Set Size进程实际使用的物理内存大小(KB),不包括交换空间
TTY终端类型进程关联的终端:
• tty1: 图形终端
• tty2-tty6: 本地字符终端
• pts/0-255: 虚拟终端(SSH等)
• ?: 守护进程/无终端关联
STAT进程状态进程当前状态(详见下方状态说明)
START启动时间进程启动的具体时间(短格式为 "HH:MM",长格式为 "Mmm DD" 或 "YYYY")
TIMECPU 时间进程累计使用的 CPU 时间,格式为 "HH:MM:SS"
COMMAND命令启动此进程的完整命令或程序名称

进程状态 (STAT) 详解

状态码含义说明
RRunning (运行中)进程正在运行或可运行(在运行队列中)
SSleeping (休眠)可中断的睡眠状态(等待事件完成)
DUninterruptible sleep不可中断的睡眠状态(通常等待I/O)
TStopped (暂停)进程被信号暂停(如 Ctrl+Z)或被调试器暂停
ZZombie (僵尸)进程已终止但未被父进程回收
<高优先级进程优先级高于普通进程
N低优先级进程优先级低于普通进程
sSession leader进程是会话首进程(控制终端的进程)
l多线程进程是多线程的
+前台进程组进程在前台进程组中
IIdle (空闲)内核线程空闲状态(Linux 4.0+)

九、性能分析top

1、输出结果说明

前5行是系统整体的统计信息,从第8行开始进程信息

第一行是系统运行的统计信息

top:当前时间

up系统运行了多长时间

users:当前登录用户数

load average:系统负载,在一段时间内,CPU正在处理等待处理的进程数之和三个数值分别是最近1分钟、5分钟、15分钟的平均值。

load average三个数值,它能服务器的负载情况。但是,数值高了也并不能直接代表这服务器的性能有问题,可能是因为正在进行CPU密集型的计算,也有可能是因为I/O问题导致运行队列堵了。所以,当我们看到这个数值飙升的时候,还得具体问题具体分析。一个CPU在一个时间片里面只能运行一个进程,CPU核数的多少直接影响到这台机器在同时间能运行的进程数。一般来说,只要load average的数值超过这台机器的总核数,就基本没啥问题。

第二行是进程的统计信息

Tasks:当前有多少进程

running:正在运行的进程数

sleeping:正在休眠的进程数

stopped:停止的进程数

zombie:僵尸进程数

一般情况下,running越多,服务器自然压力就越大。

第三行是CPU的统计信息

us:用户进程CPU的百分比(shell程序、各种应用程序、web服务程序等都是运行在用户地址空间的进程)

sy:内核进程CPU的百分比(用户进程如果要使用系统资源都是通过内核进程来处理的,对操作系统来说,内核进程消耗时间应该是越少越好。但是,有一种情况会使sy变大,那就是大量的IO操作)

ni:改变过优先级的用户进程占用CPU百分比ni是nice的缩写,用户进程的优先级可以调整,这里显示的ni表示调整过优先级的进程消耗掉的CPU时间,如果系统中没有进程被调整过优先级,那么ni就显示为0)。

id:空闲CPU的百分比。

wa:等待磁盘I/O的进程占用CPU百分比(和CPU的处理速度相比,磁盘IO操作是非常慢的CPU在发出磁盘I/O操作的指令后,需要等待磁盘I/O操作的结果在磁盘I/O操作完成前,CPU只能处于等待状态。Linux系统在计算系统负载时会把CPU等待I/O操作的时间也计算进去所以,如果系统负载过高,可以通过wa来判断系统的性能瓶颈是不是I/O操作造成的)

hi:硬中断占用CPU百分比(硬中断是硬盘、网卡等硬件设备发送给CPU的中断消息,当CPU收到中断消息后需要进行处理,因此消耗CPU时间)。

si:软中断占用百分比(软中断是由程序发出的中断,也会执行相应的处理程序,消耗CPU时间)

st:用于有虚拟CPU的情况,用来指示被虚拟机掉的CPU时间

第四行是内存的统计信息

total:物理内存总量

free:空闲内存量

used:已使用的内存量

buff/cache:用作内核缓存的内存量

第五行是交换区的统计信息

total:交换区总量

free:空闲交换区大小。

used使用交换区的大小。

avail Mem下一次可分配进程的物理内存数量

从第八行开始是进程的信息

PID:进程id

USER:进程所有者

PR:进程的优先级,越小优先级越高

NI:nice值,负值表示高优先级,正值表示低优先级

VIRT:进程使用的虚拟内存,单位是kb

RES:进程使用的物理内存,单位kb

SHR:进程使用的共享内存,单位kb

S:进程状态(S表示休眠,R表示正在运行, Z表示僵死状态,N表示该进程优先值为负数,I表示空闲状态)

%CPU:进程占用的CPU使用率

%MEM:进程使用的物理内存和总内存的百分比

TIME+:进程使用的CPU时间总计,单位1/100秒

COMMAND:命令行

进程信息缺省按%CPU降序排列。

2、top常用的选项

-d 指定屏幕信息刷新的时间间隔,缺省是3秒,希望10秒刷新一次,则使用:top -d 10

-u  只显示指定用户的进程,希望只显示wucz用户的进程,则使用:top -u wucz

-p 只显示指定的进程,例如:top -p 1038, 1038是进程编号。

-i 不显示闲置的进程,例如:top -i

-c 显示产生进程的完整命令,例如:top -c

3、top交互命令

按下q键,退出top

按下h键,显示帮助画面,

按下c键,显示产生进程的完整命令,等同于-c选项,再次按下c键,变为默认显示

按下f键,可以选择需要展示的项目

按下M键,根据驻留内存大小(RES)排序

按下P键,根据CPU使用百分比大小进行排序。

按下T键,根据时间/累计时间进行排序

按下E键,切换顶部内存显示单位

按下e键,切换进程内存显示单位

按下l键,切换显示平均负载和启动时间信息。

按下t键,切换显示CPU状态信息

按下m键,切换显示内存信息

结语

本文目前介绍到性能分析top,日后随着深入学习我会更新更多相关内容,本文的学习资料来源主要来源自一位程序员技术博主,可以关注B站up码农论坛。如果觉得本文对您有所帮助,就请点赞转发收藏吧,您的支持也是我继续学习和更新的动力,感谢您的支持。

http://www.lryc.cn/news/602378.html

相关文章:

  • 腾讯AI IDE
  • 《红色脉络:一部PLMN在中国的演进史诗 (1G-6G)》 第3篇 | 2G:GSM一统江湖?——移动、联通的“分家”与双轨并行
  • windows平台计划任务批处理实现定时任务
  • 零基础学习性能测试第九章:全链路追踪-系统中间件节点监控
  • DDD领域驱动中瘦模型与富态模型的核心区别
  • FastGPT本地构建工作流高级编排(最新4.11.0)
  • 火狐浏览器中国特供版关闭,如何下载 Firefox 国际版?如何备份数据?
  • App Inventor 2 使用 MaterialIcons 图标字体,快捷展示专业图标
  • NAS远程访问新解法:OMV与cpolar的技术协同价值
  • CentOS7 安装和配置教程
  • nvim tagbar安装
  • VUE2 学习笔记11 脚手架
  • 架构实战——互联网架构模板(“存储层”技术)
  • 黑马商城微服务-下
  • 云服务器以域名形式访问机房Kubernetes集群服务之解决方案
  • 国产化PDF处理控件Spire.PDF教程:Java 提取 PDF 图片,高质量提取与图片过滤技巧
  • 【设计模式】状态模式 (状态对象(Objects for States))
  • Spring AI 1.0 提供简单的 AI 系统和服务
  • claude code
  • LeetCode 85. 最大矩形
  • 剑指“CPU飙高”问题
  • FFmpeg 安装与使用
  • kafka开启Kerberos使用方式
  • 【三桥君】如何解决后端Agent和前端UI之间的交互问题?——解析AG-UI协议的神奇作用
  • 2025年7月28日训练日志
  • Android 解析 TrafficDescriptor 的 OSAPP 信息
  • Android15广播ANR的源码流程分析
  • ubuntu安装Anaconda及应用
  • 【运维】HuggingFace缓存目录结构详解
  • 首个智能存力调度平台启动!与算力网络共同加速AI创新