马哥教育网络班20期+第2周课程练习
练习题:
1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
3、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_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
4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
1)文件查看命令:cat、tac、more、less、head、tail
2)文件类型查看命令:file
3)文件的时间戳管理工具:touch
4)查看文件状态:stat
5)复制命令:cp
6)移动文件
7)删除
1)文件查看命令:cat、tac、more、less、head、tail
(1)cat
cat [OPTION]… [FILE]
-E 显示行结束符$
-n 对显示出的每一行进行编号
(2)tac
相当于cat查看的命令反向排序
(3)more
-d :显示翻页及退出提示
如:
more /etc/rc.d/rc.sysinit
more -d /etc/rc.d/rc.sysinit
按空格键:向后翻屏
b :向前翻屏
q :退出
(4)less
与man里面的相同,因为man是通过less打开的。
(5)head
head [选项] 文件名
-c # : 指定获取前#字节
– # 或-n # :指定获取前#行
(6)tail
tail [选项] 文件
-c # : 指定获取后#字节
– # 或-n # :指定获取后#行
-f :跟踪显示文件新追加的内容 (ctrl+c才能退出)
2)文件内容类型查看命令:file
3)文件的时间戳管理工具:touch
touch 选项 文件
-a:only atime(access time:访问时间)
仅更新Access time(同时更新Change为current time)
-m:only mtime(modify time:修改时间)只改变修改时间
仅更新Modify time(同时更新Change为current time)
–c:不创建新文件
-t:使用指定的时间更新时间戳
(仅更改Access time与Modify time,Change time更新为current time)
例:
touch -t [[CC]YY]MMDDhhmm[.ss] filename
4)查看文件状态:stat
可以查看文件名称、大小、访问时间、修改时间、改变时间等信息。
文件访问时间:(Access time)读取文件内容会变化
文件修改时间:(Modify time)改变文件内容或数据时会变化
文件改变时间:(Change time)元数据发生改变时会变化
5)复制命令:cp
cp 文件 –> 文件 : 覆盖
cp 文件 –> 目录 :新建
cp 多个文件 –> 目录 : 新建
cp 目录 –> 目录 : 创建
cp 目录 –> 文件 :报错
常用选项:
-i:交互式
-a:相当于-dR –preserv=all,归档,复制时必须把文件保留为原来的样子
–preserv [=ATTR_LIST]
mode : 权限
ownweship :属主属组
timestamp : 时间戳
links : 链接
xattr : 扩展属性
context : 安全上下文
all : 以上所有
-d:–no-dereference
–preserv=links 不追踪符号链接
-p:–preserv=mode,ownership,timestamp
-v:显示复制过程 –verbose
-f:–force强制,如果存在覆盖
6)移动文件:mv
-i : 交互式
-f : 强制
7)删除:rm
rm 选项 文件
-i :交互式
-f :强制删除
-r :递归
rm -rf
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
1)命令执行状态返回值:
bash使用特殊变量 $? 保存最近一条命令的执行结果
0:成功,1-255:失败
2)命令行展开:
~:展开为用户的主目录
~ USERNAME:展开为指定用户的主目录
{ }:可承载一个以逗号分隔的列表,并将其展开为多个路径
如:
/tmp/new/{a,b} = /tmp/new/a , /tmp/new/b /tmp/new/{a,b}/hello = /tmp/new/a/hello , /tmp/new/b/hello
3、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
mkdir /tmp/{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}}
4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
1)通过stat命令可以查看文件的元数据信息
2)文件的元数据信息有:
Access文件访问时间:(Access time)读取文件内容会变化
Modify文件修改时间:(Modify time)改变文件内容或数据时会变化
Change文件改变时间:(Change time)元数据发生改变时会变化
3)通过touch可以修改文件的时间戳信息
touch 选项 文件
-a:only atime(access time:访问时间)
仅更新Access time(同时更新Change为current time)
-m:only mtime(modify time:修改时间)只改变修改时间
仅更新Modify time(同时更新Change为current time)
–c:不创建新文件
-t:使用指定的时间更新时间戳
(仅更改Access time与Modify time,Change time更新为current time)
touch -t [[CC]YY]MMDDhhmm[.ss] filename
5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
1)定义一个命令的别名:alias
PS:在命令行中定义的别名,仅对当前shell进程有效,
如果想长久有效,需要在配置文件中添加此别名定义:
~/.bashrc:仅对当前用户 /etc/bashrc:对所有用户有效
2)在命令中引用另一个命令的执行结果
(1)`反引号,上分隔符(在键盘的左上角,~的下面)
反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,
并以它的标准输出结果取代整个反引号(包括两个反引号)部分.
如:
echo `date`
(2)$( )
如:
echo $(date)
6、显示/var目录下所有以1开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其他字符)的文件或目录。
ls /var | grep '1.*[[:digit:]]\+.*[[:lower:]]$'
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录
ls /etc | grep '^[[:digit:]].*[^[:digit:]]$'
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
ls /etc | grep '^[^[:alpha:]][:alpha:].*'
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22.
mkdir /tmp/tfile-`date +%F-%H-%M-%S`
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
法一 (太复杂了)
cp -a /etc/$(ls /etc | grep '^p.*[^[:digit:]$]') /tmp/mytest1
法二 (这个比较简洁)
cp -a /etc/p*[^0-9] /tmp/mytest1
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
cp -a /etc/*.d /tmp/mytest2
12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
cp /etc/{l,m,n}*.conf /tmp/mytest3
原创文章,作者:二极管,如若转载,请注明出处:http://www.178linux.com/18471
评论列表(1条)
写的很棒,有的题目还有多种解题思路,但是好像10题的方法二有点小瑕疵吧,在测试一下,加油