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.txt
more:逐页查看,按空格翻页。
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.gz
unzip:解压 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