7.Linux文件管理

1|0引入

1|11.Windows与Linux目录结构对比

  • Windows: 以多根的形式组织文件: C:, D:, E:, F:\ ...

  • Linux: 以单根的形式组织文件: /

1|22.路径

  • 绝对路径: 完整的路径(从根开始)
  • 相对路径: 不完整的路径(从当前目录开始找)

例子:

🐽假设你所处的位置是:地球-->中国-->上海-->青浦区-->华徐公路-->e通世界园-->一间办公室 🐽那么一个外星人想要找到你,就需要按照上面的路径去寻找你---->绝对路径 🐽如果一个人他就在华徐公路,那么他就可以直接从华徐公路开始找---->相对路径

1|33.文件处理

  • 重要思想: 一切皆文件

  • 文件的创建, 复制, 移动, 删除

  • vim文件编辑器常用方法

2|0一.系统目录介绍

  • 目录就是文件夹--->存放的是具体哪些文件
  • 文件存放的是具体的数据

2|11.存放命令相关的目录

  • /bin: 存放普通用户使用的命令, /bin/ls, /bin/date

  • /sbin: 存放管理员使用的命令 , /sbin/useradd(创建用户)

2|22.''~''家目录

  • /home: 普通用户的家目录, 默认为 /home/[用户名]
  • /root: 超级管理员的家目录, 普通用户是无法操作的
  • "~": 代表的就是当前用户的家目录

2|33.系统文件目录

  • /usr: 相当于C:\Windows
  • /usr/local: 软件安装的目录, 相当于C:\Program
  • /usr/bin: 普通用户使用的应用程序
  • /usr/sbin: 管理员用户使用的应用程序
  • /usr/lib: 库文件 Glibc 32bit
  • /usr/lib64: 库文件 Glibc 64bit

2|44.启动目录

  • /boot: 存放启动相关的文件, (kernel, grub)引导装载程序

2|55.配置文件目录

  • /etc: 比较重要的目录, 后续所有服务的配置文件都存放在这
  • /etc/hostname: 主机名的配置文件
  • /etc/sysconfig/network-scripts/ifcfg-[网卡名]: 网卡的配置文件
  • /etc/resolv.conf: 指定远程的DNS地址配置文件
  • /etc/hosts: 本机的域名解析文件
与网络参数优化相关的文件都在该目录下: #cd /proc/sys/net/ipv4

2|66.设备目录文件

  • /dev: 存放设备文件 (硬盘, 硬盘分区, 光驱等)

  • /dev/sr0: 光驱设备名称:The first SCSI ROM

  • /dev/cdrom: 光盘设备: 光盘里存放的内容都在这里

    🐑就比如我们的 VMware 安装 Linux 时是选择最小化安装 🐑但是完整的配置文件或者许多软件包都还在光盘里面 🐑以后用来为我们的操作系统补充包--->加油站一样
  • /dev/null: 黑洞文件, 只进不出, 把不想要显示的内容丢入黑洞(比如执行一条命令的结果是不想要的/不需要的)

/dev/null文件使用

  • /dev/random: 生成随机数的设备
  • /dev/zero: 可以源源不断的生成数据, 就像取款机, 随时随地取钱
  • /dev/pts: 虚拟的Bash Shell终端, 提供远程用户使用, 0 代表第一个终端, 1 代表第二个终端, 以此类推

  • /dev/stderr: 标准错误输出
  • /dev/stdin: 标准输入
  • /dev/stdout: 标准输出

2|77.挂载目录 (主要指存储设备)

  • /mnt: 手工挂载设备的挂载点
  • /opt: 早期第三方软件存放的目录
  • /media: 移动设备的默认挂载点

2|88.临时目录和可变目录

  • /var: 存放一些变化的文件(数据, 日志, 邮件), 比如/var/log下的日志文件

随便查看一个日志的前4行内容:

变化文件如下:

mysql: /var/lib/mysql vsftpd: /var/ftp mail: /var/spool/mail cron: /var/spool/cron log: /var/log #系统日志文件存放目录 /var/tmp #临时文件(主要是程序产生的临时文件)
  • /tmp: 系统临时目录(像公共厕所)
系统会定时的删除该目录下长时间没有访问的文件
  • /var/tmp: 进程产生的临时文件

3|0二.路径

3|11.绝对路径 : 路径是从根("/")开始

  • Linux系统: /a/b/c/d/e.txt
  • Windows系统 : C:\a\b\c\d\e.txt

3|22.相对路径 : 路径是相对于当前路径开始的

  • Linux系统: b/c/d/e.txt
  • Windows系统: b\c\d\e.txt

3|33.每一个目录下都有一个 . 和 .. 这两个目录

  • .: 一个点代表的是当前的目录
  • ..: 两个点代表的是上一级目录

4|0三.文件管理基础命令

4|11.切换目录 : cd

# cd 绝对路径 cd /etc/hostname # cd 相对路径 cd test/abc # cd #切换目录,例: cd /etc # cd - #切换回上一次所在的目录 # cd ~ #切换回当前用户的家目录 # cd . #代表当前目录, 没有效果 # cd .. #切换回当前目录的上级目录

4|22.查看当前目录 : pwd

# pwd #查看当前所在的文件夹

4|33.ls

# ls -l [文件] #查看的文件夹下的子文件与子文件夹的列表信息 # ls -dl [文件夹] #查看指定的文件夹的列表信息 # ls -a [文件夹] #查看包括隐藏文件在内的所有文件
  • 1|0文件类型

🔴使用 "ls -l" 显示出来的文件: 🔵以 "-" 开头: 可以是普通文件(文本, 二进制, 压缩包, 图片, 日志等), "ls" 就是一个二进制文件 🔵以 "d" 开头: 是一个目录或者文件夹 🔵以 "l" 开头: 是一个软连接
-rwxr-xr-x. 1 root root 117680 10月 31 2018 /bin/ls -: 文件类型 rwx: 属主--->root -xr: 属组--->root r-x: 其他 . : 在加载了selinux情况下创建的文件 1 : 硬链接数

ps: Linux系统不是以文件的后缀名来区分文件类型的,而是以 ls -l 的首位来区分

4|44.查看目录树tree

需要先安装tree命令,执行yum install tree y # tree -a [目录] #显示所有文件,包括隐藏文件 # tree -d [目录] #只显示子目录,不显示文件 # tree -L 1 [目录] #-L遍历目录下的最大层数,-L后应该是大于0的正整数, 正整数就是最大层 # tree -F [目录] # -F在条目后加上文件类型的指示符号 #例如会在显示出的目录后面加上左斜杠/

4|55.文件创建touch

# touch file #无则创建,有则修改时间 # touch file2 file3 #同时创建2,3这两个文件 # touch /home/od/file4 file5 #使用了绝对路径创建 # touch file{a,b,c}.txt #{}集合,等价 touch a.txt b.txt c.txt # touch file{1..10} #创建了 1~10 个文件 # touch file{a..z} # a~z 个文件

4|66.目录创建mkdir

常用选项:-v 显示详细信息 -p 递归创建目录 # mkdir [目录名] # mkdir /home/shawn/dir1 /home/shawn/dir2 # mkdir -v /home/shawn/{aaa,bbb} #会显示创建信息 # mkdir -pv /home/ooo/iii/{ccc,ddd} #没有的目录会递归创建

4|77.复制文件cp

常用选项: -v: 详细显示命令执行的操作 -r: 递归处理目录与子目录 -a: 保留源文件或目录的属性 -f: 强制复制 # cp [源文件] [目标文件] # cp name /tmp/name #不修改名称 # cp file /tmp/ #不修改名称 # cp -a file /tmp/file_p #-a保持原文件或目录的所有属性 # cp -r /etc/ /tmp/ #复制目录需要使用-r参数, 递归复制 # cp -rv /etc/hosts /etc/hostname /tmp #拷贝多个文件至一个目录 # cp -rf ...👇👇👇

"-f" 参数是强制复制 条件是:1.源文件在目标目录中有同名的文件 2.用户对目标文件只有读的权限 3.对目标文件所在的目录具有写和执行的权限 4.然后就会先删除目标文件,在把源文件复制进去 ⛅比如你在 "b" 文件夹里面有个文件名叫 "1.txt" ⛅然后你把 "c" 文件夹里面的另一个文件名叫 "1.txt" 的复制到 "b" 里面 ⛅这个时候会照成冲突,然后会提示你要不要继续复制.加上 "-f" 就不会提示你了 🌟如果还是会提醒是因为: 🌟有的系统在安装的时候,"cp - i"的 alias 就是 cp 🌟也就是说你在执行cp的时候,其实是执行的cp -i 🌟取消掉cp的alias就好了: 🌞可以使用:"unalias"取消 🌞"\cp"取消 🌞或者直接使用命令"cp"的绝对路径执行

4|88.移动或重命名mv

# mv [源文件] [目标文件] # mv file1 file2 #在当前位置移动就是重命名,将file1命名成file2 # mv file1 /home #将 file1 移动到 "/home" 中 # mv a1 a2 a3 /home #将多个文件移动到 "/home" 中 # mv /root/dir1 ./ #将 "/root" 下的 "dir1" 目录移到当前目录下 # mv dir/ dir2/ dir3/ /root #将多个目录移动到 "/root" 下

4|99.删除rm

常用选项: -r :递归, -f :force强制, -v :详细过程 # rm -rf [任何文件或目录]

5|0四.查看文件内容(文本文件)

5|11.查看cat

# cat 1.txt #正常查看文件方式 # cat -n 1.txt #-n显示文件有多少行 # cat -A 1.txt #查看文件的特殊符号,比如文件中存在$ # tac 1.txt #倒序查看文件

5|22.从头部head和从尾部tail查看

🐼从头部 "head" # head 1.txt #默认查看 10 行 # head -2 1.txt #查看前两行(可以自定义) 🐼从尾部 "tail" # tail 1.txt #默认从尾部查看 10 行 # tail -2 1.txt #查看尾部两行(可以自定义) 🔴# tail -f 1.txt #动态查看文件的尾部 # tailf 1.txt #效果与上面一样

5|33.翻页查看more和less

# less 1.txt #使用光标上下翻动,空格进行翻页,q退出 # more 1.txt #使用回车上下翻动,空格进行翻页,q退出 # most +40 1.txt #从第40 行开始查看

5|44.过滤文件内容grep

# grep 'song' 1.txt #匹配有 "song" 的行 # grep '^shawn' 1.txt #匹配以 "shawn" 开头的行 # grep 'xing$' 1.txt #匹配以 "xing" 结尾的行 # grep -i 'xing' 1.txt #不分大小写的匹配有 "xing" 的行

 


__EOF__

本文作者ଲ小何才露煎煎饺
本文链接https://www.cnblogs.com/zeny/articles/14409634.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   ଲ小何才露煎煎饺  阅读(39)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示