07 Linux文件管理

559次阅读
没有评论

共计 4152 个字符,预计需要花费 11 分钟才能阅读完成。

引入

1.Windows 与 Linux 目录结构对比

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

07 Linux 文件管理

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

07 Linux 文件管理

2. 路径

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

例子:

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

3. 文件处理

  • 重要思想: 一切皆文件

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

  • vim 文件编辑器常用方法

一. 系统目录介绍

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

07 Linux 文件管理

1. 存放命令相关的目录

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

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

07 Linux 文件管理

2.''~'' 家目录

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

07 Linux 文件管理

3. 系统文件目录

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

07 Linux 文件管理

4. 启动目录

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

07 Linux 文件管理

5. 配置文件目录

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

07 Linux 文件管理

6. 设备目录文件

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

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

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

js
🐑就比如我们的 VMware 安装 Linux 时是选择最小化安装
🐑但是完整的配置文件或者许多软件包都还在光盘里面
🐑以后用来为我们的操作系统补充包 ---> 加油站一样

  • /dev/null: 黑洞文件, 只进不出, 把不想要显示的内容丢入黑洞(比如执行一条命令的结果是不想要的 / 不需要的)

/dev/null 文件使用

07 Linux 文件管理

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

07 Linux 文件管理

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

7. 挂载目录 (主要指存储设备)

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

8. 临时目录和可变目录

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

07 Linux 文件管理

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

07 Linux 文件管理

变化文件如下:

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

二. 路径

1. 绝对路径 : 路径是从根 ("/") 开始

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

07 Linux 文件管理

2. 相对路径 : 路径是相对于当前路径开始的

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

07 Linux 文件管理

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

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

三. 文件管理基础命令

1. 切换目录 : cd

# cd 绝对路径 cd /etc/hostname
# cd 相对路径 cd test/abc

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

2. 查看当前目录 : pwd

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

3.ls

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

🔴使用 "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. 查看目录树tree

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

07 Linux 文件管理

5. 文件创建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 个文件

6. 目录创建mkdir

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

07 Linux 文件管理

7. 复制文件cp

常用选项:-v: 详细显示命令执行的操作 
            -r: 递归处理目录与子目录      
            -p: 保留源文件或目录的属性
             -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 ...👇👇👇

07 Linux 文件管理

07 Linux 文件管理

⛅"-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" 的绝对路径执行

07 Linux 文件管理

8. 移动或重命名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" 下

9. 删除rm

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

四. 查看文件内容(文本文件)

1. 查看cat

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

07 Linux 文件管理

2. 从头部 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          #效果与上面一样

07 Linux 文件管理

3. 翻页查看 moreless

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

4. 过滤文件内容grep

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

07 Linux 文件管理

正文完
 
shawn
版权声明:本站原创文章,由 shawn 2023-06-16发表,共计4152字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)