第二周博客作业

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

相关推荐

  • 管道,用户组管理

    管道 |          把左边的命令执行结果输送到右边的命令作为参数执行,可以多管道多任务执行     这就是linux的哲学思想之一,链接程序,共同完成复杂任务     错误输出默认不能通过管道…

    Linux干货 2016-08-04
  • 何为正则表达式?

    何为正则表达式?   UNIX/Linux上有许多文本处理工具,其中最主要最重要要属grep、sed、和awk三种了,被称为文本处理三剑客。但是要完全认识他们的各种功能,则必须现在正则表达式及其元字符的使用上打好基础。 什么是正则表达式呢?正则表达式(regular expression,RE)是一种字符模式,用于在查找过程中匹配指定的字符。正则表…

    Linux干货 2016-08-16
  • Linux磁盘管理进阶

    Linux磁盘管理进阶 dd命令 SWAP与移动介质 磁盘配额 RAID dd命令 dd – convert and copy a file Copy a file, converting and formatting according&…

    Linux干货 2016-09-05
  • Linux文件管理类命令相关

    Linux文件管理类命令相关 1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 1)、查看文件命令: (1)ls命令: list,列出目录下的内容 语法: ls [OPTION]… [FILE]… 常用选项: -a: 显示所有文件,包括隐藏文件; -A:显示除.和..之外的所有文件; -l: –…

    Linux干货 2016-09-24
  • 4th work

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限。 [root@localhost etc]# cp -r /etc/skel/ /home/tuser1 [root@localhost etc]# chmod go-rwx /home/tuser1/ 2、编辑/etc/gr…

    Linux干货 2017-10-09
  • Linux进程管理三剑客htop、ps、dstat

    ps命令 Unix有两种主要分支:官方的Unix(AT&T)和非官方的Unix(加利福利亚大学伯克利分校)。UNIX("带-")和BSD(不带东西)都有自己的ps版本,并且ps版本都很出名,并被广泛使用。最终结果是许多现代版本的ps都同时支持两种类型的选项,即所谓的Unix选项和BSD选项。而且还有一组选项支持GUN的选项. 所以…

    Linux干货 2016-11-22

评论列表(1条)

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

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