Linux 常用命令(一)

引言

Linux 命令行是系统管理员和开发者的核心工具。掌握常用命令及其选项,能够极大提升工作效率。本文将对文件操作、查找统计、简单文本处理等高频命令进行系统梳理和详解,并附上实用示例,助你快速上手。

一、命令结构基础

一个完整的 Linux 命令通常由以下部分构成:

命令 [选项] [参数/对象]
  • 命令:要执行的操作,如 ls, cp
  • 选项:用于修改命令行为的标志。
    • 长选项:以 -- 开头,如 --all
    • 短选项:以 - 开头,如 -a
    • 多个短选项可以组合使用且顺序不分先后,例如 -r-f 可以组合为 -rf
  • 参数/对象:命令操作的目标,如文件名、目录路径。

二、管道符号 |

命令1  |  命令2 

把前一条命令的标准输出作为后一条命令的标准输入,只传文本不传参数

命令1  | xargs 命令2 

把前一条命令的标准输出作为后一条命令的参数

扩展: cat file | xargs : 将多行文本以一行输出,分隔符为空格。

三、文件与目录操作

ls - 列出目录内容

  • ls:列出当前目录下的文件和子目录。
  • ls -a:显示所有文件,包括隐藏文件。
  • ls -l:以长格式列出详细信息,包括文件类型、权限、所有者、大小、修改时间等。其缩写为 ll
  • ll -d:显示目录本身的详细信息。
  • ll -h:以人性化格式(K, M, G)显示文件大小,需与 -l 结合使用(ls -lh)。

cd - 切换目录

  • cd /home:切换到绝对路径 /home
  • cd ~ :切换到当前用户的家目录。
  • cd ..:切换到上一级目录。
  • cd -:切换到上一次所在的目录。

pwd - 打印当前工作目录

显示当前所在目录的绝对路径。

mkdir - 创建目录

  • mkdir /test:创建名为 test 的目录。
  • mkdir -p /var/log/nginx.log:递归创建多级目录 a/b/c
  • mkdir dir1 dir2 dir3:在当前目录下创建多个目录。
  • mkdir /var/log/{dir1,dir2}.log:在指定路径下创建多个目录。

rm - 删除文件或目录

  • rm file:删除文件 file
  • rm -r dir:递归删除目录 file 及其所有内容。
  • rm -f file:强制删除,忽略不存在的文件和不提示确认。
  • rm -rf dir(谨慎使用) 强制递归删除目录,不可恢复。

cp - 复制

  • cp a.txt /bin:将文件 a.txt 复制到 /bin 目录。
  • cp a.txt .:将文件 a.txt 复制到当前目录。
  • cp a.txt b.txt:复制 a.txt 到当前目录并重命名为 b.txt
  • cp -r dir1 dir2:递归复制目录 dir1dir2
  • cp -r dir1 dir2 dir3:将目录 dir1dir2 复制到 dir3 中。

mv - 移动或重命名

  • mv a.txt b.txt:将文件 a.txt 重命名为 b.txt
  • mv a.txt /dir:将文件 a.txt 移动到 /dir 目录。
  • mv a.txt /dir/b.txt:移动文件并重命名。
  • mv /tmp /dir:文件夹移动,移动关键是存在dir目录
  • mv /tmp /tmp2:文件夹重命名,重命名的关键是不存在tmp2目录

touch - 创建空文件或更新时间戳

  • touch log.txt:如果 log.txt 不存在则创建空文件;如果存在,则更新其访问和修改时间戳。

cat - 连接并显示文件

  • cat info.txt:显示 info.txt 的全部内容。
  • cat -n info.txt:显示内容并显示行号(包括空行)。
  • cat split_* > merge.txt:将所有以 split_ 开头的文件内容合并到 merge.txt。 符号>是输出重定向,后续会讲解。

more / less文件内容查看(推荐,适合中大型文件)

  • more file:分页查看文件,按空格翻页,按 q 退出。
  • less file:更强大的分页查看器,支持上下滚动、搜索等。

head / tail - 查看文件首尾

  • head -n 10 file:查看文件前10行,-n 10 可简写为 -10
  • tail -n 20 file:查看文件最后20行。
  • tail -f log:实时监控日志文件新增内容(常用于跟踪应用日志)。
  • head -8 file.txt | tail -1 利用管道符号取第8行

diff - 比较文件差异

  • diff file1 file2:展示两个文件的差异之处。
  • 应用场景:可用于最新文件与备份文件比较,查看有无修改之处,比如/etc/passwd的用户信息。

du - 查看文件占用的磁盘空间大小

  • du /usr:显示 /usr 目录下每个子目录的大小。
  • du -sh /usr-s 总结 /usr 目录的总大小,-h 以人性化单位(K, M, G)显示。

find - 查找文件

基本语法:find [路径] [匹配选项] [动作]

常用匹配选项:

  • -name pattern:按文件名查找,支持通配符,比如 *?
  • -iname pattern:不区分大小写的文件名查找。
  • -type type:按类型查找,f(文件)、d(目录)、l(符号链接)。
  • -size [+-]size[cwbkMG]:按大小查找,+ 表示大于,- 表示小于。
  • -user username:按文件所有者查找。
  • -perm mode:按文件权限查找。
  • -maxdepth n:查找的最大深度。
  • 支持逻辑操作:
    !
    -a 与(系统默认可不加)
    -o
    \( \)分组

时间参数:

  • -amin n:查找在 n 分钟内被访问过的文件。
  • -atime n:查找在 n*24 小时内被访问过的文件。
  • -mmin n:查找在 n 分钟内被修改过的文件。
  • -mtime n:查找在 n*24 小时内被修改过的文件。
    在这些参数中,n 可以是一个正数、负数或零。正数表示在指定的时间之前修改或访问过的文件,负数表示在指定的时间内修改或访问过的文件,零表示在当前时间点上修改或访问过的文件。

动作:

  • -exec command {} \;:对每个匹配到的文件执行命令,{} 代表文件集合,\; 是命令结束符
  • 示例:find /path -name "*.log" -exec rm -f {} \;
  • 替代方案:find ./ -name "*.log" | xargs rm -f

wc - 统计文本

  • wc -l file.txt:统计行数。
  • wc -w file.txt:统计单词数。
  • wc -c file.txt:统计字节数。
  • wc file.txt:同时统计行数、单词数、字节数。

> - 清空文件

  • > file.txt:快速清空文件内容。

sort - 排序

  • sort file:默认按每行首个字符的字典序排序。
  • sort -n file:按数字值排序。
  • sort -r file:逆序(从上往下递减)排序。
  • sort -k 2 file:指定第二列为排序键。
  • sort -t “:” -k 2 file:指定 : 为列分隔符,按第二列排序。
  • 组合示例:cat file | sort -k 5 -t “:” -nr | head -5

uniq - 报告或忽略重复行

  • uniq file:压缩相邻的重复行。
  • uniq -c file:在行首显示该行重复出现的次数。
  • 注意uniq 通常需要先与 sort 结合使用,因为它只处理相邻的重复行。sort file | uniq -c

tee - 分流输出

  • tee -a file:将输入的内容同时输出到屏幕和追加到文件。
  • 示例:df -h | tee -a disk.log

split - 分割文件

  • split -l 5 file.txt -d -a 3 prefix_:按每5行分割(-l 5),并且生成文件名称使用数字后缀(-d),后缀长度为3位(-a 3),生成文件如 prefix_000
  • split -C 10 file.txt:按每块最多10个字符分割,尽量保持一行内的切割。
  • split -b 10M file.txt:按每块10MB字节分割,无视行的束缚。
  • 应用场景:处理超大文件时,提取中间部分(如100万行文件的40-50万行),headtail会效率低下,可先分割再处理。
  • 合并:参考cat

join - 关联合并文件

  • join -1 2 -2 1 file1 file2:用文件1的第2列和文件2的第1列作为关联键进行合并。

paste - 横向合并文件

  • paste file1 file2:将两个文件按行横向拼接(默认制表符分隔)。
  • paste -d “,” file1 file2:使用逗号 , 作为自定义分隔符。

总结

本文涵盖了 Linux 命令行中最核心和实用的文件、目录操作和简单文本处理命令。理解命令的“选项+参数”结构是灵活运用的关键。建议在日常工作中多练习组合使用这些命令(如 管道符号|可以连接多个命令,findxargssortuniq),以构建高效的工作流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值