一,Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关演示。
1.显示当前工作 目录
pwd:显示当前shell CWD的绝对路径
-L:显示链接路径
-P:显示真实的 物理目录
2.更改目录:cd
绝对路径:cd /app/zhen/
相对路径:cd app/zhen
切换至父目录:cd …
切换至当前用户主目录:cd
切换至以前的工作目录:cd –
3.列出目录内容:ls
ls -a 显示所有文件,包括隐藏文件
ls -A 显示除.和…之外的所有文件
ls -l =ll,显示额外的信息
每个文件有三个时间戳:访问时间(atime)、文件内容修改时间(mtime)、文件元数据改变时间(
ctime)
4.查看文件状态:stat
stat命令:
stat - display file or file system status
时间戳
最近访问:最近更改;最近改动
Access: 2018-11-14 07:13:27.965319903 +0800
Modify: 2018-11-14 07:13:27.963319902 +0800
Change: 2018-11-14 07:13:27.963319902 +0800
5.创建空文件和刷新时间:touch
touch - change file timestamps
-c :指定的文件路径不存在时不予创建
-a:仅修改access time;
-m:仅修改modify time;
-t STAMP: -t STAMP
use [[CC]YY]MMDDhhmm[.ss] instead of current time
6.复制文件和目录:cp
cp命令:copy
源文件:目标文件
单源复制: cp [OPTION]… [-T] SOURCE DEST
多源复制: cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
单源复制:
如果DEST不存在:则事前创建此文件,并复制源文件的数据流至DEST中
如果DEST存在:
如果DEST是非目录文件:则会覆盖目标文件;(危险操作)
如果DEST是目录文件:则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流至目标文件
多源复制:
如果DEST不存在:错误
如果DEST存在:
如果DEST是非目录文件:错误
如果DEST是目录文件:分别复制每个文件至目标目录中,并保持原名
常用选项:
-i:prompt before overwrite (overrides a previous -n option)
交互式复制,即覆盖之前提醒用户确认;
-f:if an existing destination file cannot be opened, remove it and try again (this option is ignored when the -n option is also used)
强制覆盖目标文件
-r:递归复制目录:
-d:复制符号链接文件本身,而非其指向的源文件
-a: same as -dR --preserve=all
archive:用于实现归档(做备份)
–preserve
mode:权限
ownership:属主和属组
timestamps:时间戳
context:安全标签
xattr:扩展属性
links:符号链接
all:上述所有属性
7.移动和重复命名文件:mv
常用选项:
-i:interfactive 交互式
-f, --force 强制
ignore nonexistent files and arguments, never prompt:忽略不存在的文件和参数,永远不要提示
8.删除:rm
常用选项:
-i:interfactive
-f, --force
ignore nonexistent files and arguments, never prompt
-r:recursive 递归的
删除目录:rm -rf /path/to/dir
注意:所有不用的文件建议不要直接删除,而是移动至某个专用目录(模拟回收站)
9.目录操作
(1):tree:显示目录树
-d:只显示目录
-L level:指定显示的层级数目
-P pattern:只显示由指定pattern匹配到的路径
(2):mkdir:创建目录
-p:存在于不报错,且可自动创建所需的各目录
-v:显示详细信息
-m MODE:穿件目录时直接指定权限
(3):rmdir删除空目录
-p:递归删除父空目录
-v:显示详细信息
(4):rm -r 递归删除目录树
二,bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
1.bash的工作特性之命令执行状态返回值
bash通过状态返回值来输出此结果:
成功:0
失败:1-255
命令执行完成后,其状态返回值保存于bash的特殊变量
?
中
,
可
以
用
e
c
h
o
?中,可以用echo
?中,可以用echo?来查看最近一条命令 的状态;
命令正常执行时,有的会有命令返回值;根据命令及其功能不同,结果各不相同。
2.命令行展开
~:自动展开为用户的家目录,或指定的用户的家目录;
{}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;
三,使用命令展开功能
(1):创建/tmp目录下的:a_c,a_d,b_c,b_d
#touch a_{c,d} 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}
#tree /tmp/mylinux/
四,文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
1、文件的数据分为两种:一种是描述数据属性的一类,一种就是数据本身。
2、文件的元数据查看为stat命令,示例如下所示:
stat - display file or file system status
时间戳
最近访问:最近更改;最近改动
Access: 2018-11-14 07:13:27.965319903 +0800
Modify: 2018-11-14 07:13:27.963319902 +0800
Change: 2018-11-14 07:13:27.963319902 +0800
3.修改文件时间戳:touch
-a change only the access time
-m change only the modification time
-t STAMP
use [[CC]YY]MMDDhhmm[.ss] instead of current time
五,定义一个命令的别名,并在命令中引用另一个命令的执行结果
查看别名:alias,可查看当前所有别名。
定义别名:alias NAME=’COMMAND’
撤销别名: unalias NAME
#alias whatis=‘whatis man’
六、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
#ls -d /var/l*[]0-9]*[[:lower:]]
七、显示/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-$(date +%Y-%m-%d-%H-%M-%S)
十、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
~]# cp -r /etc/p*[^0-9] /tmp/mytest1
十一、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
~]# cp -r /etc/*.d /tmp/mytest2
十二、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
~]# cp -r /etc/[1mn]*.conf /tmp/mytest3