第二周作业:
题1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
Linux上常见的文件管理类命令有mkdir、touch、cp、mv、rm、stat。
mkdir:创建新目录
用法:mkdir /PATH/TO/NEW_DIR
示例:~]# mkdir -p -m 777 /tmp/a/test
touch:创建文件及修改时间戳
用法:touch /PATH/TO/NEW_FILE
示例:~]# touch /tmp/a/test/new_file
修改时间戳的选项:
-a:修改access time
-m:修改modify time
cp:拷贝文件
用法:cp /PATH/TO/OLD_FILE PATH/TO/NEWFILE
示例:~]# cp /tmp/a/test/new_file /tmp/a/test/new_file2
需要注意:
拷贝目录时,加-r表递归复制
在测试时发现,由于cp是cp -i的别名,所以覆盖时会有询问,在脚本中实施即使加-f在覆盖多个文件时也会有询问,因此一般用\cp来使用,表不用cp -i别名
mv:移动或重命名文件
示例:~]# cp /tmp/a/test/new_file /tmp/a/test/new_file2
rm:删除文件或目录
示例:rm -rf /
需要注意:删除操作非常危险,因此应该自己在系统上使用一个路径模拟回收站,把需要删除的文件先mv到模拟回收站上
stat:查看文件状态属性
示例:~]# stat /etc/crontab
题2:bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示
1、命令执行状态返回值
返回值用于判定命令执行正确与否
示例:
~]# cd /etc/ssssss > /dev/null
~]# echo $?
结果:1
2、命令行展开
以bash能够解释的符号来代替命令中的一些重复字段
示例:
~]# cd ~
~]# touch /tmp/a/test/{w,t}
题3:使用命令行展开完成以下练习
(1)创建/tmp目录下的:a_c,a_d,b_c,b_d
~]# touch /tmp/a_{c,d} /tmp/b_{c,d}
(2)创建/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}}
验证:
[root@www ~]# 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
题4:文件的元数据信息有哪些,分别表示什么含义,如何查看,如何修改文件的时间戳信息。
[root@localhost ~]# stat test
File: `test'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d Inode: 2097162 Links: 1
Access: (0644/-rw-r–r–) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-12-07 08:52:40.587661871 -0500
Modify: 2016-12-07 08:52:40.587661871 -0500
Change: 2016-12-07 08:52:40.587661871 -0500
输出结果释义:
File:文件名
Size:文件大小
Block:占据多少磁盘块
IO Block:一个磁盘块大小为4096k
regular empty file:常规的空文件
Device:文件所在设备主编号和次编号
Inode:inode编号
Linux:文件被硬链接的次数,1表示没有硬链接
第一个Access:权限,属主uid及名字,属组gid及名字
第二个Access:文件最后一次被访问的时间
Modify:文件的数据最后一次被修改的时间
Change:文件的元数据最后一次变化的时间
修改文件的时间戳:touch
~]# touch -m -t 201312011002.15 test
~]# touch -c -t 201102010802 test
题5:如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果
定义别名:
1、临时
~]# alias clear=cln
2、永久
定义在~/.bashrc或者/etc/bashrc
命令中引用另一个命令的执行结果:
例:~]# echo -e "look here\n $(who)"
使用反引号“、$()
题6:显示/var目录下所有以l开头的,以一个小写字母结尾,且中间至少出现一位数字(可以有其他字符)的文件或目录
~]# find /var/ -name "l[0-9]*[a-z]"
题7:显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录
~]# find /etc/ -name "[0-9]*[^0-9]"
题8:显示/etc目录下,以非字母开头,后边跟了一个字母以及其他任意长度任意字符的文件或目录
~]# find /etc/ -name "[^[:alpha:]][[:alpha:]]*"
题9:在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名如tfile-2016-05-26-08-32-22
~]# touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`
题10:复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中
~]# cp -r /etc/p*[^[:digit:]] /tmp/mytest1
题11:复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中
~]# cp -r /etc/*.d /tmp/mytest2
题12:复制/etc目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中
~]# cp -r /etc/[lmn]*.conf /tmp/mytest3
原创文章,作者:N25_水煮鱼,如若转载,请注明出处:http://www.178linux.com/62991
评论列表(1条)
赞~~总结的很仔细~如果能使用markdown来格式化输出会更好~加油~