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

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

     文件管理命令有:mkdir  rm  tree  ls  等等

 1、mkdir [options] /path/to/somewhere

    

        -p: 存在于不报错,且可自动创建所需的各目录;

        

        -v: 显示详细信息

        

        -m MODE: 创建目录时直接指定权限;

        

        新建一个目录名字叫mtdy,可以看到新建成功。

    

        [root@7mini ~]# mkdir -pv /tmp/mtdy      

        mkdir: 已创建目录 "/tmp/mtdy"

        [root@7mini ~]# ls -ld /tmp/mtdy

        drwxr-xr-x. 2 root root 6 8月  21 14:08 /tmp/mtdy

    

        新建一个叫没有mtdy1的目录并且属组的权限是只读

       

        [root@7mini ~]# mkdir -vm g=w /tmp/mtdy1

        mkdir: 已创建目录 "/tmp/mtdy1"

        [root@7mini ~]# ls -ld /tmp/mtdy1

        drwx-w-rwx. 2 root root 6 8月  21 14:11 /tmp/mtdy1

2、rm命令:rm [OPTION]… FILE…

         常用选项:

       -i:interactive

       -f:force

       -r: recursive

       删除目录:rm -rf /PATH/TO/DIR   危险操作:rm -rf /*

       

        删除mtdy目录,-r 可以删除目录

        [root@7mini ~]# rm -r /tmp/mtdy

        rm:是否删除目录 "/tmp/mtdy"?y

        [root@7mini ~]# ls -l /tmp

        总用量 8

        -rwx——. 1 root root  827 8月  14 22:05 ks-script-OPUkVZ

        drwx-w-rwx. 2 root root    6 8月  21 14:11 mtdy1

        drwxrwxr-x. 2 root mtdy    6 8月  20 20:23 mytest

        drwx——. 2 mtdy test   59 8月  20 18:00 skel

        -rw-r–r–. 1 yyy  mtdy 1604 8月  20 23:06 test.etc

        drwxr-xr-x. 2 mtdy test    6 8月  20 20:00 tt

        drwxr-xr-x. 3 root root   51 8月  20 19:53 udev

        -rw——-. 1 root root    0 8月  14 21:46 yum.log

3、 tree 以树形图列出文件的层级结构,需要先安装tree命令。

        命令格式:tree [选项]… 目录…

    

        常用参数:

    

        -d:只显示目录;

    

        -L:level:指定显示的层级数目;

    

        -P pattern:只显示由指定pattern匹配到的路径;

   显示根目录1层树结构

        [root@7mini ~]# tree -L 1 /

        /

        ├── bin -> usr/bin

        ├── boot

        ├── dev

        ├── etc

        ├── home

        ├── lib -> usr/lib

        ├── lib64 -> usr/lib64

        ├── media

        ├── mnt

        ├── opt

        ├── proc

        ├── root

        ├── run

        ├── sbin -> usr/sbin

        ├── srv

        ├── sys

        ├── tmp

        ├── usr

        └── var

        

    显示tmp/ 目录

        [root@7mini ~]# tree -d /tmp

        /tmp

        ├── mtdy1

        ├── mytest

        ├── skel

        ├── tt

        └── udev

            └── rules.d

    

4、列出指定目录下的内容

         ls [OPTION]… [FILE]…

         -a: 显示所有文件,包括隐藏文件;

         -A:显示除.和..之外的所有文件;

         -l: –long, 长格式列表,即显示文件的详细属性信息;

         -rw-r–r–. 1 root   root     8957 10月 14 19:34 boot.log

         -:文件类型,-, d, b, c, l, s, p

         rw-r–r–

         rw-:文件属主的权限;

         r–:文件属组的权限;

         r–:其它用户(非属主、属组)的权限;

         1:数字表示文件被硬链接的次数;

         root:文件的属主;

         root:文件的属组;

         8957:数字表示文件的大小,单位是字节;

         10月 14 19:34 :文件最近一次被修改的时间;

         boot.log:文件名

         -h, –human-readable:对文件大小单位换算;换算后结果可能会非精确值;

         -d:查看目录自身而非其内部的文件列表;

         -r: reverse, 逆序显示;

         -R: recursive,递归显示;

        查看tpm/目录属性

  

        [root@7mini ~]# ls -ld /tmp

        drwxrwxrwt. 12 root root 4096 8月  21 14:37 /tmp

        查看tpm/目录内文件属性

        [root@7mini ~]# ls -l /tmp

        总用量 8

        -rwx——. 1 root root  827 8月  14 22:05 ks-script-OPUkVZ

        drwx-w-rwx. 2 root root    6 8月  21 14:11 mtdy1

        drwxrwxr-x. 2 root mtdy    6 8月  20 20:23 mytest

        drwx——. 2 mtdy test   59 8月  20 18:00 skel

        -rw-r–r–. 1 yyy  mtdy 1604 8月  20 23:06 test.etc

        drwxr-xr-x. 2 mtdy test    6 8月  20 20:00 tt

        drwxr-xr-x. 3 root root   51 8月  20 19:53 udev

        -rw——-. 1 root root    0 8月  14 21:46 yum.log

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

         命令执行的状态结果:

         bash通过状态返回值来输出此结果:

         成功:0

         失败:1-255

         命令执行完成之后,其状态返回值保存于bash的特殊变量$?中;

        

         命令正常执行时,有的还回有命令返回值:根据命令及其功能不同,结果各不相同;

         引用命令的执行结果:

         $(COMMAND)

         或`COMMAND`

        显示创建目录的状态返回值

        [root@7mini ~]# mkdir qiu

        [root@7mini ~]# echo $?

        0   值为真 创建成功

        

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

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

        [root@7mini ~]# mkdir -pv /tmp/{a,b}{c,d}

        mkdir: 已创建目录 "/tmp/ac"

        mkdir: 已创建目录 "/tmp/ad"

        mkdir: 已创建目录 "/tmp/bc"

        mkdir: 已创建目录 "/tmp/bd"

        [root@7mini ~]# ls -l /tmp

        总用量 8

        drwxr-xr-x. 2 root root    6 8月  21 15:04 ac

        drwxr-xr-x. 2 root root    6 8月  21 15:04 ad

        drwxr-xr-x. 2 root root    6 8月  21 15:04 bc

        drwxr-xr-x. 2 root root    6 8月  21 15:04 bd

        -rwx——. 1 root root  827 8月  14 22:05 ks-script-OPUkVZ

        drwx-w-rwx. 2 root root    6 8月  21 14:11 mtdy1

        drwxrwxr-x. 2 root mtdy    6 8月  20 20:23 mytest

        drwx——. 2 mtdy test   59 8月  20 18:00 skel

        -rw-r–r–. 1 yyy  mtdy 1604 8月  20 23:06 test.etc

        drwxr-xr-x. 2 mtdy test    6 8月  20 20:00 tt

        drwxr-xr-x. 3 root root   51 8月  20 19:53 udev

        -rw——-. 1 root root    0 8月  14 21:46 yum.log

        

    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

[root@7mini ~]# mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modeles,lib64,proc,sbin,sys,tmp,user/local/{bin,sbin},var/{lock,log,run}}

        mkdir: 已创建目录 "/tmp/mylinux"

        mkdir: 已创建目录 "/tmp/mylinux/bin"

        mkdir: 已创建目录 "/tmp/mylinux/boot"

        mkdir: 已创建目录 "/tmp/mylinux/boot/grub"

        mkdir: 已创建目录 "/tmp/mylinux/dev"

        mkdir: 已创建目录 "/tmp/mylinux/etc"

        mkdir: 已创建目录 "/tmp/mylinux/etc/rc.d"

        mkdir: 已创建目录 "/tmp/mylinux/etc/rc.d/init.d"

        mkdir: 已创建目录 "/tmp/mylinux/etc/sysconfig"

        mkdir: 已创建目录 "/tmp/mylinux/etc/sysconfig/network-scripts"

        mkdir: 已创建目录 "/tmp/mylinux/lib"

        mkdir: 已创建目录 "/tmp/mylinux/lib/modeles"

        mkdir: 已创建目录 "/tmp/mylinux/lib64"

        mkdir: 已创建目录 "/tmp/mylinux/proc"

        mkdir: 已创建目录 "/tmp/mylinux/sbin"

        mkdir: 已创建目录 "/tmp/mylinux/sys"

        mkdir: 已创建目录 "/tmp/mylinux/tmp"

        mkdir: 已创建目录 "/tmp/mylinux/user"

        mkdir: 已创建目录 "/tmp/mylinux/user/local"

        mkdir: 已创建目录 "/tmp/mylinux/user/local/bin"

        mkdir: 已创建目录 "/tmp/mylinux/user/local/sbin"

        mkdir: 已创建目录 "/tmp/mylinux/var"

        mkdir: 已创建目录 "/tmp/mylinux/var/lock"

        mkdir: 已创建目录 "/tmp/mylinux/var/log"

        mkdir: 已创建目录 "/tmp/mylinux/var/run"

        [root@7mini ~]# tree /tmp/mylinux

        /tmp/mylinux

        ├── bin

        ├── boot

        │   └── grub

        ├── dev

        ├── etc

        │   ├── rc.d

        │   │   └── init.d

        │   └── sysconfig

        │       └── network-scripts

        ├── lib

        │   └── modeles

        ├── lib64

        ├── proc

        ├── sbin

        ├── sys

        ├── tmp

        ├── user

        │   └── local

        │       ├── bin

        │       └── sbin

        └── var

            ├── lock

            ├── log

            └── run

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

    

  (1)文件的元素信息有:文件名、文件大小、文件权限、文件属组、属主、access time、modify time、change time等

  (2)stat /PATH/TO/SOMEFILE:获取指定文件的元数据

        [root@7mini ~]# touch 1.txt

        [root@7mini ~]# stat 1.txt

          文件:"1.txt"

          大小:0          块:0          IO 块:4096   普通空文件

        设备:fd00h/64768d Inode:202330023   硬链接:1

        权限:(0644/-rw-r–r–)  Uid:(    0/    root)   Gid:(    0/    root)

        环境:unconfined_u:object_r:admin_home_t:s0

        最近访问:2016-08-21 15:32:06.306203510 +0800

        最近更改:2016-08-21 15:32:06.306203510 +0800

        最近改动:2016-08-21 15:32:06.306203510 +0800

        创建时间:-

(3)改变文件的时间戳 touch命令:

        touch [OPTION]… FILE…

        -a: only atime

        -m: only mtime

        -t STAMP:

        [[CC]YY]MMDDhhmm[.ss]

        -c: 如果文件不存,则不予创建

        [root@7mini ~]# stat  /tmp/network-scripts/ifcfg-eno16777736

          文件:"/tmp/network-scripts/ifcfg-eno16777736"

          大小:383        块:8          IO 块:4096   普通文件

        设备:fd00h/64768d Inode:467976      硬链接:1

        权限:(0644/-rw-r–r–)  Uid:(    0/    root)   Gid:(    0/    root)

        环境:system_u:object_r:net_conf_t:s0

        最近访问:2016-08-20 16:08:38.213000471 +0800

        最近更改:2016-08-14 22:04:09.232546199 +0800

        最近改动:2016-08-14 22:04:09.232546199 +0800

        [root@7mini ~]# touch  /tmp/network-scripts/ifcfg-eno16777736

        [root@7mini ~]# stat  /tmp/network-scripts/ifcfg-eno16777736

          文件:"/tmp/network-scripts/ifcfg-eno16777736"

          大小:383        块:8          IO 块:4096   普通文件

        设备:fd00h/64768d Inode:67835846    硬链接:1

        权限:(0644/-rw-r–r–)  Uid:(    0/    root)   Gid:(    0/    root)

        环境:unconfined_u:object_r:user_tmp_t:s0

        最近访问:2016-08-21 15:42:44.160223194 +0800

        最近更改:2016-08-21 15:42:44.160223194 +0800

        最近改动:2016-08-21 15:42:44.160223194 +0800

        

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

    alias:显示当前shell进程所有可用的命令别名

    alias NAME='VALUE'定义别名NAME,其相当于执行命令VALUE;

    在命令行中定义的别名,仅对当前shell进程有效;如果想永久有效,要定义在配置文件中;

    仅对当前用户:~/.bashrc

    对所有用户有效:/etc/bashrc

        [root@7mini ~]# alias

        alias cp='cp -i'

        alias egrep='egrep –color=auto'

        alias fgrep='fgrep –color=auto'

        alias grep='grep –color=auto'

        alias l.='ls -d .* –color=auto'

        alias ll='ls -l –color=auto'

        alias ls='ls –color=auto'

        alias mv='mv -i'

        alias rm='rm -i'

        alias which='alias | /usr/bin/which –tty-only –read-alias –show-dot –show-tilde'

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

    COMMAND1 | COMMAND2 | COMMAND3 |…

    

        [root@7mini ~]# mkdir /tmp/tqqq | ls -ld /tmp/tqqq

        drwxr-xr-x. 2 root root 6 8月  21 16:13 /tmp/tqqq

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

    

    ls /var/l*[[:digit:]]*[[:lower:]]

    ls /var/l*[0-9]*[a-z]

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

    [root@7mini ~]# ls -ld /etc/[[:digit:]]*[^[:digit:]]

    drwxr-xr-x. 2 root root 6 8月  21 16:25 /etc/1tong

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

    [root@7mini ~]# ls -ld /etc/[^[:alpha:]][[:alpha:]]*

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

    [root@7mini ~]# touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`

    [root@7mini ~]# ls -l /tmp 

    /tmp:

    总用量 20

    drwxr-xr-x.  2 root root    6 8月  21 16:06 1.txt

    drwxr-xr-x.  2 root root    6 8月  21 15:04 ac

    drwxr-xr-x.  2 root root    6 8月  21 15:04 ad

    drwxr-xr-x.  2 root root    6 8月  21 15:04 bc

    drwxr-xr-x.  2 root root    6 8月  21 15:04 bd

    -rwx——.  1 root root  827 8月  14 22:05 ks-script-OPUkVZ

    drwxr-xr-x.  6 root root 4096 8月  21 15:36 log

    drwx-w-rwx.  2 root root    6 8月  21 14:11 mtdy1

    drwxr-xr-x. 14 root root 4096 8月  21 15:24 mylinux

    drwxrwxr-x.  2 root mtdy    6 8月  20 20:23 mytest

    drwxr-xr-x.  2 root root 4096 8月  21 15:39 network-scripts

    drwx——.  2 mtdy test   59 8月  20 18:00 skel

    -rw-r–r–.  1 yyy  mtdy 1604 8月  20 23:06 test.etc

    -rw-r–r–.  1 root root    0 8月  21 16:31 tfile-2016-08-21-16-31-19

    drwxr-xr-x.  2 root root    6 8月  21 16:13 tqqq

    drwxr-xr-x.  2 mtdy test    6 8月  20 20:00 tt

    drwxr-xr-x.  2 root root    6 8月  21 16:12 ttt

    drwxr-xr-x.  3 root root   51 8月  20 19:53 udev

    -rw——-.  1 root root    0 8月  14 21:46 yum.log

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

    [root@7mini ~]# mkdir /tmp/mytest1

    [root@7mini ~]# cp -a /etc/p*[^[:digit:]] /tmp/mytest1

    [root@7mini ~]# ls -a /tmp/mytest1

    .      passwd   plymouth  postfix         printcap   protocols

    ..     passwd-  pm        ppp             profile    python

    pam.d  pki      popt.d    prelink.conf.d  profile.d

    

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

    [root@7mini ~]# mkdir /tmp/mytest2

    [root@7mini ~]# cp -a /etc/*.d /tmp/mytest2

    [root@7mini ~]# ls -a /tmp/mytest2

    .                  dracut.conf.d   pam.d           rc4.d       sysctl.d

    ..                 grub.d          popt.d          rc5.d       tmpfiles.d

    bash_completion.d  init.d          prelink.conf.d  rc6.d       xinetd.d

    binfmt.d           ld.so.conf.d    profile.d       rc.d        yum.repos.d

    chkconfig.d        logrotate.d     rc0.d           rsyslog.d

    cron.d             modprobe.d      rc1.d           rwtab.d

    depmod.d           modules-load.d  rc2.d           statetab.d

    dnsmasq.d          my.cnf.d        rc3.d           sudoers.d

    

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

    [root@7mini ~]# mkdir /tmp/mytest3

    [root@7mini ~]# cp -a /etc/[lmn]*.conf /tmp/mytest3

    [root@7mini ~]# ls -a /tmp/mytest3

    .   ld.so.conf     libuser.conf  logrotate.conf  mke2fs.conf

    ..  libaudit.conf  locale.conf   man_db.conf     nsswitch.conf

原创文章,作者:N22-北京-钱峰,如若转载,请注明出处:http://www.178linux.com/38299

(0)
N22-北京-钱峰N22-北京-钱峰
上一篇 2016-08-22
下一篇 2016-08-22

相关推荐

  • iptables的DNAT、SNAT配置

    DNAT:目的地址转换。当外网主机访问内网的某台服务器的时候,如果直接暴露服务器的IP于公网,可能会遭受各种各样的攻击,而DNAT的主要作用就是在服务器前面添加一台防火墙。将防火墙的地址公布出去,让外网客户端通过访问防火墙的地址就可以访问到本地服务器。这样就起到了保护服务器的目的; SNAT:源地址转换。内网主机在访问互联网的时候所有源地址都转换为防火墙的外…

    2017-06-12
  • sed与vim浅析

    sed与vim sed Stream EDitor, 行编辑器,sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”( pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。…

    Linux干货 2016-08-10
  • 配置yum服务器——以centOS 6.9系统为例

    准备工作 关闭防火墙  关闭防火墙service iptables stop  设置防火墙开机不启动chkconfig iptables off  查看一下防火墙状态 iptables -vnL 如下图,可以看到已经关闭 关闭SElinux 使用命令 vim /etc/selinux/config 将SELINUX=enable…

    Linux干货 2017-08-05
  • find用法及德·摩根定律

    德·摩根定律   奥古斯都·德·摩根首先发现了在逻辑命题中存在着下面这些关系:      非(P且Q)=非P或非Q      非(P或Q)=非P且非Q 上述逻辑命题可以解释为:    not ( P and Q)=not P or not Q    …

    Linux干货 2016-08-18
  • Linux进程及作业控制

    inux进程 进程的概念 当一个系统启动时,刚开机是第一个运行的是内核代码!先把内核放到cpu上运行,等内核控制和掌管了一切,有内核启动进程!然后创建第一个进程 init进程  内核空间 用户空间也都已被创建成功!后期的一切管理工作都由init来负责 init不能代表系统完成一些内核特权的执行!但由他负责向内核提交 他…

    Linux干货 2016-09-10
  • 马哥教育网络班22期+第一周课程练习

        操作系统:centos 7.2  64位 计算机组成及功能。 计算机组成: 由存储器、运算器、控制器、输入设备、输出设备组成。 功能: 存储器:用来存放计算程序及参与运算的各种数据;例如:硬盘、内存 运算器:负责数据的算术运算和逻辑运算即数据的加工处理 控制器:负责对程序规定的控制信息进行分析,控制并…

    Linux干货 2016-08-15

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-22 14:13

    写的很好,排版还可以在漂亮一点,加油,3大题1小题不对,2小题跟要求也不一样