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

1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

查看列表ls

    选项:

       -a, --all
              do not ignore entries starting with . 
              显示所有文件并包括隐藏文件
       -l     use a long listing format
              显示文件详细信息
       -d, --directory
              list directory entries instead of contents, and do not dereference symbolic links 
              显示指定目录的信息,而不是显示其目录下的文件,与-l一起使用才有意义
       -r, --reverse
              reverse order while sorting 
              反向排序
       -n, --numeric-uid-gid
              like -l, but list numeric user and group IDs 
              不显示用户和组名,显示UID和GID
       -R, --recursive
              list subdirectories recursively  
              递归显示目录以及子目录下的文件
       -h, --human-readable
              with -l, print sizes in human readable format (e.g., 1K 234M 2G)
              根据文件大小显示容易查看的size大小,与-l结合使用
       -S     sort by file size
              按文件大小排序              
       --sort=WORD  
              选择文件的某个属性排序
              sort by WORD instead of name: none -U, extension -X, size -S, time -t, version -v
       --time=WORD
              选择文件的某个时间属性排序
              with -l, show time as WORD instead of modification time: atime -u, access -u, use -u, ctime -c, or status -c; use specified time as sort key if --sort=time

    实例:

        $ ls -lah
          drwxr-xr-x  2 scm  scm  4.0K May 21 11:13 .vnc
          drwxrwxr-x  3 scm  scm  4.0K May 12 14:02 workspace
          -rw-------  1 scm  scm   202 May 21 11:13 .Xauthority
        详解:drwxrwxrwx,d位置是文件类型,除了d目录文件,常见的还有中杠表示普通文件,l表示链接文件,b表示块文件,c表示字符设备文件,p表示管道文件,s表示套接字文件;rwxrwxrwx是文件的权限位,前三位是属主权限,中间三位是属组权限,最后是其他用户权限,rwx表示可读可写可执行,权限位中杠表示无相应权限
              下来的字段为被硬链接的次数,例如.cache表示被硬链接3次
              然后的两个字段分别表示属组和属主,都是scm
              4.0K和202表示文件大小,加了选项-h可显示合适的文件大小单位
              May 21 11:13是文件修改时间戳
              最后显示文件名

复制:cp

    选项

       -a, --archive 归档,保留文件原来的样子,可恢复原来的现场
              same as -dR --preserve=all
              相当于-dR --preserve=all
       -i, --interactive 
              prompt before overwrite (overrides a previous -n option)
              交互式提示是否覆盖
       -s, --symbolic-link
              make symbolic links instead of copying
              创建符号连接
       -R, -r, --recursive
              copy directories recursively
              逐级复制目录以及目录下所有文件
       --preserve[=ATTR_LIST]
              preserve the specified attributes (default: mode,ownership,timestamps), if  possible
              additional attributes: context, links, xattr, all
              复制时保留文件属性
       -d     same as --no-dereference --preserve=links
              不追踪符号链接,
       -p     same as --preserve=mode,ownership,timestamps
              复制时保留文件的权限,属组属组和时间戳
       -v, --verbose
              explain what is being done
              显示详细过程

    实例:

        root用户操作
        $ cp -a /home/scm /home/back/scm.bak
        将/home/scm备份至/home/back目录下,查看备份 
        -p也是常用的选项,一般情况下cp文件夹不带-p会报错“cp: omitting directory `testcpdir2/'”
        $ cp -p /home/scm /home/back/scm.bak

移动:mv

    选项

       -f, --force
              do not prompt before overwriting
              强制移动,覆盖同名文件不提示
       -i, --interactive
              prompt before overwrite
              交互式提示是否覆盖

删除:rm

    选项

       -f, --force
              do not prompt before overwriting
              强制删除
       -i, --interactive
              prompt before overwrite
              交互式提示是否删除
       -r, -R, --recursive
              remove directories and their contents recursively
              递归删除

    实例:

        -f常与-r一起使用,可直接删除目录文件
        $ rm -rf test/

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

答:

命令的执行状态返回值:

    命令执行的状态
        一般分为两种,成功或者失败
            返回值为0表示执行成功;为1~255表示失败
        $?可以查看命令执行的返回值

命令行展开特性:

    ~:展开用户的主目录
        $cd ~表示切换目录至家目录
        $cd ~/.ssh表示切换只家目录下的.ssh目录
    {}:可承载以逗号分隔的列表,并将其展开围多个路径
        $mkdir project/{branches,tags,trunk/{product1,product2}}

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

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

        $mkdir {a_{c,d},b_{c,d}}

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

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

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

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

答:

文件的元数据信息:

  stat命令可查看文件的元数据信息

    $stat  /etc/passwd
      File: `/etc/passwd' 
      Size: 1750            Blocks: 8          IO Block: 4096   regular file
    Device: 802h/2050d      Inode: 393910      Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2016-06-19 18:58:25.910331000 -0700
    Modify: 2016-06-11 19:39:22.305024069 -0700
    Change: 2016-06-11 19:39:22.305024069 -0700

    详解:

        Size: 1750 文件大小1750 byte
        Blocks: 8  占用8个block      
        IO Block: 4096 每次读写的数据单元大小
        regular file 此文件为常规文件
        Device: 802h/2050d ???
        Inode: 393910 索引节点号
        Links:硬连接数
        Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root) 权限,属主,属组
        Access:访问时间
        Modify:修改时间
        Change:改变时间,一般值元数据最后一次修改的时间

修改文件的时间戳:

  touch

    选项:

       -a     change only the access time
              修改访问时间
       -c, --no-create
              do not create any files
              touch的文件不存在时不创建
       -m     change only the modification time
              改变文件修改时间
       -t STAMP
              use [[CC]YY]MMDDhhmm[.ss] instead of current time
              指定时间的时间格式
              [[CC]YY]MMDDhhmm[.ss] 
                 年   月日时分 秒

    实例:

        $ touch -at 201606061423.22 xiaoyue.sh
        $ touch -mt 201606051423.22 xiaoyue.sh
        注意,文件的任何一个元数据的改变都会引起ctime的改变

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

答:

命令alias
    $alias 不加任何参数表示查看当前shell下的命令别名
    添加命令别名:
      $alias ls='ls -la' 
      vi ~/.bashrc或者/etc/bashrc可添加命令别名

命令中引用另一个命令的执行结果可以使用管道

    $ls -l |grep "rwx"

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

    $ls /var |egrep --colour '^l.*[[:digit:]].*[[:lower:]]$'

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

    $ls /etc |egrep --colour '^[[:digit:]].*[^[:digit:]]$'

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

    $ls /etc |egrep --colour '^[^[:alpha:]][[:alpha:]].*'

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

    $touch tfile-$(date +%Y-%m-%d-%H-%M-%S)

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

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

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

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

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

    #cp /etc/[lmn]*.conf /tmp/mytest3

原创文章,作者:Net20_天意,如若转载,请注明出处:http://www.178linux.com/18282

(0)
Net20_天意Net20_天意
上一篇 2016-06-23 11:07
下一篇 2016-06-23 11:07

相关推荐

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

    1、描述计算机的组成及其功能。   现代计算机的组成部分主要包括:运算器、控制器、存储器以及输入输出设备:   其中运算器和控制器被集成与一块集成电路板上,统称为CPU(Central Processing Unit)中央处理器: 运算器进行运算,主要包括算术运算、逻辑运算、浮点运算等基本运算 控制器控制整个CPU的工作,主要包…

    2016-07-10
  • 第六周小练习

    详细总结vim编辑器的使用并完成一下练习 vim编辑器的基本使用 vim模式: 1、编辑模式(命令模式) 2、输入模式 3、末行模式  一、打开文件 vim /path/to/somefile 打开单个文件 如果文件存在为打开,否则保存退出时为新建 vim /path/to/somefile vim +# : 打开文件…

    Linux干货 2016-12-19
  • 内键命令和外部命令

    命令的基本格式 COMMAND  [OPTIONS…]  [ARGUMENTS…]        命令 (COMMAND)       OPTIONS(选项):用于启用或关闭命令的某个或某些功能      …

    2017-05-23
  • 文本处理课后小练习

    1、找出ifconfig命令结果中本机的所有IPv4地址 [root@wzc date]# ifconfig |grep -E -o  '(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]…

    Linux干货 2016-08-08
  • 计算机基础知识

    计算机基础知识 计算机系统 计算机的功能 冯诺依曼体系的五大基本部件 操作系统 Linux操作系统的组成 操作系统的功能介绍 开发接口标准 操作系统的分类 Linux 操作系统 Linux的发行版详解 Linux哲学思想 Linux系统镜像站点 计算机系统 计算机系统由硬件 计算机系统由硬件(Hardware) 系统和软件(Software)系统两大部分组成…

    Linux笔记 2018-05-07
  • linux ACL访问控制列表

    1.ACL介绍 Linux 下用户对文件的操作权限有 r-读, w-写, x-可执行三种,而对linux 下的文件而言,用户身份分为:所有者, 所属组, 其它人, 且文件的所有者,所属组都只能是一个,所以在对文件分配用户的使用权限时,只能对这三种身份进行分配rwx 权限.Linux 主要作为服务器系统使用,用户众多.所以在实际使用场景中,这三种身份并不能很好…

    Linux笔记 2018-04-08

评论列表(2条)

  • 马哥教育
    马哥教育 2016-06-23 12:53

    写的很好,排版也很好,10 12 可能有点小瑕疵,在仔细看看题目的要求

    • Net20_天意
      Net20_天意 2016-06-23 14:51

      @马哥教育我粗心了:
      10:#cp -r /etc/p*[^0-9] /tmp/mytest1
      12: #cp -r /etc/[lmn]*.conf /tmp/mytest3