权限与用户管理-last 🔐 — 查看登录历史

作用

last 读取 /var/log/wtmp 显示用户登录历史,包括登录/登出时间和来源 IP。

语法

1
last [选项] [用户]

用法

last 从 wtmp 数据库读取登录记录。-n N 显示最近 N 条,--since--until 按时间范围过滤。-R 不显示主机名列。排查谁什么时间登录过系统的依据。

常用参数

参数 说明
-n N 显示最近 N 条
--since 从指定时间开始
--until 到指定时间截止
-R 隐藏主机名列
-x 显示系统关机/重启记录

示例

1
2
3
4
5
last                          # 查看所有登录历史
last -n 10 # 显示最近 10 条记录
last ALICE # 筛选用户 ALICE 的记录
last --since "2026-01-01" --until "2026-03-01" # 按时间范围过滤
last -x # 显示系统关机重启记录

来源:菜鸟教程

权限与用户管理-passwd 🔐 — 管理用户密码

作用

passwd(password)设置或修改用户密码,支持锁定/解锁账户、删除密码等操作。

语法

1
passwd [选项] [用户名]

用法

passwd 不带参数修改当前用户密码。root 可管理任意用户密码。-l 锁定账户,-u 解锁,-d 删除密码(变为空密码,谨慎),--stdin 从管道读取密码(脚本中使用)。普通用户只能改自己密码。

常用参数

参数 说明
-l 锁定账户
-u 解锁账户
-d 删除密码
--stdin 从 stdin 读密码
-S 显示密码状态
-e 过期密码(下次登录须修改)

示例

1
2
3
4
5
6
passwd                        # 修改当前用户密码
passwd ALICE # root 修改 ALICE 密码
passwd -l ALICE # 锁定账户
passwd -u ALICE # 解锁账户
echo "P@SSWORD" | passwd --stdin ALICE # 管道设置密码(脚本用)
passwd -S ALICE # 查看密码状态

来源:菜鸟教程

权限与用户管理-chgrp 🔐 — 修改文件所属组

作用

chgrp(change group)修改文件或目录的所属组,无需 root(用户须是该组成员)。

语法

1
chgrp [选项] 组 文件

用法

chgrp 专门用于改所属组,与 chown :组 效果相同。-R 递归修改,-v 显示详情。日常使用中常被 chown :组 替代,但 chgrp 仍独立存在。

常用参数

参数 说明
-R 递归修改
-v 显示详细过程
--reference=RFILE 参考文件的所属组

示例

1
2
3
4
chgrp DEVELOPERS FILE.TXT       # 修改文件所属组
chgrp -R WWW /var/www # 递归修改目录所属组
chgrp --reference=RFILE TARGET # 参考 RFILE 的所属组
chgrp -v STAFF DIR/ # 修改并显示过程

来源:菜鸟教程

文件查看与文本处理-sed 📄 — 流式编辑器

作用

sed(stream editor)按行读取文本并执行编辑操作(替换、删除、插入、打印等),支持正则表达式和原地修改,是文本批处理的瑞士军刀。

语法

1
sed [选项] '脚本' 文件

用法

sed 逐行处理文本,不修改原文件默认输出到标准输出。-i 原地修改文件。核心指令:s/旧/新/g 全局替换,/模式/d 删除匹配行,/模式/p 打印匹配行,N d 删除第 N 行,N,Mp 打印 N 到 M 行。脚本中常结合管道使用。

常用参数

参数 说明
-i 原地修改文件
-n 关闭自动打印(配合 p 使用)
-E 扩展正则
s/旧/新/g 全局替换
/模式/d 删除匹配行
/模式/p 打印匹配行
N d 删除第 N 行
N,Mp 打印 N 到 M 行

示例

1
2
3
4
5
6
sed 's/OLD/NEW/g' FILE.TXT         # 全局替换 OLD 为 NEW(输出到屏幕)
sed -i 's/OLD/NEW/g' FILE.TXT # 原地修改文件
sed -n '/ERROR/p' LOG.TXT # 只打印含 ERROR 的行
sed '5,10d' FILE.TXT # 删除第 5 到 10 行
sed 's/^/PREFIX/' FILE.TXT # 在每行开头添加 PREFIX
sed '/^$/d' FILE.TXT # 删除所有空行

来源:菜鸟教程

📖 课程位置

本命令在以下课程中讲解:Day 3:sed 流编辑

文件查看与文本处理-sort 📄 — 文本排序

作用

sort 对文本行按字典序或数值排序,支持按列排序、去重、逆序等,是数据处理的基础工具。

语法

1
sort [选项] 文件

用法

sort 默认按字典序升序排列。-n 数值排序(识别数字大小),-r 逆序,-k N 按第 N 列排序,-u 去重(等价于 sort | uniq),-t 分隔符 指定列分隔符。常与 cut、uniq 组成管道链处理表格数据。

常用参数

参数 说明
-n 数值排序
-r 逆序排序
-u 去重
-k N 按第 N 列排序
-t 分隔符 指定列分隔符
-h 人类可读数值排序(K/M/G)
-f 忽略大小写
-c 检查是否已排序

示例

1
2
3
4
5
6
sort FILE.TXT                  # 字典序升序排列
sort -n FILE.TXT # 按数值大小排序
sort -n -r DATA.TXT # 按数值逆序排序
sort -k 2 -t: /etc/passwd # 以冒号分隔,按第 2 列排序
sort -u FILE.TXT # 排序并去重
du -sh | sort -h # 磁盘使用按人类可读大小排序

来源:菜鸟教程

📖 课程位置

本命令在以下课程中讲解:Day 4:文本统计与处理 | Day 5:本周串联实操

文件查看与文本处理-split 📄 — 分割大文件

作用

split 将大文件按行数或大小分割成多个小文件,适合拆分日志或大数据集。

语法

1
split [选项] [输入 [前缀]]

用法

split 按行数 -l N 或大小 -b 100M 分割文件。-d 使用数字后缀(默认字母),-a N 后缀长度。-e 在空行处分割。输出文件默认命名 XAAXAB…,可指定前缀。

常用参数

参数 说明
-l N 每个文件 N 行
-b 大小 每个文件 N 字节(如 100M)
-d 使用数字后缀
-a N 后缀长度
-a N 字母后缀长度
--verbose 显示分割过程

示例

1
2
3
4
split -l 1000 BIGFILE.LOG      # 每 1000 行分割为一个文件
split -b 50M DATA.DUMP # 每 50MB 分割为一个文件
split -d -a 3 -l 500 FILE.TXT LOG_ # 数字后缀 3 位,前缀为 LOG_
split -a 2 -b 10M FILE.TXT # 字母后缀 2 位

来源:菜鸟教程

文件查看与文本处理-tac 📄 — 反向输出文件

作用

tac(cat 的反向拼写)从最后一行开始反向输出文件内容,行顺序完全颠倒,适合从日志末尾开始查看。

语法

1
tac [选项] 文件

用法

tac 与 cat 输出顺序相反,最后一行在第一行输出。-b 在每个记录前加分隔符,-r 使用正则分隔符,-s 指定记录分隔符(默认换行符)。可配合管道:tac FILE.TXT | head 查看文件末尾几行。

常用参数

参数 说明
-b 在每个记录前加分隔符
-r 使用正则分隔符
-s 分隔符 指定记录分隔符

示例

1
2
3
tac FILE.TXT                  # 反向输出文件(末行在前)
tac -s '.' FILE.TXT # 以句号为分隔符反转段落
tac FILE.TXT | head # 查看文件末尾几行(配合 head)

来源:菜鸟教程

文件查看与文本处理-tail 📄 — 显示文件末尾

作用

tail 显示文件末尾 N 行(默认 10 行),-F 实时追踪文件新增内容,是监控日志文件的核心工具。

语法

1
tail [选项] 文件

用法

tail 默认输出后 10 行。-n 20 指定行数,-F 实时追踪新增内容(日志监控),--pid=PID 在进程退出后停止追踪。-c 100 显示后 100 字节。调试日志时 tail -F /var/log/APP.LOG 持续查看新输出。

常用参数

参数 说明
-n N 显示后 N 行
-F 实时追踪新增内容
--pid=PID 进程退出后停止
-c N 显示后 N 字节
-q 不显示文件名标题
-v 显示详细信息

示例

1
2
3
4
5
tail FILE.TXT                    # 显示文件末尾 10 行
tail -n 50 FILE.TXT # 显示末尾 50 行
tail -F /var/log/syslog # 实时跟踪日志更新
tail -n 100 -F APP.LOG # 先显示末 100 行,再持续跟踪
tail -c 200 FILE.TXT # 显示末尾 200 字节

来源:菜鸟教程

📖 课程位置

本命令在以下课程中讲解:Day 3:文件内容查看 | Day 5:本周串联实操

文件查看与文本处理-tee 📄 — 双向输出

作用

tee 同时将 stdin 数据输出到 stdout 和一个或多个文件,常用于在管道处理中同时查看和保存中间结果。

语法

1
命令 | tee [选项] 文件

用法

tee 复制 stdin 到 stdout 的同时写入文件。-a 追加而非覆盖。适合调试管道:CMD1 | tee STEP1.LOG | CMD2 | tee STEP2.LOG | CMD3。也可用于同时查看和保存命令输出。

常用参数

参数 说明
-a 追加到文件(不覆盖)
-i 忽略中断信号

示例

1
2
3
4
CMD | tee OUTPUT.LOG           # 同时输出到屏幕和文件
CMD | tee -a APPEND.LOG # 追加到文件而非覆盖
CMD | tee FILE1.LOG FILE2.LOG # 同时写入多个文件
CMD1 | tee -a DEBUG.LOG | CMD2 # 调试管道,保存中间结果

来源:菜鸟教程

文件查看与文本处理-tr 📄 — 字符转换

作用

tr(translate)对 stdin 进行单字符映射、删除或压缩,只接受管道输入,不支持文件参数。

语法

1
命令 | tr [选项] 字符集1 [字符集2]

用法

tr 在字符级别操作文本。常见用法:tr 'A-Z' 'a-z' 大小写转换,tr -d 字符 删除指定字符,tr -s 字符 压缩连续重复字符(如多个空格变为一个),tr -c 字符集1 字符集2 补集操作。只从 stdin 读取,不处理文件参数。

常用参数

参数 说明
-d 删除指定字符
-s 压缩连续重复字符
-c 补集(取反)
tr 'A-Z' 'a-z' 大小写转换
tr -d ' ' 删除空格
tr -s ' ' 压缩空格

示例

1
2
3
4
5
echo "HELLO" | tr 'A-Z' 'a-z'      # 大写转小写
echo "hello" | tr 'a-z' 'A-Z' # 小写转大写
cat FILE.TXT | tr -d ' ' # 删除所有空格
cat FILE.TXT | tr -s ' ' # 压缩连续空格为单个
echo "a b c" | tr -d ' ' # 删除空格输出 abc

来源:菜鸟教程

0%