Linux学习day3

一、 文件与目录操作

1.1 文件重命名与移动 (mv)

命令简述:mv(源自英文 "move")用于移动文件或对文件、目录进行重命名。

语法格式:

mv [选项] 源文件或目录 目标文件或目录

示例:

mv lay lby

将当前目录下的文件 lay 重命名为 lby。

注意事项:执行此命令会改变文件的存储位置。

💡 命令辨析:mv 与 cp 的区别

cp(copy):复制文件。操作后原文件依然保留在原路径,同时在目标路径生成一份全新的副本。

mv(move):移动/重命名。操作后原路径的文件不复存在,相当于剪切。

1.2 删除文件 (rm)

命令简述:rm(源自 "remove")用于删除文件或目录。

语法格式:

rm [选项] 文件名

示例:

rm lay

交互机制:

在默认交互式环境下,系统会弹出确认提示。输入 y(yes)确认删除,输入 n(no)取消删除。

强制删除:添加 -f(force)参数可以跳过确认提示,直接强行删除。

rm -f lay

1.3 目录管理

创建目录 (mkdir)

命令简述:mkdir(源自 "make directory")用于在指定路径创建新目录。

语法格式:

mkdir [选项] 目录名

单级目录示例:

mkdir zeropoint

多级目录示例:若想一次性创建多层嵌套的子目录,需添加 -p(parents)参数:

mkdir -p zero_point/TV_show/logo

删除目录 (rmdir)

命令简述:rmdir(源自 "remove directory")用于删除空目录。

语法格式:

rmdir 目录名

安全机制:rmdir 只能删除不含任何文件或子目录的空目录。如果目录非空,系统会报错并拒绝删除。这一防误删机制设计非常安全。

💡 若要强制删除非空目录及其所有内容,需使用 rm -rf 目录名。

二、 查看文件内容

在 Linux 中,无需打开复杂的文本编辑器即可直接通过终端查看文件内容。

2.1 探测文件类型 (file)

原理解析:在直接查看文件之前,建议先确认其文件类型。如果直接用文本查看命令打开一个二进制文件(如可执行文件),会导致终端被乱码淹没甚至卡死。

语法格式:

file 文件名

常见输出类型:

文本文件:文件名: ASCII text 或 UTF-8 Unicode text 等(标识字符编码)。

目录:文件名: directory。

符号链接:文件名: symbolic link to 目标文件。

可执行文件:文件名: ELF 64-bit LSB executable... 或脚本文件 文件名: POSIX shell script, ASCII text executable。

2.2 查看完整文件

① cat 命令

适用场景:适合快速查看内容较少的小型文本文件。

语法格式:

cat [选项] 文件名

常用参数:

-n:为输出的所有行进行编号(包括空行)。

-b:仅为非空行编号。

缺点:如果文件非常大,cat 会瞬间将所有内容输出到终端并滚动到末尾,极不方便阅读。

② more 命令

适用场景:需要简单分页阅读的大型文本。

语法格式:

more 文件名

操作方式:

按 Space(空格键):向下翻一页。

按 Enter(回车键):向下滚一行。

按 q:退出阅读。

③ less 命令

适用场景:more 命令的升级版,也是日常查看大文件最推荐的工具。

语法格式:

less 文件名

优势功能:

支持使用键盘方向键或 PageUp / PageDown 自由向上、向下滚动页面。

支持输入 /关键字 在文件内快速进行文本搜索。

2.3 查看部分文件

① tail 命令

功能:查看文件的尾部内容,默认显示文件的最后 10 行。

语法格式:

tail [选项] 文件名

常用参数:

-n <数字>:指定显示的行数。例如显示最后 4 行:

tail -n 4 zero_point.txt

-f:实时追踪。让终端保持挂起状态并实时输出文件新追加的内容,非常适合用来监控系统动态日志文件。

② head 命令

功能:与 tail 正好相反,用于查看文件的头部内容,默认显示前 10 行。

语法格式:

head [选项] 文件名

常用参数:

-n <数字>:指定显示开头的行数。

⚠️ 注意:head 命令没有类似于 tail -f 的实时追踪参数。

三、 Bash Shell 深入:进程监测与管理

作为 Linux 系统管理员,跟踪、了解并控制系统中正在运行的程序(即"进程")是一项核心任务。

3.1 静态探查进程 (ps)

基本概念:正在内存中运行的程序实体即为进程。

语法格式:

ps [参数]

常用参数划分

参数风格

参数

详细说明

标准风格 (带 -)

-e 或 -A

显示系统中的所有进程。

-d

显示除系统会话引导进程之外的所有进程。

-C <命令名>

根据指定的命令/可执行文件名来筛选进程。

-u <用户名>

根据有效用户 ID(EUID)筛选进程。

-U <用户名>

根据真实用户 ID(RUID)筛选进程。

-p

精确筛选指定 PID 的进程。

--ppid

筛选指定父进程号(PPID)的进程。

-t

按照终端设备进行筛选。

BSD 风格 (不带 -)

a

显示所有与终端关联的进程(包括其他用户)。

x

显示所有不带终端控制的进程(常用于后台守护进程)。

g

显示所有包含终端的进程,包括会话引导进程。

U <用户名>

筛选属于指定用户的进程。

常见的输出字段含义

UID / USER:启动并运行该进程的用户。

PID:进程的唯一标识号(Process ID)。

PPID:当前进程的父进程号(Parent Process ID)。

C:进程生命周期内的 CPU 利用率估值。

STIME:进程启动时的系统时间。

TTY:进程启动时所依附的终端设备(若为 ? 则表示无终端,通常是系统后台服务)。

TIME:该进程累计消耗的 CPU 时间总量。

CMD:启动该进程的命令行/程序名称。

3.2 动态实时监测 (top)

命令简述:ps 仅能提供当前瞬间的系统快照,而 top 可以提供全屏的、动态更新的实时监测界面。

语法格式:

top [参数]

常用参数:

-d <秒数>:设置界面的刷新时间间隔。

-p :只监控指定 PID 的进程(多个 PID 用逗号隔开)。

-u <用户名>:仅显示指定用户的进程。

-n <次数>:在更新指定次数后自动退出命令。

-b:批处理模式。不进入交互式界面,直接将监控数据按行打印,通常用于脚本或输出重定向。

输出界面核心字段解析

PID:进程 ID。

USER:进程的所有者用户名。

PR:进程调度的优先级。

NI:进程的谦让度值(Nice值,负值表示高优先级,正值表示低优先级)。

VIRT:进程占用的虚拟内存总量。

RES:进程当前实际占用的、未被交换出去的物理内存总量(Resident Size)。

S:进程状态:

D:不可中断的睡眠状态(通常在等待 I/O)。

R:运行状态(Running / Runnable)。

S:睡眠/休眠状态(Sleeping)。

T:跟踪或已停止状态(Traced / Stopped)。

Z:僵尸状态(Zombie,进程已死但资源未被回收)。

%CPU:进程自上次刷新以来占用的 CPU 时间比例。

%MEM:进程占用的物理内存百分比。

TIME+:自进程启动起,所占用的 CPU 时间总计(精度更高)。

COMMAND:对应的启动命令行名称。

退出指令:在 top 交互界面中,随时按键盘上的 q 键即可退出。

3.3 结束进程

在 Linux 中,管理员通过向进程发送信号(Signal)来与其进行通信,进而控制其运行、挂起或消亡。

3.3.1 常用系统信号

信号值

信号名称

作用与描述

1

SIGHUP

挂起。通常用于让后台守护进程/服务重新加载其配置文件,而无需彻底重启进程。

2

SIGINT

中断。等同于在前台运行程序时按下快捷键 Ctrl + C。

3

SIGQUIT

退出。类似于 SIGINT,但退出时会尝试产生核心转储文件(core dump)。

9

SIGKILL

无条件终止(强杀)。进程接收到此信号后必须立即无条件消亡,无法被捕获、阻塞或忽略。常用于清理卡死的顽固进程。

11

SIGSEGV

段错误。表示进程尝试访问未分配给它的非法内存空间。

15

SIGTERM

尽可能终止(默认信号)。属于温和的正常退出请求,允许进程清理临时文件、释放资源并安全退出。

17

SIGSTOP

无条件停止运行。强制暂停进程的运行,使其转入后台。

18

SIGTSTP

终端停止运行。类似于在控制台按下 Ctrl + Z,使进程暂停。

19

SIGCONT

恢复执行。用于将处于 STOP 或 TSTP 暂停状态的进程恢复至运行状态。

3.3.2 进程清理命令

① kill 命令

工作机制:通过进程 ID(PID)向指定进程发送信号。

语法格式:

kill [-信号值] PID

示例:

正常结束进程(默认发送 15 号信号):

kill 1523

强制杀死卡死进程(发送 9 号强杀信号):

kill -9 1523

② killall 命令

工作机制:允许直接通过进程名称来批量杀死进程,无需查找 PID。该命令非常强大,并且支持通配符匹配。

语法格式:

killall [选项] 进程名

示例:

killall httpd

此命令会终止系统上所有名为 httpd 的进程。

相关推荐
皆圥忈10 小时前
Linux 进程管理从入门到实战(一)
linux
雪度娃娃10 小时前
Asio——socket的创建和连接
linux·运维·服务器·c++·网络协议
剑神一笑11 小时前
Linux tar 归档命令深度解析:从文件打包到压缩算法的完整实现
linux·运维·服务器
coolwaterld11 小时前
Linux 移动硬盘挂载不上 wrong fs type, bad option, bad superblock
linux·服务器
J2虾虾11 小时前
Linux tar 命令详解
linux·运维·服务器
多敲代码防脱发11 小时前
Spring进阶(Bean的生命周期与Bean的后处理器)
java·服务器·开发语言·spring boot·spring·servlet
阳光九叶草LXGZXJ11 小时前
达梦数据库-学习-52-DmDrs参数介绍(Manager模块)
linux·运维·数据库·sql·学习
corpse201011 小时前
CentOS Linux release 8.5.2111下的CVE-2026-31431 Linux内核提权漏洞处置 过程问题记录
linux·运维·centos
吃好睡好便好11 小时前
在Matlab中绘制峰值图
开发语言·学习·算法·matlab·信息可视化