马哥教育网络班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

相关推荐

  • linux正则表达式和vim的详细解析!

    正则表达式: 元字符– [:upper:] 大写 [:lower:] 小写 [:digit:] 全数字 [:alpha:] 全字母 [:alnum:] 全字母数字 匹配次数– . 匹配任意单个字符 * 匹配前面字符任意次 \? 匹配前面字符0次或1次 \{n\} 匹配至少n次 \{m,m\} 匹配至少m次 最多n次 \{,n\} 匹配…

    Linux干货 2017-04-09
  • 马哥教育网络班22期+第3周课程练习 忍者乱太郎喻成

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。  who|awk '{print $1}'|uniq 2、取出最后登录到当前系统的用户的相关信息。 题目不是很清晰我估计是题目想要的是 last -1   cat /etc/pa…

    Linux干货 2016-09-06
  • selinux介绍

    本章内容 SELinux概念启用SELinux管理文件安全标签管理端口标签管理SELinux布尔值开关管理日志查看SELinux帮助 SELinux介绍 SELinux: Secure Enhanced Linux,是美国国家安全局「NSA=The National Security Agency」和SCC(Secure Computing Corporat…

    Linux干货 2016-09-19
  • 用户组和权限管理知识总结

    在介绍本期内容之前呢,有一个小插曲.就是由于昨天晚上我没有正常关闭虚拟机,今天早上打开的时候一直显示正在使用中,弹 出来个小框框,如下图,马赛克部分呢就是提示的路径,安装路径不一样,提示的就也不一样. 此虚拟机似乎正在使用中。 如果此虚拟机已在使用中,请按“取消”按钮,以免损坏它。如果此虚拟机未使用,请按“取得所有权(T)”按钮以获取它的所有权。&…

    2017-07-28
  • Nginx+Keepalived实现站点高可用

    Nginx+Keepalived实现站点高可用 vrrp 虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议,1998年已推出正式的RFC2338协议标准。VRRP广泛应用在边缘网络中,它的设计目标是支持特定情况下IP数据流量失败转移不会引…

    Linux干货 2016-11-07

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