当前用户名 whoami
当前用户 UID/GID id 或 id -u/id -g
所有登录用户 who 或 w
系统所有用户列表 compgen -u 或 cat /etc/passwd
指定用户详细信息(家目录、shell 等) getent passwd 用户名
用户所属组 groups [用户名]
登录历史记录 last 或 lastlog
当前用户家目录 echo $HOME

 

sort

选项 功能描述 关键场景
-n 按 数值大小 排序(而非字符串) 排序数字(如文件大小、分数、进程 ID)
-r 按 降序 排序(默认升序) 需从大到小排列(如内存占用最高的进程)
-k N 按第 N 个 字段(列) 排序(默认空格 / 制表符分隔) 排序表格数据(如学生分数表、日志的某一列)
-t 符号 自定义 字段分隔符(如逗号、冒号) 处理 CSV 文件(, 分隔)、配置文件(: 分隔)
-u 去重:仅保留排序后 唯一的行(重复行只留第一行) 需去重 + 排序的场景(如统计不重复的关键词)
-f 忽略 大小写 差异(如 A 和 a 视为相同) 文本排序不区分大小写(如英文文档)
-b 忽略行首 空格 / 制表符(避免空格影响排序) 行首有不规则空格的文本(如手动编辑的日志)
排序需求 命令(针对数字) 命令(针对文本)
从小到大(升序) sort -n 文件名 sort 文件名(默认)
从大到小(降序) sort -nr 文件名 sort -r 文件名

1. 数值排序(最常用)

按数值升序:sort -n 数字文件.txt

按数值降序:sort -nr 数字文件.txt

示例:排序分数文件 score.txt(数值降序):

sort -nr score.txt  # 输出从高到低的分数

2. 按指定字段排序

场景 1:按第 3 列(数值)排序(默认空格分隔):

sort -k3 -n 表格文件.txt  # -k3指定第3列,-n数值排序

场景 2:按 CSV 文件(逗号分隔)的第 2 列(数值)降序:

sort -t',' -k2 -nr data.csv  # -t','指定逗号分隔,-k2第2列,-nr降序

3. 多字段排序(先按 A 列,再按 B 列)

场景:学生表先按 “班级”(第 2 列)升序,再按 “分数”(第 3 列)降序:

sort -k2 -n -k3 -nr student.txt  # 先-k2(班级)升序,再-k3(分数)降序

4. 结合其他命令排序

场景 1:按文件大小排序(ls -l 第 5 列是大小):

ls -l | sort -k5 -nr  # 显示文件按大小降序(最大的在前)

场景 2:按进程内存占用排序(ps aux 第 4 列是内存百分比):

ps aux | sort -k4 -nr | head -5  # 显示内存占用Top5的进程

5. 去重 + 排序

场景:对重复文本去重并排序:

sort -u 重复文本.txt  # 去重后按ASCII码升序

sort -n 456.txt | uniq -c | sort -n


uniq 命令核心详解

1. 基础语法

uniq [选项] [输入文件] [输出文件]  # 无文件时从标准输入读取

2. 核心选项(按功能分类,基于文件 demo.txt:hello、hello、world、linux、linux、hello)

功能场景 选项 说明 示例命令 示例输出
去重处理 无选项 去除相邻重复行,保留第一行 uniq demo.txt hello、world、linux、hello(非相邻 hello 未处理)
-D 显示所有相邻重复行(不合并) uniq -D demo.txt hello、hello、linux、linux
重复统计 -c 在每行前添加「相邻重复次数」 uniq -c demo.txt 2 hello、1 world、2 linux、1 hello
行筛选 -u 只保留「相邻且仅出现 1 次」的行 uniq -u demo.txt world、hello(最后一个非相邻 hello)
-d 只保留「相邻且重复≥2 次」的行(仅显示 1 次) uniq -d demo.txt hello、linux
特殊处理 -i 忽略大小写(如 Hello 和 hello 视为重复) uniq -i case.txt(含 Hello、hello) Hello(合并为 1 行)
-s N 跳过前 N 个字符,比较后续内容 uniq -s 4 log.txt(含 log1:error、log2:error) log1:error(合并为 1 行)



pwd

功能:显示当前工作目录的绝对路径

示例:pwd(输出如 /home/user/downloads

rm -r:删除目录(递归删除所有内容)

rm -f:强制删除(不提示确认)

head / tail

功能:查看文件开头 / 结尾内容

常用选项:-n 数字(指定显示行数,默认 10 行)

示例:

head -5 log.txt(显示 log.txt 的前 5 行)

tail -f log.txt(实时跟踪 log.txt 的新增内容,按 Ctrl+C 退出)

ps

功能:查看当前运行的进程(静态快照)

常用选项:ps aux(显示所有用户的所有进程详细信息)

示例:ps aux | grep python(查看所有 python 相关进程)

chmod

功能:修改文件 / 目录的权限(读 r=4、写 w=2、执行 x=1,权限分用户、组、其他三类)

示例:

chmod 755 file.sh(用户可读可写可执行,组和其他可读可执行)

chmod +x file.sh(给所有用户添加执行权限)

chown

功能:修改文件 / 目录的所有者(用户和组)

示例:chown user:group file.txt(将 file.txt 的所有者改为 user,所属组改为 group

ping

功能:测试与目标主机的网络连通性

示例:ping www.baidu.com(向百度发送 ICMP 包,按 Ctrl+C 停止)

ifconfig / ip

功能:查看 / 配置网络接口信息(ip 是新一代工具,替代 ifconfig)

示例:ip addr(查看所有网络接口的 IP 地址等信息)

netstat / ss

功能:查看网络连接、端口占用等(ss 是 netstat 的替代工具,更高效)

示例:ss -tuln(查看所有监听的 TCP/UDP 端口)

wget / curl

功能:下载文件(wget 直接下载,curl 更灵活,支持多种协议)

示例:

wget https://example.com/file.zip(下载文件到当前目录)

curl -O https://example.com/file.zip(-O 保存为原文件名)

1. uname(补充)

功能:查看系统内核信息。

常用选项:

-a:显示完整信息(内核版本、主机名、架构等)。

示例:

uname -a  # 输出如 Linux localhost 5.4.0-100-generic x86_64 GNU/Linux

2. df(补充)

功能:查看磁盘空间使用情况。

常用选项:

-h:以人类可读单位(G/M)显示。

示例:

df -h  # 显示所有分区的总容量、已用、可用空间

3. du(补充)

功能:查看文件 / 目录的磁盘占用大小。

常用选项:

-h:人类可读单位;

-sh:显示目录总大小(不展开子目录)。

示例:

du -sh /home  # 查看 /home 目录的总占用空间
du -h file.txt  # 查看 file.txt 的大小

4. top / htop(补充)

功能:实时查看进程资源占用(htop 是 top 的增强版,需单独安装)。

操作:

top 中按 q 退出,按 P 按 CPU 占用排序,按 M 按内存占用排序。

示例:

top # 实时显示进程占用情况 sudo apt install htop && htop # 安装并使用 htop

 

作者 dmxsp

发表回复

您的电子邮箱地址不会被公开。