linux文件管理(补充)
1、查看文件命令
1.1 cat
1.2 more和less
1.3 head和tail
2、检索文件内容
2.1 wc命令
wc 命令用于统计文件内容中包含的行数、单词数、字节数等信息,使用文件名作为参数,可以同时统计多个文件。
语法
wc [-clw][--help][--version][文件...]
参数:
-l:统计文件内容中的行数。
-w:统计文件内容中的单词个数(以空格或制表位作为分隔)。
-c:统计文件内容中的字节数。
2.2 grep命令
grep [选项]… 查找条件 目标文件
参数:
参数 | 说明 | 示例 |
---|---|---|
-i | 忽略大小写 | grep -i "error" log.txt |
-v | 反向匹配,显示不包含模式的文本 | grep -v "success" file.txt |
-w | 全词匹配(避免部分匹配) | grep -w "word" file.txt |
-n | 显示匹配行的行号 | grep -n "pattern" file.txt |
-c | 统计匹配行数(不显示内容) | grep -c "error" log.txt |
文件与目录控制参数:
参数 | 说明 | 示例 |
---|---|---|
-r | 递归搜索目录 | grep -r "main" /src/ |
--include | 指定文件类型 | grep -r --include="*.py" "import" ./ |
--exclude | 排除文件类型 | grep -r --exclude="*.log" "error" ./ |
-l | 只显示包含匹配的文件名 | grep -l "pattern" *.txt |
-L | 显示不包含匹配的文件名 | grep -L "pattern" *.txt |
2.3 find命令
find
是 Unix/Linux 系统中一个强大的文件搜索工具,用于在目录层次结构中查找文件和目录。它可以根据多种条件(如名称、类型、大小、修改时间等)进行搜索,并对找到的文件执行操作。
(1)按文件名/路径匹配
参数 | 说明 | 示例 |
---|---|---|
-name "模式" | 按文件名匹配(区分大小写) | find /etc -name "*.conf" |
-iname "模式" | 按文件名匹配(不区分大小写) | find . -iname "readme*" |
-path "模式" | 按路径匹配(区分大小写) | find /var -path "*log*" |
-ipath "模式" | 按路径匹配(不区分大小写) | find . -ipath "*doc*" |
-regex "模式" | 按正则表达式匹配(全路径) | find . -regex ".*\.\(txt|sh\)" |
-iregex "模式" | 按正则表达式匹配(不区分大小写) | find . -iregex ".*\.pdf" |
(2)按文件类型过滤
参数 | 文件类型 | 示例 |
---|---|---|
-type f | 普通文件 | find /home -type f |
-type d | 目录 | find . -type d -name "src" |
-type l | 符号链接 | find /usr -type l |
-type b | 块设备文件 | find /dev -type b |
-type c | 字符设备文件 | find /dev -type c |
-type p | 命名管道(FIFO) | find /tmp -type p |
-type s | 套接字文件 | find /run -type s |
(3)按时间过滤
参数 | 说明 | 示例 |
---|---|---|
-mtime n | 修改时间在 n 天前(精确到天) | find /var/log -mtime +7 (7天前修改) |
-mmin n | 修改时间在 n 分钟前 | find ~ -mmin -60 (最近60分钟内修改) |
-atime n | 访问时间在 n 天前 | find /tmp -atime +30 (30天未访问) |
-amin n | 访问时间在 n 分钟前 | find . -amin -10 (10分钟内访问过) |
-ctime n | 状态变更时间在 n 天前 | find /etc -ctime -1 (1天内元数据变更) |
-cmin n | 状态变更时间在 n 分钟前 | find . -cmin -5 (5分钟内权限/所有者变更) |
-newer 文件 | 比指定文件更新的文件 | find . -newer reference.txt |
(4)按大小过滤
参数 | 说明 | 示例 |
---|---|---|
-size +n | 大于 n 单位(如 +1M ) | find /var -size +10M (大于10MB) |
-size -n | 小于 n 单位 | find ~ -size -100k (小于100KB) |
-size n | 等于 n 单位 | find . -size 0 (空文件) |
单位 | c (字节)、k (KB)、M (MB)、G (GB) | find / -size +1G |
(5)按权限/所有者过滤
参数 | 说明 | 示例 |
---|---|---|
-perm 权限 | 精确匹配权限(八进制) | find . -perm 644 |
-perm -权限 | 包含指定权限(所有位必须满足) | find /bin -perm -111 (可执行文件) |
-perm /权限 | 包含任一权限(任意位满足) | find . -perm /222 (用户/组/其他可写) |
-user 用户名 | 属于指定用户 | find /home -user alice |
-group 组名 | 属于指定组 | find /etc -group root |
-nouser | 无有效所有者(用户被删除) | find / -nouser |
-nogroup | 无有效组(组被删除) | find / -nogroup |
(6)逻辑操作符
参数 | 说明 | 示例 |
---|---|---|
-a (默认) | 与(AND) | find . -name "*.txt" -type f |
-o | 或(OR) | find . -name "*.sh" -o -name "*.py" |
-not (或 ! ) | 非(NOT) | find /var ! -name "*.log" |
() | 分组条件 | find . \( -name "*.tmp" -o -name "*.bak" \) -delete |
.......
3、备份与恢复
在 Linux 操作系统中,最简单的文件和目录备份工具就是 cp(复制)命令。但是当需要备份的文件、目录数量较多时,仅仅使用 cp命令就显得“力不从心” ,并且备份的文件数量及其所占用的磁盘空间都可能会对服务器产生不小的压力。
3.1 gzip和gunzip文件
使用 gzip 制作的压缩文件默认的扩展名为“.gz”。制作压缩文件时,使用“-9”选项可以提高压缩的比率,但文件较大时会需要更多的时间。
语法: gzip 参数 文件
参数:
3.2 bzip2和bunzip2
bzip2 和 bunzip2 命令的用法与 gzip、gunzip 命令基本相同,使用 bzip2 制作的压缩文件默认的扩展名为".bz2"。在ubuntu系统中,一般自带gzip工具,bzip2工具需要下载。
apt install bzip2 #在ubuntu下安装bzip2
3.3 tar命令
tar 命令主要用于对目录和文件进行归档。在实际的备份工作中,通常在归档的同时也会将包文件进行压缩(需要调用前面的 gzip 或 bzip2 命令),以节省磁盘空间。
格式:
参数:
4、vim文本编辑器的使用
vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
vim键盘图(源自网络):
基本上 vi/vim 共分为三种模式,
命令模式(Command Mode)、输入模式(Insert Mode)、命令行模式(Command-Line Mode)
......