文件操作

使用命令

  • 命令格式:

    命令 [选项] [参数]

    [] 表示可选的

  • 示例:

    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. concurrency parallel 并发 并行 parallelism

    在传统的多道程序环境下,要使作业运行,必须为它创建一个或几个进程,并为之分配必要的资源.当进程运行结束时,立即撤销该进程,以便能及时回收该进程所占用的各类资源.进程控制的主要功能是为作业创建进程,撤销 ...

  2. Kali Linux更新5.2.9后 Vmware Workstation无法正常启动

    说明本脚本仅作为学习使用,请勿用于任何商业用途.本文为原创,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. 最近更新了Kali后发现一个奇葩的问题,我的虚拟机不能正常使用了.启 ...

  3. [Java复习] Spring Framework 框架小结

    Spring 总共大约有 20 个模块,由 1300 多个不同的文件构成. 而这些组件被分别整合在   核心容器 (Core Container),   AOP(Aspect Oriented Pro ...

  4. 浅析 Nodejs 模块化

    本文只讨论 CommonJS 规范,不涉及 ESM 我们知道 JavaScript 这门语言诞生之初主要是为了完成网页上表单的一些规则校验以及动画制作,所以布兰登.艾奇(Brendan Eich)只花 ...

  5. 解析Python编程中的包结构

    解析Python编程中的包结构 假设你想设计一个模块集(也就是一个"包")来统一处理声音文件和声音数据.通常由它们的扩展有不同的声音格式,例如:WAV,AIFF,AU),所以你可能 ...

  6. FFMPEG 常用命令行

    目录 1. 分离音视频 2. 解复用 3. 视频转码 4. 视频封装 5. 视频剪切 6. 视频录制 7.叠加水印 8.将MP3转换为PCM数据 9. 推送RTP流.接收RTP流并存为ts文件 10. ...

  7. Python_小林的爬取QQ空间相册图片链接程序

    前言 昨天看见某人的空间有上传了XXXX个头像,然后我就想着下载回来[所以本质上这是一个头像下载程序],但是一个个另存为太浪费时间了,上网搜索有没有现成的工具,居然要注册码,还卖45一套.你们的良心也 ...

  8. python字典中添加项

    body_daily_close = { "mappings": { "properties": { "trade_date": { &qu ...

  9. 【DSP开发】CCS数据格式 load

    CCS支持的.dat文件详解(转载于hellodsp) CCS支持的.dat文件的格式为: 定数 数据格式 起始地址 页类型 数据块大小 1651 其后是文件内容,每行表示一个数据. 定数固定为&qu ...

  10. ffmpeg学习笔记-Linux下编译Android动态库

    Android平台要使用ffmpeg就需要编译生成动态库,这里采用Ubuntu编译Android动态库 文件准备 要编译生成Android需要以下文件 NDK ffmpeg源代码 NDK下载 NDK可 ...