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

Linux常用基础命令

想继续学习shell命令:

Linux零基础Shell教学全集(可用于日常查询语句,目录清晰,内容详细)(自学尚硅谷B站shell课程后的万字学习笔记,附课程链接)-CSDN博客https://blog.csdn.net/2302_78022640/article/details/149726065?spm=1001.2014.3001.5502

下面文章请查看旁边目录翻阅。


文件和目录操作命令

cd - 切换目录

  1. 作用说明:用于切换当前工作目录,可通过绝对路径(如/usr/local)或相对路径(如./docs)在不同目录间跳转。
  2. 参数:
    • ~:切换到当前用户的主目录(如/home/用户名)。
    • ..:切换到上一级目录。
    • -:切换到上一次所在的目录。
    • 目录路径:直接指定目标目录的路径。
  3. 代码案例:
# 切换到主目录
cd ~# 切换到上一级目录(若当前在/home/user/docs,则切换到/home/user)
cd ..# 切换到上一次所在目录(假设之前在/home/user,切换到docs后执行此命令返回/home/user)
cd -

pwd - 显示当前目录路径

  1. 作用说明:输出当前所在目录的绝对路径,帮助用户确认自己的位置。
  2. 参数:无参数。
  3. 代码案例:
# 显示当前目录路径(假设当前在/home/user/documents)
pwd
# 输出:/home/user/documents

ls - 列出目录内容

  1. 作用说明:列出指定目录的文件和子目录,默认显示当前目录内容。
  2. 参数:
    • -l:以长格式显示,包含权限、所有者、大小、修改时间等详细信息。
    • -a:显示所有内容(包括以.开头的隐藏文件 / 目录,如.bashrc)。
    • -h:与-l配合,以人类可读格式显示文件大小(如 KB、MB)。
    • -r:反向排序(默认按字母升序)。
    • -t:按修改时间排序(最新的排在前面)。
  3. 代码案例:
# 以长格式列出当前目录内容(包含隐藏文件)
ls -la# 按修改时间排序显示当前目录内容
ls -lt

mkdir - 创建目录

  1. 作用说明:用于创建新的目录,支持一次性创建多级目录。
  2. 参数:
    • -p:递归创建目录(若父目录不存在则自动创建,如mkdir -p a/b/c会创建 a、a/b、a/b/c)。
    • -m:创建时指定权限(如mkdir -m 755 dir创建权限为 755 的 dir 目录)。
  3. 代码案例:
# 创建名为"test"的目录
mkdir test# 递归创建多级目录"docs/reports/2023"
mkdir -p docs/reports/2023

touch - 创建空文件

  1. 作用说明:创建空文件,若指定文件已存在,则更新该文件的访问和修改时间。
  2. 参数:无常用必须参数,直接指定文件名即可(支持同时创建多个)。
  3. 代码案例:
# 创建两个空文件"note.txt"和"data.csv"
touch note.txt data.csv

 vim - 高级文本编辑器

  1. 作用说明:Linux 系统中最常用的文本编辑器,支持语法高亮、多模式操作(命令模式、插入模式、可视模式)、宏录制、插件扩展等高级功能,适合编辑配置文件、代码等各类文本内容。
  2. 模式与操作:
    • 命令模式(默认):用于导航、执行命令,无法直接输入文本。
      • 移动光标:h(左)、j(下)、k(上)、l(右),或用方向键。
      • 快速跳转:G(文件末尾)、gg(文件开头)、数字G(指定行,如10G到第 10 行)。
      • 复制 / 粘贴:yy(复制当前行)、nyy(复制 n 行)、p(粘贴)。
      • 删除:dd(删除当前行)、ndd(删除 n 行)、x(删除当前字符)。
      • 查找 / 替换:/关键词(搜索)、n(下一个匹配)、:%s/原词/替换词/g(全局替换)。
    • 插入模式:按i(当前位置插入)、a(光标后插入)、o(下一行插入)进入,按Esc返回命令模式。
    • 底线命令模式:命令模式下按:进入,用于保存、退出等操作。
      • :w:保存文件。
      • :q:退出(未修改时)。
      • :wq:x:保存并退出。
      • :q!:强制退出,不保存修改。
      • :set number:显示行号(临时)。
  3. 代码案例:
# 打开文件(若不存在则创建)
vim config.ini# 进入插入模式,编辑文件内容
i  # 进入插入模式开始编辑# 保存并退出
Esc  # 返回命令模式
:wq  # 保存并退出# 打开文件并跳到第20行
vim +20 app.log# 同时打开多个文件
vim file1.txt file2.txt

rm - 删除文件或目录

  1. 作用说明:用于删除文件或目录,需谨慎使用避免误删。
  2. 参数:
    • -f:强制删除,不提示确认(即使文件只读)。
    • -r:递归删除目录及其中所有内容(删除目录必须用此参数)。
    • -i:删除前提示确认(默认删除非目录文件时可能提示,视系统配置而定)。
  3. 代码案例:
# 删除"note.txt"(会提示确认,输入y确认)
rm note.txt# 强制递归删除"test"目录及其中所有内容(无提示,谨慎使用)
rm -rf test

cp - 复制文件或目录

  1. 作用说明:用于复制文件或目录到指定位置。
  2. 参数:
    • -i:若目标文件已存在,复制前提示确认是否覆盖。
    • -r:递归复制目录(复制目录必须用此参数,否则仅复制目录名)。
    • -v:显示复制过程(如 “‘a.txt’ -> ‘dir/a.txt’”)。
  3. 代码案例:
# 复制"file.txt"到"backup"目录
cp file.txt backup/# 递归复制"docs"目录到"archive"目录(若archive不存在则创建)
cp -r docs/ archive/

mv - 移动或重命名文件或目录

  1. 作用说明:可移动文件 / 目录到新位置,也可直接重命名(目标位置与原位置同目录时)。
  2. 参数:
    • -i:目标文件存在时提示确认覆盖。
    • -v:显示移动 / 重命名过程。
    • -f:强制操作(覆盖时不提示)。
  3. 代码案例:
# 将"oldname.txt"重命名为"newname.txt"
mv oldname.txt newname.txt# 移动"data.csv"到"docs/data"目录(若data目录不存在则提示错误)
mv data.csv docs/data/


文件内容查看

cat - 查看文件内容

  1. 作用说明:一次性显示文件全部内容(适合短文件),也可合并多个文件内容。
  2. 参数:
    • -n:显示内容时为每行添加行号(包括空行)。
    • -b:仅为非空行添加行号。
    • -s:压缩连续空行为一个空行。
  3. 代码案例:
# 查看"readme.txt"的全部内容
cat readme.txt# 查看"log.txt"并为每行添加行号
cat -n log.txt

tail - 显示文件末尾内容

  1. 作用说明:用于显示文件的末尾内容,默认显示最后 10 行,适合实时监控日志文件的新增内容。
  2. 参数:
    • -n 行数:指定显示的行数(如-n 20显示最后 20 行)。
    • -f:实时监控文件变化,新增内容会自动显示(常用于监控日志)。
    • -F:类似-f,但会追踪文件重命名或创建(如日志轮询场景)。
  3. 代码案例:
# 显示access.log的最后20行
tail -n 20 access.log# 实时监控error.log的新增内容(按Ctrl+C停止)
tail -f error.log# 监控可能被轮询的日志文件(自动追踪新生成的同名文件)
tail -F app.log

head - 显示文件开头内容

  1. 作用说明:用于显示文件的开头内容,默认显示前 10 行,快速预览大文件的前部分内容。
  2. 参数:
    • -n 行数:指定显示的行数(如-n 5显示前 5 行)。
    • -c 字节数:指定显示的字节数(如-c 100显示前 100 字节)。
  3. 代码案例:
# 显示data.csv的前5行
head -n 5 data.csv# 显示config.ini的前200字节
head -c 200 config.ini

 more - 分页查看文件内容

  1. 作用说明:用于分页显示长文件内容(按屏展示,支持翻页)。
  2. 参数:
    • -d:显示提示信息 “[按空格继续,q 退出]”。
    • -p:显示前先清屏。
    • 操作键:空格(下一页)、Enter(下一行)、q(退出)。
  3. 代码案例:
# 分页查看长文件"large_file.log"(按q退出)
more large_file.log

less - 更灵活地分页查看文件内容

  1. 作用说明:分页查看文件内容,支持向前 / 向后翻页、搜索、跳转等高级操作,适合查看大型文件。
  2. 参数:
    • -N:显示行号。
    • -i:搜索时忽略大小写。
    • -S:单行显示(不自动换行,适合查看长行)。
    • 操作键:
      • 空格:下一页
      • b:上一页
      • / 关键词:向前搜索(n 下一个,N 上一个)
      • ? 关键词:向后搜索
      • G:跳转到文件末尾
      • 数字 G:跳转到指定行(如100G到第 100 行)
      • q:退出
  3. 代码案例:
# 分页查看system.log,显示行号
less -N system.log# 查看长文本文件,单行显示防止换行
less -S long_report.txt# 打开文件并直接搜索"ERROR"(忽略大小写)
less -i +/ERROR application.log

grep - 在文件中搜索指定内容

  1. 作用说明:在文件中搜索匹配指定关键词的行,并将找到的行输出。
  2. 参数:
    • -i:忽略大小写(如grep -i "hello"匹配 Hello、HELLO 等)。
    • -n:显示匹配行的行号。
    • -r:递归搜索目录下所有文件(如grep -r "error" /var/log)。
    • -v:显示不匹配关键词的行。
  3. 代码案例:
# 在"app.log"中搜索包含"error"的行(显示行号)
grep -n "error" app.log# 递归搜索"/home/user"目录下所有文件中包含"todo"的内容(忽略大小写)
grep -ir "todo" /home/user

find - 查找文件或目录

  1. 作用说明:在指定目录下按条件(文件名、大小、时间等)查找文件或目录。
  2. 参数:
    • -name "模式":按文件名查找(支持通配符,如*.txt)。
    • -type f:仅查找文件(-type d 仅查找目录)。
    • -size +10M:查找大小大于 10MB 的文件(-size -1k 查找小于 1KB 的文件)。
    • -mtime -7:查找 7 天内修改过的文件(+30 查找 30 天前修改的文件)。
  3. 代码案例:
# 在当前目录下查找所有扩展名为".sh"的文件
find . -type f -name "*.sh"# 在"/var/log"目录下查找7天内修改过的大于100MB的文件
find /var/log -type f -mtime -7 -size +100M


用户和权限管理命令

chmod - 修改文件或目录权限

  1. 作用说明:修改文件 / 目录的访问权限(读 r、写 w、执行 x,对应所有者、所属组、其他用户)。
  2. 参数:
    • 数字模式:用 3 位数字表示权限(r=4,w=2,x=1),如 755 表示所有者 rwx、组和其他 rx。
    • 符号模式:u(所有者)、g(组)、o(其他)、a(所有)结合 +(加权限)、-(减权限)、=(设权限),如u+x给所有者加执行权。
    • -R:递归修改目录及子内容的权限。
  • 777rwxrwxrwx,意味着文件所有者所属用户组以及其他用户都具备读取、写入和执行的权限。
  • 755rwxr-xr-x,即文件所有者拥有读取、写入和执行权限,而所属用户组和其他用户只有读取和执行权限。
  1. 代码案例:
# 用数字模式设置"script.sh"权限为所有者rwx,组和其他rx(755)
chmod 755 script.sh# 用符号模式取消"file.txt"其他用户的写权限
chmod o-w file.txt

chown - 修改文件或目录的所有者

  1. 作用说明:修改文件 / 目录的所有者(可同时修改所属组)。
  2. 参数:
    • -R:递归修改目录及子内容的所有者 / 组。
    • 格式:chown 用户名:组名 目标(如chown user:group file同时改所有者和组)。
  3. 代码案例:
# 将"docs"目录的所有者改为"user1"
chown user1 docs# 递归将"data"目录及内容的所有者改为"user2",所属组改为"dev"
chown -R user2:dev data/

useradd - 创建新用户

  1. 作用说明:用于创建新的系统用户,需 root 权限(普通用户需用sudo)。创建时可指定用户主目录、所属组、默认 shell 等属性,默认不自动创建主目录(需显式指定参数)。
  2. 参数:
    • -m:自动创建用户主目录(默认路径为/home/用户名)。
    • -g 组名 / 组 ID:指定用户的初始所属组(主组),需提前存在。
    • -G 组名 1, 组名 2:指定用户的附加组(可多个,用逗号分隔)。
    • -s shell 路径:指定用户默认登录 shell(如/bin/bash/bin/sh,默认通常为/bin/bash)。
    • -u UID:指定用户的 UID(用户 ID),需为未被占用的数字(0-65535,0 为 root)。
    • -c "描述":添加用户描述信息(如用户全名或备注)。
  3. 代码案例:
# 创建用户"zhangsan",自动创建主目录,默认shell为bash
sudo useradd -m -s /bin/bash zhangsan# 创建用户"lisi",主组为"dev",附加组为"admin"和"test"
sudo useradd -m -g dev -G admin,test lisi# 创建用户"wangwu",指定UID为10086,描述为"临时测试用户"
sudo useradd -m -u 10086 -c "临时测试用户" wangwu

passwd - 修改用户密码

  1. 作用说明:用于修改用户密码。普通用户可直接修改自己的密码(需验证当前密码);root 用户可修改任意用户的密码(无需验证原密码),还可锁定 / 解锁用户密码。
  2. 参数:
    • 无参数:修改当前登录用户的密码。
    • 用户名:root 用户修改指定用户的密码(如passwd zhangsan)。
    • -l 用户名:锁定用户(禁止登录,密码被加密存储为不可用状态)。
    • -u 用户名:解锁被锁定的用户。
    • -d 用户名:删除用户密码(用户登录无需密码,不推荐)。
    • -e 用户名:强制用户下次登录时必须修改密码。
  3. 代码案例:
# 普通用户修改自己的密码(需先输入当前密码,再输入新密码)
passwd# root用户修改"zhangsan"的密码(直接设置新密码,无需原密码)
sudo passwd zhangsan
# 执行后按提示输入新密码并确认# 锁定用户"lisi"(禁止其登录系统)
sudo passwd -l lisi# 解锁用户"lisi"(恢复登录权限)
sudo passwd -u lisi# 强制"wangwu"下次登录必须修改密码
sudo passwd -e wangwu

su 命令(切换用户,switch user)

功能:切换到指定用户,需要输入目标用户的密码(若切换到 root,需 root 密码)。
常用用法

  • su 用户名:切换到指定用户,但不加载该用户的完整环境变量(如主目录的配置文件)。
  • su - 用户名(推荐):切换到指定用户并加载其完整环境变量(模拟 “登录” 该用户,环境更彻底)。
  • 若不指定用户名,默认切换到 root 用户(管理员)。

示例:

# 切换到普通用户 user1(需输入 user1 的密码)
su - user1  # 切换到 root 用户(需输入 root 密码,推荐用 - 加载完整环境)
su -  # 从当前用户退出,回到上一个用户(如从 root 退回普通用户)
exit  # 或按 Ctrl+D

sudo -i 或 sudo su(临时切换到 root,需 sudo 权限)

功能:通过 sudo 临时获取 root 权限并切换到 root 用户,需输入当前用户的密码(而非 root 密码),前提是当前用户在 sudoers 配置文件中有权限(通常是加入 sudo 组的用户)。

示例:

# 切换到 root 用户(需当前用户有 sudo 权限,输入当前用户密码)
sudo -i  # 等效命令(先通过 sudo 获取权限,再切换到 root)
sudo su -  # 退出 root,回到原用户
exit

核心区别:

命令适用场景密码要求环境变量加载
su - 用户名切换到任意用户(包括 root)目标用户的密码完整加载目标用户环境
sudo -i切换到 root(需 sudo 权限)当前用户的密码加载 root 用户完整环境


压缩与归档命令

tar - 打包压缩文件

  1. 作用说明:将多个文件或目录打包成一个文件,也可以对打包后的文件进行压缩或解压缩操作。
  2. 参数:
    • -c:创建新的打包文件。
    • -x:从打包文件中提取文件。
    • -v:显示打包或解包的详细过程。
    • -f 文件名:指定打包文件的名称。
    • -z:使用 gzip 压缩或解压缩打包文件,与 gzip 结合使用。
  3. 代码案例:
# 将file1.txt、file2.txt和dir目录打包成files.tar文件,并显示详细过程
tar -cvf files.tar file1.txt file2.txt dir/# 将file1.txt和file2.txt打包并使用gzip压缩成files.tar.gz文件
tar -zcvf files.tar.gz file1.txt file2.txt

gzip - 压缩或解压缩文件

  1. 作用说明:对文件进行压缩或解压缩,压缩后的文件扩展名为.gz。
  2. 参数:
    • -d:解压缩被 gzip 压缩的文件。
    • -r:递归压缩目录下的所有文件。
    • -v:显示压缩或解压缩的详细信息。
  3. 代码案例:
# 将file.txt文件压缩成file.txt.gz文件
gzip file.txt# 将file.txt.gz文件解压缩为file.txt文件
gzip -d file.txt.gz

zip - 创建压缩文件

  1. 作用说明:用于创建 ZIP 格式的压缩文件,支持压缩单个文件或目录,可设置压缩级别、递归处理子目录等,兼容 Windows、macOS 等多平台。
  2. 参数:
    • -r:递归压缩目录及其所有子目录和文件(压缩目录必须用此参数)。
    • -q:安静模式,不显示压缩过程信息。
    • -9:最高压缩比(数字 0-9,0 为存储模式,9 为最高压缩)。
    • -d:从已有的 ZIP 文件中删除指定文件。
    • -x "文件":排除特定文件(如-x "*.log"排除所有.log 文件)。
  3. 代码案例:
# 压缩单个文件test.txt到archive.zip
zip archive.zip test.txt# 递归压缩目录docs及其所有内容到docs.zip
zip -r docs.zip docs/# 压缩目录并排除所有临时文件和log文件
zip -r project.zip project/ -x "*.tmp" "*.log"# 添加新文件到已有的ZIP文件
zip archive.zip newfile.txt# 删除ZIP文件中的oldfile.txt
zip -d archive.zip oldfile.txt

unzip - 解压 ZIP 文件

  1. 作用说明:用于解压 ZIP 格式的压缩文件,可指定解压目标路径、覆盖选项等,支持处理带密码保护的 ZIP 文件。
  2. 参数:
    • -d 目录:指定解压目标目录(如不存在则自动创建)。
    • -o:强制覆盖已存在的文件,不提示确认。
    • -q:安静模式,不显示解压过程信息。
    • -v:查看 ZIP 文件内容列表(不解压)。
    • -P 密码:用于解压加密的 ZIP 文件(不推荐在命令行明文输入密码)。
  3. 代码案例:
# 将archive.zip解压到当前目录
unzip archive.zip# 将docs.zip解压到/tmp目录
unzip docs.zip -d /tmp# 查看project.zip的内容列表
unzip -v project.zip# 强制覆盖解压(不提示确认)
unzip -o backup.zip# 解压加密的ZIP文件(会提示输入密码)
unzip secure.zip
# 或使用-P参数(明文密码,不推荐)
unzip -P mypassword secure.zip


 网络操作命令

ifconfig - 配置网络接口

  1. 作用说明:配置和显示网络接口的信息,如 IP 地址、子网掩码、MAC 地址等,也可用于启用或禁用网络接口。
  2. 参数:
    • 接口名 up:启用指定的网络接口。
    • 接口名 down:禁用指定的网络接口。
    • 接口名 IP 地址:为指定的网络接口设置 IP 地址。
  3. 代码案例:
# 显示eth0网络接口的信息
ifconfig eth0# 为eth0网络接口设置IP地址为192.168.1.100
ifconfig eth0 192.168.1.100

ping - 测试网络连接

  1. 作用说明:测试与目标主机的网络连接是否通畅,通过发送 ICMP 回声请求包并接收回声应答包来判断。
  2. 参数:
    • -c 次数:指定发送回声请求包的次数,默认会一直发送。
    • -s 字节数:指定发送的回声请求包的数据部分的大小。
    • -i 间隔秒数:指定发送两个回声请求包之间的间隔时间,默认是 1 秒。
  3. 代码案例:
# 测试与百度服务器的网络连接,默认一直发送请求包,按Ctrl+C停止
ping www.baidu.com# 向192.168.1.1发送4个回声请求包进行网络连接测试
ping -c 4 192.168.1.1

其他

# ping - 测试网络连通性
ping www.google.com    # 测试与Google服务器的连通性# ifconfig - 显示网络接口信息(部分系统已被ip替代)
ifconfig eth0          # 显示eth0网络接口信息# ip - 网络配置工具(较新系统推荐)
ip addr show           # 显示所有网络接口信息# netstat - 显示网络连接、路由表等
netstat -tulpn         # 显示所有监听的TCP和UDP端口及对应进程# curl - 传输URL数据
curl https://example.com  # 获取网页内容
curl -O file.zip          # 下载文件# wget - 非交互式网络下载工具
wget https://example.com/file.zip  # 下载文件


 


进程管理命令

ps - 查看进程状态

  1. 作用说明:查看系统当前进程的快照(静态信息)。
  2. 参数:
    • -e:显示所有进程(系统中所有用户的进程)。
    • -f:以全格式显示(包含 PID、PPID、UID、命令等)。
    • -u 用户名:显示指定用户的进程(如ps -u user)。
    • -aux:常用组合,显示所有进程的详细信息(BSD 风格)。
  3. 代码案例:
# 查看所有进程的详细信息(常用)
ps aux# 查看用户"user"的进程(全格式)
ps -f -u user

top - 实时显示进程动态

  1. 作用说明:实时动态监控进程(默认 3 秒刷新一次),显示 CPU、内存占用等信息。
  2. 参数:
    • -d 秒数:设置刷新间隔(如top -d 5每 5 秒刷新)。
    • -p PID:仅监控指定 PID 的进程(如top -p 1234)。
    • -u 用户名:仅显示指定用户的进程。
    • 操作键:q(退出)、k(终止进程,需输入 PID)、P(按 CPU 使用率排序)、M(按内存使用率排序)。
  3. 代码案例:
# 实时监控进程(默认刷新)
top# 每10秒刷新一次,仅监控PID为1234的进程
top -d 10 -p 1234

kill - 终止进程

  1. 作用说明:向指定进程发送信号(默认发送 SIGTERM 信号),用于终止或控制进程。常见场景包括结束无响应程序、优雅关闭服务或强制终止顽固进程。
  2. 参数:
    • - 信号:指定要发送的信号(可用信号编号或名称)。
      • -15/SIGTERM:默认信号,请求进程正常终止(允许清理资源)。
      • -9/SIGKILL:强制终止(不可被忽略或捕获,可能导致数据丢失)。
      • -1/SIGHUP:重启进程(常用于重载配置文件)。
      • -2/SIGINT:等同于 Ctrl+C,中断进程。
    • PID:目标进程的 ID(可通过pstoppgrep获取)。
  3. 代码案例:
# 正常终止PID为1234的进程(发送SIGTERM信号)
kill 1234# 强制终止PID为5678的进程(发送SIGKILL信号)
kill -9 5678# 重启Apache服务(发送SIGHUP信号)
kill -1 $(pgrep httpd)# 终止所有名为"chrome"的进程(结合pgrep获取PID)
kill $(pgrep chrome)# 强制终止所有用户"test"的进程
kill -9 $(ps -u test -o pid=)


系统信息:

表格

命令详细说明示例
uname -a显示系统内核及硬件相关的完整信息,包括内核名称、主机名、内核版本号、内核发布号、硬件架构(如 x86_64)、处理器类型、操作系统类型等。uname -a
hostname显示当前系统的主机名;若需修改主机名,可使用hostname 新主机名(临时生效,永久修改需配置对应系统文件)。hostname
uptime显示系统从开机到当前的运行时长(格式:时:分),当前登录用户数,以及 1 分钟、5 分钟、15 分钟内的系统平均负载(反映 CPU 繁忙程度)。uptime
top/htop实时动态监控系统资源使用情况,包括进程的 CPU 占用率、内存占用、运行状态等;支持按资源占用排序(如按 CPU / 内存)。htop 是 top 的增强版,提供更友好的交互界面和更多功能(如鼠标操作)。top
vmstat报告系统整体统计信息,包括虚拟内存使用、进程状态(运行 / 阻塞)、CPU 活动(用户态 / 系统态 / 空闲时间)、I/O 读写等;示例中1 5表示每隔 1 秒输出 1 次,共输出 5 次。vmstat 1 5
free -h显示系统内存使用详情,包括物理内存(total/used/free)、交换内存(swap)、缓冲区(buffers)和缓存(cache)的使用量;-h参数以人类可读单位(GB/MB)显示,更直观。free -h
df -h查看所有挂载的文件系统的磁盘空间使用情况,包括总容量、已用空间、可用空间及挂载点;-h参数以人类可读单位显示,示例可指定挂载点(如df -h /)查看根目录空间。df -h
du -sh *统计当前目录下所有文件 / 目录的磁盘占用量(disk usage);-s表示只显示总和,-h以人类可读单位显示;示例中Documents/用于查看指定目录的大小。du -sh Documents/
arch显示当前系统的硬件架构类型,如 x86_64(64 位 x86)、arm64(64 位 ARM)、i386(32 位 x86)等,常用于判断软件兼容性。arch
who显示当前登录到系统的用户信息,包括用户名、登录终端(如 tty1、pts/0)、登录时间,以及远程登录的主机 IP(若通过 SSH 等远程连接)。who
date显示或设置系统当前日期和时间;支持自定义格式(通过+格式符),示例"+%Y-%m-%d %H:%M:%S"表示按 “年 - 月 - 日 时:分: 秒” 显示。date "+%Y-%m-%d %H:%M:%S"
cal显示日历,默认显示当前月份;可指定参数显示特定年份(如cal 2025显示 2025 年全年)或月份(如cal 10 2025显示 2025 年 10 月)。cal 2025


文件内容处理命令

sort - 排序文本内容

  1. 作用说明:对文本文件或标准输入进行排序,按行处理,默认按 ASCII 码升序排列。支持数字、日期等特殊排序规则。
  2. 参数:
    • -n:按数字大小排序(而非字符串)。
    • -r:降序排列(默认升序)。
    • -k 字段号:按指定字段排序(字段以制表符或空格分隔)。
    • -t 分隔符:指定字段分隔符(如-t,以逗号分隔)。
    • -u:去重(仅保留唯一行,需先排序)。
  3. 代码案例:
# 对numbers.txt按数字升序排序
sort -n numbers.txt# 对passwd文件按第3个字段(UID)降序排序
sort -t: -k3 -r /etc/passwd# 对data.csv按第2列(字符串)升序排序并去重
sort -t, -k2 -u data.csv# 合并并排序两个文件
sort file1.txt file2.txt > merged.txt

cut - 按列提取文本

  1. 作用说明:从文本行中提取指定字段(列),支持按字符、字节或分隔符分割。常用于处理结构化文本(如 CSV、TSV)。
  2. 参数:
    • -d 分隔符:指定字段分隔符(如-d,表示逗号分隔)。
    • -f 字段号:指定要提取的字段(如-f1,3表示第 1 和第 3 字段)。
    • -c 字符范围:按字符位置提取(如-c1-5表示前 5 个字符)。
  3. 代码案例:
# 提取passwd文件的用户名(第1字段,以冒号分隔)
cut -d: -f1 /etc/passwd# 提取data.csv的第2、4列
cut -d, -f2,4 data.csv# 提取每行的前10个字符
cut -c1-10 log.txt# 组合使用:提取第3列并排序
cut -d, -f3 data.csv | sort

wc - 统计文件行数、字数、字节数

  1. 作用说明:统计文件的行数(lines)、单词数(words)、字节数(bytes),默认输出三个统计值。
  2. 参数:
    • -l:仅显示行数。
    • -w:仅显示单词数。
    • -c:仅显示字节数。
    • -m:仅显示字符数(与-c不同,多字节字符会计为多个字符)。
  3. 代码案例:
# 统计readme.txt的行数、单词数和字节数
wc readme.txt
# 输出示例:  24  180 1024 readme.txt# 仅统计行数
wc -l access.log# 统计多个文件的总行数
wc -l file1.txt file2.txt
# 输出示例:
#   10 file1.txt
#   20 file2.txt
#   30 total# 统计当前目录下所有.sh文件的总行数
wc -l *.sh | tail -n 1

awk - 强大的文本处理工具

  1. 作用说明:一种编程语言,专门用于处理结构化文本。按行读取输入,将每行分割为字段,支持条件判断、循环、函数等,适合复杂的数据处理和报表生成。
  2. 基本语法:
awk '条件 {动作}' 文件
  • 常用内置变量:
    • $0:当前整行内容。
    • $1,$2...:第 1、2... 个字段(默认以空格或制表符分隔)。
    • NF:当前行的字段数。
    • NR:当前处理的行号。
  1. 代码案例:
# 提取passwd文件的用户名和UID(第1和第3字段)
awk -F: '{print $1, $3}' /etc/passwd# 计算data.csv第2列的总和(假设为数字)
awk -F, '{sum += $2} END {print sum}' data.csv# 筛选出分数大于80的学生(第3列>80)
awk -F, '$3 > 80 {print $1, $3}' scores.csv# 统计每个用户的进程数(ps输出的第1列)
ps aux | awk '{count[$1]++} END {for(user in count) print user, count[user]}'# 格式化输出:显示字段宽度对齐的表格
awk -F: '{printf "%-15s %-5d\n", $1, $3}' /etc/passwd

高级用法

# 复杂条件:同时满足多个条件
awk -F, '$2 > 10 && $3 < 20 {print $1}' data.csv# 内置函数:字符串处理
awk '{print toupper($1)}' names.txt  # 转换为大写# 自定义函数:计算平均值
awk -F, '{sum+=$2; count++} END {print "Average:", sum/count}' data.csv

sed - 流编辑器(Stream Editor)

作用:用于文本替换、插入、删除等操作,支持正则表达式。
常用参数

  • -i:直接修改文件内容(谨慎使用)。
  • -e:执行多个编辑命令。
  • -n:只输出经过处理的行。

示例

# 替换文件中的字符串(将 "old" 替换为 "new")
sed 's/old/new/g' file.txt# 删除所有空行
sed '/^$/d' file.txt# 在第 5 行后插入内容
sed '5a 插入的内容' file.txt# 直接修改文件(添加 -i 参数)
sed -i 's/error/warning/g' log.txt

tr - 转换或删除字符(Translate)

作用:对标准输入进行字符替换、删除或压缩。
常用参数

  • -d:删除指定字符。
  • -s:压缩重复字符。

示例

# 将小写转换为大写
echo "hello" | tr 'a-z' 'A-Z'  # 输出 "HELLO"# 删除所有数字
echo "abc123" | tr -d '0-9'  # 输出 "abc"# 压缩连续空格为单个空格
echo "a   b   c" | tr -s ' '  # 输出 "a b c"

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

相关文章:

  • 【大语言模型入门】—— Transformer 如何工作:Transformer 架构的详细探索
  • 【C语言】指针深度剖析(一)
  • LeetCode 11 - 盛最多水的容器
  • VUE进阶案例
  • RabbitMQ 消息持久化的三大支柱 (With Spring Boot)
  • Hyperchain账本数据存储机制详解
  • C++:stack与queue的使用
  • AI应用:电路板设计
  • [mcp: JSON-RPC 2.0 规范]
  • Excel文件批量加密工具
  • 【LeetCode 随笔】
  • flask使用celery通过数据库定时
  • 【C语言进阶】题目练习
  • 深入理解 Qt 元对象系统 (Meta-Object System)
  • 最新优茗导航系统源码/全开源版本/精美UI/带后台/附教程
  • Linux定时器和时间管理源码相关总结
  • 进阶向:Manus AI与多语言手写识别
  • Python 程序设计讲义(27):字符串的用法——字符串的常用操作
  • 快速了解逻辑回归
  • Kubernetes自动扩容方案
  • Linux 系统启动与 GRUB2 核心操作指南
  • BreachForums 黑客论坛强势回归
  • 【数据结构】用堆实现排序
  • Typecho handsome新增评论区QQ,抖音,b站等表情包
  • python基础:request请求Cookie保持登录状态
  • 关于算法的一些思考
  • PyCharm插件开发与定制指南:打造个性化开发环境
  • Vulnhub napping-1.0.1靶机渗透攻略详解
  • ITIL 4 高速IT:解耦架构——构建快速迭代的技术基座
  • JDK17 新特性跟学梳理