N22-第二周作业

1、文件管理类命令有:cp,mv,rm
    cp:复制命令
      用法:cp [OPTION]… SOURCE… DEST
        如果DEST不存在,则先创建此文件并复制源文件的数据流到DEST中
    ]# mkdir test
    tmp]# cd test/
    test]# cp /etc/fstab ./temp
    ]# ls
    temp
    如果DEST存在且是非目录文件,则覆盖目标文件
    ]# cp /etc/fstab ./
    cp:是否覆盖"./fstab"? y
    如果DEST存在且是目录文件,则先在DEST创建一个与源文件同名的文件,并复制其数据流
    ]# cp /etc/fstab ./
    ]# ls
    fstab
     常用选项:
    -i:覆盖文件前提醒用户确认  默认覆盖前需要用户确认
    -f:强制覆盖目标文件
    -r:复制目录并复制目录中的文件到目标   cp不加-r默认不能复制目录    
    ]# cp /dev/mapper ./
    cp: 略过目录"/dev/mapper"
    test]# cp -r /dev/mapper ./
    test]# ll
    总用量 8
    -rw-r–r–. 1 root root  632 8月  28 13:42 fstab
    drwxr-xr-x. 2 root root 4096 8月  28 13:49 mapper

    mv:移动命令
       mv  [OPTION]…  SOURCE DEST
    如果源文件和目标文件在同一目录下,则mv命令的作用是重命名文件
    mv命令等于是cp命令后加上删除源文件的操作。
    mv命令可以不加选项直接移动文件夹
    ]# mv mapper mymapper
    test]# ls
     fstab  mymapper
    
    rm:删除命令
    rm [OPTION]… FILE…
    常用选项:
    -r:递归删除目录及其目录下的文件
    -i   删除前提醒用户,root用户默认启用该选项
    -f   直接强制删除
    注意:生产环境所有不用的文件建议不要直接删除而是移动到某个专用的目录(模拟回收站)
    ]# rm -rf fstab mymapper/
    test]# ll
      总用量 0

2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
    bash通过状态返回码来输出命令执行的状态结果  区分状态返回值和命令自身的返回值
                    成功:0  失败:1~255
                 显示特殊变量 echo $? 来得到状态返回码
        ]# df -lh
         ….
        ]# echo $?
        0
        ]# fdisk -l /dev/sdd
          fdisk: 打不开 /dev/sdd: 没有那个文件或目录
        test]# echo $?
            1
   bash命令行展开:  
                     ~:自动展开为用户的家目录,或一个指定用户的家目录
                    {}:可承载一个以逗号分隔的路径列表,并自动将其展开为多个路径

            ]# pwd
            /tmp/test
            test]# cd ~
            ~]# pwd
            /root
            ~]# cd /tmp/test/
            test]# mkdir a{b,c}1{d,e,f}
            test]# ls
            ab1d  ab1e  ab1f  ac1d  ac1e  ac1f

3、请使用命令行展开功能来完成以下练习:
   (1)、创建/tmp目录下的:a_c, a_d, b_c, b_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 -pv {a_,b_}{c,d}
mkdir: 已创建目录 "a_c"
mkdir: 已创建目录 "a_d"
mkdir: 已创建目录 "b_c"
mkdir: 已创建目录 "b_d"

]# mkdir -pv {bin,dev,lib64,proc,sbin,sys,tmp,boot/grub,etc/{rc.d/init.d,sysconfig/network-scripts},lib/mod
ules,usr/local/{bin,sbin},var/{lock,log,run}}mkdir: 已创建目录 "bin"
mkdir: 已创建目录 "dev"
mkdir: 已创建目录 "lib64"
mkdir: 已创建目录 "proc"
mkdir: 已创建目录 "sbin"
mkdir: 已创建目录 "sys"
mkdir: 已创建目录 "tmp"
mkdir: 已创建目录 "boot"
mkdir: 已创建目录 "boot/grub"
mkdir: 已创建目录 "etc"
mkdir: 已创建目录 "etc/rc.d"
mkdir: 已创建目录 "etc/rc.d/init.d,lib"
mkdir: 已创建目录 "etc/rc.d/init.d,lib/modules"
mkdir: 已创建目录 "etc/sysconfig"
mkdir: 已创建目录 "etc/sysconfig/network-scripts,lib"
mkdir: 已创建目录 "etc/sysconfig/network-scripts,lib/modules"
mkdir: 已创建目录 "usr"
mkdir: 已创建目录 "usr/local"
mkdir: 已创建目录 "usr/local/bin"
mkdir: 已创建目录 "usr/local/sbin"
mkdir: 已创建目录 "var"
mkdir: 已创建目录 "var/lock"
mkdir: 已创建目录 "var/log"
mkdir: 已创建目录 "var/run"

4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
 文件包含两类数据:
  元数据:metadata 描述属性的数据       可用stat file 看到
  数据:data    文件本身的数据              可用cat file看到
    test]# touch temp.txt
    test]# cat temp.txt
    test]# stat temp.txt
    文件:"temp.txt"
    大小:0             块:0          IO 块:4096   普通空文件
    设备:fd00h/64768d    Inode:67374345    硬链接:1
    权限:(0644/-rw-r–r–)  Uid:(    0/    root)   Gid:(    0/    root)
    环境:unconfined_u:object_r:user_tmp_t:s0
      时间戳信息:
    最近访问:2016-08-28 14:25:56.679054155 +0800
    最近更改:2016-08-28 14:25:51.339029587 +0800
    最近改动:2016-08-28 14:25:51.339029587 +0800
    创建时间:-
     可以用touch命令来修改时间戳信息
    t]# touch -a temp.txt
        test]# touch -m temp.txt
最近访问:2016-08-28 14:28:48.842846226 +0800
最近更改:2016-08-28 14:28:57.903887914 +0800
最近改动:2016-08-28 14:28:57.903887914 +0800

5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
    bash shell有两类配置文件。profile类和bashrc类。其中,可以在/etc/bashrc下定义对
    所有用户都生效的命令别名或者在~/.bashrc定义某个用户专属的命令别名。
    ]# vim + /etc/bashrc   例如定义对所有用户都生效的cls=clear清屏命令
    93 alias cls='clear'
***注意,在配置文件中定义的命令别名或做的其他设置,将在之后启动的bash shell中永远生效
    引用命令的执行结果
           1,$(COMMAND) 2,`COMMAND`
   ]# mkdir `date +%y%m%d`
   ]# ls
    160828
   ]# touch $(ls /var/log/m*log | cut -d/ -f4)backup
   test]# ls
     160828  maillogbackup

6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
~]# ls -d /var/l*[0-9]*[[:lower:]]
ls: 无法访问/var/l*[0-9]*[[:lower:]]: 没有那个文件或目录

7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
]# ls -d /etc/[0-9]*[^0-9]
ls: 无法访问/etc/[0-9]*[^0-9]: 没有那个文件或目录

8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
]# ls -d /etc/[^[:alpha]][0-9]*
ls: 无法访问/etc/[^[:alpha]][0-9]*: 没有那个文件或目录

9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
~]# touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`
~]# ls /tmp
tfile-2016-08-28-17-44-47

10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
]# cp -r /etc/p*[^0-9] /tmp/mytest1/
]# ls /tmp/mytest1/
pam.d   passwd-       pinforc  plymouth  pnm2ppa.conf  postfix  prelink.conf.d  profile    protocols  purple
passwd  pbm2ppa.conf  pki      pm        popt.d        ppp      printcap        profile.d  pulse      python

11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
]# cp -r /etc/*.d /tmp/mytest2
 tmp]# ls /tmp/mytest2
auto.master.d      depmod.d       init.d        modules-load.d  profile.d  rc5.d          sane.d       usb_modeswitch.d
bash_completion.d  dnsmasq.d      ipsec.d       my.cnf.d        rc0.d      rc6.d          setuptool.d  xinetd.d
binfmt.d           dracut.conf.d  ld.so.conf.d  oddjobd.conf.d  rc1.d      rc.d           statetab.d   yum.repos.d
cgconfig.d         exports.d      libibverbs.d  pam.d           rc2.d      request-key.d  sudoers.d
chkconfig.d        gdbinit.d      logrotate.d   popt.d          rc3.d      rsyslog.d      sysctl.d
cron.d             grub.d         modprobe.d    prelink.conf.d  rc4.d      rwtab.d        tmpfiles.d

12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
]# cp -r /etc/[l,m,n]*.conf /tmp/mytest3
 tmp]# ls /tmp/mytest3
ld.so.conf     libuser.conf  logrotate.conf  mke2fs.conf  nfsmount.conf  ntp.conf
libaudit.conf  locale.conf   man_db.conf     mtools.conf  nsswitch.conf  numad.conf

原创文章,作者:上海-brown,如若转载,请注明出处:http://www.178linux.com/41374

(0)
上海-brown上海-brown
上一篇 2016-08-29
下一篇 2016-08-29

相关推荐

  • 自制Linux系统

    自制Linux系统 1.首选准备一台Linux虚拟机并添加一块新硬盘 2.分区并创建文件系统,创建两个必要的分区根分区和boot分区 fdisk /dev/sdb  分区 mke2fs -t ext4 /dev/sdb1    创建boot文件系统 mke2f…

    Linux干货 2016-09-16
  • 配置LAMP (php-fpm模式)部署步骤

    配置LAMP (php-fpm模式)部署步骤 1.安装mariadb yum install maridb-server -y 1).配置server.cnf cp /etc/my.cnf.d/server.cnf{,.back} vim /etc/my.cnf.d/server.cnf ##mariadb服务器端配置文件 [mysqld] ##以下项是优化…

    Linux干货 2017-06-02
  • 文本处理工具及grep

    在日常的linux运维工作当中,我们经常要在一些文本当中抽取过滤出我们所需要的信息,从而达到我们的需求,需要特定的文本处理工具来帮我们完成此类操作 本章节主要讲解的内容有: 文件查看:cat 分页查看文本:less、more 抽取文件特定行数:head、tail 抽取文本特定列:cut 合并文本:paste 文本统计:wc 文本排序并统计:sort、uniq…

    Linux干货 2016-08-08
  • 马哥教育网络班20期+第3周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# who | cut -d" " -f1 | sort -u 2、取出最后登录到当前系统的用户的相关信息。 […

    Linux干货 2016-06-26
  • DNS and BIND 初步

    DNS and bind 初步 前言 TCP/IP协议通信是针对于ip地址的,你说我要是去淘宝买东西,怎么可能记住ip地址,我要是去百度买东西,也记不住啊,所以针对于此,就出现了这样一个翻译器,起一个名字,跟ip地址对应。是多对一还是一对多呢,都可以,我几个ip指向一个网址也没问题,几个网址指向一个ip也可以。 对于反向域名解析功能等以后用到再做总结,反向域…

    Linux干货 2016-12-06
  • sed行编辑器

    Linux文本处理三剑客之一:sed(Stream Editor)流编辑器 sed:     将指定的文本文件内容逐行读取至sed的临时内存空间当中,称为"模式空间",而后逐行查看是否被sed的地址定界所匹配到,如果匹配,则执行相应的编辑操作,否则,默认将模式空间中的内容打印至标准输出  …

    Linux干货 2016-08-15

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-30 12:45

    希望同学注意一下作业格式,这样无论别人阅读及批改都很方便