zoukankan      html  css  js  c++  java
  • 第3章 文件系统

    第3章 文件系统


    3.1 文件

    • 文件分为:
      • 普通文件(简称文件)
      • 目录文件
      • 设备文件
    • 目录文件包含其中每个文件盒子目录的一个条目,每个条目由两部分组成:
      • 文件名
      • 唯一识别码(inode号)(读作eye-node)

    3.2 文件名

    • 由于shell会对$`?*& 等字符进行特殊处理,所以建议仅在文件名中使用:
      • 字母
      • 数字
      • 句点(.)、 连字符(-)、下划线 (_)

    3.3 UNIX文件系统

    1. 系统安装期间提供的文件:

      • /bin和/usr/bin:
        所有常用UNIX命令都在这些目录里(bin源于"二进制"binary).PATH变量总会在其列表中显示这些目录
      • /sbin和/usr/sbin:
        包含系统管理员的命令,只有系统管理员的PATH会显示
      • /etc:
        包含系统配置文件
      • /dev:
        包含所有设备文件,这些文件不占磁盘空间
      • /lib和/usr/lib:
        包含所有二进制形式的库文件
      • /usr/include:
        包含C程序的标准头文件
      • /usr/share/man:
        man页的存储位置
    2. 用户的文件:

      • /tmp:
        允许用户创建临时文件的目录,系统会定期清除这些文件
      • /var:
        系统的可变部分,包含所有打印作业和传出传入邮件
      • /home:
        包含用户目录

    3.4 绝对路径和相对路径

    1. 绝对路径:
      /开头的路径即绝对路径,如:/etc/passwd
    2. 相对路径:
      不以/开头的路径,相对路径从当前目录出发,.表示当前目录,..表示父目录

    3.5 主目录

    • 主目录为/home/username,其中username为用户名
    • 主目录可用$HOME变量或者~表示
    • 在shell脚本中应避免使用~而尽量使用$HOME,以便脚本移植到不同主目录的系统中(如从/home/romeo/u2/romeo),
      因为$HOME~的求值过程不同

    3.6 有关文件的常用命令

    3.6.1 cd

    • cd = change directory
    • cd后跟路径名可跳转至目标目录
    • cd后不跟参数跳转至主目录

    3.6.2 pwd

    • pwd = print working directory

    3.6.3 mkdir

    • mkdir = make directory
    • mkdir后可跟多个参数,但要确保每个目录的父目录在它自己之前创建
    • -p 选项可以将参数提供的路径上缺少的目录全部创建,
      mkdir -p progs/include/stdio.h可以将三个目录全部创建

    3.6.4 rmdir

    • rmdir = remove directory
    • mkdir类似,跟多个参数,也有-p选项,不过是反过来了
    • 只能删除空目录,且当前目录必须位于要删除的目录上层,想要删除非空目录需要用rm -rrm -R

    3.6.5 ls

    • ls = list
    • ls不跟参数列出当前目录包含的所有(非隐藏)的文件,默认为ASCII排列顺序
    • ls跟参数时
      • 跟普通文件: 可查看文件是否存在
      • 跟目录可列: 出目标目录包含的所有(非隐藏)文件
    • ls的常用选项:
      • -d 只显示目录名称而不列出其内容
      • -F--classify*标记可执行文件,/标记目录,@标记符号链接
      • -R 递推列出文件(-r功能不同)
      • -a--all 显示隐藏文件(.开头以及..开头的文件)
    • linux中调用ls不同文件类型的颜色不同,
      输入alias可以看到alias ls='ls --color=auto

    3.6.6 cp

    • cp = copy
    • 默认忽略目录而只复制文件
    • 参数分为两部分,第二部分为最后一个参数,第一部分为其之前的全部参数(简称第二参数与第一参数)
    • 第一参数为多个文件时,第二参数必须为已存在的目录,结果是将第一参数的那些文件复制到第二参数的目录中去
    • 第一参数为单个文件时,第二参数可以为已存在的目录,或任意文件(无论是否存在)
      • 第二参数为已存在的目录: 同上
      • 第二参数为文件:
        • 不存在的文件: 复制第一参数,新建第二参数
        • 已存在的文件: 复制第一参数,覆盖第二参数
    • 第一参数为单个目录时,需要选项-r-R,第二参数必须为目录
      • 第二参数为不存在的目录: 复制第一参数,新建第二参数
      • 第二参数为已存在的目录: 复制第一参数到第二参数的目录下
    • 第一参数为多个目录时,需要选项'-r'或'-R',第二参数必须为已存在目录,即通过同上

    3.6.7 mv

    • mv = move or rename
    • 不加选项时参数就可以是文件或目录
    • 结果与cp类似,只不过第一参数会被删掉
    • linux可以用rename .a .b *.a把当前目录所有.a后缀的文件改为.b后缀(POSIX并不支持)

    3.6.8 rm

    • rm = remove
    • 需要-r-R选项才能删除目录
    • 常与*一起使用,比如xxx*表示所有名字前3个字符为"xxx"的文件目录, *表示所有文件目录
    • rm *: 删除当前目录所有非隐藏文件
    • rm -r *: 删除当前目录所有非隐藏文件和目录
    • rm -rf *: 删除当前目录所有内容(-f表示强制删除)
    • cpmvrm都有-i选项以开启交互模式,在删除或覆盖时会有提示要求用户确认
    • KornBash中可以输入alias cp="cp -i"来默认开启交互模式
  • 相关阅读:
    HTML5学习笔记第二节(Email标签(自动验证格式),Number标签,URL标签...)
    Ping检测工具(QQ皮肤实现)
    C#多线程|匿名委托传参数|测试您的网站能承受的压力|附源代码
    PostgreSQL抛错“不良的类型值: long”之解决
    jdbcTemplate.queryForInt()过时替换方法
    Windows Phone 实用开发技巧(27):创建透明Tile
    快乐技术沙龙技术分享之账户助手
    Windows Phone 实用开发技巧(11):让StackPanel中的控件靠右对齐
    Windows Phone 实用开发技巧(19):使用ProgressIndicator做进度显示
    Windows Phone 实用开发技巧(13):自定义Element Binding
  • 原文地址:https://www.cnblogs.com/Sunnie69/p/9026245.html
Copyright © 2011-2022 走看看