第二周博客作业

1.linux上的文件管理类命令都用哪些,其常用的使用方法及其相关示例演示。

常用命令有:cp, mv, rm

复制命令:cp

cp [OPTION]… [-T] SOURCE DEST

                cp [OPTION]… SOURCE… DIRECTORY

                cp [OPTION]… -t DIRECTORY SOURCE…

                cp SRC DEST

        SRC是文件:

        如果目标不存在:新建DEST,并将SRC中内容填充至DEST中;

                         [root@ocp etc]# more nano1

                         nano1: No such file or directory

                         [root@ocp etc]# cp issue nano1

                         [root@ocp etc]# more issue

                         Red Hat Enterprise Linux Server release 5.4 (Tikanga)

                         Kernel \r on an \m

        如果目标存在:

        如果DEST是文件:将SRC中的内容覆盖至DEST中;此时建议为cp命令使用-i选项;

                                 [root@ocp etc]# cp -i issue nano1

                                 cp: overwrite `nano1'? y

                                 [root@ocp etc]# 

       

        如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中;

                                 将etc目录下的issue文件复制到etc/ntp目录下:

                                 [root@ocp etc]# cp -i issue ntp/issue

                                 [root@ocp etc]# more ntp/issue

                                 Red Hat Enterprise Linux Server release 5.4 (Tikanga)

                                 Kernel \r on an \m

        cp SRC… DEST

        SRC…:多个文件

        DEST必须存在,且为目录,其它情形均会出错;

                        将etc下的文件passwd和issue复制到/tmp目录下    

                        [root@ocp etc]# cp -i passwd issue /tmp

                        [root@ocp etc]# ls /tmp

                        issue  keyring-WqJMI0  mapping-oracle  mapping-root  passwd  vmware-root

                        复制etc下的文件passwd和issue,目标为tmp目录下的issue文件:

                        [root@ocp etc]# cp -i passwd issue /tmp/issue

                        cp: target `/tmp/issue' is not a directory

                        [root@ocp etc]# 

                        

        cp SRC DEST

        SRC是目录:

        此时使用选项:-r

                        常用选项:

        -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

        如果DEST不存在:则创建指定目录,复制SRC目录中所有文件至DEST中;

        如果DEST存在:

       

如果DEST是目录:

[root@ocp etc]# ls ntp

issue  keys  nano1  ntpservers  step-tickers

[root@ocp etc]# ls yum

pluginconf.d  yum-updatesd.conf

[root@ocp etc]# cp -i -r ntp yum

[root@ocp etc]# ls yum

ntp  pluginconf.d  yum-updatesd.conf

[root@ocp etc]# ls yum/ntp

issue  keys  nano1  ntpservers  step-tickers

[root@ocp etc]# 

如果DEST是文件:报错

[root@ocp etc]# cp -i -r ntp yum/yum-updatesd.conf 

cp: cannot overwrite non-directory `yum/yum-updatesd.conf' with directory `ntp'

[root@ocp etc]# 

        

    mv: move,移动文件

       mv [OPTION]… [-T] SOURCE DEST

       mv [OPTION]… SOURCE… DIRECTORY

       mv [OPTION]… -t DIRECTORY SOURCE…

       

       常用选项:

        -i: 交互式

[root@ocp etc]# mv -i issue ntp/issue

mv: overwrite `ntp/issue'? y

        -f: 强制

[root@ocp etc]# mv -f ntp/issue issue

[root@ocp etc]# more issue

Red Hat Enterprise Linux Server release 5.4 (Tikanga)

Kernel \r on an \m

[root@ocp etc]# 

    rm: remove,删除

    rm [OPTION]… FILE…

    常用选项:

    -i: 交互式

交互式删除/tmp下的passwd文件,并选择不删除

[root@ocp etc]# rm -i /tmp/passwd 

rm: remove regular file `/tmp/passwd'? n  

[root@ocp etc]# ls /tmp

issue  keyring-WqJMI0  mapping-oracle  mapping-root  passwd  vmware-root

    -f: 强制删除

    -r: 递归

    rm -rf 

[root@ocp etc]# rm -rf /tmp/passwd 

[root@ocp etc]# ls /tmp

issue  keyring-WqJMI0  mapping-oracle  mapping-root  vmware-root

[root@ocp etc]# 

   

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

                                命令的状态结果

成功:0

失败:1-255

[root@ocp etc]# rm -rf /tmp/passwd

[root@ocp etc]# echo $?

0

[root@ocp etc]# more /tmp/passwd

/tmp/passwd: No such file or directory

[root@ocp etc]# echo $?

0

[root@ocp etc]# moore /tmp/passwd

-bash: moore: command not found

[root@ocp etc]# echo $?

127

[root@ocp etc]# 

命令行展开:

                ~: 展开为用户的主目录

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

[root@ocp ~]# cd ~

[root@ocp ~]# cd ~oracle

[root@ocp oracle]# ls

backup  Desktop

[root@ocp oracle]# pwd

/home/oracle

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

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

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

示例演示:

创建x-a,y_a,x_b,y_b:

mkdir {x,y}_{a,b}

[root@ocp oracle]# cd /tmp

[root@ocp tmp]# mkdir {x,y}_{a,b}

[root@ocp tmp]# ls

issue  keyring-WqJMI0  mapping-oracle  mapping-root  vmware-root  x_a  x_b  y_a  y_b

[root@ocp tmp]# 

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

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

[root@ocp tmp]# mkdir {a,b}_{c,d}

[root@ocp tmp]# ls

a_c  a_d  b_c  b_d  issue  keyring-WqJMI0  mapping-oracle  mapping-root  vmware-root  x_a  x_b  y_a  y_b

[root@ocp tmp]# 

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

[root@ocp tmp]# ls

issue  keyring-WqJMI0  mapping-oracle  mapping-root  vmware-root

[root@ocp tmp]# mkdir -p 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,rum}}

[root@ocp tmp]# tree

.

|– issue

|– keyring-WqJMI0

|   `– socket

|– mapping-oracle

|– mapping-root

|– 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

|       `– rum

`– vmware-root

    |– vmware-apploader-2684.log

    `– vmware-apploader-2700.log

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

文件的元数据包含访问权限、文件拥有者以及文件数据块的分布信息等等

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

[root@ocp ~]# stat /etc/issue

  File: `/etc/issue'

  Size: 74              Blocks: 16         IO Block: 4096   regular file

Device: fd00h/64768d    Inode: 11206843    Links: 1

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

Access: 2016-06-19 16:11:01.000000000 +0800

Modify: 2009-08-04 16:25:07.000000000 +0800

Change: 2016-06-19 16:10:56.000000000 +0800

[root@ocp ~]# 

三个时间戳:

access time:访问时间,简写为atime,读取文件内容

modify time: 修改时间, mtime,改变文件内容(数据)

change time: 改变时间, ctime,元数据发生改变

          使用touch命令可以修改文件的时间戳信息

                touch命令:

touch [OPTION]… FILE…

-a: only atime

-m: only mtime

-t STAMP:

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

命令的别名通过alias命令实现,

alias NAME='VALUE'

撤消别名:unalias

unalias [-a] name [name …]

可以使用管道,实现在命令中引用另外一个命令的执行结果

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

[root@ocp ~]# ls /var

account  crash  db     games  lib    local  log   nis  preserve  run    tmp  www

cache    cvs    empty  gdm    lin3b  lock   mail  opt  racoon    spool  tux  yp

[root@ocp ~]# ls -d /var/l*[0-9]*[[:lower:]]

/var/lin3b

[root@ocp ~]# 

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

[root@ocp etc]# ls -d /etc/[0-9]*[^0-9]

/etc/1xy

[root@ocp etc]# 

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

[root@ocp etc]# ls -d /etc/[^[:alpha:]][[:alpha:]]*

/etc/1xy

9、在/tmp目录下创建以tfile开头,后面跟当前日期时间的文件,文件名如tfile-2016-5-27-09-32-22

[root@ocp etc]# touch /tmp/tfile-`date "+%Y-%m-%d-%H-%M-%S"`

[root@ocp etc]# ls /tmp

issue  keyring-WqJMI0  mapping-oracle  mapping-root  mylinux  tfile-2016-06-19-22-28-11  vmware-root

[root@ocp etc]# date

Sun Jun 19 22:28:39 CST 2016

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

[root@ocp etc]# ls /tmp

issue  keyring-WqJMI0  mapping-oracle  mapping-root  mylinux  tfile-2016-06-19-22-28-11  vmware-root

[root@ocp etc]# cp -r /etc/p*[^0-9] /tmp/mytest1

cp: target `/tmp/mytest1' is not a directory

[root@ocp etc]# mkdir /tmp/mytest1

[root@ocp etc]# cp -r /etc/p*[^0-9] /tmp/mytest1

[root@ocp etc]# ls /tmp/mytest1

pam.d         pango   passwd-  php.d    pinforc  pm   prelink.cache  prelink.conf.d  profile    protocols

pam_smb.conf  passwd  pcmcia   php.ini  pki      ppp  prelink.conf   printcap        profile.d

[root@ocp etc]# 

11、复制/etc目录下所有以.d结尾的文件或目录到/tmp/mytest2目录中

[root@ocp etc]# cp -r /etc/*.d /tmp/mytest2

cp: target `/tmp/mytest2' is not a directory

[root@ocp etc]# mkdir /tmp/mytest2

[root@ocp etc]# cp -r /etc/*.d /tmp/mytest2

[root@ocp etc]# ls /tmp/mytest2

cron.d    dnsmasq.d  ld.so.conf.d   makedev.d   pam.d           profile.d  rc2.d  rc5.d  readahead.d    sane.d       yum.repos.d

depmod.d  gre.d      logrotate.d    modprobe.d  php.d           rc0.d      rc3.d  rc6.d  reader.conf.d  setuptool.d

dev.d     init.d     lsb-release.d  netplug.d   prelink.conf.d  rc1.d      rc4.d  rc.d   rwtab.d        xinetd.d

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

[root@ocp etc]# cp -r /etc/[l,m,n]*.conf /tmp/mytest3

cp: target `/tmp/mytest3' is not a directory

[root@ocp etc]# mkdir /tmp/mytest3

[root@ocp etc]# cp -r /etc/[l,m,n]*.conf /tmp/mytest3

[root@ocp etc]# ls /tmp/mytest3

ldap.conf   lftp.conf      libuser.conf    ltrace.conf  modprobe.conf  multipath.conf  nsswitch.conf

ld.so.conf  libaudit.conf  logrotate.conf  mke2fs.conf  mtools.conf    nscd.conf       ntp.conf

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

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

相关推荐

  • Ansible初识

    Ansible概念 ansible是自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。说…

    2017-07-08
  • Linux发展史

    Linux 操作系统是UNIX操作系统的一种克隆系统。它诞生于1991年的10月5日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并经过全世界各地计算机爱好者的共同努力下,现已成为今天世界上使用最多的一种UNIX类操作系统,并且使用人数还在迅猛增长。下文简要介绍了Linux发展史。 1969年,美国贝尔实验室的Ken.Thompson和D…

    Linux干货 2016-10-17
  • httpd服务归纳:浅谈I/O模型

    1. 四种理论的I/O模型      1) 调用者(服务进程):         阻塞:  进程发起I/O调用,如果调用为完成,进程被挂起休眠,不能再执行其他功能    …

    Linux干货 2015-05-27
  • vim

    VIM常用操作命令 模式转换 1、ESC键:编辑模式 --> 一般模式;2、从一般模式 --> 编辑模式 i:在光标所在处的前方转换为编辑模式 a:在光标所在处的后方转换为编辑模式 o:在光标所在行的下方新建一个空行并转换为编辑模式 I:在光标所在行的行首输入 A:在光标所在行的行尾输入 O:在光标所在行的上方新建一个空白行 3、一般模式 --> 末行模式:…

    Linux干货 2017-04-06
  • bash编程函数select语句的使用

    £select             select循环主要用于创建菜单,按数字顺序排列的菜单项将显示在标准错误上,并显示PS3提示符,等待用户的输入,用户输入菜单列表中的某个数字,执行相应的命令,用户输入被保存在变量REPLY中。 select是个…

    Linux干货 2016-08-24
  • vim编辑器

    一、vim简介    vi: Visual Interface,文本编辑器     文本: ASCII, Unicode     文本编辑种类:         行编辑器: sed…

    Linux干货 2016-08-10

评论列表(1条)

  • 马哥教育
    马哥教育 2016-06-23 14:11

    写的很棒,可以关注一些排版的技巧,那样会更完美