Linux(三)——基础命令(目录与文件管理)
目录与文件管理目录
前言
本章承接上一篇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 系统中目录管理、文件操作、数据备份等常见任务,为系统的稳定运行和高效管理提供有力支持。
更多推荐

所有评论(0)