马哥教育网络班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
下一篇 2016-06-23

相关推荐

  • sed 的基础应用与掌握

    赶紧试试吧看是看不会的

    Linux笔记 2018-04-19
  • 马哥教育网络班20期+第二周课程练习

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 文件管理有 cp, mv, rm  复制命令:cp [root@ddwhost ~]# cp /etc/magic /tmp/         cp&n…

    Linux干货 2016-06-23
  • dd工具

    dd     dd命令:convert and copy a file     用法:        ddif=/PATH/FROM/SRC of=/PATH/TO/DEST       &…

    Linux干货 2016-09-02
  • vim文本编辑器使用

    vim文本编辑器使用

    2017-09-20
  • Linux运维学习历程-第五天-Linux文件系统与管理

    Linux运维学习历程-第五天-Linux文件系统与管理 本章内容 文件系统  文件和目录被组织成一个单根倒置树结构从根目录下开始,用“/” 表示根文件系统(rootfs) :root filesystem,用路径分隔的 /;遵循FHS: (Filesystem Hierarchy Standard)  文件系统分层结构:LSB Linu…

    Linux干货 2016-08-04
  • vim

    翻屏半Ctrl+ b uf d 屏幕 首 中 尾HML 段首尾 分割 整空行#{} 句首 分割 ._ 或者 整空行#() 选行1G(gg)#GG 光标# kh lj 行内0_^$ 单词#bWe w 配置/etc/vimrc      /* 全局 */~/.vimrc         /* 个人 */ 行号                           …

    Linux笔记 2018-07-01

评论列表(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