课后作业
1.Linux上的文件管理类命令都有哪些,其常用的使用方法及相关示例演示。
cp:复制命令
三种常用方式:
cp[OPTION]...[-T] SOURCE DEST cp[OPTION]...SOURCE...DIRECTORY cp[OPTION]...-t DIRECTORY SOURCE
如果SRC是文件,
(1)如果DEST不存在:新建DEST,并将SRC中的内容填充至DEST中;
(2)如果DEST存在:
若DEST是文件:将SRC中的内容覆盖至DEST中;(可以使用-i来提醒用户是否覆盖)
若DEST是目录:在DEST下新建与源文件同名的文件,并将SRC中的内容填充至新文件中。
常用选项:
–i:交互式
在centos6.0版本后,原本的cp命令已经自带cp -i,所以当出现复制的源文件会覆盖掉已有目标文件时,就会出现交互命令。
[root@centPlinux ~]# alias cp alias cp='cp -i' [root@centPlinux ~]# cp /etc/rpc /tmp/111 cp:是否覆盖"/tmp/111"?
–r、R:递归复制目录及内部的所有内容
做一个对比:
[root@centPlinux ~]# cp -r /etc/yum /tmp/222 [root@centPlinux ~]# ls /tmp/222 pluginconf.d protected.d vars version-groups.conf
[root@centPlinux ~]# cp /etc/yum /tmp/222 cp: 略过目录"/etc/yum" [root@centPlinux ~]# ls /tmp/222 ls: 无法访问/tmp/222: 没有那个文件或目录
–a:归档,相当于-dR –preserve=all
–d:不跟踪符号链接所指向的源文件,只复制符号链接本身 –no-dereference –preserve=links
仍然做个对比:
[root@centPlinux tmp]# cp /etc/system-release /tmp [root@centPlinux tmp]# ls /tmp mylinux system-release yum.log [root@centPlinux tmp]# cat /tmp/system-release CentOS release 6.5 (Final)
[root@centPlinux tmp]# cp -d /etc/system-release /tmp [root@centPlinux tmp]# ls /tmp mylinux system-release yum.log [root@centPlinux tmp]# cat /tmp/system-release cat: /tmp/system-release: 没有那个文件或目录
—preserve = mode:权限
ownership:属主属组
timestamp:时间戳
links:链接
xattr:扩展属性
context:安全标签
all:以上所有属性
–f:强制覆盖
–v:显示过程
mv:移动命令
用法基本等同于cp,常用选项也参考cp
rm:删除命令
格式:rm [OPTION]…FILE…
常用选项:
–i:交互式
–f:强制删除
–r:递归删除
删除目录:rm -rf /PATH/TO/DIR
注意:所有无用文件建议不要直接删除,而是移动到某个指定目录(用来模拟回收站),可设置定期删除指定目录里的无用文件。
touch:该命令是修改文件时间戳的命令,但当touch一个不存在的文件时,则会创造一个文件,所以可以用下面格式创建文件:
touch…FILE…
若不想创建文件,则touch加选项参数-c,即使如果文件不存在,也不创建该文件。
2.bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示
(1)命令执行状态返回值
bash通过状态返回值来输出此结果,成功:0,失败:1-255
命令执行完成后,状态返回值保存于bash的特殊变量$?中
[root@guolin ~]# ls 10:06:44 a_c CST install.log Nov 25 anaconda-ks.cfg $Fri install.log.syslog [root@guolin ~]# echo $? 0 [root@guolin ~]# lss -bash: lss: command not found [root@guolin ~]# echo $? 127
引用命令的执行结果,有以下两种格式实现:
$(COMMAND) 'COMMADN'
[root@guolin ~]# mkdir /tmp/test_$(date +%H-%M-%S) [root@guolin ~]# ls /tmp test_19-45-16 wodediyigewenjian yum.log
(2)命令行展开
~:展开为用户的主目录
~USERNAME:展开为指定用户的主目录
{ }:可承载一个以逗号分隔的列表,并将其展开为多个路径
[root@guolin ~]# mkdir -v /tmp/{a,b} mkdir: 已创建目录 "/tmp/a" mkdir: 已创建目录 "/tmp/b"
3.请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c,a_d,b_c,b_d
结果如下:
[root@centPlinux ~]# mkdir -v /tmp/{a,b}_{c,d} mkdir: 已创建目录 "/tmp/a_c" mkdir: 已创建目录 "/tmp/a_d" mkdir: 已创建目录 "/tmp/b_c" mkdir: 已创建目录 "/tmp/b_d" [root@centPlinux ~]# ls /tmp a_c a_d b_c b_d
(2)、创建/tmp/mylinux目录下的:
结果如下:
[root@centPlinux ~]# 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}} [root@centPlinux ~]# tree /tmp/mylinux /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 24 directories, 0 files
4.文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息
元数据即为文件的属性信息,其中三个时间戳,分别是
access time—atime:访问时间,即通过使用cat,more等读取内容的时间
modify time—mtime:修改时间,即文件内容发生改变的时间
change time—ctime:改变时间,即元数据发生改变的时间
stat:查看文件时间戳
touch:修改时间戳信息
常用参数:
–a:仅修改atime
–m:仅修改mtime
–t:设置时间 CCYYMMDDhhmm,ss
注意:只要修改时间戳,则ctime必定会改变,所以ctime不能指定修改,只能同atime、mtime一起修改成当前时间。故-c并不是修改ctime,而是在前文提到的,在touch到的文件不存在时,不创建该文件
5.如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
alias:定义命令别名 alias NAME='COMMAND'(仅对当前shell进程有效)
引用命令的结果:使用$(COMMAND)或'COMMAND'
6.显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
ls -d /var/l*[[:digit:]]*[[:lower:]]
7.显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
ls -d /etc/[[:digit:]]*[^[:digit:]]
8.显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
ls -d /etc/[^[:alpha:]][[:alpha:]]*
9.在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
[root@centPlinux ~]# touch /tmp/tfile-$(date +%y-%m-%d-%H-%M-%S) [root@centPlinux ~]# ls /tmp a_c a_d b_c b_d mylinux tfile-16-11-24-00-32-01 yum.log
10.复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
mkdir /tmp/mytest1
cp -r /etc/p*[^[:digit:]] /tmp/mytest1/
11.复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
mkdir /tmp/mytest2
cp -r /etc/*.d /tmp/mytest2
12.复制/etc目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
mkdir /tmp/mytest3
cp -r /etc/[lmn]*.conf
原创文章,作者:gl693184974,如若转载,请注明出处:http://www.178linux.com/62836
评论列表(1条)
整体还是不错的,第11、12题有点问题~再注意下整体排版风格会更好~加油~