持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第19天,点击查看活动详情
小巧的文件下载工具:wget
它的使用非常简单,只需要在后面跟上文件完整的路径即可
wegt+下载路径
wget 也有一些常用的参数,如下:
-O保存为指定的文件名(大写的字母 o)-c启用断点续传,在下载大文件的时候建议使用
全能打包解包工具:tar
tar 命令的格式大致如下:
tar [OPTION...] [FILE]
tar 有几个常用的参数,如下:
-c建立新的打包文件-f指定包文件-v显示打包/释放的过程-z支持 gzip 处理文件-j支持 bzip2 处理文件-t显示打包的文件的内容-r添加文件到已经打包的文件-x从打包的文件中释放文件-C释放到指定目录
例如将 /usr/local/bin 目录打包为 bin.tar 文件:
tar -cf bin.tar /usr/local/bin
注意这个 -f 参数后必须跟着文件名,即 tar -fc bin.tar 是错误的命令。
如果要解压包,只需要把对应命令中的 -c 参数改为 -x 即可:
tar -xf bin.tar
多平台压缩工具:zip 和 unzip
zip
zip 有几个常用参数,如下:
-
-o输出的文件名称,需在其后紧跟需要打包输出的文件名 -
-q安静模式,不显示指令执行过程 -
-r递归处理,将指定目录下的所有文件和子目录一起打包 -
-l压缩文件时,把 LF 字符替换为 LF+CR 字符 -
-e创建加密的压缩包 -
使用 zip 打包文件夹,注意输入完整的参数和路径:
zip -r -q -o test.zip /home/test/Desktop
- 设置压缩级别为 9 和 1(9 最大,1 最小),重新打包:
zip -r -9 -q -o test_9.zip /home/test/Desktop
zip -r -1 -q -o test_1.zip /home/test/Desktop
这里添加了一个参数用于设置压缩级别 [1-9],1 表示最快压缩但体积大,9 表示体积最小但耗时最久。
unzip
unzip 也有几个常用的参数,如下:
-q安静模式,执行时不显示任何信息-d [dir]指定文件解压缩后存放的目录,如果不存在将自动创建-l显示压缩文件内所包含的文件-O指定压缩包编码类型
将 abcd.zip 解压到当前目录:
unzip abcd.zip
使用安静模式,将文件解压到指定目录:
unzip -q abcd.zip -d ziptest
上述指定目录不存在,将会自动创建。如果你不想解压只想查看压缩包的内容你可以使用 -l 参数:
unzip -l abcd.zip
在解压时指定编码类型。
unzip -O GBK xxx.zip
解压其他格式的压缩文件
解压 7z 文件
解压 7z 文件需要用到 p7zip 工具,这个工具系统里没有自带,所以需要手动安装。
sudo apt update
sudo apt install p7zip-full -y
安装完成后,直接执行 7z x [filename].7z 即可解压 7z 文件。
解压 rar 文件
在 Windows 平台上,大家可能直到一个 WinRAR 软件可以用于解压 .rar 的压缩包,但是很不幸这个软件需要付费,即使在 Linux 平台上也是如此,因此我们可以使用免费软件 unrar-free 来解压。
p7zip 也提供了一个支持 rar 的插件,可以安装
p7zip-rar获取。
sudo apt install unrar-free -y
解压只需要一个命令即可:
unrar -x [filename].rar
Linux 文件类型和权限
用命令 ls -alh ~ 来查看一下文件的详细信息。
从屏幕打印出来的信息,以空格为分组标志,从左到右依次表示:
文件类型和权限、硬链接数、所有者、所属组、文件大小、最后修改时间、文件名。
还有一个比较重要的概念就是 Linux 里面一切皆文件,
文件类型主要分为以下 7 种,一般只需要了解前三种即可:
- 普通文件
-:文本文件、数据文件、可执行程序等等都可作为普通文件存储。 - 目录
d:目录中按照名字来对其它文件进行引用。 - 符号链接
l:也叫做软链接,通过名字指向文件。 - 字符设备文件
c:字符设备文件让相关的驱动程序作为输入输出的缓冲。 - 块设备文件
b:块设备文件由处理块数据的I/O驱动程序使用,同时让内核提供缓冲。 - 本地域套接口
s:实现进程间通信的连接,本地域套接口由系统调用socket创建,用rm或unlink删除。 - 有名管道(FIFO)
p:让运行在同一主机上的两个进程相互通信,和socket相似,用mknod创建,用rm来删除。
文件权限
除去文件类型外,后面的字符,以三个为一组,且均为 rwx 的三个参数组合,代表了 Linux 的 读、写、执行 三种权限控制。r 代表可读(read)、w 代表可写(write)、x 代表可执行(execute)。要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 -。
其中三位一组分别是 所有者的权限(U,即 user)、所属组的权限(G,即 group)、其他用户的权限(O,即 other) 。
权限编码
| 数字 | 字符 | 文件/目录 |
|---|---|---|
| 4 | r | 查看文件内容/查看目录下的文件或目录名称 |
| 2 | w | 修改文件内容/在目录下增删改 |
| 1 | x | 执行一些程序或脚本/可以用命令切换目录 |
| 八进制 | 二进制 | 权限 |
|---|---|---|
| 0 | 000 | --- |
| 1 | 001 | --x |
| 2 | 010 | -w- |
| 3 | 011 | -wx |
| 4 | 100 | r-- |
| 5 | 101 | r-x |
| 6 | 110 | rw- |
| 7 | 111 | rwx |
chmod:改变文件或目录权限
语法:
chmod [选项][权限][文件或目录]
- 使用字符形式修改权限
在 chmod 命令参数中,u 代表所有者,g 代表所属组,o 代表其他用户,a 代表所有人。
修改 install.log 文件的权限设置成全部为可读、可写、可执行。
chmod u=rwx,g=rwx,o=rwx install.log
- 使用操作符形式修改权限
操作符形式是在字符形式的基础上对文件或目录使用 +/- 操作符来设置权限。
通过 + 符号增加相应的权限,- 符号减去相应的权限。
chmod u+x,g+x,o-rw install.log
- 使用数字形式修改权限
# 修改文件权限为 `rwxrwxrwx`
chmod 777 install.log
# 修改文件权限为 `rwx------`
chmod 700 install.log
# 修改文件权限为 `rwxr-xr-x`
chmod 755 install.log
另外还有可能遇到一种情况,就是文件没有执行权限,此时只需要执行一下 chmod +x [filename] 即可快速赋予执行权限。
chown:改变归属关系
chown 命令是 change owner(改变所有人) 的缩写,主要用于改变文件或者目录的所有权,语法和 chmod 类似。chown 需要超级用户 root 的权限才能执行此命令。
mkdir chowntest
ls -lh
sudo chown root chowntest # 修改文件的所属者为 `root`,因为是 root 用户所以需要用到 `sudo`。
ls -lh
如果需要同时改变所属组,也可以直接执行:
sudo chown root:root chowntest
find 命令
find 命令主要用于查找指定的文件,目录。它的功能非常强大,除了能够根据名称查找外,还能根据文件类型,文件权限,文件大小甚至是文件时间戳等信息进行查找。
find 命令的基本格式如下:
find [指定目录] [参数]
针对不同的功能,find 也提供了非常多的参数,下面只列出几个使用较多的参数。
首先是基本参数:
-
-name:指定需要搜索的文件/目录名 -
-iname:指定名称忽略大小写 -
-type:指定需要搜索的文件类型 根据时间来搜索主要有以下几个参数: -
-mtime:文件的内容上次修改时间,以天为单位 -
-atime:文件最后被读取或访问的时间,以天为单位 -
-ctime:文件的状态变化时间,以天为单位 -
-amin:文件最后读取或访问的分钟 -
-cmin:文件最后状态变化的分钟 -
-mmin:文件最后内容修改的分钟 这些时间选项都需要指定一个值 n 一起使用,这里的[a/c/m]time实际时间是n*24小时也就是以天为单位,与[a/c/m]min一起使用则是以分钟为单位。 -
-n:指定的时间小于 n -
+n:指定的时间大于 n -
n:指定的时间正好与 n 相等