文件操作

使用命令

  • 命令格式:

    命令 [选项] [参数]

    [] 表示可选的

  • 示例:

    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 文件操作与目录操作的更多相关文章

  1. zabbix监控linux文件的一个目录大小

    监控linux文件的一个目录大小 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.       欢迎加入:高级运维工程师之路 598432640 我们知道,Linux自带的一些监控模板 ...

  2. 无缓冲文件IO和目录操作

    引言 在后台开发中,对于文件I/O我们通常不使用C语言封装的fopen.fread.fwrite标准I/O,而是直接使用Linux提供的系统调用函数.因为这些系统调用没有使用用户缓冲区,我们直接与内核 ...

  3. Linux第三课——目录操作

    ls 列出目录下的文件及子目录 ls -l 以列表的方式显示详细信息 ls -a 显示所有的 包括隐藏文件 ls -A 显示除了 . ..以外的任何文件 ls -i 显示文件的节点号 ls --col ...

  4. CentOS(七)--Linux文件类型及目录配置

    这篇随笔将会对Linux系统的文件类型以及Linux的目录结构进行详细补充(linux中目录管理和权限非常重要,特别是在linux安装数据库类软件). 一.Linux更改文件权限的两种方式 在之前的一 ...

  5. Linux文件类型及目录配置

    Linux文件类型与扩展名 在Linux系统中,任何硬件设备或者其他设备都是以文件的形式存在,就连数据通信的接口这些也是由专门的文件来负责的,因此Linux的文件种类就非常多,出了之前我们常见的 - ...

  6. 一、Linux文件权限与目录配置

    行文结构如下: 用户和用户组 Linux文件权限概念 Linux目录配置 重点回顾 1.用户与用户组 Linux是个多用户.多任务的系统,可能有多人同时使用这台机器进行工作,为了考虑每个人的隐私和工作 ...

  7. Linux 文件权限于目录配置

    用户与用户组 我們以王三毛為例,王三毛這個『檔案』的擁有者為王三毛,他屬於王大毛這個群組, 而張小豬相對於王三毛,則只是一個『其他人(others)』而已. 不過,這裡有個特殊的人物要來介紹的,那就是 ...

  8. Linux 文件基本属性与目录管理 (chmod chown ls cp mv cat )

    Linux 文件基本属性 Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限. 为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的 ...

  9. linux 文件名称前后缀操作函数----取目录函数dir、取文件名称函数notdir、取后缀函数suffix、取前缀basename、加后缀函数addsuffix、加前缀addprefix、连接函数join

    1.1       文件名操作函数 下面我们要介绍的函数主要是处理文件名的.每个函数的参数字符串都会被当做一个或是一系列的文件名来对待. 1.1.1        取目录函数dir $(dir < ...

随机推荐

  1. 07-08 Flutter仿京东商城项目 商品分类页面布局:Flutter仿京东商城项目 商品分类页面数据渲染

    Flutter实战(交流群:452892873) 本项目是一个实战项目,根据目录建文件,并复制从第一节到最新更新的文章,可以构成完整的一个请求后台数据的项目: CateModel.dart class ...

  2. 容器版Jenkins连接Kubernetes---------非容器版jenkins是无法安装kubenetes插件的,所以无法连接k8s

    容器版Jenkins连接Kubernetes 特别注意:必须用谷歌浏览器,而且非容器版jenkins是无法安装kubernetes插件的,所以无法连接k8s 一.环境说明 OS系统版本:Ubuntu ...

  3. 将SSRF升级为RCE(AWS环境)

    原文:https://generaleg0x01.com/2019/03/10/escalating-ssrf-to-rce/ 查找域名范围: 在枚举客户端的子域名时.找到了子域名[docs] 打开这 ...

  4. Nginx-windows

    1.下载 http://nginx.org/ 选择最新稳定版本,例如nginx-1.15.5 mainline version has been released. 点击后,跳转页面,选择Stable ...

  5. 微信小程序文字超过行后隐藏并且显示省略号

    在小程序开发过程中,经常会遇到一些数据无法在text中完全展示,所以会使用到隐藏相关文字,并在后方加上省略号(...). 只需要在对应的text中设置下面的css就可以了. overflow:hidd ...

  6. JKD1.8新特性

    1.Optional类 Optional是jdk1.8引入的类型,Optional是一个容器对象,它包括了我们需要的对象,使用isPresent方法判断所包 含对象是否为空,isPresent方法返回 ...

  7. 一个老程序员PHP程序员说的话(用来提醒自己)

    我,一个老程序员,也是一个学生,把玩过甚多语言,大多不精.我既非名牌学校,也不是高学历,仅代表一部分比较蛋疼的人.接触PHP也是很早了,从04年的OFSTAR开始的,到现在六年了,期间也接触过不少的语 ...

  8. Linux上安装Julia-1.1

    Julia 在Linux上的安装 浙江大学Julia镜像: 浙江大学Julia镜像 下载1.1版本: wget https://mirrors.zju.edu.cn/julia/releases/v1 ...

  9. L1不可导的时候该怎么办

    坐标轴下降法 比较浅显的解释: 坐标轴下降法(解决L1正则化不可导的问题) 以代码进行简单入门的博客(演示的代价函数是可导的): Coordinate descent in Python Introd ...

  10. 【Qt开发】 QT:make: Nothing to be done for `first'和error:QtSql:No such file or directory

    http://blog.csdn.NET/heqiuya/article/details/7774208 这是QT编程中常见的两个编译错误.可能你的代码在window下编译能正常通过,可是到到Linu ...