目录管理类命令
- mkdir
用来创建目录的。
对Linux的ls来讲,ls是一个别名,这个别名启用了颜色显示法,蓝色的表示目录,黑色的表示普通文件,绿色表示这个文件有执行权限。
对Linux来讲,目录和文件是同一类东西,是无法重名的。
选项:
-p:存在 时不报错,且可以自动创建所需的各目录
-v:显示过程的详细信息
-m:创建目录时直接指定权限
rmdir
用来删除目录的,该命令只能删除空目录
选项:
-v:显示过程
-p:重左向右删除文件,直到全部删除或遇到不空的文件为止
tree
列出目录的层级结构
选项:
-d:只显示目录
-L level(数字):指定显示的层级目录
-P pattern:只显示由指定pattern匹配到的路径
bash的基础特性
命令行展开
~:给出这个符号,bash自动展开为用户的主目录
~ USERNANE:展开为指定用户的主目录
命令行的执行结果状态
状态只有两种:成功或失败
bash使用$?保存最近一条命令的执行状态结果,其中状态结果:
0:表示执行成功
1—255:表示执行失败
bash只要执行成功就会用0表示,不会去纠结怎样成功。但执行失败会有多种多样的原因,bash会用不同的数字来表示。
在Linux中程序的执行有两类结果,像上面所说的是状态,但成功以后可能有很多数据:
一个叫程序的返回值,即程序的执行结果
一个叫程序的执行状态结果,即程序的状态
而返回值成功时命令执行的结果应该是什么就是什么,失败时,则可能是报错信息。
文本查看类命令
more
基于显示器来查看时能实现文本过滤
选项:
-d:显示翻页及退出提示
less
与man命令用法相同,man命令就是通过使用less命令来工作的
head
获取文件前一部分
选项:
-c#:指定获取前#字符
-n#:指定获取前#行
-#:与-n#相同,指定获取前#行
tail
获取文件后一部分
选项:
-c#:指定获取后#字节
-n#:指定获取后#行
-#:与-n相同。指定获取后#行
-f:跟踪显示文件新追加的内容
文件的时间戳管理工具
文件由metadata和data组成,即元数据和数据组成
stat
查看文件状态
每一个文件都有三个时间戳:
access time:最近一次访问的时间,即读取文件内容
modify time:最近一次修改时间,即改变文件内容或数据
change time:最近一次改变时间,即元数据发生改变
access time可简写为atime
modify time可简写为mtime
change time可简写为ctime
touch
手动修改atime和mtime
atime和mtime属于元数据,而元数据改变,ctime也会改变
访问就是使用命令查看或打开可执行程序,也是最近一次访问,读取文件的内容叫访问
选项:
-a:只改变atime,即最近一次访问时间
-m:只改变mtime,即最近一次修改时间
-t STAMP:自己指明修改哪一个时间戳
时间戳的格式:
[[cc]yy]MMDDHHmm[.ss]
年月日小时分钟秒钟
注意:但我们去touch一个文件时,如果这个文件不存在,touch命令会创建一个空文件的,而且时间戳都为当前时间,使用touch命令的主要目的是修改时间戳而不是去创建时间戳。
选项:
-c:如果文件不存在,则不予创建
文件管理
cp
复制命令
对于cp命令,在实现使用复制时,它的简要使用格式是:
(1)cp SRC(源) DEST(目标)
SRC是文件而不是目录
注意:如果目标事先不存在,则表示复制SRC为DEST,即新建DEST,并将SRC中内容填充至DEST中。
如果目标存在:
如果DEST是文件:将SRC中的内容覆盖至DEST中的话,建议使用时与-i选项一同使用,如果DEST中有文件的话,使用-i就会提醒你要不要覆盖,对管理员来讲cp命令会默认使用-i,而普通用户不会
如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中的内容填充至新文件中。
(2)cp SRC......(多个文件) DEST
当SRC是多个文源,而DEST不存在时,程序会报错,所以DEST必须存在,而且是目录,其他情形均会出错。当成功执行时,会将每一个原文件保留原名,放在目标目录下。每一个原文件在目标目录下都会新建一个,并将数据填充过去。
(3)cp SEC DEST
SEC为目录:
cp命令会报错,cp命令在默认情况下是不支持目录复制的,如果要复制目录,则要使用专门的选项:-r
-r:递归,表示不仅要复制目录,还有复制目录中的文件,这样才能实现复制
如果DEST不存在:则创建指定目录,复制SRC目录中所有文件至DEST中
如果DEST存在:
DEST是文件:会报错,无法将目录复制到文件中
DEST是目录:复制到此目录中,在目标目录下创建一个与原目录同名的目录,并且把原目录中的文件复制到目标目录中。
cp的常用选项:
-i:交互式,它会提示你是不是覆盖
-f:强制式,不提示是否覆盖,强制覆盖
-R或-r:递归复制目录及内部的所有内容
-a:复制时必须把每一个文件保留它原来的样子
-p:不去跟踪原文件所指向的目标文件,就复制这个符号链接本身,而不是它指向的内容
-d:表示不追踪符号链接
--preserve [=ATTR_LIST]:保持文件的某些属性,保留你所指定的属性,有:
context 安全上下文
links 链接本身的属性
xatty 扩展属性
all 所以属性
如果使用=号,则保留你所指定的属性,如果不使用=号,则默认保留权限:node 属主属组:ovnershin 时间戳:timestamps 这三项
-v:显示复制过程或显示详细信息
-t:复制时可以把源放在后面,把目标放在前面
mv
移动文件
如果SRC是单个文件:
DEST不存在:移动到那个目录下并重命名成你所指定的那个新名字,相当于在目录下创建一个我们自己指明名字为新文件名,把原来的内容填充到这个文件中,并删除原文件
DEST存在:DEST是文件,会把原文件覆盖至目标文件中,并删除原文件
DEST是目录,在目标目录下创建一个原文件同名的文件,把原来的内容填充到这个文件中,并删除原文件
如果SER是多个文件:
DEST必须存在,而且是目录否则会出错
如果SRC是目录:
不考虑SRC是目录或文件,不需要使用-r ,SRC是目录和文件没区别,与cp不同
如果SRC是目录,它就把目录以及目录下的所以文件都移动到DEST中去
如果SRC是文件,它就只移动文件
所以mv命令并不区分SRC是文件还是目录
移动目录有一个特点,它是把目标目录创建出来,目标目录如果不存在,它就是你指定的名字,如果存在,那就是我们新建的一个名字,如果SRC是目录的话,目标一定不能使用文件。
注意:如果SRC和DEST在同一个目录下,而且名字不相同,使用mv相当于重命名
选项:
-i:交互式
-f:强制式
rm
删除,用来删除文件或目录的,但rm本身事实上是不能删除目录及以下文件,想要删除目录,就要使用递归选项-r
常用选项:
-i:交互式
-f:强制删除
-r:递归
在centos6及之后的版本是无法删除‘/’目录的,因为centos6在执行rm命令时有一个默认选项 --preserve-root,要删‘/’是不被允许的,如果要删‘/’,要加--on-preserve-root选项才可以,而在centos5及之前的版本是没有这个限制的