美文网首页Linux侠客
Linux文件管理命令与bash的工作特性

Linux文件管理命令与bash的工作特性

作者: ELF_Conan | 来源:发表于2018-03-23 17:01 被阅读0次

    Linux上的常用文件管理命令

    mkdir

    mkdir:make directories,此命令用来创建一个空目录

    语法格式:mkdir [OPTION] … DIRECTORY…

    常用方法:

    • -p:用来创建一个连续的空目录;

    • -v:verbose,用来显示创建的详细过程;

    • -m:MODE,用来分配目录的权限;(极少会用到)

    注意:路径的基名方为命令的作用对象;基名之前的路径必须存在。

    示例:


    rmdir

    rmdir:remove empty directories,此命令用来删除一个空目录;

    语法格式:rmdir [OPTION] … DIRECTORY …

    常用方法:

    • -p:删除某个目录后,如果其父目录为空,则一并删除;

    • -v:用来显示删除操作的详细过程;

    示例:


    tree

    tree:以倒置的树状结构来显示其目录结构

    语法格式:tree [options] … [directory] …

    常用方法:

    • tree:显示目录的全部层级结构

    • tree -L:指定要显示的目录层级

    示例:


    cp

    cp:复制文件或目录;

    语法格式:
    单源复制:cp [option]…[T]…SOURCE DEST
    多源复制:cp [option]…SOURCE…DIRECTORY
    cp [option]…-t DIRECTORY SOURCE…

    说明:单源复制模式下

    • 如果目标不存在:则事先创建此文件,并复制源文件的数据流到目标文件中;
    • 如果目标存在:假如目标是非目录文件,则覆盖目标文件;
    • 假如目标是目录文件,则先在目标目录下创建一个与源文件同名的文件,并复制其数据流;

    常用选项:

    • -i:交互式复制,即覆盖之前提醒用户确认;

    • -f:强制复制目标文件;

    • -r,-R:递归复制目录;

    • -d:复制符号链接文件本身,而并非指向源文件;

    • a:-dR --preserve=all,archive,用于实现归档;

    元数据表:

    --preserve=

    • mode:权限
    • ownership:属主和属组
    • timestamps:时间戳
    • context:安全标签
    • xattr:扩展属性
    • links:符号链接
    • all:上述的所有属性

    示例:


    mv

    mv:move,移动文件或目录

    语法格式:
    mv [OPTION]…[-T] SOURCE DEST
    mv [OPTION]…SOURCE…DIRECTORY
    mv [OPTION]…-t DIRECTORY SOURCE

    常用方法:

    • -i:交互式移动

    • -f:force,强制性移动

    示例:


    rm

    rm:remove,删除文件或目录

    语法格式:rm [OPTION]…FILE…

    常用选项:

    • -i:交互式;

    • -f:force,强制删除;

    • -r:recursivev,递归删除目录

    建议:所有不用的文件不要直接删除,而是移动到某个专用的目录下;(模拟回收站)

    示例:


    Bash的工作特性

    Bash的基础特性

    命令补全机制:
    Shell程序在接受到用户执行命令的请求时,在分析完成之后,最左侧的字符串会被当作命令;
    命令查找机制:
    查找内部命令时,根据PATH环境变量中设定的目录,从左至右逐个搜索目录下的文件名;

    ~]# echo $PATH**

    如果给定的大头字符串能唯一标识某命令程序文件,则直接不全;
    如果不能唯一表示某个命令程序文件,敲中两次tab,会给出列表进行选择;
    路径补全:
    在给定的起始路径下,以对应路径下的打头字串来逐一匹配起始路径下的每个文件;如果能唯一标 识,一次tab键补全;不然击中两次tab,给出列表选择;


    Bash的基础特性之命令行展开

    两个常见符号:~, { }

    • ~:自动展开为用户的家目录,或指定的用户的家目录;

    • { }:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;
      例:/tmp/{a,b}等价于/tmp/a /tmp/b


    Bash的基础特性之命令的执行状态结果

    命令执行的状态结果:
    Bash通过状态的返回值来输出此结果:

    成功:0
    失败:1-255

    命令执行完成之后,其状态返回值保存于bash的特殊变量$?中;

    示例


    命令正常执行时,有的还会有命令返回值;根据命令及其功能的不同,结果各不相同;

    Bash基础特性之引用

    强引用:‘ ‘
    弱引用:“ ”
    命令引用:``


    Bash基础特性之快捷键

    • Ctrl+a:跳转至命令行行首
    • Ctrl+e:跳转至命令行行尾
    • Ctrl+u:删除行首至光标所在处之间的所有字符
    • Ctrl+k:删除光标所在处至尾的所有字符
    • Ctrl+l:清屏,等价于clear命令

    Bash的基础特性之文件名通配

    globbing:文件名通配(整体文件名匹配,而非部分)
    匹配模式:元字符

    • *:匹配任意长度的任意字符

    例:pa* , * pa, * pa, * p * a**

    示例:

    • ?:匹配任意单个字符

    例:Pa?, ??pa, p?a, p?a?

    示例:

    • [ ]:匹配指定范围内的任意单个字符
      几种特殊的格式:
      [a-z], [A-Z], [0-9], [a-z0-9]
      1.[[:upper:]]:所有大写字母
      2.[[:lower:]]:所有小写字母
      3.[[:alpha:]]:所有字母
      4.[[:digit:]]:所有数字
      5.[[:alnum:]]:所有的字母和数字
      6.[[:space:]]:所有空白字符
      7.[[:punct:]]:所有标点符号
      8.[^]:匹配指定氛围外的任意单个字符**

    例:[^[:upper:]] [^0-9] [^[:alnum:]]

    示例:


    文件的元数据信息

    文件的两类数据

    • 元数据:metadata,文件的属性数据

    • 数据:data,文件的实际数据


    元数据信息

    • File:文件或目录的路径
    • Size:文件的大小
    • Access:文件类型,属主,属组和其他用户的权限
    • Uid:文件的属主ID
    • Gid:文件的属组ID
      …….

    Stat命令:

    Stat:display file or file system status

    语法格式:stat FILE ….

    示例:


    时间戳信息

    • access time :文件最近一次的访问时间
    • modify time :文件最近一次的修改时间
    • change time :文件属性最近一次改动的时间

    touch命令

    touch:change file timestamps

    语法格式:touch [OPTION]…FILE…

    常用方法:

    • -c:指定的文件路径不存在时不予创建

    • -a:仅修改access time

    • -m:仅修改modify time

    • -t:stamp [[CC]YY]MMDDhhmm[.ss]


    定义命令的别名

    alias命令

    alias:此命令用来定义一个命令的别名,可以给命令取一个新的名字。

    语法格式:alias NAME = ‘COMMAND

    注意:此命令只对当前的shell进程有效

    有定义别名就有撤销别名:unalias NAME


    练习示例

    命令行展开功能

    1. 创建/tmp目录下的:a_c, a_d, b_c, b_d

    完成命令:mkdir -v {a, b}_{c, d}


    1. 创建/tmp/mylinux目录下的树结构




    文件名通配

    1. 显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可有其他字符)的文件或目录。

    完成命令:ls /var/l*[a-z]


    1. 显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

    完成命令:ls /etc/[0-9]*[^0-9]


    1. 显示/etc目录下,以非字母开头,后面跟了一个字母以及其他任意长度任意字符的文件或目录。

    完成命令:ls /etc/[^[:alpha:]][a-z]


    1. 在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

    完成命令:mkdir -v /tmp/tfile-$(date +%Y-%m-%d-%H-%M-$S)


    1. 复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录下。**

    完成命令:cp -rv /etc/p*[^0-9] /tmp/mytest1


    1. 复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中

    完成命令:mkdir /tmp/mytest2
    cp -rv /etc/*.d /tmp/mytest2


    1. 复制/etc目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中

    完成命令:mkdir /tmp/mytest3
    cp -rv /etc/{l,m,n}*.conf /tmp/mytest3


    相关文章

      网友评论

        本文标题:Linux文件管理命令与bash的工作特性

        本文链接:https://www.haomeiwen.com/subject/oshxcftx.html