Linux基础(文件管理、IO重定向)

文件管理与IO重定向精要指南

一、文件系统核心结构

  1. 目录树特性

    • 单根倒置树结构,根目录 /
    • 文件名称大小写敏感(Mail ≠ mail)
    • 隐藏文件以 . 开头(如 .bashrc
    • 路径分隔符:/
    • 最大文件名长度:255字节
    • 最大路径长度:4095字节
  2. 文件类型标识

    符号 类型 示例
    - 普通文件 file.txt
    d 目录 /home/user
    l 符号链接 /bin/sh → dash
    b 块设备 /dev/sda
    c 字符设备 /dev/tty
    p 管道文件 named_pipe
    s 套接字文件 /run/docker.sock
  3. 目录颜色约定

    • 蓝色:目录
    • 绿色:可执行文件
    • 红色:压缩文件
    • 浅蓝:链接文件
    • 灰色:其他文件

二、目录与文件操作

  1. 目录管理

    mkdir /data/project           # 创建目录
    mkdir -p /data/project/{src,log} # 递归创建
    tree -L 2 /data               # 查看目录结构(2级深度)
    basename /path/to/file.txt    # 输出 file.txt
    dirname /path/to/file.txt     # 输出 /path/to
    
  2. 安全删除实践

    场景 安全操作 危险操作
    删除文件 rm -f old.log rm -rf /data/*
    生产环境删除 mv bigfile /tmp/trash/ rm -rf /*
    清空正在使用的文件 cat /dev/null > running.log 直接删除导致空间不释放
  3. 文件占用问题解决

    lsof | grep deleted         # 查找被删除但未释放的文件
    ps aux | grep 1234          # 查看占用进程(1234为PID)
    kill -9 1234                # 终止进程
    df -h                       # 验证空间释放
    

三、文件元数据与时间戳

  1. 时间类型对比

    类型 查看命令 触发条件
    atime ls -lu / stat 文件被读取
    mtime ls -l (默认) / stat 文件内容修改
    ctime ls -lc / stat 元数据变更(权限/所有者等)
  2. 元数据操作

    stat file.txt            # 查看详细元数据
    file unknown.bin         # 检测文件类型
    touch file.txt           # 更新所有时间戳
    

四、通配符与模式匹配

通配符 功能 示例
* 匹配任意字符 rm *.log
? 匹配单个字符 ls file?.txt
[abc] 匹配指定字符 cp [abc]*.conf /backup
{a,b} 扩展模式 mkdir /dir{1,2,3}
[^a-z] 排除字符范围 ls !(*.bak)
# 备份非隐藏文件
cp -a !(.*) /backup/  

五、Inode 深度解析

  1. Inode 结构

    graph LR
    A[文件名] --> B[Inode 表]
    B --> C[元数据]
    C --> D[权限/大小/时间]
    C --> E[数据块指针]
    
  2. 关键命令

    ls -i file.txt        # 查看inode号
    df -i                 # 查看分区inode总数
    df -h                 # 查看磁盘空间使用
    
  3. 空间未释放解决方案

    lsof +L1              # 查找已删除但被占用的文件
    > /var/log/app.log    # 清空文件释放空间
    systemctl restart service # 重启占用进程
    

六、IO重定向高级技巧

  1. 标准流描述符

    FD 名称 默认设备
    0 stdin 键盘
    1 stdout 屏幕
    2 stderr 屏幕
  2. 重定向操作符

    cmd > file         # 标准输出覆盖重定向
    cmd >> file        # 标准输出追加重定向
    cmd 2> error.log   # 标准错误重定向
    cmd &> all.log     # 混合输出重定向
    cmd 2>&1 | tee output.log # 同时输出到屏幕和文件
    
  3. 高级用法

    # 多行输入重定向
    cat <<EOF > config
    line1
    line2
    EOF
    
    # Here String
    tr 'a-z' 'A-Z' <<< "hello"
    
    # 进程替换
    diff <(ls dir1) <(ls dir2)
    

七、文本处理命令

  1. tr 字符转换

    echo "123456" | tr '123' 'ABC'     # ABC456
    echo "Hello123" | tr -d '0-9'      # Hello
    echo "aaabbbccc" | tr -s 'ab'      # abccc
    
  2. tee 双路输出

    # 覆盖写入
    echo "New Data" | tee output.log
    
    # 追加写入
    dmesg | tee -a system.log
    
    # 忽略中断信号
    important_process | tee -i logfile
    
文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇