文件的基本管理和文件的归档和压缩
本节所讲内容:
3.1 Linux 系统目录结构和相对路径与绝对路径
3.2 文件的管理
3.3 查看文件
3.4 tar 命令进行文件的归档和压缩
3.5 zip 管理压缩文件
3.1 Linux 系统目录结构和相对路径与绝对路径
3.1.1 系统目录结构
在 WIN 系统中,查看文件先进入相应的盘符,然后进入文件目录
在 WIN 中,它是多根 c:\ d:\ e:\
Linux 只有一个/根目录
Ls /
使用 tree 命令查看 linux 目录结构,如果没有这个命令,需要手工安装一下
安装流程:
cd /etc/yum.repos.d/
rm -rf *
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-
7.repo
cd
根下的目录作用说明: | 说 明 |
/ | 处于 linux 系统树形结构的最顶端,它是 linux 文件系统的入口,所有的目录、 文件、设备都在 / 之下 |
/bin
| bin 是 Binary 的缩写。常用的二进制命令目录。比如 ls、cp、mkdir、cut 等;和/usr/bin 类似,一些用户级工具 |
/boot | 存放的系统启动相关的文件,例如:kernel.grub(引导装载程序) |
/dev
| dev 是 Device 的缩写。设备文件目录,比如声卡、磁盘……在 Linux 中 一切都被看做文件。终端设备、磁盘等等都被看做文件 设备文件: /dev/sda,/dev/sda1,/dev/tty1,/dev/tty2,/dev/pts/1, /dev/zero, /dev/null, /dev/cdrom |
/etc | 常用系统及二进制安装包配置文件默认路径和服务器启动命令目录,如: /etc/passwd 用户信息文件 /etc/shadow 用户密码文件 /etc/group 存储用户组信息 /etc/fstab 系统开机启动自动挂载分区列表 /etc/hosts 设定用户自己的 IP 与主机名对应的信息 |
/home | 普通用户的家目录默认存放目录 |
/lib | 库文件存放目录,函数库目录 |
/mnt /media | /mnt 和/media 一般用来临时挂载存储设备的挂载目录,比如有 cdrom、U 盘 等目录 /mnt/hgfs: 安装 vmware-tools 后,使用共享文件夹功能,可以共享虚 拟机和真机的目录,实现文件相互复制,一般这个功能没有用。我们直接使用 xshell 来上传文件 |
/opt | 表示的是可选择的意思,有些软件包也会被安装在这里。如:gitlab |
/proc
| 操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如 cpu、硬盘 分区、内存信息等)存放在这里。/proc 目录是伪装的文件系统 proc 的挂载目 录,proc 并不是真正的文件系统。因此,这个目录是一个虚拟的目录,它是系统 内存的映射,我们可以通过直接访问这个目录来获取系统信息。也就是说,这个 目录的内容不在硬盘上而是在内存里 查看咱们的 CPU 信息 cat /proc/cpuinfo |
/sys | 系统目录,存放硬件信息的相关文件 |
/run | 运行目录,存放的是系统运行时的数据,比如进程的 PID 文件 |
/srv | 服务目录,存放的是我们本地服务的相关文件 |
/sbin | 大多数涉及系统管理的命令都存放在该目录中,它是超级权限用户 root 的可 执行命令存放地,普通用户无权限执行这个目录下的命令,凡是目录 sbin 中包含 的命令都是 root 权限才能执行的
|
/tmp | 该目录用于存放临时文件,有时用户运行程序的时候,会产生一些临时文 件。/tmp 就是用来存放临时文件的。/var/tmp 目录和该目录的作用是相似的, 不能存放重要数据,系统会定期删除这个目录下的没有被使用的文件。 它的权限比较特殊 [root@xuegod63 ~]# ls -ld /tmp drwxrwxrwt 10 root root 12288 Oct 3 20:45 /tmp/ →粘滞位(sticky bit)目录的 sticky 位表示这个目录里的文件只能被文件的 owner(所有者)和 root 删除
|
/var | 系统运行和软件运行时产生的日志信息,该目录的内容是经常变动的,存放的是 一些变化的文件。比如/var 下有/var/log 目录用来存放系统日志的目录,还有 mail、/var/spool/cron |
/usr | 存放应用程序和文件, /usr/bin 普通用户使用的应用程序 /usr/sbin 管理员使用的应用程序 /usr/lib 库文件 Glibc(32 位) /usr/lib64 库文件 Glibc |
/lib /lib64 是 /usr/lib 和 /usr/lib64 的软链接 | 这个目录里存放着系统最基本的动态链接共享库,包含许多被/bin/和/sbin/中的 程序使用的库文件,目录/usr/lib/中含有更多用于用户程序的库文件。作用类似 于 windows 里的 DLL 文件,几乎所有的应用程序都需要用到这些共享库 注:lib***.a 是静态库 , lib***.so 是动态库 静态库在编译时被加载到二进制文件中 动态库在运行时加载到进程的内存空间中 简单的说:这些库是为了让你的程序能够正常编译运行的 其实类似于 WIN 中.dll 文件,几乎所有的应用程序都需要用到这些共享库
|
3.1.2 绝对路径和相对路径
路径:在我们平时使用计算机时要找到需要的文件就必须知道文件的位置,而表示文件的位置的方式
就是路径
绝对路径:在 Linux 中,绝对路径是从"/"开始的,比如/usr、/etc/passwd。如果一个路径是从根
(/)开始的,它一定是绝对路径.
相对路径:相对路径一般是从当前位置开始的
[root@xuegod63 etc]# pwd #判断用户当前所处的位置
绝对路径: 从/开始的路径 /home/user1
相对路径: 相对于当前目录开始,a.txt ./a.txt ../root/b.txt 当前目录在/etc
[root@xuegod63 ~]# cd /etc/
[root@xuegod63 etc]# ll passwd
-rw-r--r-- 1 root root 2116 11 月 16 14:57 passwd
[root@xuegod63 etc]# ll /etc/passwd
-rw-r--r-- 1 root root 2116 11 月 16 14:57 /etc/passwd
3.2 文件的管理
文件管理方式有多种:
改变目录: cd
创建/修改/移动/删除: touch mkdir mv vi rm cp
3.2.1 创建文件和文件夹
命令:touch 文件名
作用:常用来创建空文件,如果文件存在,则修改这个文件的时间
语法:touch 文件名
Linux 不以后缀名判断文件类型,Linux 严格区分大小写
3.2.2 使用 vim 和重定向创建一个新文件
用 vim 命令创建一个新文件(可以先不做)
[root@xuegod63 mnt]# vim xuegod-1.txt
用重定向创建一新文件
[root@xuegod63 mnt]#echo aaa > xuegod.txt
3.2.3 命令之:mkdir
作用:创建目录
语法:mkdir (选项) 文件夹名子
批量创建多个文件
p参数
创建多层级级目录,#在创建一个目录的时候,如果这个目录的上一
级不存在的话,要加参数-p
使用terr命令查看层级结构
File显示文件类型
3.2.4 删除文件和目录
用到的命令:rm
作用:可以删除一个目录中的一个或多个文件或目录,对于链接文件,只是删除整个链接文件,而原
文件保持不变的
语法:rm (选项) 处理对象
选项:
-f 强制删除,没有提示
-r 删除目录,递归删除,把目录下的文件和文件夹也删除
rm -rf a 只删除a文件
rm -rf a dump_sda1 dump_sda1_v2 多个文件一起删除。
rm -rf (慎用,一定要在删除以前确定一下所在目录,防止误删除重要数据)
3.2.5 复制文件
命令:cp 源文件/目录 目标文件/目录
选项:-R/r:递归处理,将指定目录下的所有文件与子目录一并处理。复制目录时会使用 r 参数
例1:复制passwd文件到本目录下,“.”表示本当前目录下
理解起来就是复制 /etc/passwd到本目录下/opt下,和这个写法是一样的。
例2:拷贝目录时当目录里有子文件或者子目录时,直接拷贝是不行的
这时需要使用 -r参数
alsa目录的结构查看。
3.3 查看文件
3.3.1 命令之:cat
语法:cat 文件名
作用:查看文件内容,一次显示整个文件的内容
3.3.2 命令之:more
作用:以分页形式显示文件内容
说明: 按下回车刷新一行,按下空格刷新一屏,输入 q 键退出
3.3.3 命令之:less
作用:和 more 功能一样
语法:less +文件名
说明:linux 中 more 与 less 的区别
more:不支持后退,但几乎不需要加参数,空格键是向下翻页,Enter 键是向下翻一行,在不需要后
退的情况下比较方便
less:支持前后翻滚,既可以向上翻页(pageup 按键),也可以向下翻页(pagedown 按键)。,空
格键是向下翻页,Enter 键是向下翻一行
3.3.4 命令之:head
作用: 用于显示文件的开头的内容。在默认情况下,head 命令显示文件的头 10 行内容
语法:head(选项)文件名
命令:head /etc/passwd
参数: -n 显示从文件头开始的行数
head -n 3 /etc/passwd
表示显示前3行
3.3.5 命令之:tail
作用: 用于显示文件中的尾部内容。默认显示文件内容最后 10 行
语法:tail (选项)文件名
参数:
-n 显示文件尾部多少行的内容(n 为数字)
命令:tail -n 5 /etc/passwd 显示最后5行
-f 动态显示数据(不关闭),常用来查看日志
3.4 tar 命令进行文件的归档和压缩
3.4.1 归档和压缩文件
归档和压缩文件的好处:节约硬盘的资源 ,加快文件传输速率
tar 命令 作用:打包、压缩文件
这幅图的就是说 123456 这几个文件打包成了一个 a.tar 文件,但是这个 a.tar 还是很大,继续用
gzip 进行压缩,变成了一个更小的压缩文件。
作用:打包、压缩文件;tar 文件是把几个文件和(或)目录集合在一个文件里,该存档文件可以通
过使用 gzip、bzip2 或 xz 等压缩工具进行压缩后传输
查看 man tar 这里 man 不是男人的意思,是 manual 手册的缩写
用法:tar [OPTION...] [FILE]...
参数:
-c create 创建文件
-x -extract [ˈekstrækt] 提取 解压还原文件
-v --verbose 显示执行详细过程
-f --file 指定备份文件
-t --list 列出压缩包中包括哪些文件,不解包,查看包中的内容
-C (大写)--directory 指定解压位置
常用参数组合 cvf xvf tvf
例:给/boot/grub2 目录 打包
tar -cvf grub.tar /boot/grub2/ # tar 的参数前可以不使用‘-’
tar cvf grub.tar /boot/grub2/
查看 tar 包中的文件,不解包
tar tvf grub.tar
tar xvf grub.tar #解压缩
ls boot
#得到 boot 目录
3.4.2 tar 归档+压缩
语法:tar czvf newfile.tar.gz SOURCE
语法:tar czvf 压缩后的文件名(tar.gz tar.bz2) 需要压缩的文件或目录
常用参数:
-z, --gzip
以 gzip 方式压缩 扩展名: tar.gz
-j :
以 bz2 方式压缩的 扩展名:tar.bz2
-J:
以 xz 方式压缩 扩展名:tar.xz
例 1:创建.tar.gz 包
[root@xuegod63 ~]# tar cvf /root/etc.tar /etc
[root@localhost test]# tar czvf /root/etc.tar.gz /etc #归档,注意备份的名字后缀
[root@localhost test]# tar xzvf /root/etc.tar.gz #解压缩
[root@localhost test]# tar xvf /root/etc.tar.gz #解压缩
例 2:创建.tar.bz2 包
语法: #tar jcvf newfile.tar.bz2 SOURCE
[root@xuegod63 ~]# tar -cjvf ~/etc.tar.bz2 /etc
[root@xuegod63 ~]# tar -xjvf ~/etc.tar.bz2 #解压缩
[root@xuegod63 ~]# tar -xvf ~/etc.tar.bz2 #解压缩
[root@xuegod63 ~]# tar xvf ~/etc.tar.bz2 -C /opt #解压到 opt 目录下
例 3:创建.tar.xz 包
[root@xuegod63 ~]# tar -cJvf etc.tar.xz /etc
[root@xuegod63 ~]# tar -xJvf etc.tar.xz #tar.xz 这类包,解压缩
[root@xuegod63 ~]# tar -xvf etc.tar.xz
解压指定文件到指定目录
[root@xuegod63 ~]# tar czf boot.tar.gz /boot/grub2/
[root@xuegod62 ~]# tar -C /opt -xvf boot.tar.gz boot/grub2/grub.cfg
[root@xuegod63 ~]# ls /opt/boot/grub2/
解压某一类型文件到指定目录
--wildcards 文件名匹配,使用通配符
[root@xuegod62 ~]# tar -tvf boot.tar.gz
[root@xuegod62 ~]# tar -C /opt -xvf boot.tar.gz --wildcards *.lst
排除指定文件并解压
[root@xuegod62 ~]# rm -rf /opt/boot
[root@xuegod62 ~]# tar -C /opt -xvf boot.tar.gz boot/grub2 --
exclude=boot/grub2/i386-pc
[root@xuegod63 ~]# ls /opt/boot/grub2/
zip 管理压缩文件
zip 是压缩程序,unzip 是解压程序。
例 1:压缩文件:
[root@xuegod63 ~]# zip a.zip /etc/passwd
例 2:将所有.jpg 文件压缩成一个 zip 包
[root@xuegod63 ~]# touch {1..4}.jpg
[root@xuegod63 ~]# ls
[root@xuegod63 ~]# zip all.zip *.jpg
解压缩:
[root@xuegod63 ~]# unzip ~/grub.zip
[root@xuegod63 ~]# unzip ~/grub.zip -d /opt/ #-d 解压到指定的目标/opt