马哥教育网络班22期+第2周课程练习

1、Linux上文件/目录相关命令有哪些?

  • 1)目录管理类命令:mkdir、rmdir

    • (1)mkdir:make directorise 创建文件夹

       使用格式:
           mkdir [OPTION]... DIRECTORY...
           常用选项:
               -p:自动按需创建父目录
               -v、verbose:显示详细过程
               -m MODE:创建目录时直接给定权限,否则即为umask配置的默认权限;
    • (2)rmdir:remove empty directorise 删除空目录

      使用格式:
          rmdir [OPTION]... [DIRECTORY]...
          常用选项:
              -p:删除某个目录后,如果其上一级目录为空,则一并删除;
              -v:显示操作过程;
              blob.png
              注:因当前目录不是空目录,所以操作.(当前目录)时提示失败。
  • 2)文件查看类命令:cat、tac、head、tail、more、less

    • (1)分屏查看命令:more与less

      使用格式:more|less FILE
      注:more命令翻屏至文件尾部后自动退出
    • (2)head命令:查看文件的前n行,默认为10行

      使用格式:head [OPTIONS] FILE

      常用选项:
          -n NUM:NUM表示要查看的行数;
          -NUM:NUM表示要查看的行数;
    • (3)tail命令:查看文件的后n行,默认为10行

      使用格式:tail [OPTIONS] FILE

      常用选项:
          -n NUM:NUM表示要查看的行数;
          -NUM:NUM表示要查看的行数;
    • (4)cat与tac

      使用格式:cat|tac FILE

  • 3)文件管理工具:cp、mv、rm

    • (1)cp命令:复制文件或目录

          常用选项:
              -i,--interactive:交互式复制,即覆盖前提示用户确认;
              -f,--force:强制覆盖目标文件;
              -R,-r,-recursive:递归复制目录;
              -d:复制符号链接文件本身,并不复制其指向的源文件;
              -a:-dR --preserve=all,archive,用于实现归档
              -preserv=
                          mode    权限
                          owership    属主与属组
                          timestamps    时间戳
                          context    安全标签
                          xattr    扩展属性
                          link    符号链接
                          all    上述所有属性
          实例:
              将文件file1复制成文件file2
                  cp file1 file2
      
              采用交互方式将文件file1复制成文件file2
                  cp -i file1 file2
      
              将文件file1复制成file2,因为目的文件已经存在,所以指定使用强制复制的模式
                  cp -f file1 file2
      
              同时将文件file1、file2、file3与目录dir1复制到dir2
                  cp -R file1 file2 file3 dir1 dir2
    • (2)mv命令:是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。

          常用选项:
              -i:交互式
              -f:强制覆盖             
      
      实例1:将文件file1改名为file2,如果file2已经存在,则询问是否覆盖
          mv -i log1.txt log2.txt
      
      实例2:将文件file1改名为file2,即使file2存在,也是直接覆盖掉
          mv -f log3.txt log2.txt
    • (3)rm命令:为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。

          rm [OPTION]... FILE...
          常规选项:
              -i:交互式执行
              -f:强制执行,不提示任何信息
              -r:递归执行
                  删除目录:rm -rf /PATH/TO/DIR
                      危险操作:rm -rf / 、rm -rf /*
                  建议不用的不文件不要直接删除,可移动至某个专用的目录(模拟回收站)

2、bash的工作特性值命令执行状态返回值和命令行展开;

  • 通过 $? 获取上一次命令执行的结果,0表示成功,非0表示失败。

  • 命令行展开

    • 花括号展开:{ }

      在非引号内的内容,如果用花括号包括,而且里面用逗号分隔(至少包含一个逗号,可以是空内容),这样花括号里的内容会被展开成用空格分开的一个列表,花括号前后可以紧随前缀和后缀

      如:

      echo {a,b,c}
      echo hello,{world,pig}
    • 波浪号展开:~

      从波浪号~到第一个未被引号包含的斜杠/(如果没有斜杠,则全部算上),作为波浪号前缀。 在波浪号后面的字符串作为一个可能的登录名:如果为空,被展开成该用户的HOME变量,如果HOME变量未设置,则用用户执行shell的主目录替换。如果不为空,则按照该登录名的主目录替换。

      如:

      echo ~   # 显示$HOME内容
      echo ~root  # 显示root用户主目录
    • Shell参数和变量展开

      用$符号开始,后面接着变量名或者花括号括起来的变量名,如果是花括号内以叹号开头,那么就是变量名本身。 如:

      echo $PWD    # 显示PWD对应的值
      echo ${PWD}  # 显示PWD对应的值

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

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

    mkdir -pv /tmp/{a,b}_{c,d}
  • (2)创建/tmp/mylinux目录下的如下目录:

    实现命令:
    mkdir -pv /tmp/mylinux/{bin,boot/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}}
    
    实现效果:
    [root@localhost ~]# tree /tmp/mylinux/
        /tmp/mylinux/
        ├── bin
        ├── boot
        │   └── 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、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?

  • (1)文件的元数据:

    任何文件系统中的数据分为数据和元数据。数据是指普通文件中的实际数据,而元数据指用来描述一个文件的特征的系统数据,如访问权限、文件拥有者、文件数据块的分布信息(inode...)、文件时间戳信息等。
  • (2)查看文件的元数据

    stat FILE #使用stat命令可以查看文件或目录的元数据
  • (3)修改文件的时间戳信息:

    touch命令:可以用于改变access time和modity time
    touch [OPTIONS]... FILE...
        -c:指定文件,当文件不存在时不予创建
        -a:仅改变access time
        -m:仅改变modify time
        -t STAMP:
                [[CC]YY]MMDDhhmm[.ss]

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

  • (1)如何定义命令的别名:

    alise NAME='COMMAND'
    注意:此方法仅对当前shell进程有效
  • (2)命令中引用另一个命令的执行结果:

    使用`COMMAND`
    如:
        ls -l `find /etc -name "pa*"`

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

    ls /var/ | grep "^l.*[0-9].*[[:lower:]]$"

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

    ls /etc/ | grep "^[0-9].*[^0-9]$"

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

    ls /etc/ | grep "^[^[:alpha:]][[:alpha:]].*"

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

    mkdir /tmp/tfile-$(date "+%Y-%m-%d-%H-%M-%S")

    10、复制/etc目录下所有以p开头、以非数字结尾的文件或目录至/tmp/mytest1目录中;

    cp -r /etc/p*[^0-9] /tmp/mytest1/

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

    cp -r /etc/*\.d /tmp/mytest2/

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

    cp -r /etc/[lmn].\.conf /tmp/mytest3/

原创文章,作者:N22-江西-H随风,如若转载,请注明出处:http://www.178linux.com/42475

(0)
N22-江西-H随风N22-江西-H随风
上一篇 2016-09-08
下一篇 2016-09-08

相关推荐

  • SUID_SGID_Sticky简单总结

    参考: http://blog.chinaunix.net/uid-25314474-id-3313109.html —————————————权限——&#82…

    Linux干货 2015-09-14
  • vim常用小结

    移动光标类命令h :光标左移一个字符l :光标右移一个字符space:光标右移一个字符Backspace:光标左移一个字符k或Ctrl+p:光标上移一行j或Ctrl+n :光标下移一行Enter :光标下移一行w或W :光标右移一个字至字首b或B :光标左移一个字至字首e或E :光标右移一个字至字尾) :光标移至句尾( :光标移至句首}:光标移至段落最后一个…

    Linux干货 2017-04-11
  • N25期第八周作业

    1.请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别 主要功能: 网桥是一个局域网与另一个局域网之间建立连接的桥梁,属于数据链路层的一种设备。 集线器是可以将一些机器连接起来组成一个局域网的设备。 二层交换机是工作于OSI模型的第2层(数据链路层)的设备,作用和集线器类似。 三层交换机就是具有部分路由器功能的二层交换机。 路由器是互联…

    Linux干货 2017-03-08
  • Linux的终端类型

    一、了解终端   在早期的年代,主机不是很多,都是一系列的大型主机,简单来说就是用户很多,但主机很少,不可能做到人手一台,但可以在主机上连接一个分屏器,在分屏器上可以连接鼠标键盘以及显示器,这些东西是没有计算能力的,仅仅担任输入和输出的工作,运算和处理都是由主机来完成的。   简单来说终端是用户与主机交互,是必然用到的…

    Linux干货 2016-10-14
  • 浅谈编译kernel+busybox构建拥有远程ssh登录和web功能最小linux系统(一)

    实验环境win7+VM11.1 大致过程总揽 1,硬件准备以及查看硬件设备型号(不用担心,这些都是VM虚拟出来的) 2,编译环境的配置以及下载内核源码以及编译内核 3,编译busybox,以及提供系统正常运行的配置文件,初步运行linux系统 4,编译安装dropbear提供ssh服务 5,安装nginx;提供web服务 一,硬件准备以及查看硬件设备型号 由…

    Linux干货 2015-09-22
  • 浅析linux软、硬链接

    软链接 硬链接 不同点 创建时会占用新的inode号, 不会占用 可以跨分区 不可以跨分区 与源文件是两个不同的文件,不会增加文件链接数 与源文件数据相同,会增加文件链接数 依赖于链接的文件名,当删除或移动源文件后,连接可能失效 不依赖于源文件名,删除或移动源文件后,硬链接依然使用 对文件,目录都可以执行链接操作 只能对文件执行链接操作 大小为指向源文件路径…

    Linux干货 2016-12-05

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-13 08:32

    以N开头或者以N结尾,使用行首或行末牟定来实现。答题比较认真,继续保持。