注意:第二周作业,请将以下题目整理在51cto博客当中,完成后请将对应的博文链接地址提交在答案栏中,提交格式如下:
学号+姓名+博文链接地址
eg:1+张三+http://mageedu.blog.51cto.com/4265610/1794420

本周作业内容:
1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

文件管理的命令有cp、mv、rm

        复制命令:cp

        用法:

         cp [-adfilprsu] 来源文件(source) 目标文件(destination

         cp [options] source1 source2 source3 .... directory

选项与参数:

-a :相当于 -dr --preserve=all 的意思,保持软连接,递归,保持文件原有属性;(常用)

-d :若来源文件为链接文件的属性(link file),则复制链接文件属性而非文件本身;

-f :为强制(force)的意思,若目标文件已经存在且无法打开,则移除后再尝试一次;

-i :若目标文件(destination)已经存在时,在覆盖时会先询问动作的进行(常用)(也称作交互式)

-l :进行硬式链接(hard link)的链接文件创建,而非复制文件本身;

-p :连同文件的属性(权限、用户、时间)一起复制过去,而非使用默认属性(备份常用);

-r :递回持续复制,用于目录的复制行为;(常用)

-s :复制成为符号链接文件 (symbolic link),亦即“捷径”文件;

-u :destination 比 source 旧才更新 destination,或 destination 不存在的情况下才复制。

--preserve=all :除了 -p 的权限相关参数外,还加入 SELinux 的属性, links, xattr 等也复制了。

mv

       mv命令不但可以移动文件或者目录,而且还可以更名

       使用方法: mv [-fiu] source destination

                mv [options] source1 source2 source3 .... directory

选项与参数:

-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;

-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

-u :若目标文件已经存在,且 source 比较新,才会更新 (update)  

rm [-fir] 文件或目录

    选项与参数:

-f :就是 force 的意思,忽略不存在的文件,不会出现警告讯息;

-i :互动模式,在删除前会询问使用者是否动作

-r :递回删除啊!最常用在目录的删除了!这是非常危险的选项!!!


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

bash的基础特性:


  命令的执行结果状态

  成功

  失败


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

   0:成功

   1-255:失败


  程序执行有两类结果:

   程序的返回值;

   程序的执行状态结果;



3、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d

mkdir {a,b}/{c,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 -p /tmp/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}

# tree mylinux/

mylinux/

├── bin

├── boot

│   └── grub

├── dev

├── etcrc.d

│   └── init.d

├── etcsysconfig

│   └── network-scripts

├── lib

│   └── modules

├── lib64

├── lock

├── log

├── proc

├── run

├── sbin

├── sys

├── tmp

├── usr

│   └── local

│       ├── bin

│       └── sbin

└── var



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

使用stat命令查看元数据信息

touch命令用来修改文件的时间戳信息

    -a:仅修改最近访问时间




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

别名用命令alias

默认情况下alias设置的命令别名只对当前shell有效


命令引用:

    name='COMMAND', name=$(COMMAND)




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

ls -d /var/l*[0-9]*[[:lower:]]


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

[0-9]*[^0-9]


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

ls /etc/[^a-z][a-z]*


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

touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`


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

cp /etc/p*[^0-9] /tmp/mytest1/


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

cp /etc/*.d /tmp/mytest2/ 


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

cp /etc/{l,m,n}*.conf /tmp/mytest3/