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

相关推荐

  • 文件查找与解压缩

    文件查找 脚本文件名的查询 which(寻找执行文件) which [-a] command -a :将所有由PATH目录中可以找到的命令均列出,而不只是第一个被找到的命令名称 文件名的查找 文件查找:实时查找:遍历所有文件进行条件匹配;(find)非实时查找:根据索引查找;(whereis、locate) whereis whereis [-bmsu] […

    Linux干货 2017-04-08
  • 软件安装与管理–rpm、yum

    一、rpm包管理器     1、介绍rpm        在linux系统中,服务是要通过程序来提供的,通过调用API接口编写好之后的源码包文件对于普通用户来说,安装起来较为繁琐。于是人们将源码在编译安装的环境下制作了更加高级的rpm包,它的最大特点是避免了对原软件包的编译安装,以更加简便…

    Linux干货 2016-08-22
  • MBR分区和GPT分区详解

    什么是磁盘分区?               磁盘分区是使用分区编辑器(partition editor)在磁盘上划分几个逻辑部分,盘片一旦划分成数个分区(Partition),不同类的目录与文件可以存储进不同的分区。越多分区,也就有更多不同的地方,可以将文件的性质区分得更细,按…

    Linux干货 2016-08-29
  • iptables/netfilter入门到进阶

    防火墙的概念 Firewall:工作于主机或网络边缘,对于进出本主机或网络的报文根据事先定义的规则作匹配检测,对于更改被规则匹配到的报文做出相应处理的组件 网络层防火墙(包过滤防火墙): 优点:对用户来说透明,处理速度快且易于防护 缺点:一旦黑客突破防火墙,就可以请以伪造数据包源地址、目的地址和IP端口号 代理服务型防火墙(Proxy Service) 优点…

    2017-06-17
  • sql语言

    insert delete update alter create

    2018-06-12
  • Linux 基础命令

    一,GNU/LINUX操作系统组成        1.1硬件  计算机硬件资源,CPU,主板,内存,存储器等 1.2 内核层 包含了硬件控制,设备驱动程序,虚拟文件系统,网络管理,内存管理,进程管理,程序调度等 ,属于内核空间 1.3 系统调用 所有的操作系统在其内核里都有一些内建的函数,这些函数可以用来完成…

    2016-10-29

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