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

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

Linux上的常用文件管理命令

mkdir          

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

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

常用方法:

-p:自动按需要来创建一个父目录;

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

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

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

示例:

捕获

rmdir

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

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

常用方法:

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

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

示例:

捕获2

tree

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

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

常用方法:

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

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

示例:

 捕获3

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:上述的所有属性

示例:

捕获4

mv

mv:move,移动文件或目录

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

          mv  [OPTION]…SOURCE…DIRECTORY

          mv  [OPTION]…-t  DIRECTORY  SOURCE

常用方法:

-i:交互式移动

-f:force,强制性移动

示例:

捕获5

 rm

rm:remove,删除文件或目录

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

常用选项:

-i:交互式;

-f:force,强制删除;

-r:recursivev,递归删除目录

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

示例:

捕获6Bash的工作特性

Bash的基础特性

命令补全:

     Shell程序在接受到用户执行命令的请求时,在分析完成之后,最左侧的字符串会被当作命令;

    命令查找机制:查找内部命令时,根据PATH环境变量中设定的目录,从左至右逐个搜索目录下的文                                    件名;   ~]# echo $PATH

    如果给定的大头字符串能唯一标识某命令程序文件,则直接不全;

    如果不能唯一表示某个命令程序文件,敲中两次tab,会给出列表进行选择;

路径补全:

    在给定的起始路径下,以对应路径下的打头字串来逐一匹配起始路径下的每个文件;如果能唯一标            识,一次tab键补全;不然击中两次tab,给出列表选择;

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

符号:~,{ }

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

{ }:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;

  •     例:/tmp/{a,b}等价于/tmp/a  /tmp/b

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

命令执行的状态结果:

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

            成功:0

            失败:1-255

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

捕获7

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

Bash基础特性之引用

      强引用:‘ ‘

      弱引用:“ ”

      命令引用:`  `

Bash基础特性之快捷键

      Ctrl+a:跳转至命令行行首

      Ctrl+e:跳转至命令行行尾

      Ctrl+u:删除行首至光标所在处之间的所有字符

      Ctrl+k:删除光标所在处至尾的所有字符

      Ctrl+l:清屏,等价于clear命令

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

      globbing:文件名通配(整体文件名匹配,而非部分)

匹配模式:元字符

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

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

示例:

捕获8

?:匹配任意单个字符

Pa?,  ??pa,  p?a,  p?a?

示例:

捕获9

 [ ]:匹配指定范围内的任意单个字符

几种特殊格式:

[a-z],  [A-Z],  [0-9],  [a-z0-9]

[[:upper:]]:所有大写字母

[[:lower:]]:所有小写字母

[[:alpha:]]:所有字母

[[:digit:]]:所有数字

[[:alnum:]]:所有的字母和数字

[[:space:]]:所有空白字符

[[:punct:]]:所有标点符号

[^]:匹配指定氛围外的任意单个字符

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

示例:

捕获10

文件的元数据信息

文件的两类数据

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

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

元数据信息

File:文件或目录的路径

Size:文件的大小

Access:文件类型,属主,属组和其他用户的权限

Uid:文件的属主ID

Gid:文件的属组ID

…….

Stat命令:

Stat:display file or file system status

语法格式:stat  FILE ….

示例:

捕获12

时间戳信息

        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}

捕获11

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

13

14

文件名通配

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

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

捕获15

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

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

1

  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)

捕获17

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

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

 捕获18

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

          完成命令:mkdir  /tmp/mytest2 

                              cp  -rv  /etc/*.d  /tmp/mytest2

捕获19

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

          完成命令:mkdir  /tmp/mytest3

                    cp  -rv  /etc/{l,m,n}*.conf  /tmp/mytest3

捕获20

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/92088

(0)
ConanConan
上一篇 2018-03-11 21:34
下一篇 2018-03-11 21:34

相关推荐

  • 马哥教育网络班21期+第5周课程练习

    1.显示/boot/grub/grub.conf中至少以一个空白字符开头的行 [root@itop ~]# grep "^[[:space:]]\+" /boot/grub/grub.conf 2.显示/etc/rc.d/rc.sysinit文件中以#开头,后面至少一个空白字符,而后又有至少一个非空…

    Linux干货 2016-08-08
  • 从2个命令简单聊聊CentOS账户锁定原理

    linux中 passwd -l 和usermod -L有什么区别,各自的解锁和锁定原理是什么样的呢?

    2017-11-16
  • linux发展史

    Linux 发展史 说明 此前对linux认识模糊一知半解,近期通过学习将自己对于linux的发展总结一下方便大家日后的学习。那Linux是目前一款非常火热的开源操作系统,可是linux是什么时候出现的,又是因为什么样的原因被开发出来的呢。以下将对linux的发展历程进行详细的讲解。    目录 一、Linux发展背景 二、UINIX的诞…

    Linux干货 2016-10-14
  • 文件权限特殊管理之ACL

    ACL:access control list 权限访问列表 应用范围:所属主和所属组和其他用户之外的他叔用户 ACL是Linux系统权限额外支持的一项功能,需要文件系统的支持,例如:ReiserFS , EXT2 , EXT3 , EXT4 , JFS , XFS等都支持ACL功能 centos7 中:安装系统分区和装完系统之后自己手动添加的分区自动支持a…

    Linux干货 2016-08-05
  • Linux的文本处理工具练习题

    练习一:     1、找出ifconfig命令结果中本机的所有IPv4地址 2、查出分区空间使用率的最大百分比值 3、查出用户UID最大值的用户名、UID及shell类型 4、查出/tmp的权限,以数字方式显示  练习二:       1、显示/proc/meminfo文件中以大…

    Linux干货 2016-08-08
  • N24_huamao 学习计划

       每天会安排好时间按顺序看视频进行学习,由于基础比较差我会先进行笔记然后再做博客记录。需要操作的知识点会跟着视频和自己的理解去做,最后达到马哥所说的“技能”所需的要求。运维的知识点很广很多也很复杂。当然想学好后边的就要先打好基础从linux系统开始学习把重要的命令记牢应用灵活才可以。这第一步自己一定要迈好。

    Linux干货 2016-10-26

评论列表(1条)

  • 马哥教育
    马哥教育 2018-03-20 20:46

    mkdir -p 参数P代表parents,表示递归创建目录。
    其他没有问题