zoukankan      html  css  js  c++  java
  • Linux档案与目录管理

    Linux档案与目录管理
    1. 目录与路径
    1.1 相对路径与绝对路径
    1.2 目录的相关操作: cd, pwd, mkdir, rmdir
     cd [相对路径或绝对路径]
    cd ~ [用户]: 切换家目录
    cd ~tom/ :切换到tom家目录
    cd ~/tom :切换到当前家目录下的tom文件夹
    cd - :返回前一个工作目录(可以连续使用,其实就是两个目录之间的切换)




    . 代表此层目录
    .. 代表上一层目录
    - 代表前一个工作目录
    ~ 代表『目前用户身份』所在的家目录
    ~cenyu 代表 account 这个用户的家目录(account 是个账号名称)




    pwd [-P]
    显示当前所在目录(print working directory)
    接收参数: -P(大写) 显示确实的路径,而不是连接的路径




    mkdir [-mp] 目录名称
    创建新目录,接收两个参数
    -m :配置文件的权限,是直接设定的 mkdir -m 711 test1
    -p :帮助你直接将所需的目录递归建立起来 mkdir -p test1/test2/test3  此处会把原本不存在的test2文件也创建出来


    rmdir [-p] 目录名称
    删除空的目录,不能删除非空目录
    接收参数-p:表示连同上层空的目录也一起删除 rmdir -p test1/test2/test3




    1.3 关于执行文件路径的变量: $PATH


    $PATH 环境变量,$表示后面接的是变量,可以直接调用的命令都必须添加在环境变量里面去


    echo $PATH :显示出环境变量里已经存在的文件。
    不同文件之间用冒号(:)分隔


    PATH="$PATH":绝对路径 
    往PATH里面定义一个环境变量 PATH="$PATH":/root  root文件被添加到PATH里面


    2. 档案与目录管理
    2.1 档案与目录的检视: ls


    ls [-aAdfFhilnrRSt] 目录名称
    档案与目录的检视,接收的参数很多
    -a :全部的档案,连同隐藏档一起列出来
    -d :仅列出目录本身,不管目录下面的档案数据
    -h :将档案容量以人类易读的方式列出来
    -l :长数据串行,包含文档的属性和权限等等
    ls [--time={atime,ctime}] 目录名称
    --time=atime :显示访问时间
    --time=ctime :显示创建时间






    2.2 复制、删除与移动: cp, rm, mv


    cp [选项] /path1/xx /path2/yy
    若yy是一个文件夹,则将xx复制到yy文件夹下;
    若yy不存在,则将xx复制到path2下面,并从命名为yy


    cp [-asfilprsu] 来源文件(source) 目标文件(destination)
    -p :连同档案的属性一起复制过去,而非使用默认属性(备份常用);
    -r :递归持续复制,用于目录的复制行为;(常用)
    -d :若来源文件为链接文件的属性(link file),则复制链接文件属性而非档案本身;
    -a :相当于 -pdr 的意思,至于 pdr 请参考下列说明;(常用)


    rm [-fir] 档案或目录
    -f :忽略不存在的档案,不会发出警告;
    -i :互动模式,在删除前会询问一下
    -r :递归删除!最常用也是最危险的




    mv [-fiu] source destination
    移动文件到另外一个文件,source可以是多个
    -f :force强制的意思,如果目标档案已经存在,不会询问直接覆盖
    -i :若目标档案 (destination) 已经存在时,就会询问是否覆盖!
    -u :若目标档案已经存在,且(source)比较新,才会更新(update)




    2.3 取得路径的文件名与目录名称


    basename 完整文件名(包含目录名称和文件名)
    获取完整文件名中的最后的档案名
    dirname 完整文件名
    获取完整文件名中的目录






    3. 档案内容查阅:
    3.1 直接检视档案内容: cat, tac, nl


    cat [-AbEnTv] 文件名
    concatenate,将文件全部显示在该条命令下面,从第一行显示到最后一行,适合小文件,大文件的话只会显示最后一屏
    -n :打印出行号,连同空白行也会有行号
    -b :打印出行号,空白的不会打印




    tac 文件名
    反向列示,同cat,不同的是,这个查看是从文档的最后一行倒着显示到第一行


    nl [-bnw] 文件名
      添加行号打印,同cat -n




    3.2 可翻页检视: more, less


    more 文件
    一页一页的显示档案信息,往下翻的时候有几个命令需要注意一下:
    空格键 (space):代表向下翻一页;
    Enter :代表向下翻『一行』;
    /字符串 :代表在这个显示的内容当中,向下搜寻『字符串』这个关键词;
    :f :立刻显示出文件名以及目前显示的行数;
    q :代表立刻离开 more ,不再显示该档案内容;
    b 或 [ctrl]-b :代表往回翻页,不过这动作只对档案有用,对管线无用。


    less 档案
    也是一页一页的显示,只不过功能比more的功能更多一些,首先推荐这个
    空格键 :向下翻动一页;
    [pagedown]:向下翻动一页;
    [pageup] :向上翻动一页;
    /字符串 :向下搜寻『字符串』的功能
    ?字符串 :向上搜寻『字符串』的功能;
    n :重复前一个搜寻 (与 / 或 ? 有关!),从上到下
    N :反向的重复前一个搜寻 (与 / 或 ? 有关!),从下到上
    q :离开 less 这个程序;




    3.3 资料撷取: head, tail


    head [-n number] 档案
    取出前面几行
    -n :后面接数字,代表显示几行的意思。
    head -n 20 /etc/man.config 显示该文件中的前20行,默认情况是前10行
    head -n -100 /etc/man.config 去掉后100行的所有。


    tail [-n number] 档案
    取出档案的后面几行,默认显示最后10行
    -n :后面接数字,代表显示几行的意思。
    tail -n +100 /etc/man.config 100行以后的信息都会被显示出来




    3.4 非纯文本档: od


    od [-t TYPE] 档案
    用来显示非纯文本文件,-t后面可以接参数
    a:利用默认字符串输出   c:利用ASCII输出





    3.5 修改档案时间与建置新档: touch


    档案的三个是时间:
    modification time (mtime): 最近内容修改的时间,默认显示的时间
    status time (ctime): 最近权限和属性被修改的时间
    access time (atime): 最近访问设备的时间


    touch [-acdmt] 档案
    修改档案的时间,最常用的是:1.建立一个空的档案;2.将某个档案日期修订为目前(mtime 和 atime)
    -a :仅修订atime
    -c :仅修改档案的时间,若档案不存在则不建立新档案
    -d :后面可以接欲修订的日期而不用目前的时间,也可以使用 --date="日期或时间"
    touch -d "2 days ago" bashrc  时间变为两天前,ctime没有变,其他有变
    -m :仅修改 mtime ;
    -t :后面可以接欲修订的时间而不用目前的时间,格式为[YYMMDDhhmm]
    touch -t 0709120202 bashrc  ctime没有变,其他的有变
    touch testtouch 修改三个时间都是当前时间,若文件不存在,则创建这个新文件






    4. 档案与目录的默认权限与隐藏权限
    4.1 档案预设权限:umask


    umask的功能:
    目录的文件权限最高是777,文件预设没有可执行权限所以最大为666;但是umask默认的值是022,
    umask是权限过滤符,文件或者目录的权限减去umask的值,就是目录和文件新创建时默认的权限值了


    umask=数值
    为umask赋值,更改了文件和目录新创建时的默认权限




    4.3 观察文件类型:file


    file 档案
    观察文件类型,可以查看档案是属于哪个类型的:ASCII,data档案,或者binary
    file ~/.dashrc




    5. 指令与档案的搜寻:
    5.1 脚本文件名的搜寻:which
    which [-a] command
    用来查找指令的完整文件名放在什么地方,默认只在PATH中的文件中查找
    -a :将所有由PATH目录中可以找到的指令均列出,而不止第一个被找到的指令名称
    which -a ls




    5.2 档案档名的搜寻:whereis, locate, find


    whereis [-bmsu] 档案或目录名
    用来搜索档案的,直接查找的出具库,所以会很快
    -b :只找binary格式的档案
    -m :只找在说明文件manual路径下的档案
    -s :只找source来源档案
    -u :搜索不在上述三个项目中的其他特殊档案




    locate [-ir] keyword
    用来搜索档案
    -i :忽略大小写的差异;
    -r :后面可接正规表示法的显示方式


    updatedb
    whereis和locate是直接查找数据库里面的,但是数据库档案一天更新一次,所以当天的文件是查找不到的,
    这个时候只要更新一个数据库就可以了,通过这个指令用来更新




    find [PATH] [option] [action]
    find查找比较慢,是通过在硬盘上查找的。
    [PATH] 用来指定路径,默认是在当前所在路径查找
    [option] 属性,指出按照什么属性来查找,比如按照时间,名称,大小等查找
    1. 与时间有关的选项:共有 -atime, -ctime 与 -mtime ,以 -mtime 说明
    -mtime n :n 为数字,意义为在 n 天之前的『一天之内』被更动过内容的档案;
            -mtime +n :列出在 n 天之前(不含 n 天本身)被更动过内容的档案档名;
            -mtime -n :列出在 n 天之内(含 n 天本身)被更动过内容的档案档名。
            -newer file :file 为一个存在的档案,列出比 file 还要新的档案档名
            其他略过
    [action] 值,属性下对应的值



    6. 极重要!权限与指令间的关系:


    6.1、让用户能进入某目录成为『可工作目录』的基本权限为何:
    可使用的指令:例如 cd 等变换工作目录的指令;
    目录所需权限:用户对这个目录至少需要具有 x 的权限
    额外需求:如果用户想要在这个目录内利用 ls 查阅文件名,则用户对此目录还需要 r 的权限。


    6.2、用户在某个目录内读取一个档案的基本权限为何?
    可使用的指令:例如本章谈到的 cat, more, less 等等
    目录所需权限:用户对这个目录至少需要具有 x 权限;
    档案所需权限:使用者对档案至少需要具有 r 的权限才行!


    6.3、让使用者可以修改一个档案的基本权限为何?
    可使用的指令:例如 nano 或未来要介绍的 vi 编辑器等;
    目录所需权限:用户在该档案所在的目录至少要有 x 权限;
    档案所需权限:使用者对该档案至少要有 r, w 权限


    6.4、让一个使用者可以建立一个档案的基本权限为何?
    目录所需权限:用户在该目录要具有 w,x 的权限,重点在 w 啦!


    6.5、让用户进入某目录并执行该目录下的某个指令之基本权限为何?
    目录所需权限:用户在该目录至少要有 x 的权限;
    档案所需权限:使用者在该档案至少需要有 x 的权限

    作者:岑宇
    出处:http://www.cnblogs.com/cenyu/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    如果文中有什么错误,欢迎指出。以免更多的人被误导。
    >
  • 相关阅读:
    ES6(二)解构赋值详解
    面试题
    说出x的结果,并解释为什么?
    23种设计模式
    自定义滚动条
    JavaScript之数据类型
    [[转]CSS浮动原理
    正选反选JS
    让2个并列的div根据内容自动保持同等高度js
    jquery鼠标滑过展示图片时显示详情
  • 原文地址:https://www.cnblogs.com/cenyu/p/5710138.html
Copyright © 2011-2022 走看看