Linux的文件管理和Bash的基础特性
一:Linux的文件管理类命令
(一)目录管理命令:
1、ls:用于显示指定工作目录下的内容。
语法:
ls [OPTION] ... [FILE] ...
选项:
-a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
-R 若目录下有文件,则以下之文件亦皆依序列出
实例:
列出根目录(/)下的所有目录2、cd:用于切换当前工作目录至要切换的目标目录。
语法:
cd [dirName]
实例:
切换至etc目录3、pwd:打印当前工作目录的名称。
语法:
pwd [OPTION] ...
实例:
打印当前工作目录4、mkdir:创建空目录。
语法:
mkdir [OPTION] ...DIRECTORY...
选项:
-p 确保目录名称存在,不存在的就建一个。
-v 显示详细过程
-m 直接给定权限
实例:
在家目录下创建空目录5、rmdir:删除目录。
语法:
rmdir [OPTION] ...DIRECTORY...
选项:
-p 删除目录后,如果父目录为空,则一并删除。
-v 显示详细过程
实例:
删除空目录6、tree:用于以树状图列出目录的内容。
语法:
tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式>][目录...]
选项:
-a 显示所有文件和目录。
-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
-C 在文件和目录清单加上色彩,便于区分各种类型。
-d 显示目录名称而非内容。
-D 列出文件或目录的更改时间。
-f 在每个文件或目录之前,显示完整的相对路径名称。
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
-i 不以阶梯状列出文件或目录名称。
-I<范本样式> 不显示符合范本样式的文件或目录名称。
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-n 不在文件和目录清单加上色彩。
-N 直接列出文件和目录名称,包括控制字符。
-p 列出权限标示。
-P<范本样式> 只显示符合范本样式的文件或目录名称。
-q 用"?"号取代控制字符,列出文件和目录名称。
-s 列出文件或目录大小。
-t 用文件和目录的更改时间排序。
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。
实例:
查看目录树(二)文件管理命令:
1、touch:用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
语法:
touch [OPTION] ... [FILE] ...
选项:
a 改变文件的访问时间。
m 改变文件的改动时间。
c 假如目的文件不存在,不会建立新的文件
t 设定文件的时间记录,格式与 date 指令相同。
实例:
创建普通文件2、stat:用于显示inode内容。
语法:
stat [OPTION] ... [FILE] ...
实例:
查看目录inode内容3、file:用于辨识文件类型。
语法:
file -C [ -m magicfiles ]
选项:
-b 列出辨识结果时,不显示文件名称。
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-f<名称文件> 指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。
-L 直接显示符号连接所指向的文件的类别。
-m<魔法数字文件> 指定魔法数字文件。
-v 显示版本信息。
-z 尝试去解读压缩文件的内容。
实例:
显示文件类型4、rm:用于删除文件或者目录。
语法:
rm [OPTION] ... [FILE] ...
选项:
-i 交互模式删除文件,删除文件前给提示。
-f 强制删除,忽略不存在的文件,不提示确认。
-r 递归删除目录及其内容。
实例:
删除a.txt文件5、cp:复制文件。
语法:
cp [OPTION] ... [-T] SOURCE DEST
cp [OPTION] ... SOURCE DIRECTORY
cp [OPTION] ... -t DIRECTORY SOURCE
选项:
-a 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d 复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
-f 覆盖已经存在的目标文件而不给出提示。
-i 与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
-p 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l 不复制文件,只是生成链接文件。
实例:
6、mv:用来为文件或目录改名、或将文件或目录移入其它位置。
语法:
mv [OPTION] ... [-T] SOURCE DEST
mv [OPTION] ... SOURCE DIRECTORY
mv [OPTION] ... -t DIRECTORY SOURCE
选项:
-i 若指定目录已有同名文件,则先询问是否覆盖旧文件
-f 在mv操作要覆盖某已有的目标文件时不给任何指示
实例:
将原文件覆盖二:Bash的基础特性
1:bash的基础特性之命令行展开
~:自动展开为用户的家目录,或指定用户的家目录。
{ }:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径。
实例:
/tmp/{a,b} 就相当于 /tmp/a /tmp/b
2:bash的基础特性之命令的执行状态结果
bash通过状态返回值来输出此结果
成功:0
失败:1~255
命令执行完成后,其状态返回值保存于bash的特殊变量$?中,可以用echo $?来查看最近一条命令的状态。
3:bash的基础特性之引用
强引用: ' '(不完成变量的替换)
弱引用: " "(完成变量的替换)
命令引用: ` `(反引号)
实例:
强引用和弱引用4:bash基础特性之快捷键
Ctrl+a:跳转至命令行行首
Ctrl+e:跳转至命令行行尾
Ctrl+u:删除行首至光标所在处之间的所有字符
Ctrl+k:删除光标所在处至行尾的所有字符
Ctrl+l:清屏,相当于clear
5:bash的基础特性之文件名通配(整体文件名匹配,而非部分)
匹配模式:元字符
*:匹配任意长度的任意字符
pa*, *pa*, *pa, *p*a*
pa, paa, passwd
?:匹配任意单个字符
pa?, ??pa, p?a, p?a?
pa, paa, passwd
[]:匹配指定范围内的任意单个字符
有几种特殊格式:
[a-z], [A-Z], [0-9], [a-z0-9]
[[:upper:]]:所有大写字母
[[:lower:]]:所有小写字母
[[:alpha:]]:所有字母
[[:digit:]]:所有数字
[[:alnum:]]:所有的字母和数字
[[:space:]]:所有空白字符
[[:punct:]]:所有标点符号
pa[0-9][0-9], 2[0-9][0-9]
[^]:匹配指定范围外的任意单个字符
[^[:upper:]]
[^0-9]
[^[:alnum:]]
三:使用命令行展开完成下列练习
1:创建/tmp目录下的:a_c, a_d, b_c, b_d;
2:创建/tmp/mylinux目录下的
创建多级目录1: mkdir -v {a,b}_{c,d}
创建/tmp目录下的:a_c, a_d, b_c, b_d2: mkdir -pv /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}}
网友评论