🍖Linux文件管理

引入

1.Windows与Linux目录结构对比

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

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

2.路径

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

例子:

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

3.文件处理

  • 重要思想: 一切皆文件

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

  • vim文件编辑器常用方法

一.系统目录介绍

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

1.存放命令相关的目录

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

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

2.''~''家目录

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

3.系统文件目录

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

4.启动目录

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

5.配置文件目录

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

6.设备目录文件

  • /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: 标准输出

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

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

8.临时目录和可变目录

  • /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: 进程产生的临时文件

二.路径

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

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

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

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

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在条目后加上文件类型的指示符号
		      #例如会在显示出的目录后面加上左斜杠/

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}	   #没有的目录会递归创建

7.复制文件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"的绝对路径执行

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   #查看文件的特殊符号,比如文件中存在$
# tac 1.txt      #倒序查看文件

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          #效果与上面一样

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" 的行

posted @ 2020-10-21 22:00  给你骨质唱疏松  阅读(232)  评论(0编辑  收藏  举报