Linux学习第二周:文件管理命令及bash基础特性

1、Linux上的文件管理类命令常用的使用方法

本篇涉及命令:cat,tac,more,less,head,tail,file,stat,touch,which,whatis,whereis,ls,mkdir,rmdir,tree,cp,mv,rm

 文本文件查看类命令

  cat 查看文件内容(concatenate)
    cat命令用于查看一个或多个文本文件内容,可以将两个或两个以上的文件连接起来并显示;cat命令缺点是不能翻屏
   语法:cat
      cat 文件名 ...
      cat 选项... 文件名...
      cat 文件1 文件2 …
      cat [OPTION]... [FILE]...
   选项
     -n,--number [FILE …]:显示文件内容并输出行号
     -b,--number-nonblank:忽略空白行;只对非空白行进行编号
     -s,--squeeze-blank:不输出多行空行
     -E,--show-ends:显示行结束符 "$"
   cat命令示例
     查看/etc/fstab文件内容并输出行号

Linux学习第二周:文件管理命令及bash基础特性_第1张图片

  tac连接文件并反向显示文件内容
    tac命令的作用是显示文体文件的内容,和cat不同的是tac命令是逆向(反向)显示文件内容
   语法:tac [选项]... [文件名] ...
      tac 文件1 文件2 …
      tac [OPTION]... [FILE]...
   tac命令的选项和cat命令一致

  more以全屏幕的方式分页显示文本文件的内容
    当文件太大,用cat命令无法查看时,可以用more命令查看文件内容
   语法:more 文件名...
      more +行号 文件名...
      more [OPTIONS...] FILE...
   选项
     -d:显示翻页及退出提示
   more命令的快捷键

快捷键 说明
空格,F 显示下一页文本文件内容
回车 显示下一个行文本内容
B 显示上一行文本内容
q,Q 退出

  less 分页显示文本文件内容
    less命令用于分页显示文本文件的内容,less是more的升级版(less is more)和more命令不同的是,less命令可以向上翻页,而more命令却不能;其实,man命令是调用less命令来工作的;所以,less命令显示文本的用法及快捷键与man命令一样;less命令支持扩展的正则表达式
   语法:less 文件名
      less 选项]... 文件名
      less [OPTIONS...] FILE...
   选项
     -e,--quit-at-eof:显示完文件内容,自动退出
     -f,--force:强制显示文件内容
     -i,--ignore-case:显示文件内容并忽略字符大小写
     -N,--LINE-NUMBERS:显示时,在每一行的行首加上行号
     -s,--squeeze-blank-lines:连续多个空行变成一行显示
   快捷键
    参考man快捷键

  head 显示文本文件的头几行内容
    head命令用于显示文件头几行的内容,默认显示文本文件前十行
   语法:head 文件名...
      head -行数 文件名...
      head 选项 文件名...
      head [OPTION]... [FILE]...
   选项
     -c,--bytes SIZE:显示指定字节数
     -n,--lines NUMBER:显示指定的行数
     -v,--verbose:显示文件名
     -q,--quiet:不显示文件名;默认

  tail 显示文件后几行的内容
    tail命令用于显示文件最后的内容,默认显示文本文件后十行
   语法:tail 文件名...
      tail -行数 文件名
      tail 选项 文件名...
      tail [OPTION]... [FILE]...
   选项
     -c,--bytes SIZE:显示指定字节数
     -n,--lines NUMBER:显示指定的行数
     -f,--follow:显示文件内容后,不退出;跟踪显示文件新追加的内容
       用Ctrl+C:退出
     -v,--verbose:显示文件名
     -q,--quiet:不显示文件名;默认
   tail命令示例
     查看/etc/passwd文件的后5行

Linux学习第二周:文件管理命令及bash基础特性_第2张图片

     跟踪日志信息

yum日志

安装一个包

Linux学习第二周:文件管理命令及bash基础特性_第3张图片
日志新添加内容

Linux学习第二周:文件管理命令及bash基础特性_第4张图片
Ctrl+C退出

 文件操作类命令

  文件的时间戳

  access time:文件的访问时间;简写“atime”,读取文件内容
    在CentOS 7上不会立即改变
  modify time:文件的修改时间;简写“mtime”,内容发生改变
  change time:文件的改变时间;简写“ctime”,元数据发生改变
    atimi,mtime发生改变时,ctime才会进行改变
  CentOS 7多了一个“创建时间”

   touch 创建空文件 or 更改文件的时间戳
    touch命令用于创建空文件和修改文件时间戳(不能修改改变时间),如果文件不存在就创建文件,如果文件存在,默认就会更新文件的时间戳为此刻的时间戳
    语法:touch 文件名...
       touch 选项... 文件名...
       touch FILENAME-$(date +%F-%H-%M-%S)
       touch [OPTION]... FILE...
    选项
      -a:只更改访问时间 (atime)
      -m:只更改修改时间 (mtime)
      -d:同时更改访问时间和修改时间
      -c,--no-create:如果文件不存在,则不予创建
      -h,--no-dereference:更改软链接文件;而不是软链接所指向的文件
      -r,--reference FILE:使用指定文件(参照文件)的时间戳,而不是当前时间
      -t STAMP:使用指定时间戳,而不是现在时间;如果文件存在,则更改文件的访问时间和文件的修改时间的时间戳,如果文件不存在,则创建一个文件,指定文件的访问时间和文件修改时间的时间戳;格式:“年月日小时分钟.秒”
[[CC]YY]MMDDhhmm[.ss]
    注意:-d 和-t 选项可接受不同的时间/日期格式

    touch命令示例
     创建一个空文件

Linux学习第二周:文件管理命令及bash基础特性_第5张图片

      更改fstab文件的访问时间
Linux学习第二周:文件管理命令及bash基础特性_第6张图片

      更改fstab文件的修改时间

      做一个软链接文件并将/etc/passwd文件的时间戳设置为此文件的时间戳
Linux学习第二周:文件管理命令及bash基础特性_第7张图片

关于stat,cp命令的用法:请见下文

  文件的两类数据

  元数据:文件名、大小、类型、权限、属主属组、文件的时间戳(非文件的组成部分)...
  数据:文件里的内容(文件的组成部分)

  文件的修改与改变

  修改:指文件的内容发生改变(数据)
  改变:指文件的属性发生改变(元数据)
  注意:元数据发生改变数据一不定变,而数据发生改变元数据一定变

   stat 显示文件或文件系统状态信息(元数据信息)
    语法:stat 文件或目录...
       stat [OPTION]... FILE...
    选项
      -c,--format FORMAT:输出指定信息
       FORMAT:可以指定分隔符进行输出
         %n:只显示文件的名称
         %s:只显示文件的总大小;以字节为单位
         %b :只显示占据的磁盘块数
         %o:最佳I/O传输大小
         %F:只显示文件类型
         %i:只显示inode
         %h:只显示链接次数
         %C:只显示SELinux的安全上下文
         %a:只显示八进制访问权限
         %A:显示权限
         %u:只显示数字UID
         %U:只显示文件的属主
         %g:只显示数字GID
         %G:只显示文件的属组
         %x:只显示文件的访问时间
         %y:只显示文件的修改时间
         %z:只显示文件的改变时间
         %m:挂载点
      -f:显示文件系统状态而不是文件状态
      -t:输出简结信息
      -L:显示软链接所指向的文件的信息

Linux学习第二周:文件管理命令及bash基础特性_第8张图片

    stat命令输出信息说明

      File:文件名称
      Size:文件大小
      Blocks:占据的磁盘块数
      IO Block:IO块大小
      普通文件[regular file]:文件类型
      Device:所在设备
      Inode节点号
      Links:被链接次数
      Access(第一个):访问权限
      Context:SELinux的安全上下文
      Uid:uid号和属主
      Gid:gid号和属组
      Access(第二个):文件最近一次的访问时间
      Modify:文件的修改时间
      Change:文件的改变时间

 目录类命令

  pwd 显示当前目录(Print Working Directory)
    pwd命令是一个shell内部命令,用于显示当前工作目录的路径
   语法:pwd
      pwd 选项…
   选项
     -P:如果目录是个软链接,则显示软链接所指向的目录
   pwd命令的相关的环境变量
    $PWD:保存了当前目录路径
    $OLDPWD:保存了上一级目录路径

   一条命令两种实现
    pwd是一个内部命令,/bin/pwd是一个外部命令,前者用于显示当前的工作目录,后者用于显示当前所在的完整的工作目录
    内部命令的‘优先级’要高于外部命令

  mkdir 创建新目录 (Make Directory)
    mkdir命令用于创建目录,可一次性创建一个或多个目录; 如果目录存在,则不会创建其目录,并显示错误信息
   语法:mkdir 目录名...
      mkdir 选项]... 目录名...
      mkdir [OPTION]... DIRECTORY...
   选项
     -m,--mode 权限值 (MODE):创建目录时指定其仅限
     -p,--parents:连续创建多层目录,目录存在不报错
     -v:显示创建过程

   新建目录注意事项(文件名使用法则)

   1. 文件名严格区分大小写 (file1, File1, FILE1 不是同一个文件)
   2. 文件名可使用除“/”以外的任意字符,但不建议使用特殊字符(~,`,!,=,|,,<,>,?,(,),&,*,^,%,$,#,@...)
   3. 目录也是文件,在同一路径下,两个文件不能同名
   4. 文件名长度最长不能超过255个字符
   5. 文件名以“.”开头的文件均为隐藏文件
   6. 文件名如果有空格,就用引号””引起来
  注意:路径基名方为命令的作用对象;基名之前的路径必须得存在

  rmdir 删除空目录 (Remove empty directories)
   语法:rmdir 目录...
      rmdir 选项... 目录...
      rmdir [OPTION]... DIRECTORY...
   选项
     -p,--parents:删除指定目录后,若该目录的上层目录是空目录,则一并删除
     -v,--verbose:显示删除过程

  mktemp 创建临时文件或目录
    mktemp命令用于在shell脚本中创建临时文件,如不加任何选项,则会在/tmp目录下创建一个临时文件

   语法:mktemp
      mktemp 文件名
      mktemp 选项
      mktemp 选项 文件名
      mktemp [OPTION]... [TEMPLATE]
   选项
     -d,--directory:创建一个目录而非文件
     -q,--quiet:静默模式,执行时若发生错误,不会显示任何信息
   注意

  •  新建的文件格式必须是“FILENAME.XX.....”
  •  一次只能创建一个文件
  •  此命令多用于shell脚本

  tree 以树形结构显示目录内容
   语法:tree
      tree [选项]... 目录...
   选项
     -d:只显示目录
     -p:只显示由指定模式匹配到的路径
     -L LEVEL:指定显示层级的数目

  ls 列出目录内容 (List)
    ls/dir命令用于显示当前目录或指定目录下的文件列表
   语法:ls
      ls 目录或文件路径...
      ls 选项... 目录或文件路径...
      ls [OPTION]... [DIR|FILE]...
   选项
     -a:显示当前目录下的所有文件,包括隐藏文件
     -A:与-a选项的作用基本类似,但不会显示“.”和“..”
     -l:以长格式显示(Long)显示文件类型和目录列表;包括权限、大小、最后更新时间等详细信息,ls –l也可简写成“ll”

       ls -l参数说明

   从左到右第一个字符“-”:文件类型
     文件类型:-, d, b, c, l, s, p
   从第二到第十个字符“rw-r--r--”:文件的访问权限
   第十一位字符“1”:文件被硬链接的次数
   第十二位字符“root左”:文件属主(owner)
   第十三位字符“root右”:文件属组(group)
   第十四位字符“465”:文件的大小(size)
   8月 31 18:19:文件最近一次被修改的时间
   最后一位字符“zhangdaifu”:文件名称

     -h:以更人性化(human-readable)的方式显示出目录或文件的大小(KB、MB),默认大小单位为字节(B),此选项需要结合“-l”选项一起使用
对文件大小单位换算;换算后结果可能会非精确值
     -d:显示当前目录(Directory)本身的属性(也可以显示文件),而不是显示目录中的内容,此选项需要结合“-l”选项一起使用
     -i:显示每个文件的Inode
     -r:以文件名逆向排序(降序)的方式进行显示
     -S:根据文件大小进行排序显示
     -t:根据修改时间排序
组合选项:-ltr:根据上一次修改时间进行排序
     -R:以递归(Recursive)的方式显示指定目录及其子目录中的所有内容
     -c:结合“-lt”选项;根据ctime进行排序并显示文件状态最后更改的时间
     -L:当显示软链接文件时,显示软链接所指向的文件,而非软链接本身
     -p:对目录加上表示符号“/”
     -m:以逗号分隔文件,并填满整行行宽
     -F:加上文件类型的指示符号(*/=@| 其中一个)
     -B:不列出任何以"~"字符结束的文件
     -G:结合“-l”选项;根据一个长列表的形式显示,不输出组名
     -n:类似“-l”选项,但列出每个文件的UID 和GID
     -q:以"?“字符代替无法显示的字符
     -Q:将显示的文件用" "括起来
     -T:指定制表符(Tab)的宽度,而非8 个字符
     -id:只显示当前目录的详细属性,不显示目录下的内容
     -Z:显示SELinux的相关信息
     --time-style=STYLE:查看文件的详细时间信息;需结合“-l”选项
       long-iso
       full-iso
       iso
       locale
       还可以+date格式符
     --color:启用颜色法则区分不同类型的文件;默认开启此选项

  Linux文件类型

  -(f):普通文件
  d directory:目录文件
  l symbolic link:软(符号)链接文件
  b block device:块设备文件;支持以“block”为单位进行随机访问
  c character device:字符设备文件;支持以“character”为单位进行线性访问
  p pipe:管道文件
  s socket:套接字文件
注:在Linux中,除了目录文件、链接文件、块设备文件、字符设备文件、管道文件、套接字文件其他都是普通文件

  which 显示命令的完整路径
   语法:which 外部命令...
      which 选项 外部命令...
   选项
     --skip-alias:不显示命令别名

  whereis 搜索程序名
    查找命令的二进制、源代码和手册页面文件
   语法:whereis 命令或配置文件
      whereis [选项] 文件或目录
   选项
     -b:只搜索二进制文件
     -m:只搜索man手册说明文件
     -s:只搜索源代码文件

  whatis 查询命令功能
    whatis命令是用于查询一个命令执行什么功能,并将查询结果显示在终端上;使用mkwhatis命令可将当前系统上所有的帮助手册与之相对应的关键字创建为一个数据库
   语法:whatis [要查询的命令...]
   注意:其执行过程是查询数据库进行的
     手动更新数据库:makewhatis

  file查看文件类型
    file命令用于查看Linux系统上的文件类型,支持通配符,file使用的是相对路径
   语法:file 文件或目录...
      file 选项 文件或目录...
   选项
     -b:不显示文件名
     -L:直接显示软链接所指向的文件类别
     -h:直接显示软链接的文件类型,而不是软链接所指向的文件类型
     -F:使用指定的字符串作为文件名和文件之间的分隔符返回结果,默认为“:”
     -z:尝试解读压缩文件中的内容

 文件管理操作类命令

  cp 复制“Copy”文件或目录
    cp命令用于复制文件或目录,将需要复制的文件或目录(源)复制到其他目录中;如果有多个文件需要复制,则目标必须是个目录,而不能是文件
   cp命令复制流程:cp-->源-->新建一个空(目标)文件-->从源文件抽取数据流-->填充到目标文件中,直到和源文件一样-->copy done

  复制通常指的是复制文件中的数据,而不是复制文件的元数据(元数据可保留)
  如果复制的源有多个,则目标必须存在并且是个目录,而不能是单个文件
    cp只能把多个文件放到一个目录中去,而不能把多个文件合并成一个文件
  如果目标有多个且是目录,则以最后一个为准(目标只能是目录,且不能指明文件名)
  目录不能覆盖文件
  如果复制的是特殊文件 (b,c,s,[l,d]),则使用“-a”选项

   单源(文件)复制:cp 源文件 复制后的文件名
   多源(文件)复制:cp 源文件… 目标目录

   语法:cp 源文件 复制后的文件名
      cp 源文件… 目标目录
      cp 选项... 源文件或目录... 目标目录
      cp [OPTION]... -t DIRECTORY SOURCE...
   cp命令原理

  •   如果源是文件
        单文件复制
         语法格式:cp [OPTION]... SOURCE_FILE DEST
          如果目标文件不存在
            则新建一个文件,并将源文件中的内容添加到目标文件中
            如果不指明目标的文件名,则用原文件名
            如果指明目标的文件名,则使用手动指明的文件名
          如果目标是一个文件(非目录文件)且存在
            会把目标文件里的内容清空,把源文件里的内容覆盖到目标文件中;此时应使用-i选项
            复制同类文件
             注意:如果将目录文件覆盖了,则无法恢复
          如果目标是一个目录且存在
            在目标目录下新建一个与源文件同名的文件,并将源文件中内容添加到(复制其数据流)新文件中
            则会复制源文件到目标目录中,并保留源文件名
        多文件复制
         语法格式:cp [OPTION]... SOURCE_FILE... DIRECTORY
          如果目标是一个文件(非目录文件)且存在
            Error,复制将无法进行
          如果目标是一个目录且存在
            分别复制每个文件至目标目录中,并保持原名

          如果目标不存在:复制将无法进行
  •   如果源是目录
        则目标必须是一个目录文件,使用“-r”选项进行复制目录文件
        单源复制
         语法格式:cp [OPTION]... SOURCE_DIR DIRECTORY
          如果目标目录不存在
            将会创建一个与源同名的新目录并复制源目录中所有文件到目标目录中
          如果目标存在
            如果目标是文件:会报错
            如果目标是目录:会把源目录复制到目标目录中并新建与源同名的目录文件并把源的所有内容都复制到目标目录中去
        多源复制
         语法格式:cp [OPTION]... SOURCE_DIR… DIRECTORY
          如果目标目录不存在
            Error,复制将无法进行
          如果目标存在
            如果目标是文件:会报错
            如果目标是目录:会把源目录中的各个内容复制到目标目录中并新建与源同名的目录文件并把源的所有内容都复制到目标目录中去

   选项
     -i:交互式复制,目标文件存在提醒是否将其覆盖;覆盖:y,否则:n
       建议定义别名:alias cp='cp -i'
     -f:强制复制,不提醒目标文件是否覆盖(遇到-i失效)
     -r,-R DIR:复制目录必用此选项;递归复制目录及目录里的所有内容至目标位置;作用和“-R”一样,cp命令默认不支持SRC是目录
     -d:复制符号链接文件本身(仅保留链接属性),而非其指向的源文件
       默认情况下,cp命令复制符号链接文件的时候,复制的不是符号链接文件的本身,而是借用了符号链接文件的名字,复制了符号链接文件所指向的文件;如果目标存在,则将源符号链接所指向的文件覆盖至目标文件
     -b:管理员复制文件时,会提醒目标文件存在是否覆盖,并将目标文件进行备份;普通用户复制文件时,会直接覆盖掉目标文件,并备份 (-)
     -p:复制时保留源文件的权限,包括:属主属组、时间戳
     --preserve[=ATTR_LIST]:保存指定的属性,默认mode,如果不加“=”则保留默认属性,使用“=”可指定保留项

      ATTR_LIST:
        mode:权限
        ownership:属主和属组
        timestamps: 时间戳
        context:安全(上下文)标签
        links:符号链接本身
        xattr:扩展属性
        all:上述所有属性

     --no-preserve=ATTR_LIST:不保存指定的属性
     -a:归档复制,保留文件的元数据属性;也可复制目录,相当于“-dR”和 “--preserve=all”选项;备份重要文件时需用此选项
      -a选项可以复制普通文件,目录文件,链接文件,块设备文件,字符设备文件,套接字文件
     -n:不覆盖现有文件(不通与-i同时使用)
     --parents:保留目录结构
     --copy-contents:递归复制特殊文件的内容
     --backup[=CONTROL]:为每一个现有的目标文件做一个备份 (~)
       CONTROL:

Linux学习第二周:文件管理命令及bash基础特性_第9张图片

     -l:对源文件建立硬链接,而不是复制文件
     -s:对源文件建立软链接,而不是复制文件(类似于ln -s)
     -L:复制软链接所指向的源文件,而非软链接本身;默认
     -u:仅在源文件比目标文件新或缺少目标文件时才复制
     -S:在备份文件的尾部添加一个字串;需要覆盖时,才生效
     --attributes-only:只会复制文件名及其属性,不会复制任何数据
     --remove-destination:如果 cp 命令在目标目录下发现同名文件, cp 命令会先删除目标文件,然后再复制一份新的
     -t:可以把源放在后边,把目标目录放在前面
     -T:把目标当做一个正常文件
     -v:显示详细信息
     -Z:将目标文件的SELinux安全上下文设置为默认类型

  mv 移动文件“move” or 重命名文件
    mv命令用于移动文件或重命名文件,在相同目录下重命名文件,在不同目录下移动文件
   语法:mv 源文件或目录... 目标目录
      mv 选项... 源... 目标
      mv 原文件名 重命名后的文件名
      mv 多个源文件或目录 目标目录
   mv命令执行流程:mv源-->新建一个空(目标)文件-->从源文件抽取数据流-->填充到目标文件中-->删除源文件-->mory done
    如果mv的源有多个,则目标必须存在并且是个目录,而不能是单个文件
   选项
     -i:交互式,提醒目标文件存在是否覆盖;覆盖:y,否则:n
     -f:强制,不提醒目标文件是否覆盖(遇到-i失效)
     -b:覆盖目标,并备份
     -n:不会覆盖现有文件
     -u:当源文件比目标文件新或者目标文件不存在时,才移动文件
     -t:可以把源放在后边,把目标目录放在前面
     -S:在备份文件的尾部添加一个字串;需要覆盖时,才生效
     -T:把目标当做一个正常文件
     -v:显示执行过程
     -Z:将目标文件的SELinux安全上下文设置为默认类型

  •   如果源是单个文件
        如果目标不存在
          操作过程:在目标目录下创建一个自己指定的名字作为新文件名,把源文件里的内容添加到目标文件中并删除源文件
        如果目标存在
        如果目标是文件
          操作过程:把源文件里的内容覆盖到目标文件中,并删除源文件
        如果目标是目录
          操作过程:在目标目录中创建一个与源文件同名的文件,并删除源文件
  •   如果源是多个文件:目录必须存在,而且必须是目录
        如果源是目录:mv命令就会把目录和目录下的所有文件移动到指定目录中(mv命令不区分源是文件或目录)
       注意:移动文件只影响文件名,不会影响inode编号和时间戳

  rm 删除“remove”文件或目录
    rm命令用于删除指定的文件或目录,rm命令默认是删除文件的,删除目录必须使用“-r”
   语法:rm 文件或目录 ...
      rm 选项 ... 文件或目录 ...
      rm [OPTION]... FILE...
   选项
     -i:交互式删除文件,提示是否删除;确定:y,取消:n
     -f:强制删除,不提示
     -I:在删除超过三个文件或者递归删除前要求确认
     -d:只删除空目录;类似于“rmdir”命令
     -r:删除目录必用此选项,递归删除指定目录和目录里的内容
     --no-preserve-root:跳过安全模式
     -v:显示删除过程
    注意:所有不用的文件建议不要直接删除,而是移动至某个专用目录(模拟回收站)

   使用rm时需注意
    不要执行:rm –rf /[*]
    执行此条命令,系统会从“/”往下删,也就是说,把系统中所有的文件和目录都删除;在CentOS5和CentOS5之前的版本中,执行此条命令会把系统上的文件和目录全部都删除,在CentOS6中,新加了“--preserve-root”选项,该选是不删除“/”的,CentOS6默认支持该选项

2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。

命令的执行状态**

   **命令执行的结果
命令执行的结果
命令执行后的状态结果
命令执行后的状态结果
命令执行完成之后,其状态返回值保存于bash的特殊变量“?”保存上一条命令的执行的状态结果,用echo $?可以判断上一条命令是否执行成功
命令执行后的状态结果返回值
0:表示执行成功
1~255:表示执行失败

命令行展开
    ~:展开为用户的家目录
    ~用户名:展开为指定用户的家目录
    {}:可承载一个以逗号分割的列表,并将其展开为多个路径

3、请使用命令行展开功能来完成以下练习:

  (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d

  mkdir -v /tmp/{a,b}_{c,d}

  (2)、创建/tmp/mylinux目录下的

Linux学习第二周:文件管理命令及bash基础特性_第10张图片

mkdir -pv /tmp/mylinux/{bin,root/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}

4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

  文件的时间戳(参考上文)
  touch命令(参考上文)
  文件元数据(参考上文)
  stat命令(参考上文)

5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?

  alias 给命令设置别名

    alias是shell内部命令,用于查看当前shell进程中所有的命令别名和设置系统命令中的别名,如果原命令有多个参数空格隔开的话,就用’’括起来,如果执行“alias”什么都不加,将会查看系统中已经设置的命令别名;alias命令设置的别名仅对当前shell进程有效;如果想永久有效,则定义到配置文件中
   语法:alias
      alias 别名=’原命令’

   仅对当前shell有效
     时间限定:仅对当前shell有效,shell进程终止就失效
     范围限定:仅对当前shell有效,对其他shell无效
     注:任何在进程中定义的东西,由进程终止而终止

   让别名永久生效
     ~/.bashrc:写入此配置文件中,对当前用户生效
     /etc/bashrc:写入此配置文件中,对所有用户生效
    注意:别名可以与原名相同,此时原名被隐藏;此时如果要运行原命令,则使用\COMMAND

  撤销命令别名

    unalias是shell内部命令,用于撤销用户定义的别名
   语法:unalias 命令别名
      unalias 选项
   选项
     -a:撤销所有别名

  引用命令的执行结果

    状态结果定义于命令的源代码中,根据命令及其功能不同,命令执行的状态结果(返回值)各不相同

   引用命令执行结果

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

  ls -d /var/l[[:digit:]][[:lower:]]

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

  ls -d /etc/[[:digit:]]*[^[:digit:]]

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

  ls -d /etc/[^[:alpha:]][[:alpha:]]*

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

  touch /tmp/tfile-$(date +%F-%H-%M-%S)

10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/myzdf1目录中。

  mkdir /tmp/myzdf1 ; cp -r /etc/p*[^[:digit:]] /tmp/myzdf1

11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/myzdf2目录中。

  mkdir /tmp/myzdf2 ; cp -r /etc/*.d /tmp/myzdf2

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

  mkdir /tmp/myzdf3 ; cp /etc/[lmn]*conf /tmp/myzdf3

  • 主站
  • 本站
  • 本篇地址

你可能感兴趣的:(Linux学习第二周:文件管理命令及bash基础特性)