linux文件操作命令
以下是 Linux 系统中与文件操作相关的命令,附带常用参数的详细解释。
1. 查看文件和目录
列出目录内容 (ls)
ls [选项] [路径]
常用选项:
-l:以详细列表形式显示,包括权限、所有者、文件大小、修改时间等。-a:显示所有文件,包括以.开头的隐藏文件。-h:配合-l,以人类可读的文件大小显示(如1K,1M)。-r:逆序排列。-t:按时间排序。
示例:
ls -lah /home/user
查看当前路径 (pwd)
pwd
- 输出当前工作目录的完整路径。
2. 创建文件和目录
创建文件 (touch)
touch filename
- 功能:创建一个空文件或更新已有文件的时间戳。
创建目录 (mkdir)
mkdir [选项] 目录名
常用选项:
-p:递归创建目录。如果父目录不存在,会自动创建。
示例:
mkdir -p /home/user/project/logs
3. 查看文件内容
显示文件内容 (cat)
cat [选项] 文件名
常用选项:
-n:显示行号。-A:显示所有字符,包括不可见字符。
示例:
cat -n file.txt
分页查看 (less 和 more)
less:分页查看,支持向前滚动。
less file.txtmore:逐页查看,按空格翻页。
more file.txt
4. 编辑文件
简单编辑器 (nano)
nano filename
- 使用快捷键(如
Ctrl+O保存,Ctrl+X退出)。
高级编辑器 (vim)
vim filename
- 基本模式:
- 按
i进入插入模式。 - 编辑完成后按
Esc,输入:wq保存并退出。
- 按
5. 复制、移动和重命名文件
复制文件和目录 (cp)
cp [选项] 源文件 目标文件
常用选项:
-r:递归复制目录。-p:保留文件属性(权限、时间戳等)。-i:覆盖前提示确认。-v:显示详细过程。
示例:
cp -rp source_dir/ target_dir/
移动和重命名 (mv)
mv [选项] 源文件 目标文件
常用选项:
-i:覆盖前提示确认。-v:显示详细过程。
示例:
mv file1.txt file2.txt # 重命名 mv file.txt /path/to/dir/ # 移动文件
6. 删除文件和目录
删除文件和目录 (rm)
rm [选项] 文件/目录
常用选项:
-r:递归删除目录及其内容。-f:强制删除,无需确认。-i:删除前提示确认。
示例:
rm -rf /tmp/test
7. 搜索文件和内容
查找文件 (find)
find [路径] [条件] [操作]
常用条件:
-name:按文件名查找(支持通配符)。-type:按类型查找,如f(文件),d(目录)。-size:按文件大小查找,如+1M(大于1MB)。-mtime:按修改时间查找,如-7(7天内修改的文件)。
示例:
find /home -name "*.txt"
搜索文件内容 (grep)
grep [选项] "关键字" 文件名
常用选项:
-i:忽略大小写。-r:递归搜索目录。-n:显示行号。
示例:
grep -rn "error" /var/log/
8. 修改文件权限
修改权限 (chmod)
chmod [模式] 文件
权限格式:
u:用户,g:组,o:其他,a:全部。+:添加权限,-:删除权限,=:设置权限。
示例:
chmod u+x script.sh # 给用户添加执行权限 chmod 755 file.txt # 设置读写执行权限
修改所有者 (chown)
chown [选项] 用户:组 文件
示例:
chown user:group file.txt
9. 压缩和解压文件
压缩文件
tar:创建归档文件。
tar -czvf archive.tar.gz 文件/目录zip:压缩为 ZIP 格式。
zip -r archive.zip 文件/目录
解压文件
tar:解压 .tar.gz文件。
tar -xzvf archive.tar.gzunzip:解压 ZIP 文件。
unzip archive.zip
10. 其他常用操作
统计文件行、词、字符数 (wc)
wc [选项] 文件
常用选项:
-l:统计行数。-w:统计单词数。-c:统计字节数。
示例:
wc -l file.txt
监视文件内容 (tail 和 head)
显示文件头部:
head -n 10 file.txt动态监视文件末尾:
tail -f file.txt
在 Linux 中,管道符 (|) 是一种强大的工具,用于将一个命令的输出传递给另一个命令作为输入。以下是管道符的详细介绍和常见使用场景。
管道符语法
command1 | command2
command1:第一个命令,生成输出。|:管道符,将第一个命令的输出传递给第二个命令。command2:第二个命令,将接收的输入进行处理。
常见场景和示例
1. 结合 grep 搜索内容
查找某目录中包含特定关键词的文件:
ls -l | grep "filename"示例:列出当前目录下包含 “log” 的文件名:
ls | grep "log"
2. 结合 sort 排序
按文件大小排序(结合 ls -l):
ls -l | sort -k 5 -n-k 5:按第 5 列(文件大小)排序。-n:按数值排序。
3. 结合 wc 统计
统计当前目录下的文件数量:
ls | wc -l统计文件中的行数、单词数和字符数:
cat file.txt | wc
4. 结合 head 和 tail 查看内容
查看文件的前 10 行:
cat file.txt | head -n 10查看文件的最后 10 行:
cat file.txt | tail -n 10
5. 结合 cut 提取字段
从 ls -l中提取文件权限:
ls -l | cut -d ' ' -f 1-d ' ':以空格为分隔符。-f 1:提取第 1 列。
6. 结合 awk 进行格式化
提取文件名和大小:
ls -l | awk '{print $5, $9}'$5:表示文件大小。$9:表示文件名。
7. 结合 uniq 去重
统计文件中的唯一单词(结合 sort 和 uniq):
cat file.txt | sort | uniq
8. 结合 tee 保存和显示
将命令输出保存到文件,同时在终端显示:
ls -l | tee output.txt
9. 结合 xargs 执行批量命令
删除包含特定关键词的文件:
ls | grep "temp" | xargs rm将文本文件中的内容逐行作为命令行参数:
cat files.txt | xargs -I {} mv {} /backup/
10. 动态监控日志文件
监控日志文件中包含错误的行:
tail -f /var/log/syslog | grep "error"
管道符结合其他符号
与重定向符号一起使用
将管道符的输出保存到文件:
ls | grep "txt" > result.txt
多重管道
将多个命令串联:
cat file.txt | grep "keyword" | sort | uniq -c | sort -nr
- 功能:
- 搜索文件中的
keyword。 - 排序结果。
- 去重并统计出现次数。
- 按出现次数逆序排序。
- 搜索文件中的
在 Linux 中,重定向 是将命令的输出或输入重定向到文件或其他设备的操作。它通常用于保存输出、将错误输出单独处理或读取文件作为输入。
1. 输出重定向
标准输出 (>)
- 将命令的标准输出(正常输出)重定向到文件。
- 如果文件已存在,会覆盖原文件内容。
command > file
示例:
ls > output.txt将 ls 命令的输出保存到 output.txt文件中。
追加输出 (>>)
- 将命令的标准输出追加到文件末尾,而不是覆盖。
command >> file
示例:
echo "New line" >> output.txt将字符串 “New line” 添加到 output.txt 的末尾。
2. 错误重定向
标准错误输出 (2>)
- 将命令的错误输出(标准错误)重定向到文件。
command 2> error.txt
示例:
ls nonexistent_file 2> error.txt将错误消息保存到 error.txt。
追加错误输出 (2>>)
- 将错误输出追加到文件末尾。
command 2>> error.txt
3. 合并标准输出和错误输出
将标准输出和标准错误合并到同一文件
- 使用
&>将正常输出和错误输出都保存到一个文件。
command &> output.txt
示例:
ls existing_file nonexistent_file &> all_output.txt
追加合并输出
- 使用
&>>将正常输出和错误输出都追加到一个文件。
command &>> output.txt
4. 输入重定向
将文件作为命令的输入 (<)
- 使用
<将文件内容作为命令的输入。
command < file
示例:
wc -l < input.txt统计 input.txt 的行数。
5. 同时处理输出和错误
将标准输出和错误分别保存到不同文件
- 使用
> file和2> error_file:
command > output.txt 2> error.txt
示例:
ls existing_file nonexistent_file > stdout.txt 2> stderr.txt
6. 特殊重定向
丢弃输出到 /dev/null
/dev/null是一个特殊设备文件,重定向到它的内容会被丢弃。丢弃标准输出:
command > /dev/null丢弃标准错误:
command 2> /dev/null同时丢弃标准输出和错误:
command &> /dev/null
7. 使用 tee 同时输出到文件和终端
tee命令可以将输入同时保存到文件和终端。
command | tee file
示例:
ls | tee output.txt将
ls的输出显示在终端的同时保存到output.txt。追加模式:
command | tee -a file
8. 重定向符号总结
| 符号 | 作用 |
|---|---|
> |
将标准输出重定向到文件,覆盖文件内容 |
>> |
将标准输出追加到文件末尾 |
2> |
将错误输出重定向到文件,覆盖文件内容 |
2>> |
将错误输出追加到文件末尾 |
&> |
将标准输出和错误输出重定向到同一文件 |
&>> |
将标准输出和错误输出追加到同一文件 |
< |
将文件内容作为命令的标准输入 |
/dev/null |
丢弃所有输出 |
| ` | tee` |
示例:组合重定向
同时保存输出和错误到不同文件:
ls existing_file nonexistent_file > stdout.txt 2> stderr.txt同时显示输出在终端,并保存到文件:
ls | tee output.txt统计某文件夹的文件数量,但丢弃错误:
ls /path/to/dir 2> /dev/null | wc -l