Linux文件系统是操作系统核心组成部分,负责管理文件和目录的存储、访问与组织,熟练掌握Linux文件系统常用命令是高效管理服务器和开发环境的基础,以下从文件操作、目录操作、权限管理、文件查找、压缩与打包、磁盘空间管理等维度详细介绍常用命令及其用法。

文件操作命令
文件操作是Linux日常使用中最频繁的任务,主要包括创建、查看、编辑、复制、移动和删除文件。touch
命令用于创建空文件或更新文件时间戳,例如touch file.txt
创建新文件,touch -a file.txt
仅更新访问时间。cat
命令用于查看文件内容,cat file.txt
会直接输出全部内容,适合小文件;而less
或more
命令支持分页查看,适合大文件,例如less file.txt
可通过上下箭头翻页,按q
退出,编辑文件时,nano
适合新手,nano file.txt
提供简单文本界面;vim
功能强大,需学习基本命令,如i
进入编辑模式,wq
保存退出。
复制文件使用cp
命令,cp source.txt dest.txt
将源文件复制到目标位置,cp -r dir1 dir2
可递归复制整个目录,移动或重命名文件通过mv
命令实现,mv oldname.txt newname.txt
重命名文件,mv file.txt /path/to/dir/
将文件移动到指定目录,删除文件需谨慎使用rm
命令,rm file.txt
删除文件,rm -rf dir
强制递归删除目录(-r
递归,-f
强制),一旦删除无法恢复,建议先使用ls
确认文件路径。
目录操作命令
目录管理是文件系统组织的关键。mkdir
用于创建目录,mkdir newdir
创建单层目录,mkdir -p parent/child
可递归创建多级目录(-p
自动创建父目录)。ls
命令列出目录内容,ls
显示当前目录文件,ls -l
以长格式显示(含权限、所有者、大小等),ls -a
显示隐藏文件(以开头),ls -lh
以人类可读格式显示文件大小(如K
、M
),切换目录使用cd
,cd /var
切换到绝对路径,cd ..
返回上级目录,cd ~
进入用户主目录,cd -
返回上一次所在目录,删除目录使用rmdir
或rm
,rmdir emptydir
只能删除空目录,rm -r dir
可删除非空目录(需谨慎)。
权限管理命令
Linux通过权限位控制文件访问,分为用户(u
)、组(g
)、其他用户(o
)三类,每类有读(r
)、写(w
)、执行(x
)权限。chmod
修改权限,chmod 644 file.txt
设置数字权限(6=读写,4=只读),chmod u+x script.sh
为用户添加执行权限。chown
修改文件所有者,chown user:group file.txt
将文件所有者设为user
,组设为group
,chown -R user dir
递归修改目录所有者。chgrp
修改文件所属组,chgrp group file.txt
将文件组改为group
。

文件查找命令
find
命令按条件查找文件,语法为find [路径] [条件]
,例如find /home -name "*.txt"
在/home
下查找所有.txt
文件,find . -type f -size +10M
在当前目录查找大于10MB的文件(-type f
指文件,-size
按大小筛选)。grep
用于文本搜索,grep "error" log.txt
在文件中搜索包含"error"的行,grep -r "error" /var/log
递归搜索目录下的所有文件(-r
递归)。locate
通过数据库快速查找文件,updatedb
更新数据库后,locate filename
可快速定位文件路径。
压缩与打包命令
Linux常用tar
打包、gzip
/bzip2
/xz
压缩。tar -czf archive.tar.gz dir/
将目录打包并gzip压缩(-c
创建,-z
gzip,-f
指定文件名),tar -xzf archive.tar.gz
解压(-x
解压)。gzip file.txt
压缩文件为file.txt.gz
,gunzip file.txt.gz
解压。zip -r archive.zip dir/
使用zip压缩目录(需安装zip工具),unzip archive.zip
解压。
磁盘空间管理
df
查看磁盘空间使用情况,df -h
以人类可读格式显示(如G
、T
),df -T
显示文件系统类型。du
统计目录大小,du -sh dir/
显示目录总大小(-s
汇总,-h
人性化显示),du -ah *
显示当前目录下所有文件和子目录大小。
常用命令对比表
命令 | 功能 | 常用选项 | 示例 |
---|---|---|---|
ls |
列出目录内容 | -l (长格式)、-a (隐藏文件) |
ls -la /etc |
cp |
复制文件/目录 | -r (递归)、-p (保留属性) |
cp -r src/ dest/ |
mv |
移动/重命名文件/目录 | -i (覆盖提示) |
mv old.txt new.txt |
rm |
删除文件/目录 | -r (递归)、-f (强制) |
rm -rf temp/ |
mkdir |
创建目录 | -p (递归创建) |
mkdir -p project/src |
find |
按条件查找文件 | -name (按名)、-type (按类型) |
find . -name "*.log" |
grep |
文本搜索 | -r (递归)、-i (忽略大小写) |
grep -r "error" logs/ |
tar |
打包/解压 | -c (创建)、-x (解压)、-z (gzip) |
tar -czf backup.tar.gz /home |
相关问答FAQs
Q1: 如何查看文件的前10行和后10行内容?
A1: 使用head
和tail
命令。head -n 10 file.txt
查看文件前10行,tail -n 10 file.txt
查看后10行,若需同时查看前后行,可通过组合命令实现,如sed -n '1,10p; $-9,$p' file.txt
(前10行和最后10行)。

Q2: 如何批量重命名文件(如将所有.txt改为.log)?
A2: 可使用rename
命令(需安装)或for
循环。rename 's/\.txt$/.log/' *.txt
将当前目录下所有.txt
改为.log
;或通过循环实现:for f in *.txt; do mv "$f" "${f%.txt}.log"; done
,${f%.txt}
移除文件名后缀.txt
并添加.log
。