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
下一篇 2018-03-11

相关推荐

  • shell脚本清空系统message日志

      1 #/bin/bash   2 #此脚本用来清空系统message日志文件   3 #author:wyf date:16/10/30   4 LOG_DIR=/var/log   5 ROOT…

    Linux干货 2016-10-30
  • 实验:配置静态路由2

    实验:配置静态路由2 IP地址规划如下: VMware实验环境下给网卡分配不同的VMnet以实现物理分隔广播域: Client1-VMnet1: R1-VMnet1-VMnet2: R2-VMnet2-VMnet3: R3-VMnet3-VMnet4: Client2-VMnet4: 注意,环境准备: 1、MAC地址不要有冲突,如果是复制的虚拟机,对于cen…

    2017-03-26
  • AWK文本工具和软件包管理

    AWK文本工具 两种版本1.nawk   2.gawk gawk    模式扫描和处理语言 选项: -F 指明输入时用到的字段分隔符 -v  var=value:自定义变量 基本格式: awk [options] ’program’   file…. program:pattern{action statrments;………

    Linux干货 2018-03-15
  • 用户和组相关的配置文件

    目录 l  用户 l  组账号 l  UID和GID号 l  /etc/passwd分析 l  /etc/shadow分析 l  /etc/group分析 l  /etc/gshadow分析 l  通过用户和用户组配置文件来查询或管理用户 l  总结 1、用户(User…

    Linux干货 2016-10-23
  • 马哥教育网络20期+第4周作业博客

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 答:cp -a /etc/ske1 /home/tuser1 && chown -R go-rwx /home/tuser1 2、编辑/etc/group文件,添加组hadoop。 答:echo "…

    Linux干货 2016-09-05
  • 文本编辑秘籍之vim宝典

    一、初识Vim Vim是从 vi 发展出来的一个文本编辑器。其功能非常强大,熟练掌握vim的常用操作和快捷操作能让我们从繁杂的文本处理任务中杀出血路,在运维的道路上愉快前行。 vim使用简单命令组合来完成复杂操作,同时也支持基本正则表达式。 二、拨开vim迷雾: 2.1 使用vim打开一个文件: 如果该文件存在,文件被打开并显示内容;如果该文件不存在,当编辑…

    Linux干货 2016-08-10

评论列表(1条)

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

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