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

Linux中如何用指令文件管理

文件命名规则

  • 目录也是文件类型之一
  • 在同一路径下,不允许两个不同类型文件同名

目录文件管理

本质是对目录下的文件进行增删改查操作

创建目录

命令:mkdir(make directory)

基本格式:

mkdir [-参数] 目录名

常用参数:

参数作用
-p递归创建目录(可创建多级嵌套目录),已存在目录不会被覆盖
-v显示创建过程

特殊符号应用:

mkdir t1 t2 # 同时创建t1和t2目录 mkdir {1,2,3} # 创建1、2、3目录 mkdir {1..3} # 创建1、2、3目录 mkdir {1..5..2} # 以步长2创建1、3、5目录 mkdir {1,2}{a} # 创建1a、2a目录 mkdir -p t1/t2 # 创建t1目录并在其中创建t2子目录 mkdir -v t1 # 显示创建t1的过程 mkdir /root/t1 # 在/root目录下创建t1目录

查看目录

命令:ls

常用通配符:

通配符作用
*匹配任意多个字符
?匹配单个字符
[]匹配括号内单个字符("-"表示范围)
[^]或[!]取反匹配括号内任意字符

示例:

ll -d # 仅查看目录 ll -d A* # 显示所有A开头的文件夹 ll -d A? # 显示除a10外的所有A开头单字符文件夹(如a1-a9) ll -d A[123] # 显示a1、a2、a3目录 ll -d A[1-5] # 显示a1到a5目录 ll -d A[^1-5] # 显示a6到a10目录

命令:tree(树形结构显示)

格式:

tree [-参数] [路径]

常用参数:

参数作用
-a显示所有文件(包括隐藏文件)
-f显示完整路径
-d仅显示目录
-L设置显示深度

示例:

tree -L 2 /root # 显示/root目录下2层结构

命令:du(统计目录磁盘使用情况)

常用参数:

参数作用
-a统计所有文件大小
-s仅统计指定路径大小
-h以易读格式显示

删除目录

命令:rm

格式:

rm [-参数] 文件名

常用参数:

参数作用
-r递归删除目录及内容
-f强制删除(不提示)

示例:

rm 1 # 删除文件1 rm -r 1 # 删除目录1(带确认提示) rm -f 1 # 强制删除文件1(不提示) rm -rf 1 # 强制递归删除目录1及内容

普通文件管理

创建文件

命令:touch

用法一:创建新文件

touch a1.c a1.txt a1.py # 创建多个文件 touch a{1..3}.txt # 创建a1.txt到a3.txt touch a{1..3}{a,b} # 创建1a、1b...3a、3b

用法二:更新文件时间属性

touch a1 # 更新a1文件的访问/修改时间 stat a1 # 查看文件详细信息

时间属性说明:

  • atime:最后访问时间
  • mtime:内容修改时间
  • ctime:元数据修改时间
  • btime:创建时间

命令:dd(创建定制大小文件)

格式

示例:

dd if=/dev/zero of=/root/1 count=2 bs=5M # 创建10MB文件 dd if=/dev/sr0 of=RHEL9.iso # 制作光盘映像

查看文件内容

命令:cat(适合小文件)

格式:

cat [-参数] 文件名

常用参数:

参数作用
-n显示行号(含空行)
-b显示行号(不含空行)

命令:tac(倒序显示内容)

命令:more(适合大文件)

特点:

  • 可翻页查看(回车/上下键)
  • 退出后内容保留在屏幕
  • 不支持搜索

格式:

more [-参数] 文件名

示例:

more -S 文件名 # 压缩连续空行

命令:less(改进版more)

特点:

  • 退出后内容不保留
  • 支持搜索
  • 查看到底部不会自动退出

命令:head(查看文件开头)

示例:

head 文件名 # 默认显示前10行 head -2 a # 显示a文件前2行

命令:tail(查看文件结尾)

示例:

tail a # 显示a文件最后10行 tail -2 a # 显示最后2行 tail -f a # 动态监控文件变化 tail -f /var/log/messages # 实时监控日志

高级文件处理

管道操作

符号:|功能:将左侧命令输出作为右侧命令输入

示例:

tail -10 /etc/passwd | head -1 # 显示passwd倒数第10行

内容过滤

命令:grep

格式:

grep [-参数] 匹配模式 文件名

常用参数:

参数作用
-c统计匹配行数
-i忽略大小写
-n显示行号
-v反向匹配
-r递归搜索
-w整词匹配
-A/-B显示匹配行及下/上n行
-C显示匹配行及上下n行

正则表达式示例:

grep -ic a a # 统计a/A出现行数(不区分大小写) grep -cv a a # 统计不含a的行数 grep -C2 a a # 显示匹配行及上下各2行 grep ^a /etc/passwd # 查找以a开头的行 grep h$ /etc/passwd # 查找以h结尾的行 grep -n "^root" /etc/passwd # 显示以root开头的行及行号 grep ^[root] /etc/passwd # 查找以r/o/t开头的行 grep ^[^root] /etc/passwd # 查找不以r/o/t开头的行 grep -n "^$" a1 # 查找空行并显示行号 grep -n [0-9]$ /etc/passwd # 查找以数字结尾的行 grep -n [a-z]$ /etc/passwd # 查找以字母结尾的行

列操作

命令:cut

格式:

cut -d "分隔符" -f 列号 文件名

示例:

cut -d ":" -f1 /etc/passwd # 提取passwd第一列

文本替换

命令:tr

格式:

tr [-参数] 原内容 新内容

常用参数:

参数作用
-c取反操作
-d删除字符
-s压缩重复字符

示例:

cat /etc/passwd | tr a-z A-Z # 小写转大写 cat /etc/passwd | tr -d a-z # 删除所有字母 tr -s " " # 压缩连续空格为单个

排序与去重

命令:sort

格式:

sort [-参数] 文件名

常用参数:

参数作用
-f忽略大小写
-n数值排序
-r逆序排列
-u去除重复行
-t指定分隔符
-k按指定列排序

示例:

sort -t ":" -k 3 -n /etc/passwd # 按第三列数值排序

命令:uniq(去除连续重复行)

示例:实例

uniq -c A # 统计每行连续出现次数

实例运用一

  • 列出所有账号的账号名(/etc/passwd)

  • 将 /etc/passwd 中内容按照冒号隔开的第三个字符从大到小排序后输出所有内容

  • 列出 /etc/passwd 中的的 15 - 20 行内容

  • 切割出你的 IP 地址和 mac 地………

  • 切割出 /etc/passwd 最后一个字段并进行重复内容的重复次数统计

编辑普通文件

数据流与重定向

  • 标准输入 (0):键盘输入
  • 标准输出 (1):默认将指令执行结果输出到屏幕
  • 标准错误输出 (2):指令执行失败时输出到屏幕
重定向符号
  • 输出重定向:>>>
  • 输入重定向:<<<
使用方法
命令格式功能说明示例
指令 > A指令 1>A覆盖方式写入文件A(不存在则创建)date 1> A.txt
指令 >> A追加方式写入文件Adate 1>> A.txt
指令 2>A将错误信息写入文件Als /home/ /aaa 2>A.txt
指令 2>/dev/null丢弃错误信息ls /home/ /aaa 2>/dev/null
指令 &>A将正确和错误信息写入文件Als /home/ /aaa &>A.txt
指令 <A将A内容作为指令输入cat < A.txt
指令 <<结束标识符读取输入直到指定结束标识cat >A.txt << end

echo 命令

输出字符串或变量值到屏幕

语法格式
echo "字符串" echo "$变量"
示例
echo "hello world" aa="hello aa"; echo $aa num=1000; echo $num echo $SHELL echo hello > a1.txt echo world >> a1.txt
文件合并示例
touch t1.txt t2.txt t3.txt echo hello > t1.txt echo world > t2.txt cat t1.txt t2.txt > t3.txt

tee 命令

将输出保存到文件同时显示在屏幕上

语法格式
tee [-参数] 文件名 tee -a # 追加模式
示例
cat /etc/passwd | tee mypasswd_2 # 显示并保存

vi/vim 编辑器

三种模式

  1. 命令模式:阅读模式,可移动光标、删除、复制、粘贴
  2. 输入模式:编辑模式
  3. 末行模式:保存、退出、查找

模式切换

  • 命令→输入:i
  • 输入→命令:ESC
  • 命令→末行::/
  • 末行→命令:ESC

命令模式快捷键

按键功能
↑↓←→移动光标
w/b向后/前移动单词
^/$行首/行尾
gg/G首行/尾行
ngg/nG跳转到第n行
dd删除当前行
ndd删除n行
d^/d$删除到行首/行尾
yy复制当前行
nyy复制n行
p/P粘贴到下一行/上一行
u撤销

末行模式命令

命令功能
/word查找word
:s/old/new替换当前行第一个old
:s/old/new/g替换当前行所有old
:n1,n2s/old/new/g替换n1-n2行所有old
:%s/old/new/g替换全文old
:w保存
:q退出
:wq保存退出
:r /home/file读取文件内容
:set nu显示行号
:n1,n2d删除n1-n2行

vim 配置文件

/etc/vimrc~/.vimrc可配置:

set hlsearch # 高亮搜索结果 set backspace=2 # 完整退格功能 set autoindent # 自动缩进 set tabstop=4 # Tab显示为4空格 set mouse=a # 启用鼠标 set nu # 显示行号 syntax on # 语法高亮

链接文件管理

硬链接

  • 与源文件共享inode
  • 不能跨文件系统
  • 不能链接目录
ln 源文件 链接文件 # 创建硬链接

软链接

  • 类似Windows快捷方式
  • 可跨文件系统
  • 可链接目录
ln -s 源文件 链接文件 # 创建软链接

区别对比

特性硬链接软链接
inode相同不同
源文件删除不受影响失效
目录链接不支持支持
跨文件系统不支持支持
大小与源文件相同路径名长度

查看文件属性

stat 命令

显示文件属性信息,包括大小、inode、软硬链接等

stat a1 # 查看文件属性 # 输出示例: File: a1 Size: 4013 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 19873143 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2025-12-27 21:06:54.598846295 +0800 Modify: 2025-12-27 21:05:59.590568080 +0800 Change: 2025-12-27 21:05:59.590568080 +0800 Birth: 2025-12-27 18:33:09.713916575 +0800

时间属性说明:

  • atime:最后访问/读取时间
  • mtime:内容修改时间
  • ctime:元数据修改时间
  • btime:文件创建时间
刷新 atime
stat a1 cat a1 # cat 访问不会刷新 atime # 因默认 relatime 挂载选项,减少磁盘 I/O 开销 # relatime 刷新规则: # 1. 距上次 atime 超过 24 小时 # 2. mtime 或 ctime 比 atime 新 mount -o remount,strictatime / # 临时开启严格 atime mount -o remount,relatime / # 恢复默认设置
刷新 mtime
echo 1 >> a1 # 追加内容刷新 mtime # 注意:vim 编辑会更新所有时间属性
刷新 ctime

通过可视化界面重命名文件

wc 命令

统计行数、字数、字节数

格式:

wc -参数 文件名

常用参数:

  • -l:只显示行数
  • -w:只显示单词数
  • -c:只显示字符数

示例:

wc /etc/passwd # 输出:37 90 2097 /etc/passwd # 分别表示:行数 单词数 字节数 # 统计可登录用户数 grep /bin/bash /etc/passwd | wc -l

文件操作

cp 命令

复制文件

格式:

cp -参数 源文件 目标文件

常用参数:

  • -a:保留所有属性(递归处理目录,保留链接)
  • -d:保留链接
  • -f:强制覆盖
  • -i:提示确认覆盖
  • -r:递归复制目录

示例:

# 复制文件 touch t1.txt cp t1.txt / # 复制到根目录 cp t1.txt /t2.txt # 复制并重命名 # 复制目录 mkdir p1 cp -r p1/ / # 复制目录到根目录 cp -r p1/ /p2 # 复制并重命名

mv 命令

移动/重命名文件

格式:

mv 源文件 目标文件

示例:

mv A1 A2 # 移动并可能重命名 mv A1 A2 # 同目录下操作即为重命名

文件查找

whereis 命令

查找可执行文件路径及说明文档

whereis cat

which 命令

查找可执行文件路径

which cat

find 命令

高级文件搜索

基本格式:

find 路径 -选项 条件 [操作]
按文件名搜索
find / -name passwd # 精确匹配 find / -iname passwd # 忽略大小写 find / -inum 128 # 按 inode 号 find / -name "?a*" | wc -l
按大小搜索
find / -size -1k # 小于 1KB find / -size -empty # 空文件
按时间搜索
find / -atime -10 # 10天内访问过的 find / -newer A.txt # 比 A.txt 更新的文件
按权限搜索
find / -perm 644 # 精确匹配 find / -perm -644 # 包含匹配 find / -perm /644 # 任意匹配
按所属者搜索
find / -user aya find / -uid 128 find / -nouser # 查找无主文件
按类型搜索
find /dev -type b # 块设备文件 find ~ -type d # 目录 find /root -type f -size +1k # 普通文件且大于1KB
逻辑运算
find / -size +10M -a -size -15M # AND find / -name "aa*" -o -name "bb*" # OR find / -name "b??" -not -user root # NOT
exec 操作
# 复制找到的文件 find / -name "a??" -exec cp -a {} /root/test/ \; # 保存结果到文件 find / -name "a??" > /root/test/a.txt

文件压缩与归档

压缩和解压

zip 命令

格式
zip [参数] 压缩后文件名 被压缩文件

参数作用
-A压缩率(1最低,9最高,默认6)
-r压缩目录
-m移动文件到压缩包(不保留源文件)
-d删除压缩包中的文件
-x压缩时排除指定文件

示例

# 压缩文件 zip A.zip A.txt zip A.zip 1.txt 2.txt # 压缩目录(压缩等级1) mkdir a zip -r1 A.zip a/ du -hs A.zip # 查看压缩文件大小 # 管理压缩包内容 zip -m a.zip a3 # 添加文件并删除源文件 zip -d a.zip a1 # 删除压缩包中的文件 zip a.zip a? -x a3 # 压缩文件时排除a3

unzip 命令

格式
unzip [参数] 压缩包名

参数作用
-d解压到指定目录
-v查看压缩包内容(不解压)

示例

unzip -v a.zip # 查看压缩包内容 unzip a.zip -d a # 解压到指定目录 # 使用绝对路径 touch b1 zip b.zip /root/b1 mkdir c unzip b.zip -d c/ tree /root/c/

xz/unxz 命令

特点

  • 默认不保留源文件
  • 不支持直接压缩目录
  • 压缩效率:xz > bzip2 > gzip

格式
xz [参数] 被压缩文件

参数作用
-c标准输出(可重定向保留源文件)
-k保留源文件
-v显示详细过程
-d解压缩(等同于unxz)
-r递归压缩目录下的文件

压缩文件查看命令

  • zcat:查看.gz文件内容
  • bzcat:查看.bz2文件内容
  • xzcat:查看.xz文件内容

注意:这些命令返回的是源文件内容,而zip压缩包查看显示的是文件名列表。

归档命令

tar 命令

基本格式
tar [参数] 打包后文件名 被打包文件

主要参数

参数作用
-c创建.tar包文件
-x释放.tar包文件
-t查看.tar包文件列表
-f指定文件名(必选)

辅助参数

参数作用
-v显示详细过程
-z使用gzip压缩(.tar.gz)
-j使用bzip2压缩(.tar.bz2)
-J使用xz压缩(.tar.xz)

操作示例

# 打包 tar cf 文件名.tar 被打包目录/文件 # 打包并压缩 tar czf 文件名.tar.gz 目录/文件 tar cjf 文件名.tar.bz2 目录/文件 tar cJf 文件名.tar.xz 目录/文件 # 释放 tar xf 文件名.tar -C 目标路径 # 释放并解压 tar xf/xzf 文件名.tar.gz -C 目标路径 tar xf/xjf 文件名.tar.bz2 -C 目标路径 tar xf/xJf 文件名.tar.xz -C 目标路径 # 查看包内容 tar tf 文件名.tar tar tzf 文件名.tar.gz tar tjf 文件名.tar.bz2 tar tJf 文件名.tar.xz

总结

  • zip 原生支持目录压缩
  • gzip/bzip2/xz 仅支持单文件压缩,需先使用tar打包

文件传输

scp 命令

Linux主机间文件传输

# 本地传输到远程主机 scp -r /root/test root@192.168.17.200:/root/ # 远程主机传输到本地 scp -r root@192.168.17.200:/root/file1 /root/test

实例运用二

  • 题目附着结果代码
1.在 root 用户的家目录下创建两个目录分别为 haha 和 hehe,复制 hehe 目录到 haha 目录并重命名为 apple。 #mkdir haha hehe | cp -r hehe haha/apple 2.将 hehe 目录移动到 apple 目录下,在 haha 目录下创建一个普通文件为 heihei.txt。 #mv hehe haha/apple/ | touch /root/haha/heihei.txt 3.在终端中显示当前系统时间,时间格式为月日时; #date "+%m %d %h" 4.将上述显示的时间保存在文件 A.txt 中; #date "+%m %d %h" > A.txt 5.用户配置/etc/passwd文件将 3,4 字段分别截取出来写入文件 UID 和文件 GID; #cut -d : -f3 /etc/passwd > UID | cut -d : -f4 /etc/passwd > GID 6、将/etc/passwd中内容按照冒号隔开的第三个字符从大到小排序后输出所有内容; #sort -t : -k 3 -rn /etc/passwd 7、列出/etc/passwd中的第20行-25行内容; #head -24 /etc/passwd | tail -5 8、切割出你的ip地址和mac地址; # ip a | grep ens160$ | tr -s " " | cut -d " " -f3 #ip a | grep ff$ | tr -s " " | cut -d " " -f3 9、通过:切割出/etc/passwd中的最后一个字段并进行重复内容的重复次数统计; #cut -d : -f7 /etc/passwd | sort | uniq | uniq -c 10、查找/var所有的日志文件(*.log)备份在自定义的日志目录/logfile下。 #find /var -name "*.log" -exec cp -a {} /logfile/ \; 11、将备份好的所有日志文件进行压缩格式为.gz 包名为all_log_backup.tar.gz。 #tar zcf all_log_backup.tar.gz /logfile/ 12、将压缩包中的文件解压到/root/log_backup目录下。 #tar zxf all_log_backup.tar.gz -C /root/log_backup
http://www.jsqmd.com/news/1007767/

相关文章:

  • 文件堆积成灾?3分钟搞定高效分类整理,2026最优工具推荐! - 品牌测评鉴赏家
  • WebPlotDigitizer:从图表图像中提取科研数据的智能助手
  • 2026年6月便携式污泥浓度计知名品牌排行榜:国产力量崛起与技术标杆深度解析 - 液体流量液位品牌推荐
  • 2026年6月长春小班型美术画室排行 - 奔跑123
  • MC68040芯片热设计实战:从热阻原理到散热方案选型
  • M68HC05指令集深度解析:从CISC架构到嵌入式实战优化
  • 【会议征稿通知 | 河海大学 沈阳工程学院支持 | JPCS出版 | EI 、Scopus稳定检索】2026年电力系统与智能计算国际学术会议(PSIC 2026)
  • 、广告配音用什么在线工具效果好?2026通通无印免费AI广告配音教程 - 科技大爆炸
  • 从C到RISC-V汇编:手把手教你用GCC编译并分析斐波那契数列的底层实现
  • 深入解析NXP Kinetis KE1xZ低功耗模式:从电源域到WFI指令实战
  • 网课视频存在哪里不占手机内存?多种实用存储方式汇总 - 品牌测评鉴赏家
  • Zenith.NET 开发札记:把 .NET 图形 API 推向现代 RHI
  • 简单三步:免费下载Book118文档并生成无水印PDF的完整指南
  • ANARCI抗体编号完整指南:3分钟学会专业抗体序列分析
  • M68HC05微控制器核心概念:从指令集到内存映射的实战解析
  • MC92604接收器配置与冗余链路设计实战解析
  • 会议视频快速转文字、提取音频!2026超好用工具实测 - 品牌测评鉴赏家
  • 如何实现本地化的实时唇语识别?5个步骤打造隐私保护的口型转文字方案
  • RI-Mamba:旋转不变状态空间模型在3D检索中的突破
  • 三个手机都在自动工作,没事干
  • Motorola Suite56并口JTAG调试器:原理、接口设计与实战排障
  • 2026年5月亲测东莞老店音响效果首推东莞洪浪汽车音响 - 资讯速览
  • 从LTE到5G NR:手把手对比分析控制信道设计演进与CORESET的灵活性优势
  • 2026年6月杭州奢侈品回收市场深度调查:多维度数据分析与诚信商家实测 - 资讯速览
  • i.MX23 BCH硬件ECC加速器:原理、编程与NAND闪存纠错实战
  • LS1046A SEC模块寄存器配置实战:从安全隔离到性能调优
  • 从‘死神经元’到稳定训练:在ResNet和Transformer里用PyTorch的LeakyReLU替代ReLU的实操指南
  • 7th class [math] 2026.10.13
  • EASY-HWID-SPOOFER实战:深入解析Windows硬件指纹修改技术原理与应用
  • 如何快速掌握网络压力测试:面向开发者的完整指南