linux文件操作命令


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

分页查看 (lessmore)

  • 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

监视文件内容 (tailhead)

  • 显示文件头部:

    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. 结合 headtail 查看内容

  • 查看文件的前 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
  • 功能:
    1. 搜索文件中的 keyword
    2. 排序结果。
    3. 去重并统计出现次数。
    4. 按出现次数逆序排序。

在 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. 同时处理输出和错误

将标准输出和错误分别保存到不同文件

  • 使用 > file2> 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`

示例:组合重定向

  1. 同时保存输出和错误到不同文件:

    ls existing_file nonexistent_file > stdout.txt 2> stderr.txt
  2. 同时显示输出在终端,并保存到文件:

    ls | tee output.txt
  3. 统计某文件夹的文件数量,但丢弃错误:

    ls /path/to/dir 2> /dev/null | wc -l

文章作者: 0xdadream
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 0xdadream !
评论
  目录