zoukankan      html  css  js  c++  java
  • linux 文件操作与目录操作

    文件操作

    使用命令

    • 命令格式:

      命令 [选项] [参数]

      [] 表示可选的

    • 示例:


      ls -a /etc

    常识命令

    • ls:查看指定目录的内容,不指定目录时查看当前工作目录

      选项说明
      -a 显示所有文件,包括隐藏文件
      -l 列表显示,详细信息
      -h 人性化的显示大小,如:K/M/G

      -l选项显示的结果:类型及权限 | 引用数 | 用户 | 用户组 | 大小 | 月 | 日| 年/时间 | 名称

      文件类型:(-l显示结果中的第一部分的第一列)

      符号类型
      - 普通文件
      d 目录文件
      l 链接文件
      c 字符设备文件
      b 块设备文件
      s 套接字文件
      p 管道文件
    • cd:切换工作目录

      符号说明
      . 当前目录
      .. 上一级目录
      ~ 当前用户的家目录
      - 表示上次切换之前的目录
      / 表示根目录
      1. 使用cd时,不指定目标地址,会切换到家目录

      2. 凡是以/开头的目录都是绝对目录

      3. 凡是以.或..开头的目录都是相当目录

    • pwd:查看当前工作目录

    • alias:给命令起别名

      • l、la、ll等

    查看文件

    • 相关命令

      命令说明
      cat 从上到下,显示文件全部内容
      tac 从下到上,显示文件全部内容
      head 查看开头指定行数的内容,不指定时默认10行,如:head -20 filename
      tail 查看文件末尾指定行数的内容,不指定时默认10行,如:tail -5 filename
      nl 功能与cat相同,但是多显示了行号
      wc 统计显示,内容:行数 单词数 字符数 文件名
      more 一点一点查看内容
      less 一点一点查看内容
    • more/less使用说明

      • 显示一屏就停止

      • q退出查看

      • enter下翻一行

      • 空格下翻一屏

      • more查看完毕会自动退出,less不会

      • less可以使用上下按钮上下翻看,more不可以

      • 经常结合管道使用:ls /etc | more

    文件及目录

    • 相关命令

      命令说明
      touch 新建文件,可以是多个
      rm 删除文件或目录(删除目录时要传递'-r'选项)
      cp 拷贝文件或目录(拷贝目录是要传递'-r'选项)
      mv 移动文件或目录
      mkdir 创建目录,可以是多个
      rmdir 删除空目录
    • 选项说明

      • -r:删除或拷贝目录时需要添加,表示递归操作

      • -f:表示强制操作,没有提示信息

      • *:表示模糊匹配,如:rm *.py,表示删除所有的py文件

      • -p:创建目录时若需要创建中间目录,可以添加此选项

    用户及用户组

    • 相关命令

      命令说明
      whoami 查看当前登录的用户名
      useradd 新建用户,-d指定家目录,-m不存在,-s指定shell
      userdel 删除用户,-r会删除用户家目录
      passwd 设置指定用户的密码,没有指定用户时设置时当前用户的密码
      su - 切换用户,一定要加上'-',否则只会切换家目录,但是环境没有切换,不指定用户时默认切换到root用户(记得先给root用户设置密码)
      sudo 以指定用户(root)身份执行命令
      visudo 专门用于编辑/etc/sudoers文件的命令,需要将指定用户添加进去才可以使用sudo命令,如:test ALL=(ALL:ALL) ALL;使用sudo update-alternatives --config editor可以修改系统默认编辑器(nano)
      groupadd 新建用户组
      groupdel 删除用户组
      gpasswd 向指定组添加/删除指定的用户,如:gpasswd -a/-d user group
      groups 查看指定用户的组信息
      chsh 修改指定用户的shell解析器,如:sudo chsh test -s /usr/sbin/nologin (禁止登陆)
      chown 修改文件所属用户[及用户组],如: sudo chown test[:test] 1.py,递归操作需要加'-R'选项
      chgrp 修改文件所属用户组,如:sudo chgrp test 1.py
    • 涉及文件

      • /etc/passwd:系统中的用户信息

      • /etc/group:系统中的用户组信息

      • /etc/shadow:系统中的用户密码信息

    • 相关名词

      • uid:用户唯一标识

      • gid:用户组唯一标识

    文件权限

    • 说明:在linux下,所有的文件都涉及权限,分为三组:所有者、所属组、其他

    • 权限:所有文件的权限可以分为:可读(r)、可写(w)、可执行(x),'-'表示没有改权限

    • 原理:ls -l的结果,三位一组,分为三组,刚好对应:所有者、所属组、其他

    • 修改权限:chmod,格式:chmod [身份] [操作] [权限] 文件

      选项说明
      身份  
      u 所有者(user)
      g 所属组(group)
      o 其他(other)
      操作  
      + 添加
      - 去掉
      = 设置
      权限  
      r 可读
        可写
        可执行

      sudo chmod o+w 1.py,给其他用户添加可写的权限

    • 本质:使用一组(3位)八进制的数据来表示权限,如:0755,展开如下:


      转换为二进制:0755 => 111 101 101
      对应三组身份:     所有者 所属组 其他
      每一组的权限:都包括 可读、可写、可执行
      示例解析:所有者可读可写可执行,所属组可读可执行,其他可读可执行
    • 简化操作:sudo chmod 0755 1.py

      若要进行递归操作,则需要添加'-R'操作

    • umask

      作用:用来限定新建文件的默认权限,权限与该值相反
      命令:umask [value],查看或设置掩码
      分析:
      掩码:0002 => 000 000 010
      新建目录: 111 111 101
      新建文件: 110 110 100

    文件搜索

    • find

      • 作用:用于任意文件的搜索,功能非常强大

      • 格式:find [目录] 条件选项

      • 选项:

        -name:指定名字    sudo find / -name passwd
        -maxdepth:指定最大层级深度 sudo find / -maxdepth 2 -name passwd
        -type:指定类型(d/l/s/p/c/b)
        -size:指定大小,单位:k/m/g,+表示大于,-表示小于,如:find -size +5k,查找大于5k的文件
        -mtime/-atime/-ctime:指定修改/访问/创建时间,单位是天,+表示几天前,-表示几天内
        -mmin/-amin/-cmin:功能同上,单位是分
        -user:指定用户
        -group:指定用户组
    • whereis

      • 作用:显示命令的详细信息,如:whereis ls,结果如下:


        ls: /bin/ls /usr/share/man/man1/ls.1.gz
        命令名 命令位置 帮助文档
    • grep

      • 作用:正则表达式搜索(文件内容)

      • 选项:


        -i:忽略大小写
        -n:显示行号
      • 示例:

        grep -n /bin/bash /etc/passwd       查找/etc/passwd文件中包含/bin/bash的行,并显示行号
        grep -i abc 2.py 在2.py中查找包含abc的行,不考虑大小写
        ls /bin | grep '^m' 查看/bin下以'm'开头的命令

    链接文件

    • 命令:ln

    • 作用:创建一个文件或目录的链接

    • 格式:ln [-s] 原文件 新文件

    • 查看:ls -l结果集中的第一列就是文件类型,为'l'的就是链接文件

    • 软链接与硬链接

      硬链接:使用ln时不加-s选项创建的链接,相当于一个文件多起了一个名字而已,极少用到
      1.不能给目录创建
      2.不能跨文件系统
      软链接:使用ln是添加-s选项创建的链接,相当于windows中的快捷方式,比较常用
      1.可以给目录创建
      2.可以跨文件系统

  • 相关阅读:
    Linux下查看文件和文件夹大小
    linux sort 命令详解
    Linux基础入门之网络属性配置
    Change SSH Welcome Banner on Ubuntu
    怎样修复grub开机引导(grub rescue)
    SSH内网穿透 Reverse SSH Tunneling
    安装 Zsh 及 Oh-my-zsh
    change grayscale to pseudo colouring using colormap in Matlab
    How to block a specific IP Address using UFW
    Linux下查看文件和文件夹大小
  • 原文地址:https://www.cnblogs.com/kiki5881/p/8806598.html
Copyright © 2011-2022 走看看