linux第二周作业
- Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
常用的工具:cp,mv,rm
复制命令:cp
两种使用风格:cp [OPTION]...[-T]SOURCE DEST
cp[OPTION]...SOURCE ...DIRECTORY
简要讲:
cp SRC...DEST
1.如果SRC是文件的:
(1)如果目标不存在:新建DEST,并将SRC中的内容填充至DEST中;
(2)如果目标存在:
如果目标是文件,则将源文件内容覆盖到目标文件当中,(可以使用-i来提醒用户是否覆盖)
如果目标是目录,则在该目录下创建一个与源文件同名的目标文件,并将源文件内容复制过去。
- 如果SRC是目录:则必须使用-r选项
(1)如果DEST存在,则其必须是目录,否则报错;先在DEST下创建与SRC同名的目录,并将SRC中所有内容复制过去,
(2)如果DEST不存在,则先创建DEST目录,并将SRC所有内容复制到DEST中。
常用选项:
-i:交互式
-r:递归复制目标目录及目录下所有内容
-a:归档,相当于-dR --preserve=all
-p:保持源文件的属性信息
-f:强制覆盖
-v:显示过程
移动命令mv:同样也有三种使用格式
(1)如果SRC是单个文件,且DEST不存在,则相当于剪切功能,如果SRC是单个文件,且DEST存在,则目标文件内容被源文件覆盖,且源文件消失;
(2)如果SRC是多个文件,如果DEST不存在,则创建一个目录,并将多个源文件复制到目录下;如果存在,则该目标必须为目录,且移动过去的文件不会覆盖目标目录已存在的文件
(3)如果SRC是个目录,且DEST不存在,则创建目标目录,且将SRC剪切到目标目录。如果SRC是个目录,且DEST存在,则在DEST下创建一个与SRC同名的目录,并剪切过去。
常用选项:
-i:交互式
-f:强制
-删除命令:rm
rm [OPTION]...FILE...
常用选项:
-i:交互式
-f:强制
-r:递归
常用选项组合:rm -rf
- bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
2.1 命令的执行结果状态
成功:
失败:
bash使用特殊变量?
0:成功
1-255:失败
同样程序执行结果也有两类:
程序的返回值:程序的功能定义
程序的执行状态结果:程序执行完成后的状态
2.2 命令行展开
~:展开为用户的主目录
~:USERNAME:展开为指定用户的主目录
{}:可承载一个以逗号分隔的列表,并将其展开为多个路径
如:
./tmp/{a,b}=/tmp/a,/tmp/b
/tmp/{jack,mary,tom}/x=/tmp/jack/x,/tmp/mary/x,/tmp/tom/x
-
请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_dtouch /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 -v /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/{log,run}}
- 文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
文件的元数据信息有文件名、文件的大小属性、以及被访问时间、修改及改动时间等,就像人的身高属性等;
Linux文件系统特性:
4.1 文件名严格区分大小写;
4.1 文件名长度不能超过255;
4.3 文件名命名能使用除/外其他所有的字符;
4.4 所有以.开头的文件都为隐藏文件;
查看文件时间戳:stat 文件路径
状态信息有三个时间戳:
access time:访问时间,atime 即:通过cat,more等读取其内容
modify time:修改时间,mtime 即:改变文件内容
change time:改变时间,ctime 即:元数据发生变化
可通过touch[OPTION]...FILE...
-a:修改atime
-m:修改mtime
-t[[CC]YY]MMDDhhmm[.ss]:修改指定时间戳为某时间
- 如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
通过alias命令实现,
(1)当alias不带任何选项表示显示所有已定义别名;
(2)定义别名:
alias new_name='old_name'
注意:通过命令行定义别名只对当前shell进程有效,要想长久有效必须定义在配置文件中;
仅对当前用户有效:~/.bashrc
对所有用户有效:/etc/bashrc
bash进程重新读取配置文件:
source /path/to/config_file或者./path/to/config_file
撤销别名用unalias new_name,
unalias -a 表示撤销所有命令别名
如何
通过管道引用另一个命令的执行结果
COMMAND1 | COMMAND2 |COMMAND3,最后一个命令会在当前shell进程的子进程中执行
-
显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
ls /var/l[0-9][a-z]
-
显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
ls -d /etc/[0-9]*[^0-9]
-
显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
ls -d /etc/[^a-z][a-z]*
-
在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
touch /tmp/tfile-2018-07-14-23-04-23
-
复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
mkdir /tmp/mytest1
cp -ri /etc/p*[^0-9] /tmp/mytest1
- 复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
mkdir /tmp/test2
cp -ri /etc/*.d /tmp/mytest2
- 复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
mkdir /tmp/mytest3
cp /etc/{l,m,n}*.conf /tmp/mytest3
网友评论