# 第二周作业
##1.文件管理类命令
###cp 复制
* 单元复制
如果目标文件不存在,会自动创建
如果已经存在,会覆盖
* 多源复制
目标必须是目录,分别复制每个文件至目标目录中,并保持原名
> -i: 交互提醒
> -f: 强制覆盖,不交互
> -r: 递归复制目录
> -d: 如果复制的是符号链接,不找源文件,仅复制链接本身,cp默认是会复制符号链接的源文件到目标文件的
> -a: 用于实现付归档
> –preserv=
> mode 权限
> ownership 属主和属组
> timestamps 时间戳
> context 安全标签
> xattr 扩展属性
> links 符号链接
> all 上述所有属性
###mv 移动
> -i 交互式
> -f 强制,不交互
###rm 删除
> -i 交互式
> -f 强制 force
> -r 递归 recursive
**所有不用的文件建议不要直接删除,而是移动到某个专用目录。**
##2.bash执行状态和命令行
###命令行展开
~: 自动展开为用户的家目录,或指定的用户的家目录
{}: 可承载一个以逗号分割的路径列表,并能够将其展开为多个路径
/tmp/{a,b} 相当于/tmp/a,/tmp/b
[root@cloud test]# mkdir -pv /root/test/x/{y1/{a,b},y2}
mkdir: created directory ‘/root/test/x’
mkdir: created directory ‘/root/test/x/y1’
mkdir: created directory ‘/root/test/x/y1/a’
mkdir: created directory ‘/root/test/x/y1/b’
mkdir: created directory ‘/root/test/x/y2’
[root@cloud test]# mkdir -v {a,b}_{c,d}
mkdir: created directory ‘a_c’
mkdir: created directory ‘a_d’
mkdir: created directory ‘b_c’
mkdir: created directory ‘b_d’
###命令的执行状态结果
bash通过状态返回值来输出此结果:
成功:0
失败:1-255
命令执行完成之后,其状态返回值保存于bash的特殊变量$?中
[root@cloud test]# ls
123.gz a_c a_d b_c b_d file1 file1.gz file2 x
[root@cloud test]# echo $?
0
命令正常执行时,有的还会有命名返回值
这个返回值会保存于bash的变量中 $(COMMAND)或\`COMMAND\`
##3.完成练习
– 创建/tmp目录下的:a_c,a_d,b_c,b_d
mkdir /tmp/{a,b}_{c,d}
– 创建/tmp/mylinux目录下
mkdir -pv /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}}
##4.文件的元数据
###stat能看到文件的元数据
[root@cloud test]# stat file1
File: ‘file1’
Size: 21 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 68666229 Links: 1
Access: (0644/-rw-r–r–) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-12-06 23:18:37.841655271 +0800
Modify: 2016-12-06 23:18:35.767655289 +0800
Change: 2016-12-06 23:18:35.767655289 +0800
Birth: –
Access: 2016-12-06 23:18:37.841655271 +0800 最近访问
Modify: 2016-12-06 23:18:35.767655289 +0800 最近更改,数据
Change: 2016-12-06 23:18:35.767655289 +0800 最近改动,元数据
###touch 创建文件,更改时间戳
> -c 指定的文件路径不存在时不予创建
> -a 仅修改access time;
> -m 仅修改modify time;
> -t 指定修改时间戳
##5.别名,引用结果
alias 定义别名
alias cdnd='cd /var/named/chroot/var/named/'
用管道连接程序,实现将前一个命令的输出直接定向给后一个程序当作输入数据流
[root@cloud test]# cat /etc/issue |tr 'a-z' 'A-Z'
\S
KERNEL \R ON AN \M
##6.显示/var目录下,所有以1开头,以一个小写字母结尾,且中间至少出现一位数字的文件或目录
ls -d /var/1*[0-9]*[a-z]
##7.显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录
ls -d /etc/[0-9]*[^0-9]
##8.显示/etc目录下,以非字母开头,后面跟了一个字母以及其他任意长度任意字符的文件或目录
ls -d /etc/[^a-z][a-z]*
##9.在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,
touch /tmp/tfile-$(date +'%F-%H-%M-%S')
##10.复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1中
[root@WH-DNS-00 named]# mkdir /tmp/mytest1
[root@WH-DNS-00 named]# cp -r /etc/p*[^0-9] /tmp/mytest1/
##11.复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中
[root@cloud ~]# mkdir /tmp/mytest2
[root@cloud ~]# cp -r /etc/*.d /tmp/mytest2/
##12.复制/etc目录下所有以1或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中
[root@cloud ~]# mkdir /tmp/mytest3
[root@cloud ~]# cp -r /etc/[1mn]*.conf /tmp/mytest3
原创文章,作者:lanpang,如若转载,请注明出处:http://www.178linux.com/63072
评论列表(1条)
赞,能注意下排版会更好~