目录
1. 文件命名规则
1.1 可以使用哪些字符?
除了字符“/”之外,所有的字符都可以使用,且linux严格区分大小写,建议文件命名规则:
- 尽量都用小写字母
- 如果必须对文件名进行分割,建议使用
_
,例如:bit_bj_2022.txt
注意:
- 在目录名或文件名中,尽量避免使用某些特殊字符,例如, <、>、?、* 等;
- 如果一个文件名中包含了特殊字符,例如空格,那么在访问这个文件时就需要使用引号将文件名括起来;
1.2 文件名的长度
目录名或文件名的长度不能超过 255 个字符
1.3 Linux文件扩展名
Linux文件的扩展名对 Linux 操作系统没有特殊的含义,Linux 不以文件的扩展名开分区文件类型。例如,sz.exe 只是一个文件,其扩展名 .exe 并不代表此文件就一定是可执行的。
在Linux系统中,文件扩展名的用途为了使运维人员更好的区分不同的文件类型。
2. 文件管理命令
我们经常需要对Linux的文件或目录进行操作,常见操作包括新建,删除,更改,查看,复制,移动等,下面逐一讲解
2.1 目录创建/删除
① 创建目录
-
命令:
mkdir
(make directory,创建目录) -
语法:
mkdir [参数选项] 路径(包含要创建的目录名)
-
常见参数:
-p
:递归创建所有目录,如果想创建多层不存在的路径,可以使用-p参数实现。-p表示parents,父级的意思; -
用法一:
mkdir 不加参数 路径(需包含目录名称)
,例如:想在在/usr/local目录下创建一个名为nginx文件夹,命令为# mkdir /usr/local/nginx
, 注意:mkdir命令默认不能隔级创建目录,必须要求要创建的目录所在的目录一定要存在; -
用法二:
mkdir -p 路径(需包含目录名称)
,例如在/usr/local目录下,同时创建sz文件夹和sz下的子文件夹tomcat,命令为# mkdir -p /usr/local/sz/tomcat
; -
用法三:
mkdir 路径1 路径2 路径3
,例如命令#mkdir /usr/local/a /usr/local/b /usr/local/c
意为在/usr/local目录下,同时创建a,b,c文件夹。
注意:mkdir
需要root权限,# mkdir /usr/local/nginx
中的#
就表示在root权限下执行的命令,如果是普通用户,Linux下命令行会显示$
② 删除目录
- 命令:
rmdir
(remove directory缩写)
作用:删除空目录
语法:#rmdir [参数选项] 路径(包含要删除的目录名)
- 常见参数:
-p
:递归删除所有空目录 - 用法一:
rmdir 不加参数 路径
,删除指定路径下的空目录,例如:# rmdir /usr/local/nginx
意为删除/usr/local下的空目录nginx,若nginx目录不为空,则会报错; - 用法二:
rmdir 路径1 路径2 路径3
,同时删除多个空目录,例如:# rmdir /usr/local/a /usr/local/b /usr/local/c
意为同时删除a,b,c三个空目录 - 用法三:
rmdir -p 路径
,递归删除目录(可以不为空),例如:# rmdir -p sz/tomcat
意为递归删除tomcat和sz目录
2.2 文件创建/删除
在实际应用中,与文件相关的操作主要有两个:创建文件与删除文件
① 创建文件
- 命令:
touch
- 语法:
# touch 文件路径 [文件路径2 文件路径3 …]
- 用法一:
touch 路径(包含文件名)
,创建一个文件,例如:#touch readme.txt
意为在当前路径下创建一个readme.txt文件 - 用法二:
touch 路径1 路径2 路径3
,创建多个文件,例如:#touch a.txt b.txt c.txt
意为在当前路径下创建a.txt b.txt c.txt三个文件 - 用法三:
touch 路径1{1..n}
,例如#touch file{1..5}.txt
意为创建5个文件,分别为file1.txt、file2.txt、file3.txt、file4.txt、file5.txt,命令{}
中1表示开始的数字,…表示连续的,5表示结束的数字
② 删除文件
-
命令:
rm
(remove缩写) -
作用:删除文件或文件夹
-
语法:
rm [参数选项] 文件或文件夹
-
参数选项:
-r
:递归删除,主要用于删除目录,可删除指定目录及包含的所有内容,包括所有子目录和文件
-f
:强制删除,不提示任何信息,操作前一定要慎重!!! -
用法一:
rm 路径(包含文件名)
,例如:#rm readme.txt
表示删除当前路径下的readme.txt文件 ,会有提示信息:remove regular empty file ‘readme.txt’ ?输入y
表示同意删除,否则输入n
; -
用法二:
rm -r 路径(通常为目录名)
,例如:#rm -r sz
表示 删除当前文件夹下的sz文件夹 及其包含的所有子文件夹/文件,并且会出现类似提示信息; -
用法三:
rm -rf 路径(通常为目录名)
,例如:#rm -rf sz
表示强制删除 当前文件夹下的sz文件夹 及其包含的所有子文件夹/文件
2.3 复制与剪切
① 复制操作
- 命令:
cp
(copy缩写,复制操作) - 作用:复制文件/文件夹到指定的位置
- 语法:
#cp [参数选项] 源路径(含文件名) 目标路径(如不指定文件名,则文件名不变)
- 常见参数:
-r
:recursion,递归,用于复制目录 - 用法一:
cp 源路径 目标路径(不指定文件名)
,例如:#cp /root/itheima.txt /usr/local/
,表示将/root目录下的itheima.txt文件拷贝到/usr/local下,文件名不变; - 用法二:
cp 源路径 目标路径(指定文件名)
,例如:#cp /root/sz.txt /usr/local/szz.txt
,表示 将/root目录下的sz.txt文件拷贝到/usr/local下,并重命名为szz.txt; - 用法三:
cp -r 源路径(包含目录名) 目标路径
,例如:#cp -r /root/a /usr/local/
,表示 将/root下的a目录完整拷贝到/usr/local下。
② 剪切操作
- 命令:mv (move,移动,剪切)
- 作用:可以在不同的目录之间移动文件或目录,也可以对文件和目录进行重命名
- 语法:#mv [参数] 源文件 目标路径(不指定文件名)
- 用法一:
mv 源文件 目标路径(不指定文件名)
,例如:#mv readme.txt /usr/local/
,表示 将当前目录下的readme.txt文件移动到/usr/local下,文件名不变; - 用法二:
mv 源目录 目标路径(不指定目录名)
,例如:#mv shop /usr/local/
,表示 将当前目录下的shop目录移动到/usr/local下,目录名不变; mv
与cp
的区别:mv
与cp
命令不一样,不管是针对文件还是针对文件夹都不需要加类似 -r 的选项。- 默认在移动的过程中文档名称名称是不变的,变的是路径
③ 重命名操作
- 命令:mv (move,移动,剪切)
- 语法:#mv [参数] 源文件 目标路径(指定文件名)
- 用法一:
mv 当前文件名 新文件名
,例如:#mv a.txt b.txt
,表示 将当前目录下的a.txt文件重命名成 b.txt; - 用法二:
mv 当前目录名 新目录名
,例如:#mv sz szz
,表示 将当前目录下的sz目录重命名成 szz;
2.4 tar打包压缩与解压缩
打包,指的是将若干个文件或目录归档存储在一个文件中,该打包文件没有经过压缩,占用的空间是其中所有文件和目录的总和;
压缩文件也是一个文件和目录的集合,且这个集合也被存储在一个文件中,但它们的不同之处在于,压缩文件所占用的磁盘空间比集合中所有文件大小的总和要小。
① 打包
-
命令:
tar
-
作用:将多个文件打包成一个文件
-
语法:
tar 选项 打包文件名 要打包的文件或目录
-
常见参数:
-c
,create 创建的意思
-v
,显示打包文件过程
-f
,指定打包的文件名,此参数是必须加的
-u
,update缩写,更新原打包文件中的文件
-t
,查看打包的文件内容 -
注意:
- 在使用 tar 命令指定选项时可以不在选项前面输入“-”。例如,使用“cvf”选项和 “-cvf”起到的作用一样;
- 使用 tar 命令归档的包通常称为 tar 包(tar 包文件都是以“.tar”结尾的)。
-
用法一(重点掌握):
tar -cvf 文件名 文件1 文件2 文件3
,例如:#tar -cvf abc.tar a.txt b.txt c.txt
,表示 将当前目录下的a.txt b.txt c.txt 打包成abc.tar文件,大小是三个文件的总合; -
用法二:
tar -uf 现有包文件名 要追加的文件
,例如:#tar -uf abc.tar d.txt
,表示 将当前目录下的d.txt 追加到abc.tar文件,大小是四个文件的总合; -
用法三:
tar -tf 包文件名
,例如:#tar -tf abc.tar
,表示== 查看==abc.tar文件内容;
② 打包并压缩(重点)
Linux下,常用的压缩工具有很多,比如 gzip、zip、bzip2、xz 等,tar 在打包的时候,是支持压缩的,gzip 、bzip2 、xz 压缩工具都可以在 tar 打包文件中使用。
- 命令:tar
- 作用:将多个文件打包并压缩成一个文件,其实就是tar命令的三个压缩参数
- 语法:tar 选项 打包文件名 要压缩的文件或目录==
- 常见参数:
-z
,压缩为.gz格式
-j
,压缩为.bz2格式
-J
,压缩为.xz格式
-c
,create 创建的意思
-x
,解压缩
-v
,显示打包文件过程
-f
,file指定打包的文件名,此参数是必须加的。
-u
,update缩写,更新原打包文件中的文件(了解)
-t
,查看打包的文件内容(了解)
注意:此处打包后的文件名叫做 abc.tar.gz,其中.gz表示使用gzip压缩的tar文件,目的是方便运维人员识别文件
- 用法一:
tar -zcvf 文件名 文件1 文件2 文件3
,例如:#tar -zcvf abc.tar.gz a.txt b.txt c.txt
,表示将当前目录下的a.txt b.txt c.txt 使用gzip压缩打包成abc.tar.gz文件; - 用法二:
tar -jcvf 文件名 文件1 文件2 文件3
,例如:#tar -jcvf abc.tar.bz2 a.txt b.txt c.txt
,表示将当前目录下的a.txt b.txt c.txt 使用bz2压缩打包成abc.tar.bz2文件; - 用法三:
tar -Jcvf 文件名 文件1 文件2 文件3
,例如:#tar -Jcvf abc.tar.xz a.txt b.txt c.txt
,表示将当前目录下的a.txt b.txt c.txt 使用xz压缩打包成abc.tar.xz文件; - 用法四:
tar -tf 包文件名
,例如:#tar -tf abc.tar
,表示== 查看==abc.tar文件内容;
注意:bz2,gzip,xz三种工具的压缩比不同,实际工作中最常用的是gzip,换句话说,大家最常见到的压缩打包文件是 .tar.gz
③ 解压
- 语法:解压的时候,把压缩命令中的
c
换成x
即可 - 用法一:
tar -zxvf 文件名
,例如:#tar -zxvf abc.tar.gz
,表示将abc.tar.gz文件解压缩; - 用法二:
tar -jxvf 文件名
,例如:#tar -jxvf abc.tar.bz2
,表示将abc.tar.bz2文件解压缩; - 用法三:
tar -Jxvf 文件名
,例如:#tar -jxvf abc.tar.xz
,表示将abc.tar.xz文件解压缩; - 用法三:
tar -xvf 文件名
,例如:#tar -jxvf abc.tar.xz
,表示系统将自动识别压缩格式,并自动选择相应工具,解压缩.