新增多篇Linux技术文档,涵盖基础命令、文件操作、用户权限、网络配置、进程管理、软件安装、系统监控和磁盘管理等主题。每篇文档包含详细命令示例和使用说明,适合作为Linux系统管理参考手册。 文档内容包含: 1. Linux基础命令与快捷键 2. 文件操作与查找技巧 3. 用户管理与权限配置 4. 网络配置与防火墙管理 5. 进程与服务管理方法 6. 软件包管理与安装 7. 系统资源监控命令 8. 磁盘分区与LVM管理
312 lines
5.2 KiB
Markdown
312 lines
5.2 KiB
Markdown
---
|
||
title: Linux文件操作
|
||
date: 2021-04-07 16:04:58
|
||
author: 文永达
|
||
top_img: https://gcore.jsdelivr.net/gh/volantis-x/cdn-wallpaper/abstract/00E0F0ED-9F1C-407A-9AA6-545649D919F4.jpeg
|
||
tags: [Linux, Shell, 文件管理]
|
||
categories: [操作系统, Linux]
|
||
---
|
||
|
||
# Linux文件操作
|
||
|
||
## 文件查看
|
||
|
||
### cat 命令
|
||
|
||
显示文本文件内容的一部分。
|
||
|
||
```shell
|
||
cat filename
|
||
```
|
||
|
||
适用于查看小型文件:`.java`、`.py`、`.xml`、`.html`、`.js`、`.css` 等。
|
||
|
||
### more 命令
|
||
|
||
分页显示文本文件内容,只能向下查看,不能向上翻页。
|
||
|
||
```shell
|
||
more filename
|
||
```
|
||
|
||
### less 命令
|
||
|
||
分页显示文本文件内容,支持上下翻页。
|
||
|
||
```shell
|
||
less filename
|
||
```
|
||
|
||
**操作方式**:
|
||
|
||
| 按键 | 功能 |
|
||
|-----|------|
|
||
| `PgUp` / `PgDn` | 上下翻页 |
|
||
| `↑` / `↓` | 一行一行查看 |
|
||
| `q` | 退出查看 |
|
||
|
||
### head 命令
|
||
|
||
查看文本文件的前 N 行。
|
||
|
||
```shell
|
||
# 查看前10行
|
||
head -n 10 filename
|
||
```
|
||
|
||
### tail 命令
|
||
|
||
查看文本文件的后 N 行,或实时监控文件变化。
|
||
|
||
```shell
|
||
# 查看后10行
|
||
tail -n 10 filename
|
||
|
||
# 实时监控文件变化
|
||
tail -f filename
|
||
```
|
||
|
||
---
|
||
|
||
## 文件查找
|
||
|
||
### find 命令
|
||
|
||
**基本语法**:
|
||
|
||
```shell
|
||
find 路径 表达式
|
||
```
|
||
|
||
#### 按文件名查找
|
||
|
||
```shell
|
||
# 在根目录下查找文件(整个硬盘)
|
||
find / -name httpd.conf
|
||
|
||
# 在指定目录下查找
|
||
find /etc -name httpd.conf
|
||
|
||
# 使用通配符模糊查找
|
||
find /etc -name '*srm*'
|
||
```
|
||
|
||
#### 按文件特征查找
|
||
|
||
```shell
|
||
# 查找最后10分钟访问的文件
|
||
find / -amin -10
|
||
|
||
# 查找最后48小时访问的文件
|
||
find / -atime -2
|
||
|
||
# 查找空文件或空目录
|
||
find / -empty
|
||
|
||
# 查找属于指定组的文件
|
||
find / -group cat
|
||
|
||
# 查找最后5分钟修改的文件
|
||
find / -mmin -5
|
||
|
||
# 查找最后24小时修改的文件
|
||
find / -mtime -1
|
||
|
||
# 查找属于指定用户的文件
|
||
find / -user fred
|
||
|
||
# 查找大于10000字节的文件
|
||
find / -size +10000c
|
||
|
||
# 查找小于1000KB的文件
|
||
find / -size -1000k
|
||
```
|
||
|
||
**文件大小单位**:`c`(字节)、`w`(双字)、`k`(KB)、`M`(MB)、`G`(GB)
|
||
|
||
#### 混合查找
|
||
|
||
```shell
|
||
# 大于10000字节且最后2分钟内修改的文件
|
||
find /tmp -size +10000c -and -mtime +2
|
||
|
||
# 用户是fred或george的文件
|
||
find / -user fred -or -user george
|
||
|
||
# 不属于panda用户的文件
|
||
find /tmp ! -user panda
|
||
```
|
||
|
||
**逻辑参数**:`!`(非)、`-and` 或 `-a`(与)、`-or` 或 `-o`(或)
|
||
|
||
### du 命令
|
||
|
||
查看磁盘空间使用情况,查找占用空间较多的文件。
|
||
|
||
```shell
|
||
# 查找/root下5个最大的文件
|
||
du -ah /root | sort -nr | head -n5
|
||
|
||
# 查找当前目录下最大的5个目录
|
||
du -ah | sort -nr | head -n5
|
||
|
||
# 查找根目录下最大的目录/文件(包括子文件夹)
|
||
du -Sh / | sort -rh | head -n10
|
||
|
||
# 只看大小在GB范围内的文件
|
||
du -ah / | grep "[0-9]G\b"
|
||
|
||
# 查看各目录占用
|
||
du -sh /* 2>/dev/null | sort -rh | head -20
|
||
|
||
# 重点查看/var目录
|
||
du -sh /var/* 2>/dev/null | sort -rh | head -20
|
||
```
|
||
|
||
### 快速查找大文件
|
||
|
||
```shell
|
||
# 查找用户目录下大于100M的文件
|
||
find ~ -type f -size +100M | xargs ls -lhS
|
||
|
||
# 只显示文件大小和路径
|
||
find ~ -type f -size +100M | xargs du -h | sort -hr
|
||
```
|
||
|
||
---
|
||
|
||
## 文件压缩
|
||
|
||
### 压缩概念
|
||
|
||
1. **打包**:把多个文件打成一个包
|
||
2. **压缩**:把文件占用的大小进行压缩
|
||
|
||
### tar 命令
|
||
|
||
**基本语法**:
|
||
|
||
```shell
|
||
tar [选项] 文件名
|
||
```
|
||
|
||
**常用参数**:
|
||
|
||
| 参数 | 说明 |
|
||
|-----|------|
|
||
| `-c` | 建立压缩文件(打包) |
|
||
| `-x` | 解开压缩文件(解包) |
|
||
| `-z` | 使用 gzip 压缩 |
|
||
| `-v` | 显示压缩过程日志 |
|
||
| `-f` | 指定文件名 |
|
||
|
||
**常用组合**:
|
||
|
||
| 命令 | 说明 |
|
||
|-----|------|
|
||
| `tar -cf` | 只打包,不压缩,不显示日志 |
|
||
| `tar -xf` | 解压文件,不显示日志 |
|
||
| `tar -cvf` | 只打包,不压缩,显示日志 |
|
||
| `tar -xvf` | 解压文件,显示日志 |
|
||
| `tar -zcvf` | 打包压缩,显示日志 |
|
||
| `tar -zxvf` | 解压(最常用) |
|
||
|
||
**示例**:
|
||
|
||
```shell
|
||
# 打包压缩
|
||
tar -zcvf wwwroot.tar.gz wwwroot/
|
||
|
||
# 解压
|
||
tar -zxvf wwwroot.tar.gz
|
||
```
|
||
|
||
### tar.gz 与 tgz
|
||
|
||
两者本质相同,只是扩展名不同。都是通过 `tar` 打包后使用 `gzip` 压缩。
|
||
|
||
---
|
||
|
||
## 文件权限
|
||
|
||
### 权限说明
|
||
|
||
Linux 文件有三种权限:
|
||
|
||
| 权限 | 说明 |
|
||
|-----|------|
|
||
| `r` | 可读 |
|
||
| `w` | 可写 |
|
||
| `x` | 可执行 |
|
||
|
||
### chmod 命令
|
||
|
||
修改文件权限。
|
||
|
||
```shell
|
||
# 设置权限为755(rwxr-xr-x)
|
||
chmod 755 file
|
||
```
|
||
|
||
**权限数字说明**:
|
||
|
||
| 数字 | 权限 |
|
||
|-----|------|
|
||
| 7 | rwx |
|
||
| 6 | rw- |
|
||
| 5 | r-x |
|
||
| 4 | r-- |
|
||
| 0 | --- |
|
||
|
||
### 查看目录权限
|
||
|
||
```shell
|
||
sudo ls -ld /OLAP
|
||
```
|
||
|
||
输出示例:
|
||
|
||
```
|
||
drwxr-xr-x 5 root root 4096 Aug 5 08:27 /OLAP
|
||
```
|
||
|
||
### 修改目录权限
|
||
|
||
```shell
|
||
# 设置权限为775
|
||
sudo chmod 775 /OLAP
|
||
```
|
||
|
||
### 更改目录所有者
|
||
|
||
```shell
|
||
# 将目录所有者更改为指定用户
|
||
sudo chown user:user /OLAP
|
||
```
|
||
|
||
---
|
||
|
||
## 路径获取
|
||
|
||
```shell
|
||
# 获取文件绝对路径
|
||
readlink -f sample.txt
|
||
|
||
# 获取文件绝对路径(不解析符号链接)
|
||
realpath -s sample.txt
|
||
|
||
# 在当前目录查找文件并显示完整路径
|
||
find $(pwd) -name sample.txt
|
||
|
||
# 显示当前目录下文件的完整路径
|
||
ls -l $PWD/sample.txt
|
||
```
|
||
|
||
---
|
||
|
||
## 文件目录大小统计
|
||
|
||
```shell
|
||
# 列出当前目录下所有文件的大小及统计总和
|
||
ls -lht
|
||
``` |