Linux系统文件与目录管理(持续更新中...)

一、Linux系统目录结构

目录
说明
bin
命令,二进制文件的存放目录
boot
系统引导程序及系统内核文件存储目录
dev
设备、光驱、硬盘目录
etc
存放系统或服务的配置文件目录
home
普通用户的家目录
lib
库文件存放目录
lib64
库文件存放目录(64)
lost+found
磁盘、文件系统损坏、断电、存放临时文件目录
mnt
临时的挂载点目录
opt
三方软件安装目录
proc
虚拟目录,显示硬件的信息及内核参数配置文件
root
超级用户的家目录
sbin
超级命令,二进制文件的存放目录,只有root用户能够使用的命令
/etc/selinux
selinux及其配置文件存放目录,安全上下文
sys
虚拟目录,内核配置信息
tmp
临时文件的存放目录
usr
存放用户程序目录
var
log:系统日志目录;spool/mail:邮件文件

二、文件与目录操作命令:pwd

1、打印工作目录命令 pwd

pwd(Print Working Directory)是 Linux/Unix 系统中的基础命令,用于显示当前工作目录的绝对路径。它直接输出用户所在位置的完整目录结构,从根目录(/)开始。

语法

pwd [选项]

选项

-P
显示出实际路径,而非使用连接

练习

如何结合 cd 命令切换到一个新目录,并再次使用 pwd 验证

2、目录切换命令:cd

cd(Change Directory)是命令行中用于切换当前工作目录的指令。

语法

cd [目录名]

选项

命令
作用
cd
返回当前登录用户的家目录
cd ..
返回上级目录
cd ~
返回当前登录用户的家目录
cd -
返回上次跳转到当前目录的目录
cd /path
切换到指定目录

练习

3、目录内容查看命令:ls

ls命令用于列出目录中的文件和子目录。在不带任何参数的情况下,默认显示当前工作目录的内容。

语句

ls [OPTION]... [FILE]...

选项

命令选项
作用
-a, --all
显示所有文件(包括以 . 开头的隐藏文件)
-l
使用详细列表格式显示文件或目录的详细信息
-h, --human-readable
使用人类可读的格式显示文件大小(例如 1K2M
-r, --reverse
以相反的顺序列出文件
-t
按照修改时间(最新的文件在前)排序
-s
按照文件大小排序
-d, --directory
显示目录本身,而非目录下的文件列表
-i, --inode
显示每个文件的 inode
--color=auto
自动根据文件类型显示不同的颜色
-R, --recursive
递归列出目录及其子目录中的文件

练习

如何列出当前目录下的所有文件和目录,包括隐藏文件?

如何以长格式显示/var/log目录下的内容,并以人类可读的方式显示文件大小?

如何在当前目录下,按文件修改时间排序(最新的在前)并显示详细信息?

如何只列出当前目录下的所有子目录(不显示文件)?

如何递归显示当前目录下所有子目录中的内容,包括隐藏文件并显示详细信息?

4、文件查看命令:cat

cat 是 Linux 中常用的文本文件查看和处理命令,主要用于读取、拼接文件内容。

语法:

cat [选项] [文件]...

功能:

  1. 直接查看文件内容(如 cat file.txt
  2. 一次性查看多个文件内容(如 cat a.txt b.txt
  3. 创建新文本文件并输入内容(如 cat > new.txt,按 Ctrl+D 结束)
  4. 向已有文件末尾追加内容(如 cat >> old.txt,按 Ctrl+D 结束)
  5. 显示内容时带行号(如 cat -n file.txt

练习:

如何创建一个名为todo.txt的文件,并写入 "购买书籍、整理文档" 这两行内容?

已有log1.txtlog2.txt,如何将两者内容合并到total.log中?

4.2more命令

more 是一个在 Unix/Linux 和 Windows 操作系统中用于分页显示文本文件内容的命令行工具。它允许用户逐页浏览文件内容,避免一次性显示过多信息导致屏幕滚动过快。

语法:

  more [选项] [文件名]

练习:

在 more 模式下,可以使用以下交互命令:

  • 空格键:向下翻一页。
  • Enter 键:向下滚动一行。
  • q 键:退出 more
  • = 键:显示当前行号。
  • / 键:搜索文本。输入 / 后输入要搜索的字符串,按 Enter 开始搜索。

4.3less命令

less 是一个用于查看文件内容的命令行工具,支持向前和向后翻页,比 more 命令更强大。以下是基本用法:

语法:

less [选项] [文件名]

功能:

  • 空格:向下翻一页
  • b:向上翻一页
  • 回车:向下滚动一行
  • y:向上滚动一行
  • /pattern:搜索指定模式
  • n:跳转到下一个匹配项
  • N:跳转到上一个匹配项
  • q:退出 less

4.4head命令

head 是 Linux/Unix 系统中的命令行工具,用于输出文件或标准输入的前几行内容(默认为前 10 行)。常用于快速预览文件开头部分或日志文件的初始内容。

语法:

head [选项] [文件名]

管道符:|

一种在计算机编程、命令行操作和数据流处理中常用的符号,用于将一个程序的输出直接传递给另一个程序作为输入。其核心作用是实现不同命令或功能之间的数据传递和协作。

选项:

-n <数字> 或 --lines=<数字>:指定显示的行数。

-c <字节数>:指定显示的字节数(适用于二进制文件或特定字节需求)。

-q:隐藏文件名标题(处理多个文件时默认显示文件名)。

-v:强制显示文件名标题(即使只有单个文件)。

练习:

显示文件前 10 行(默认行为)

[root@localhost opt]# ls
li.txt
[root@localhost opt]# head li.txt
dsa
asd
cxz
asda
ew
sad
cxz
adsa
awe
cxz

显示文件前 N 行(例如显示前 5 行):

[root@localhost opt]# head -n 5 li.txt
dsa
asd
cxz
asda
ew

4.5tail命令

用于显示文件的末尾部分内容,默认显示最后 10 行

语法:

tail [选项] [文件名]

选项:

-n 参数可以指定显示的行数

-f 参数可以实时跟踪文件的新增内容,常用于监控日志文件

-c 参数可以从文件末尾显示指定字节数的内容

-q 参数可以在显示多个文件时v隐藏文件名标题

-v 参数可以显示详细的处理信息

练习:

显示文件最后 10 行(默认行为)

[root@localhost opt]# tail li.txt
sad
cxz
adsa
awe
cxz
sda
ds
scxz
sda
dsa

显示文件最后 N 行(例如显示最后 5 行):

[root@localhost opt]# tail -n 5 li.txt
sda
ds
scxz
sda
dsa

4.6nl命令

用于为文件内容添加行号的命令行工具。它可以将输入文件的每一行前加上行号,并输出到标准输出或指定文件

语法:

-b指定要将行号添加到的行

-b a:为所有行编号(包括空行)

-b t:仅对非空行编号(默认行为)

-b n:不显示行号

-s:设置行号与内容之间的分隔符(默认为制表符 \t

-w:指定行号字段宽度(默认为 6 个字符)

-n:控制行号对齐方式 

练习:

基本用法(默认跳过空行不编号)

[root@localhost opt]# nl li.txt
     1  dsa
     2  asd
     3  cxz
     4  asda
     5  ew
     6  sad
     7  cxz
     8  adsa
     9  awe
    10  cxz
    11  sda
    12  ds
    13  scxz
    14  sda
    15  dsa

对所有行编号(包括空行)

[root@localhost opt]# nl -ba zhang.txt 
     1  dsa
     2    
     3  dsa
     4   a
     5    
     6  ee
     7  sad
     8     
     9  ew
    10   a 

5、创建目录命令:mkair

用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。如果需要创建多级目录,可以使用通配符 * 或多个目录名。还支持使用{}来进行创建多个目录。

语法:

mkdir [选项] 目录名

选项:

-p:递归创建目录,自动创建父目录(如果不存在也会创建)

-m:设置目录权限。例如创建一个权限为 755 的目录

-v:显示详细操作信息

练习:

创建单个目录

[root@localhost opt]# mkdir mmm
[root@localhost opt]# ls
li.txt  mmm  zhang.txt

创建多个目录

[root@localhost opt]# mkdir zz xx cc vv
[root@localhost opt]# ls
cc  li.txt  mmm  vv  xx  zhang.txt  zz

创建嵌套目录(父目录不存在时自动创建)

[root@localhost opt]# mkdir -p jj/dsa/re
[root@localhost opt]# ls
cc  jj  li.txt  mmm  vv  xx  zhang.txt  zz
[root@localhost opt]# cd jj
[root@localhost jj]# ls
dsa
[root@localhost jj]# cd dsa/
[root@localhost dsa]# ls
re

6、创建文件命令

重定向符号:

>:覆盖重定向
>>:追加重定向

查看文件的时间戳: stat 文件名称

6.1touch命令

用于创建空文件或更新文件时间戳的工具

语法:

touch [选项]... 文件...

选项:

-a或 --time=access 如果文件不存在,创建一个新文件。同时更新访问时间和修改时间。

-m或 --time=modify 仅更新文件的修改时间。

-t或 --time=date 使用指定的日期和时间更新文件的访问和修改时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值