linux文件操作命令

ops/2025/1/1 10:36:46/

linux_0">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
    

http://www.ppmy.cn/ops/145949.html

相关文章

MYSQL无法被连接问题

如果您在尝试连接到MySQL服务器时遇到问题&#xff0c;以下描述了您可以采取的一些措施来纠正该问题。 确保服务器正在运行。如果没有&#xff0c;则客户端无法连接到它。例如&#xff0c;如果尝试连接到服务器失败并出现以下消息之一&#xff0c;则可能是服务器未运行&#xf…

python语音机器人(青云客免费api)

强调&#xff1a;不用登录注册&#xff0c;直接使用就好 青云客智能聊天机器人API python代码&#xff0c;直接可以运行&#xff1a; 1、安装库&#xff1a; pip install requests pyttsx3 SpeechRecognition sounddevice numpy scipy2、完整代码&#xff1a; import request…

1.FAISS与Langchain整合,搭配大模型实现本地知识库问答

1.FAISS是什么&#xff1f; FAISS向量数据库&#xff0c;是来自 Meta AI&#xff08;原 Facebook Research&#xff09;的开源项目&#xff0c;也是目前最流行的、效率比较高的相似度检索方案之一。 核心功能&#xff1a; 相似性搜索&#xff1a;FAISS提供了多种算法来快速找到…

RK3506开发板:智能硬件领域的新选择,带来卓越性能与低功耗

在现代智能硬件开发中&#xff0c;选择一款性能稳定、功耗低的开发板是确保产品成功的关键。Rockchip最新推出的RK3506芯片&#xff0c;凭借其卓越的能效比、多功能扩展性和优秀的实时性能&#xff0c;已经成为智能家电、工业控制、手持终端等领域的热门选择。而基于RK3506的Ar…

PostgreSQL的一主一从集群搭建部署 (两同步)

一、实验环境 虚拟机名IP身份简称keep-postgres12-node1192.168.122.87主节点node1keep-postgres12-node2192.168.122.89备节点node2keep-postgres12-node3192.168.122.90备节点node3 二、安装数据库 源码包方式&#xff08;主&#xff09; 1、创建用户 [rootkeep-postgre…

4个线程安全的单例模式

1、概述 单例模式是程序生命周期内&#xff0c;该类只有一个实例&#xff0c;并提供一个该实例访问点&#xff0c;适用于全局配置类、资源管理类等场景。 单实例模式特点&#xff1a; 1、构造函数私有 2、拷贝构造和赋值构造函数为私有 3、类有一个静态方法获取实例 2、静…

C#-调用C++接口

一.静态&动态装载DLL C中接口通过编译为DLL对外提供调用,C#需要将DLL加载至本应用才可实现C接口调用. 1.静态装载 C#应用程序在编译为可执行exe时将外部DLL装载至本应用中,例如在CSC编译指令中添加相关参数可实现DLL引用. csc /reference:user32.dll /out:HelloWorld.exe 2…

简单园区网拓扑实验

1.实验拓扑 2.实验要求 1、按照图示的VLAN及IP地址需求&#xff0c;完成相关配置 2、要求SW1为VLAN 2/3的主根及主网关 SW2为vlan 20/30的主根及主网关 SW1和SW2互为备份 3、可以使用super vlan 4、上层通过静态路由协议完成数据通信过程 5、AR1为企业出口路由器 6、要求全网可…