Linux 私房菜:文件目录管理及常见命令

本文内容精简、整理、摘抄、有感于《鸟哥的Linux私房菜 - 基础篇第四版》第六章 • Linux的文件权限与目录管理。

  • 路径(PATH)

    • 相对路径:cd /var/tmp/,由根目录/开头
    • 绝对路径:不以/开头,与相对路径写法相对应
  • 环境变量(ENVIRONMENT VARIABLE)。由一堆目录组成,不同目录之间用:分隔。命令相同的情况下,靠前指定的环境变量配置优先级高。

    • 查看命令: echo $PATH
    • 配置文件:/etc/profile
    • 立即刷新:source /etc/profile

常用命令

  • 文件类型

    • file 文件,多用于判断是asciidatabinary文件
  • 目录相关

    • cd - change directory,更换目录。可以是相对路径或者是绝对路径,常见的有:

      • .,表示当前目录
      • ..,进入上一层目录
      • -,返回前一个工作目录
      • ~[user],进入当前用户(或指定user用户)的家目录,不指定~也可以返回家目录
    • pwd - print work directory,显示当前工作目录

      • pwd [-P],显示实际路径而非链接路径
    • mkdir - make directory,创建目录

      • mkdir [-mp] 目录名称-m指定目录所属权限;-p同时创建多级目录
    • rmdir - remove directory,删除空目录(被删目录不能含其它子目录及文件)

      • rmdir [-p] 目录名称-p参数可同时删除上级空目录
  • 文件目录管理

    • ls [-aAdfFhilnrRSt] [--color={never,auto,always}] [--time={mtime,atime,ctime}] [--full-time] 文件或目录 - list,列出列表。参数较多,请用man ls查看更多详细用法,大部分情况下用ll能满足日常使用(等价于ls -al)

      • -a含全部隐藏文件
      • -A含隐藏文件但不含...这两个目录
      • -h以可读形式(KB,GB)展示文件大小,默认为Byte
      • -l以每行长串输出展示数据
      • -r自然排序输出结果的反向
      • -R连同子目录文件一同输出
      • -S以文件大小排序
      • -t以时间排序
    • touch [-acdmt] File - 创建文件

    • cp [-adfilprsu] source*(一个或多个来源文件或目录) destination(目标文件或目录) - copy,复制

      • -a完全相同复制
      • -i出现覆盖询问
      • -p连同源文件属性(权限、用户、时间)一起复制
      • -r递归复制文件目录
      • -s快捷方式形式复制(软连接)
      • -l硬连接
      • -u目标不存在才复制,或存在但mtime较旧
    • rm [-fir] 文件或目录 - remove,删除

      • -f忽略警告
      • -i删除询问
      • -r递归删除
    • mv [-fiu] source*(一个或多个来源文件或目录) directory(目标目录) - move,移动或重命名

      • -f强制覆盖
      • -i覆盖询问
      • -u目标对象存在且mtime较旧的情况下才更新
  • 文件内容查阅

    • cat [-AbEnTv] File,Concatenate,从第一行开始显示文件全部内容

      • -b显示行号(不含空白行)
      • -n显示行号(包含空白行)
    • tac,相对应上面的cat命令,反向从最后一行开始显示文件全部内容

    • nl [-bnw] File,类同于上面两个命令 ( 暂无说明 )

    • more File,一页页向下翻阅查看文件

      • space空格键翻页
      • b 或 ctrl + b往回翻页
      • enter确认键翻行
      • /字符串向下搜索
      • :f显示文件名和当前末尾行的行数
      • q退出
    • less File,类似于more但功能更强大,同样用于翻阅查看文件

      • space空格键 或 page down翻页
      • b 或 ctrl + b 或 page up往回翻页
      • enter确认键翻行
      • /字符串向下搜索
      • ?字符串向上搜索
      • n搜索匹配的下一个
      • N搜索匹配的前一个
      • :f显示文件名、当前显示行范围、byte大小和百分占比等
      • g 或 home跳到文件开头
      • G 或 end跳到文件末尾
      • q退出
    • head [-n num] File,取出前面几行

      • head -n 100 info.log,取出前100行
      • head -n -100 info.log,取出不包括最后100行的所有行
    • tail [-n num] File,取出后面几行

      • -f侦测文件输出
      • tail -n 100 info.log,取出后100行
      • tail -n +100 info.log,取出100行以后的所有行
    • od [-t acdfox] File,非纯文档文本读取命令( 暂无说明 )

  • 文件预设权限

    • umask [-S] [-num] ,显示当前用户在新建文件或目录时的权限默认值
    • umask -num,修改当前用户在新建文件或目录时的权限默认值
  • 文件隐藏属性

    • chattr [+-=][ASacdistu] 文件或目录,配置文件隐藏属性

      • +增设属性
      • -删减属性
      • =赋值属性
      • a只能追加数据不可修改删除
      • i文件不能删除修改添加改名等
    • lsattr [-adR] 文件或目录,显示文件隐藏属性

      • a包括隐藏文件
      • d仅列出目录属性
      • R包含子目录
  • 脚本文件搜寻

    • which [-a] command,搜寻该command的执行档所在位置

    • whereis -[lbmsu] 文件或目录,在指定目录搜索文件或目录

      • l列出指定目录
      • b只找binary文件
      • m只找在manual路径下的文件
      • s只找来源文件
      • u只找不在上面三种类型中的其它文件
    • locate [-iclSr] keyword,根据指定数据库/var/lib/mlocate/mlocate.db搜索,可用updatedb命令更新

      • i忽略大小写
      • c输出统计数量
      • l后面接数量,表示输出几行
      • S展示数据库信息
    • find [PATH] [option] 文件或目录(支持正则匹配),功能比较强大和丰富,具体请用man find查看,常见的option选项有:

      • [-{mtime,atime,ctime} {+,-}n],与时间相关的帅选
      • [-{user,group,nouser,nogroup}],与拥有者或群组相关的过滤
      • [-{name,size,type}],与文件名、大小、类型有关的参数

重点回顾

文章已授权转载,原文链接:Linux 私房菜:文件目录管理及常见命令

推荐阅读更多精彩内容

  • 想要出人头地有两个办法 一、坚持读书十年、一定会成功,论语中说过“吾十有五,于志于学,三十而立!意思就是我十五岁开...
    血屠手赵涛阅读 26评论 0 0
  • 书名:《书都不会读,你还想成功》 阅读内容:第一章 读书笔记: 读书为了什么?为了兴趣爱好,为了获得新知识,为了改...
    邂逅若水阅读 97评论 0 5
  • 话不多说,直接上效果图:第一篇:图一: 图二: demo传送:https://github.com/CYQSARA...
    qinqinqinqin0阅读 26评论 0 1
  • 我爱上别人非常果断而迅速 因为我知道自己要的是什么 但离开的时候也是一样 因为我知道自己要的是什么 在爱的时候 你...
    Jerry無添加阅读 109评论 0 0
  • 对于有过管理经验的我,其实对社群运营应该有更深刻的体会,两者底层逻辑一致,只是方式不同,一个在线上,一个在线下。 ...
    又捐阅读 174评论 0 1