马哥教育网络班21期+第2周课程练习
1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
cp:copy,复制文件
cp SRC DEST SRC为文件
如果目录不存在:新建DEST,并将SRC中内容填充至DEST中
如果目录存在:
如果DEST是文件:将SRC中的内容覆盖至DEST中,建议使用-i选项
如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中
cp SRC… DEST SRC…:多个文件
DEST必须存在,且为目录,其他情形均会出错;
cp SRC DEST SRC是目录:使用选项 -r
如果DEST不存在:则创建指定目录,复制SRC目录中所有文件至DEST中;
如果DEST存在:如果DEST是文件,报错;如果DEST是目录,DEST中创建一个与SRC同名的目录并将SRC中内容复制到新目录中
常用选项
-i:交互式
-r/-R:递归复制目录及内部的所有内容
-a:归档复制,保存文件的所有属性,相当于-dR –preserv=all
-d:不追踪符号链接,–no-dereference –preserv=links
–preserv[=ATTR_LIST]
mode:权限
ownership:属主属组
timestamp:时间戳
links:符号链接
xattr:扩展属性
context:上下文
all:所有属性
-P:相当于–preserv=mode,owership,timestamp
-v:–verbose
-f:–force
[root@localhost ~]# cp /etc/fstab /tmp/
mv:move,移动文件
常用选项
-i:交互式
-f:强制
[root@localhost ~]# mv /etc/fstab /tmp/
rm:remove,删除
rm [OPTION]… FILE…
常用选项:
-i:交互式
-f:强制删除
-r:递归
rm -rf 目录 可删除非空目录
[root@localhost ~]# rm -rf /tmp/fstab
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
命令的执行结果状态
bash使用特殊变量 $? 保存最近一条命令的执行状态结果
0:成功
1-255:失败
[root@localhost ~]# mkdir aa [root@localhost ~]# echo $? 0 [root@localhost ~]# mkdir aa mkdir: 无法创建目录"aa": 文件已存在 [root@localhost ~]# echo $? 1
命令行展开
~:展开为用户的主目录
~USERNAME:展开为指定用户的主目录
{}:可承载一个以逗号分隔的列表,并将其展开为多个路径
[root@localhost ~]# cd / [root@localhost /]# cd ~ [root@localhost ~]# cd ~tom [root@localhost tom]# mkdir /tmp/{a,b} [root@localhost tom]# ls /tmp/ a b
3、请使用命令行展开功能来完成以下练习:
(1)创建/tmp目录下的:ac, ad, bc, bd
(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
(1)创建/tmp目录下的:ac, ad, bc, bd
[root@localhost ~]# mkdir /tmp/{a,b}_{c,d} [root@localhost ~]# ls /tmp/ a_c a_d b_c b_d
(2)创建/tmp/mylinux目录下的:
root@localhost ~]# mkdir /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}} -p [root@localhost ~]# tree /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 24 directories, 0 files
4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
元数据查看:stat
[root@localhost ~]# stat a 文件:"a" 大小:0 块:0 IO 块:4096 普通空文件 设备:803h/2051d Inode:70423606硬链接:1 权限:(0644/-rw-r--r--) Uid:(0/root) Gid:(0/root) 环境:unconfined_u:object_r:admin_home_t:s0 最近访问:2016-07-17 14:35:34.196873268 +0800 最近更改:2016-07-17 14:35:34.196873268 +0800 最近改动:2016-07-17 14:35:34.196873268 +0800 创建时间:-
三个时间戳:
access time:访问时间,简写为atime,读取文件内容
modify time:修改时间,简写为mtime,改变文件内容
change time:改变时间,简写为ctime,元数据发生改变
touch -a 改变访问时间
touch -m 改变修改时间
touch -t [[CC]YY]MMDDhhmm[.ss] 修改文件的修改时间
touch -c 如果文件不存在,则不予创建
[root@localhost ~]# touch -t 201607161223.34 a [root@localhost ~]# stat a 文件:"a" 大小:0 块:0 IO 块:4096 普通空文件 设备:803h/2051d Inode:70423606硬链接:1 权限:(0644/-rw-r--r--) Uid:(0/root) Gid:(0/root) 环境:unconfined_u:object_r:admin_home_t:s0 最近访问:2016-07-16 12:23:34.000000000 +0800 最近更改:2016-07-16 12:23:34.000000000 +0800 最近改动:2016-07-17 14:37:09.712872323 +0800 创建时间:-
5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
命令别名(alias)
通过alias命令实现:
(1)alias 显示当前shell进程所有可用的命令别名
(2)alias NAME='VALUE' 定义别名NAME,其相当于执行命令VALUE
注意:在命令行中定义的别名,仅对当前shell进程有效,如果想永久有效,要定义在配置文件中
[root@localhost ~]# alias alias cp='cp -i' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias rm='rm -i' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
仅对当前用户:~/.bashrc
对所有用户有效:/etc/bashrc
bash进程重新读取配置文件:
source /PATH/TO/CONFIG_FILE
. /PATH/TO/CONFIG_FILE
alias cls = clear
撤销别名:unalias 别名
[root@localhost ~]# alias cls='clear'
unalias -a 撤销所有的别名
如果别名同原命令的名称,则如果要执行原命令,可使用"\COMMAND"
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
*:任意长度的任意字符
?:任意单个字符
[^]:取反
[[:digit:]]:任意数字
[[:lower:]]:任意小写字母
[[:upper:]]:任意大写字母
[[:alpha:]]:任意大小写字母
[[:alnum:]]:任意数字或字母
[[:space:]]:空格
[[:punct:]]:标点符号
[root@localhost var]# ls account cache db ftpgdm kerberos l4dddL local log nis preserve spool var adm crash empty games gopher l3db lib lock mail opt run tmpyp [root@localhost var]# ls -d /var/l*[[:digit:]]*[[:lower:]] l3db
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
[root@localhost etc]# ls /etc/[[:digit:]]*[^[:digit:]]
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
[root@localhost ~]# ls -d /etc/[^[:alpha:]][[:alpha:]]*
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
[root@localhost ~]# touch /tmp/tfile-`date '+%Y-%m-%d-%H-%M-%S'`
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
[root@localhost ~]# mkdir /tmp/mytest1 [root@localhost ~]# cp -a /etc/p*[^[:digit:]] /tmp/mytest1
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
[root@localhost ~]# mkdir /tmp/mytest2 [root@localhost ~]# cp -a /etc/*.d /tmp/mytest2
12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
[root@localhost ~]# mkdir /tmp/mytest3 [root@localhost ~]# cp -a /etc/[lmn]*.conf /tmp/mytest3
原创文章,作者:N21_孤狼,如若转载,请注明出处:http://www.178linux.com/24191
评论列表(1条)
写的很好,排版也很漂亮,加油