zoukankan      html  css  js  c++  java
  • Linux基础第四课——文件操作

    文件的创建 touch

    sudo touch 文件1 文件2 文件3 #支持批量创建文件 
    sudo rm -f 文件1 文件2 文件3 #支持批量创建 也支持批量删除
    echo '谁动谁输,对不起我输了,我心动了' > 2.txt # 2.txt如果没有自动创建 root权限 
    echo '告诉你一个坏消息,什么坏消息,我对你的想法已经不单纯了' > 2.txt 这样会将之前的内容覆盖掉 
    echo '谁动谁输,对不起我输了,我心动了' >> 2.txt 将内容追加到指定的文件中
    

    文件的查看

    cat 文件名 #输出内容 从前往后 重点 
    tac 文件名 #输出内容 从后往前 
    
    head -n 3 2.txt # 3代表行数 查看前3行 默认显示前10行 重点
    
    tail -n 3 2.txt #显示后三行 重点 
    tail -f cat 2.txt #时时查看文件后面的内容 多用来查看日志 ctrl+c 终止 重点
    
    watch -d -n 秒数 cat 文件名 # 时时显示 有高亮 ctrl+c 终止 重点 
    
    sudo vim 文件名 
    
    more 文件名 # 从前往后查看 空格 翻页 回车 换行 q退出 重点 
    less 文件名 #g 首页 G尾页 b 向前翻页 空格 向后翻页 q退出 
    stat 文件名 #显示文件的详细信息 
    
    
    文件的三个时间 
    atime accesstime 访问时间 
    mtime modifytime 修改时间 
    ctime changetime 修改状态时间 修改元数据
    

    文件删除 rm

    sudo rm 文件名 
    sudo rm -i 文件名 #删除之前先确认 
    sudo rm -f 文件名 #强制删除 
    sudo rm -rf 目录名 # 强制并递归删除 
    rm -rf 一定慎用 
    

    文件的移动 mv Linux 没有扩展名区分

    在一个目录下面 mv 其实就是重命名 
    cd ~ 
    mv 1.txt 666.jpg #1.txt 被重命名成 666.jpg 
    
    将文件移动到其它目录 
    mv 666.jpg /tmp/ #这样到tmp目录下面 文件名保持不变 
    
    mv 666.jpg /tmp/kangbazi.jpg #这样移动 文件名发生变化 内容不变
    

    文件的拷贝 cp

    cp kangbazi.jpg 888.rmvb #复制一个新的文件 
    
    复制目录:
    cp -r 目录/ /tmp/ 将目录复制到tmp 
     
    cp test/* /tmp/ #表示将目录下面所有的文件 复制到 tmp目录下 
    cp -r test/* /tmp/ #表示将目录下 所有的文件及子目录复制到 tmp 下
    

    文件查找 find

    find [路径] [参数] [文件名]
    
     -name 按照文件名查找 
     -iname 按照文件名查找 不区分大小写 
     -mtime +/-n -n表示 n天以内 +n 表示超过多少天 
     -user 按照文件所属的用户查找 
     -size [+/-]n[c/k/m/g] + 大于 - 小于 c字节 
     -perm 数值比如755 #按照文件权限进行查找 
     -maxdepth #按照深度进行查找 
     -ls 以列表的形式展示 
     
     find / -name "111" 从根目录进行查找 
     find . -name "111" 从当前目录查找
     find -name "111" 从当前目录查找
     find /tmp -mtime -3 #tmp目录下面 修改时间在3天以内的 
     
     find / -perm 755 -maxdepth 1 -ls #根目录权限在 755并且 一级目录 并以列表的形式展示
     find / -size +10k -maxdepth 1 -ls #根目录 大于10k 的 一级 并且以列表的形式展示 
    

    权限 chmod

    rwxr-xrw- 
    756 
    拥有者 所属组 其它用户
    
    r 4 读
    w 2 写
    x 1 执行
    
    
    600 
    644
    755 
    
    u #拥有着 user
    g #所属用户组 group
    o #其它用户 other
    a #所有人 all 
    + #在原来的基础上 增加权限
    - #在原来的技术上 减权限
    = #重新赋权限 
    
    chmod o+w 1.txt #给其它用户增加一个写入的权限 
    chmod a=rwx 1.txt #给所有用户可读可写可执行的权限 
    chmod g-w,o-x 1.txt #给所属组去掉写入的权限 给 其它用户去掉执行的权限 
    chmod o=r 1.txt #给其他用户 赋予只读的权限 
    
    sudo chmod 755 目录名 #只修改目录的权限 里边子目录及文件的权限 不被修改 
    sudo chmod -R 755 目录名 #递归修改权限 里边的子目录及文件 权限也会跟着更改
    

    修改文件的拥有者 chown

    更改拥有者 拥有者必须在 /etc/passwd 列表里边 
    
    chown 用户名 文件名/目录名 #只能更改拥有者 所属组没更改 
    chown 用户名:组名 文件名或者目录名 #更改所属用户及所属的组 仅仅是改目录 里边的文件没改 
    chown -R 用户名:组名 目录名 #递归修改所属用户及组 
    

    修改用户组 chgrp

    chgrp 组名 文件名 或者目录名 
    chgrp -R 目录名 
    
    chgrp -R 组名 tmp 
    
    sudo chgrp -R yhq /tmp 将tmp目录下所有的子目录及文件所属组 改为 yhq
    

    chattr /lsattr chmod后面的大boss 如果大boss 保护属性 那么我们没法 chmod

    + 
    - 
    i 给文件增加 或者去除 只读属性 不能删除 不能改权限 不能写入 不能修改链接 
    a 只能追加数据 不能修改和删除 
    
    chattr +i 文件名 给文件增加保护属性 
    这时候不能修改权限 不能删除 不能写入 这个写入指的是 echo 'adf' >> 不是 vi/vim 
    
    chattr -i 文件名 取消文件保护属性 
    
    
    chattr +a 文件名 给文件名增加保护的属性 只能 echo ‘阿道夫’>> 文件名 不能删除 不能修改权限
    
    chattr -a 文件名 取消保护 
    
    
    一般 +a 用来 保护日志文件 
    

    查找命令所在的位置 如果我们写脚本自动化运维 需要写命令的绝对路径 否则容易找不到

    • which
    • which chmod
    • whereis
    • whereis chmod
  • 相关阅读:
    PAT (Basic Level) Practise 1013 数素数
    PAT (Basic Level) Practise 1014 福尔摩斯的约会
    codeforces 814B.An express train to reveries 解题报告
    KMP算法
    rsync工具
    codeforces 777C.Alyona and Spreadsheet 解题报告
    codeforces 798C.Mike and gcd problem 解题报告
    nginx + tomcat多实例
    MongoDB副本集
    指针的艺术(转载)
  • 原文地址:https://www.cnblogs.com/hankleo/p/10461749.html
Copyright © 2011-2022 走看看