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

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

    1、cat:用于连接文件并打印到标准输出设备上,常用来显示文件的内容

        命令使用格式

        cat [OPTION]… [FILE]…

    2、more:以全屏的方式显示文本内容

        命令使用格式

        more [OPTIONS…] FILE…

            -d: 显示翻页及退出提示

    3、less:类似more使用,但less能向前向后翻页浏览

        命令使用格式

        less [OPTIONS…] FILE…

    4、head:显示文件开头内容,默认显示前十行

        命令使用格式

        head [OPTION]… [FILE]…

        -c #: 指定获取前#字节

            -n #: 指定获取前#行

    5、tail:显示文件尾部内容,默认显示末十行

        命令使用格式

        tail [OPTION]… [FILE]…

            -c #: 指定获取后#字节

            -n #: 指定获取后#行

            -f: 跟踪显示文件新追加的内容;

    6、复制命令cp

        命令使用格式:

        cp [OPTION]… [-T] SOURCE DEST

        cp [OPTION]… SOURCE… DIRECTORY

        cp [OPTION]… -t DIRECTORY SOURCE…

            -i:交互式

            -r, -R: 递归复制目录及内部的所有内容;

            -a: 归档,相当于-dR,–preserv=all

                -d:–no-dereference –preserv=links

                –preserv[=ATTR_LIST]保留源文件所选取的属性进行保留

                    mode: 权限————-

                    ownership: 属主属组—默认三个属性

                    timestamp: ————

                    links

                    xattr

                    context

                    all

            -p: –preserv=mode,ownership,timestamp

            -v: –verbose

            -f: –force

    7、mv:移动文件

        命令使用格式

        mv [OPTION]… [-T] SOURCE DEST

        mv [OPTION]… SOURCE… DIRECTORY

        mv [OPTION]… -t DIRECTORY SOURCE…

        常用选项:

               -i: 交互式

               -f: 强制

    8、rm:删除文件和目录

        命令使用格式

        rm [OPTION]… FILE…                                    

        常用选项:

            -i: 交互式

            -f: 强制删除(不会交互式)

            -r: 递归

            rm -rf (能删除目录以及其下面的文件)

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

    1、bash使用特殊变量$?保存最近一条命令的执行状态结果:

            0:成功

            1-255:失败

        例如:

            [root@Andder77 ~]# ls /var
            account  crash  db     games  lib    lock  mail  opt       run    tmp  yp
            cache    cvs    empty  gdm    local  log   nis   preserve  spool  www
            [root@Andder77 ~]# echo $?
            0
            [root@Andder77 ~]# ls /vvar
            ls: 无法访问/vvar: 没有那个文件或目录
            [root@Andder77 ~]# echo $?
            2

    2、命令行展开

    ~: 展开为用户的主目录

        ~USERNAME:展开为指定用户的主目录

        {}:可承载一个以逗号分隔的列表,并将其展开为多个路径

            /tmp/{a,b} = /tmp/a, /tmp/b

            /tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi

        例如

[root@localhost ~]# touch /tmp/test2.{1,2,3}
[root@localhost ~]# ls /tmp | grep "^test2."
test2.1
test2.2
test2.3

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

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

[root@localhost ~]# mkdir -pv /tmp/{a,b}_{c,d}
mkdir: 已创建目录 "/tmp/a_c"
mkdir: 已创建目录 "/tmp/a_d"
mkdir: 已创建目录 "/tmp/b_c"
mkdir: 已创建目录 "/tmp/b_d"

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

[root@localhost ~]# mkdir -p /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},
lib/modules,lib64,proc,sbin,sys.tmp,usr/lobal/{bin,sbin},var/{lock,log,run}}
[root@localhost ~]# tree /tmp/mylinux//tmp/mylinux/
├── bin
├── boot
│   └── grub
├── dev
├── etc
│   ├── rc.d
│   │   └── init.d
│   └── sysconfig
│       └── network-scripts
├── lib│   └── modules
├── lib64
├── proc
├── sbin
├── sys.tmp
├── usr
│   └── lobal
│       ├── bin
│       └── sbin
└── var
    ├── lock
    ├── log
    └── run23 directories, 0 files

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

    1、使用stat命令来查看文件的元数据

[root@localhost etc]# stat passwd
  File: ‘passwd’
  Size: 1259      	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 134995767   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:passwd_file_t:s0
Access: 2016-06-17 08:13:54.651633356 +0800
Modify: 2016-06-17 08:12:07.106634433 +0800
Change: 2016-06-17 08:12:07.106634433 +0800

    2、元数据信息:

        File:文件名    

        Size:文件大小

        Blocks:文件所占块数量

        IO Block:系统IO块大小

        Device:文件所在设备ID

        INode:节点号

        Links:链向此文件的文件数量

        Access:文件类型及其权限

        Uid:文件的属主及其ID

        Gid:文件的属组及其ID

        Access:文件最近的访问时间

        Modify:文件最近的修改时间

        Change:文件最近的改变时间

    

    3、使用touch命令修改文件的时间戳:

        touch [OPTION]… FILE…

                -a: only atime

                -m: only mtime

                -t STAMP:

                     [[CC]YY]MMDDhhmm[.ss]

        例如改变/tmp/cptest1文件的访问时间戳

[root@localhost tmp]# touch -at201501010101.12 cptest1
[root@localhost tmp]# stat cptest1
  File: ‘cptest1’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 457901      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2015-01-01 01:01:12.000000000 +0800
Modify: 2016-06-17 13:22:40.968447858 +0800
Change: 2016-06-17 14:02:31.978423918 +0800

    

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

[root@localhost ~]# alias test1="cd /etc/sysconfig/network-scripts"
[root@localhost ~]# test=$(cut -d: -f1 /etc/passwd)
[root@localhost ~]# echo $testroot bin daemon adm lp sync shutdown halt 
mail uucp operator games gopher ftp nobody dbus usbmuxd vcsa rpc rtkit avahi-autoipd 
abrt rpcuser nfsnobody haldaemon gdm ntp apache saslauth postfix pulse sshd tcpdump

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

[root@localhost ~]# ls /var | grep "^l.*[0-9]\+.*[a-z]$"

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

[root@localhost etc]# ls /etc | grep "^[0-9].*[^[:digit:]]$"

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

[root@localhost etc]# ls /etc | grep "^[^[:alpha:]][[:alpha:]],*"

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

[root@localhost tmp]# touch /tmp/tfile-$(date +%F-%H-%M-%S)

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

[root@localhost ~]# find /etc -maxdepth 1 -name 'p*' -exec cp -r {} /tmp/mytest1/ \;

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

[root@localhost ~]# find /etc -maxdepth 1 -name '*.d' -exec cp -r {} /tmp/mytest2/ \;

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

[root@localhost ~]# find /etc -maxdepth 1 -name '[lmn]*.conf' -exec cp -r {} /tmp/mytest3/ \;

 

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

(0)
mouse015110mouse015110
上一篇 2016-06-23
下一篇 2016-06-23

相关推荐

  • 从Linux小白到大牛——与狼共舞的日子7

    马哥教育网络班21期+第7周课程练习 1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [root@localhost ~]#&nbsp…

    Linux干货 2016-11-14
  • N25期—第一周作业

    1、描述计算机的组成及其功能 计算机五大组成部件:运算器、控制器、存储器、输入设备和输出设备。 运算器和控制器统称中央处理器(CPU)。  存储器分成内存储器和外存储器两大类。  外存储器、输入设备和输出设备统称为外部设备。  中央处理器(CPU)  计算机的中央处理器又称为CPU,它是计算机的核心部分。主要由运算器和…

    Linux干货 2016-12-04
  • 用户、组、权限管理练习

    用户、组管理练习 一、创建的内容:        1、组Rockets,Knicks,Cavaliers,他们的GID分别是501,540,530。    2、用户James(theBeard),Chris(CP3),Lebron(King),Carmelo(Melo),他们的uid分别是…

    Linux干货 2017-09-03
  • N25-Bazinga-第三周作业

    N25-Bazinga-第三周作业 1.列出当前系统上登录的所有用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# w | cut -d' ' -f1 | uniq -c |&nbs…

    Linux干货 2016-12-21
  • sed与vim

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

    Linux干货 2016-08-15
  • Linux系统程序包管理之RPM

    rpm包概述 RPM 是 Red at Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理工具;在Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用。 RPM包里面都包含什么?里面包含可执行的二进制程序,…

    Linux干货 2016-08-24

评论列表(1条)

  • 马哥教育
    马哥教育 2016-06-23 13:57

    写的很棒,排版也很好,最后几个题有过测试吗?