前言

本章承接上一篇linux基础命令篇,介绍文件目录管理、查找命令并列出linux目录结构。重点讲解 Linux 目录与文件管理,首先系统介绍树形目录结构,详细解析各目录功能特点,帮助读者全面理解 Linux 文件系统。随后深入讲解文件查看命令(cat/more/less)、文本统计检索工具(wc/grep)以及数据备份归档方法(gzip/bzip2/tar)。
如果您是 Linux 新手,希望本文能帮到您,使您对文件系统操作能力能有显著提升,为后续系统管理和服务配置奠定坚实基础。

第一章 树形目录结构

Linux 操作系统采用斜杠/作为路径分隔符(与Windows系统的反斜杠\不同)。在目录树结构中,单独的/代表根目录,这是Linux文件系统的起点,其所在分区称为根分区。根目录下默认包含多个具有特定功能的子目录,以下是常见子目录及其用途的简要说明。
例如:

  • /boot:系统内核与启动相关文件(如 vmlinuz、initrd.img)。建议安装时单独分区,便于备份。
  • /bin:面向所有用户的常用可执行程序(如 cp、ls)。
  • /sbin:系统管理类命令,多由管理员执行。
  • /dev:设备文件(如 /dev/sda1、/dev/cdrom)。
  • /etc:系统级配置文件(账户、服务启动配置等)。
  • /home:普通用户家目录集合(如 /home/teacher/)。多人服务器建议单独分区。
  • /root:超级用户 root 的家目录(位于根目录下,而非 /home)。
  • /usr:应用程序与共享资源的层级(包含丰富子目录)。
  • /var:经常变化的数据(日志、邮件等)。生产环境常单独分区。

第二章 目录和文件代码

2.1 查看文件内容——cat
Linux系统提供了多种查看文本配置文件的命令:可以通过cat命令直接显示整个文件内容,使用less或more实现分页浏览,或者通过head和tail命令分别查看文件的开头或结尾部分。

  • cat:文件名

例如,以下操作就可以查看并了解第一块以太网卡的配置信息。

  • cat /etc/sysconfig/network-scripts/ifcfg-ens33
    在这里插入图片描述

如果需要同时查看多个文件的内容,可以添加多个文件路径作为查看对象。
例如,以下操作将依次显示/etc/redhat-release和 /proc/version 文件的内容:前者记录了 CentOS 系统的发行版本信息,后者则包含系统内核、开发环境及编译时间等相关信息。
cat /etc/redhat-release /proc/version
在这里插入图片描述

2.2 分页查看文件内容——more 和 less
使用 cat命令可以非常简单直接地显示整个文件的内容,但当文件较大时,往往只能看到末尾部分,前面的内容会快速滚动消失。

相比之下,more 和 less 命令采用分页显示方式,可以让我们从容地逐页浏览文件内容,便于完整阅读。

2.2.1 more命令使用方法

  • more:文件名
    使用 more命令查看超过一屏的文件内容时,将进行分屏显示,并在左下角显示当前内容在整个文件中的百分比。
    在这里插入图片描述

用户操作方法 描述
Enter键 向下逐行滚动查看
Space键 下翻一屏
b键 上翻一屏
q键 退出
例如,以下操作将可以分屏查看/var/log/messages(系统日志文件)文件的内容。
more /var/log/messages
在这里插入图片描述

more命令不仅能分屏查看文件内容,还能配合管道符|分屏显示命令执行结果,这在处理大量输出时尤为实用。

例如,以下操作可以分页查看/etc/ 目录下扩展名为.conf的配置文件。
ls -1h /etc/*.conf | more
在这里插入图片描述

2.2.2 less命令使用方法
less命令的操作方式与more命令类似,但功能更加强大。当结合管道符|分屏查看命令输出时,less支持双向滚动操作,既可向下浏览也能向上返回。相比之下,more命令仅支持单向向下滚动功能。

用户操作方法:
1、使用Page Up键向上翻页,Page Down键向下翻页
2、按"/"键可搜索内容,按"n"跳转至下一个匹配项,"N"返回上一个匹配项
3、通过方向键↑和↓上下滚动页面
4、其他功能与more命令保持一致
5、浏览至末页时不会自动退出程序,使用q键退出

2.3 显示文件开头——head
head 命令用于查看文件开头部分内容。通过 -n 选项可指定显示的行数(如 -5 显示前5行),若不指定则默认显示前10行。
head {-n} 文件名 #n为行数

以下命令可以查看用户账号文件/etc/passwd 开头第一行至第四行的内容。
head -4 /etc/passwd
在这里插入图片描述

2.4 显示文件结尾——tail
tail 【选项】文件名

tail 命令用于查看文件末尾内容,常用于监控系统日志文件,因为最新的日志记录总是追加在文件尾部。通过该命令可以方便地查看网络访问记录、服务调试信息等日志内容。

使用-f选项时,能够实时追踪文件尾部内容的更新变化,特别适合动态监控日志文件。

例如,执行以下命令可查看/var/log/messages日志文件的最后10行内容,并持续显示新增日志(按Ctrl+C终止跟踪)。
tail -f /var/log/messages
在这里插入图片描述

第三章 查找命令

查找文件或目录存放的命令。
这里以查找ls命令举例:
echo $PATH #查看用户的环境变量(linux系统执行命令或程序的默认搜索路径)
在这里插入图片描述

which ls #查看ls命令的文件存放位置
在这里插入图片描述
2、find
查找文件或目录的位置
-name # 按文件名搜索
-type # 按文件类型搜索:
f 普通文件
d 目录
l 链接
b块设备文件
c字符设备文件


-size # 按文件大小搜索
c表示字节
k表示KB
M表示MB
G表示GB


-mtime # 按修改时间搜索
+5 #5天之前
-5 #最近5天
find -size 6c #在当前目录下查找等于6个字节的文件
find -size +6c #在当前目录下查找大于6个字节的文件
find -size -6c #在当前目录下查找小于6个字节的文件
find / -size +6c #查找根目录下大于6个字节的文件
find /root/ -name .txt #查找根目录下的txt文件
find /root/ ! -type d -ls #查找root下不是目录的文件
find /root/ -size 6c -a -name “shar?” #查找文件大小等于6字节的且名字为share
find /root/ -size 6c -o -name “shar?” #查找文件大小等于6字节的或名字为share
find / -name "
.log" -a -size -10k #查找小于10k的日志文件
find ./ -type f -name “.log" -exec rm {} ; #查找所有日志文件,并删除
find ./ -type f -name "
.log” -mtime +5 -exec rm {} ; # 查找5天前所有日志文件,并删除
find ./ -type f -name “.log" -mtime -5 -exec rm {} ; # 查找5天内所有日志文件,并删除
find /data/ -type d|xargs chmod 755 -R #查目录类型并将权限设置为755;
find /data/ -type f|xargs chmod 644 -R #查文件类型并将权限设置为644;
find ./ -name "syslog.
.gz” -mtime -5 -exec ls -lh {} ; #在当前目录查找,名字为syslog.开头,以.gz结尾,时间为最近五天的文件,并以长列表显示且友好的显示文件大小


3、场景示例
find /backup/ -type f -name “.log" -exec rm {} ; #删除备份文件
find /backup/ -type f -name "
.dmp” -exec rm {} ;
#删除日志文件
find /backup/ -type f -name “*.tar.gz” -mtime +5 -exec rm -rf {} ; #删除5天前的备
份(注意:{} \中间有空格)


第四章 linux 目录和文件管理

Linux 目录和文件管理

Linux 标准目录结构

/
├── bin/          # 基本命令二进制文件
├── boot/         # 启动加载文件
├── dev/          # 设备文件
├── etc/          # 系统配置文件
├── home/         # 用户主目录
│   ├── user1/
│   └── user2/
├── lib/          # 系统库文件
├── media/        # 可移动媒体挂载点
├── mnt/          # 临时挂载点
├── opt/          # 可选应用软件
├── proc/         # 进程和内核信息
├── root/         # root用户主目录
├── sbin/         # 系统管理命令
├── tmp/          # 临时文件
├── usr/          # 用户程序和数据
└── var/          # 可变数据文件

常用文件管理命令

目录操作

# 查看当前目录
pwd

# 切换目录
cd /path/to/directory
cd ~        # 回家目录
cd ..       # 上一级目录

# 列出目录内容
ls
ls -l      # 详细列表
ls -a      # 显示隐藏文件
ls -lh     # 人类可读大小

# 创建目录
mkdir dirname
mkdir -p parent/child  # 创建多级目录

# 删除目录
rmdir dirname          # 删除空目录
rm -r dirname          # 递归删除目录

文件操作

# 创建文件
touch filename.txt
echo "content" > filename.txt

# 查看文件
cat filename
less filename      # 分页查看
head -n 10 file    # 前10行
tail -n 10 file    # 后10行
tail -f logfile    # 实时跟踪

# 复制文件
cp source.txt destination.txt
cp -r sourcedir/ destdir/    # 递归复制目录

# 移动/重命名文件
mv oldname newname
mv file.txt /target/directory/

# 删除文件
rm filename
rm -i filename     # 交互式删除
rm -f filename     # 强制删除

文件权限管理

权限查看

ls -l
# 输出示例: -rwxr-xr-- 1 user group 1024 Jan 1 10:00 filename
# 权限位: [类型][所有者][组][其他]

权限修改

# 数字方式
chmod 755 filename    # rwxr-xr-x
chmod 644 filename    # rw-r--r--

# 符号方式
chmod u+x filename    # 给所有者添加执行权限
chmod g-w filename    # 移除组写权限
chmod o=r filename    # 设置其他用户只读

# 更改所有者
chown user:group filename
chown user filename
chgrp group filename

文件查找和内容搜索

# 查找文件
find /path -name "*.txt"
find /home -type f -mtime -7   # 7天内修改的文件
find . -size +1M               # 大于1MB的文件

# 搜索文件内容
grep "pattern" filename
grep -r "pattern" /path/       # 递归搜索
grep -i "pattern" file         # 忽略大小写
grep -v "pattern" file         # 反向匹配

# 查找命令位置
which command_name
whereis command_name

文件压缩和归档

# tar 归档
tar -czvf archive.tar.gz dir/    # 创建gzip压缩
tar -xzvf archive.tar.gz         # 解压gzip
tar -cjvf archive.tar.bz2 dir/   # 创建bzip2压缩

# zip 压缩
zip -r archive.zip dir/
unzip archive.zip

# gzip 压缩
gzip filename
gunzip filename.gz

磁盘空间管理

# 查看磁盘使用情况
df -h              # 人类可读格式
df -i              # 查看inode使用

# 查看目录大小
du -sh /path       # 目录总大小
du -h --max-depth=1 /path  # 一级子目录大小

# 查找大文件
find / -type f -size +100M 2>/dev/null

实用示例

项目目录管理

# 创建项目结构
mkdir -p myproject/{src,doc,bin,test,log}
touch myproject/README.md
touch myproject/src/{main.sh,utils.sh}

# 设置权限
chmod +x myproject/src/main.sh
chown -R user:dev myproject/

# 备份项目
tar -czvf myproject_backup_$(date +%Y%m%d).tar.gz myproject/

日志文件管理

# 查看最新日志
tail -f /var/log/syslog

# 查找错误日志
grep -i "error" /var/log/syslog

# 清理旧日志
find /var/log -name "*.log" -mtime +30 -exec rm {} \;

这些命令和技巧是Linux文件管理的基础,熟练掌握它们将大大提高在Linux环境下的工作效率。

总结

通过学习并实践本文档中的命令与技巧,读者可熟练应对 Linux 系统中目录管理、文件操作、数据备份等常见任务,为系统的稳定运行和高效管理提供有力支持。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐