文件简介
由创建者定义的,具有文件名的一组相关元素的集合即是文件,文件可以是文本文档、图片、程序等。
文件的命名依旧需要遵守规则(ps:感觉咋这么像C++命名的规则):不可使用“/”;转义字符(如?,*,$,&)最好不用;避免使用“+”,“-”,“.”作为普通文件名的第一个字符;注意大小写,大小写不同即为不同的文件。
文件种类
普通文件:也称为常规文件,是最一般格式的文件,包括系统文件、用户文件、库函数。
目录文件:由文件目录信息构成,是特殊文件,用来检索普通文件的目录信息。
设备文件:在Linux种输入输出设备被视为特殊文件,称为设备文件,存放在/dev目录。有字符设备文件和块设备文件。
符号链接文件:是一种特殊类型的文件,内容为一个字符串。
目录简介
Linux文件系统中的一种特殊文件,文件系统通过目录完成按名存取和文件的共享与保护
目录种类
工作目录:也称为当前目录,是用户登录到Linux系统后所处的目录
用户主目录:是系统管理员增加用户时创建,以后可以改变。
注:普通用户的主目录在/home下,系统管理员在/root下
路径简介
从树型目录中的某个目录层次到某个文件的道路即为路径,路径由目录或目录和文件名构成,中间由“/”分隔
路径种类
绝对路径:也成为完全路径,从“/”开始
相对路径:从用户工作目录或用户主目录开始
注:以下均为文件操作命令
文件操作命令
文件操作命令
显示文件命令
cat命令
more命令
less命令
head命令
tail命令
cat命令
格式:cat [选项] [文件]
效果:将多个文件连接后输出到屏幕中或是以“>文件名”输出到另一文件
-b或--number-nolank:从1开始对所有非空输出行进行编号
-n或--number:从1开始对所有输出行编号
-s或--squeeze-blank:将连续两行以上的空白行合成一行空白行
more命令
格式:more [选项] [文件]
效果:显示文本文件的内容,一次显示一屏,满屏后停下。
按Space键显示文本下一屏内容
按Enter键显示文本下一行内容
按D或CTRL D键显示文本下半屏,默认11行
按B或CTRL B键显示文本上一屏
按Q或Interrupt键退出more命令
-num:指定整数,表示一屏显示多少行
-d:在每屏底部显示提示信息
-c或-p:不滚屏,在显示下一屏之前先清屏
+num:从行号Num开始显示
+/pattern:定义字符串,在文件中查找该字符串,从该字符串后开始显示
less命令
格式:less [选项] [文件]
效果:类似于more命令,分屏显示文件内容,允许向前或向后浏览文件。
按Q键退出less命令
-i或--ignore-case:搜索时忽略大小写,除非搜索串中包含大写字母
-I或--IGNORE-CASE:搜索时忽略大小写
-m或--long-prompt:显示读取文件的百分比
-M或--LONG--PROMPT:显示读取文件的百分比、行号、总行数
-N或--LINE-NUMBERS:在每行前输出行号
-p pattern或--pattern=pattern:定义字符串,在文件中查找该字符串,从该字符串后开始显示
head命令
格式:head [选项] [文件]
效果:查看一个文本文件的开头部分,参数值决定行数,默认10行
-c或--bytes=num:显示文件前num个字节
-n或--lines=num:显示文件前num行,不指定该参数则默认10行
tail命令
格式:tail [选项] [文件]
效果:查看文本文件的末尾行,行数由参数决定,默认10行
若给定的文件不止一个,则在显示的文件前加文件名标题
-c或--bytes=num:显示文件末尾num个字节
-n或--lines=num:显示文件末尾num行,不指定该参数则默认10行
搜索排序去重命令
grep命令
sort命令
uniq命令
grep命令
格式:grep [选项] 查找模式 [文件]
效果:未指定文件名,grep搜索标准输入
egrep可使用扩展的字符串模式进行搜索
fgrep将所有字母看作单词,不识别正则表达式
-b或--bytes-offset:显示匹配字符串行前,标识第一个字符位编号
-c或--count:计算匹配字符串的行数
-E:查找模式解释为扩展的正则表达式(egrep)
-F:查找模式解释为单纯字符串(fgrep)
-i或--ignore-case:忽略大小写
-n或--line-number:显示匹配字符串行前,标识行号
-v:反转查找,显示不包含匹配字符串的文本行
-V:显示版本信息
-x或--line-regexp:只显示严格匹配的行
grep正则表达式 元字符 效果 ^ 行首定位,指定行首。^git匹配所有以git开头的字符串 $ 行尾定位,指定行尾。git$匹配所有以git结尾的字符串 . 匹配任意一个字符。gi.t匹配giqt、giwt或其他 * 匹配0个或多个前导字符。 [ ] 匹配[ ]中任意一个字符。gi[as]t匹配giat或gist \< 从匹配正则表达式的行开始。 >\ 到匹配正则表达式的行结束。 x\{m,n\} m代表前导字符数量下限,n代表上限。
sort命令
格式:sort [选项] [文件]
效果:对指定文件中所有行排序,将结果显示在标准输出上
未指定输入文件或使用“-”,则表示排序内容源于标准输入
缺省则以行为关键字按ASCII字符顺序进行排序
-m或--merge:合并以排好序的文件
-c或--check:检查文件是否排序,未排序打印出错信息,状态值1退出
-u或--unique:对排序后重复的行只保留一行
-o 文件名:将排序输出写到输出文件中而不是标准输出
改变缺省排序规则的选项 -d或--dictionary-order 按字典顺序排序 -f或--ignore-case 忽略大小写 -r或--reverse 逆序输出排序结果,默认排序输出时按升序 +pos1 - pos2 指定一个或几个字段为排序关键字,字段位置从pos1开始,结束在pos2(包括pos1不包括pos2)。不指定pos2则从pos1开始到行尾。字段和字符位置从0开始
uniq命令
格式:uniq [选项] [输入文件 [输出文件]]
效果:检查和删除文本文件中重复的行
-c或--count:显示输出中,每行行首加上该行在文件中出现的次数
-d或--repeated:显示文件中重复的行
-u或--unique:显示文件中不重复的行
比较文件内容命令
comm命令
diff命令
comm命令
格式:comm [选项] 文件1 文件2
效果:对两个已排好序的文件进行比较。从文件1和文件2读取正文并比较,生成三行输出:两文件均出现的行,仅文件1出现的行,仅文件2出现的行
-123:不显示输出中的第一列,第二列,第三列
diff命令
格式:diff [选项] 文件列表
效果:比较文本文件,并找出不同
-b或--ignore-space-change:忽略空格造成的不同-B或--ignore-blank-lines:忽略空行造成的不同
-i或--ignore-case:忽略大小写造成的不同
-r或--recursive:若文件均是目录时,递归比较子目录中的文件
复制删除移动文件命令
cp命令
rm命令
mv命令
cp命令
格式:cp [选项] 源文件或目录 目标文件或目录
效果:完成对文件的复制
源是普通文件,则将源文件复制成指定的目标文件或复制到指定的目标目录
源是目录,目标是已存在的目录,则将源目录下所有文件和子目录复制到目标目录
源是目录,目标不是已存在的目录,则出错误信息
-a或--archive:等同于-dpR
-d:复制符号链接时,将目标文件或目录建立为符号链接并指向于源文件或目录链接的原始文件或目录
-f或--force:强制复制文件或目录
-i或--interactive:覆盖目标文件之前需确认
-n或--no-clobber:不覆盖已存在的目标文件
-p:复制源文件或源目录内容的同时复制文件属性
-R,-r或--recursive:递归复制目录,将源目录下所有文件及子目录复制到目标位置
rm命令
格式:rm [选项] 文件或目录
效果:删除文件或目录,删除目录须加“-r”
-f或--force:强制删除文件或目录
-i或-interactive:删除文件或目录前需确认
-r,-R或--recursive:递归删除指定目录及其下属各级子目录和相应文件
mv命令
格式:mv [选项] 源文件或目录 目标文件或目录
效果:移动文件或目录,更改文件或目录名称
-i或--interactive:覆盖文件前须确认
-f或--force:若文件或目录已存在,则直接覆盖
-n或--no-clobber:不覆盖已存在的文件
-u或--update:移动或更改文件名时,若目标文件已存在且文件日期比源文件新,则不覆盖目标文件
文件内容统计命令
wc命令
wc命令
格式:wc [选项] [文件]
效果:统计给定文件中的字节数、字数、行数
-c或--bytes:统计字节数
-m或--chars:统计字符数
-l或--lines:统计行数
-w或--words:统计字数
查找文件和目录文件
find命令
find命令
格式:find [路径名] [表达式]
效果:查找符合条件的文件或目录
-amin n:查找系统中最后n分钟被访问过的文件或目录
-anewer<参考文件或目录>:查找其存取时间 较 指定文件或目录的存取时间 更接近现在的文件或目录
-atime n:查找系统中最后n*24小时被访问过的文件或目录
-cmin n:查找系统最后n分钟被更改的文件或目录
-cnewer<参考文件或目录>:查找其更改时间 较 指定文件或目录更改时间 更接近现在的文件或系统
-ctime n:查找系统中最后n*24小时被改变状态的文件
-depth:从指定目录下最深层的子目录开始查找
-daystart:从本日开始计算时间
-exec<执行指令>:若find指令回传值为true,则执行该指令
-fstype<文件系统类型>:只寻找该文件系统类型下的文件或目录
-gid<群组识别码>:查找符合指定群组识别码的文件或目录
-group<群组名称>:查找符合指定群组名称的文件或目录
-inum<inode 编号>:查找符合指定inode编号的文件或目录
-mmin n:查找在n分钟内被更改过的文件或目录
-mtime n:查找在n天内被更改过的文件或目录
-name<范式样本>:指定字符串作为寻找文件或目录的范式样本
-path<范式样本>:指定字符串作为寻找目录的范式样本
-perm<权限数值>:查找符合指定权限数值的文件或目录
-print:若find指令回传值为true,则酱文件或目录名称列出到标准输出,每列一个名称,且名称前均有“./”字符串
-prune:不查找字符串作为寻找文件或目录的范式样本
-size<文件大小>:查找符合指定的文件大小的文件
-type<文件类型>:只寻找符合指定文件类型的文件,b-块设备文件,d-目录,c-字符设备文件,p-管道文件,l-符号链接文件,f-普通文件
-uid<用户识别码>:查找符合指定用户识别码的文件或目录
-user<拥有者名称>:查找符合指定拥有者名称的文件或目录
注:路径名是用空格隔开的要搜索文件的目录名单
表达式包含要寻找的文件的匹配规范或说明,从左向右求值
文件压缩和备份
bzip2命令
gzip命令
tar(tape archive)命令
bzip2命令
格式:bzip2 [选项] [要压缩的文件]
效果:.bz2文件的压缩程序,并删除原始文件
-c或--stdout:将压缩或解压结果送到标准输出
-d或--decompress:执行解压
-f或--fore:压缩或解压时,输出与现有文件同名,则覆盖现有文件
-k或--keep:bzip2在压缩或解压后,保留原始文件
gzip命令
格式:gzip [选项] [文件]
效果:gzip压缩产生“.gz”文件,并删除原始文件
-c或--stdout或--to-stdout:压缩后文件输出到标准输出设备,不改变原始文件
-d或--decompress或--uncompress:解压文件
-f或--force:强制压缩文件
-n或--no-name:压缩文件时不保存原始文件名称及时间戳
-N或--name:压缩文件时保存原始文件名称及时间戳
-r或--recursive:递归处理,将指定目录下所有文件及子文件一并处理
tar(tape archive)命令
格式:tar [选项] [文件或目录]
效果:用以建立、还原备份文件的工具,可以加入、解开备份文件内的文件
-A或--catenate:新增tar文件到已存在的备份文件
-c或--create:建立新的备份文件
-f<备份文件>或--file=<备份文件>:指定备份文件
-t或--list:列出备份文件内容
-v或--verbose:显示指令执行过程
-x或--extract或--get:从备份文件中还原文件
--delete:从备份文件中删除指定文件
注:以下均为目录操作命令
目录操作命令
目录操作命令
切换工作目录和显示目录内容
cd命令
pwd命令
ls命令
cd命令
格式:cd [目的目录]
效果:切换目录至目的目录(必须拥挤进入的权限)。目的目录可是绝对路径可是相对路径,若省略目录名称则切换至主目录
pwd命令
格式:pwd
效果:查看当前工作目录完整路径
ls命令
格式:ls [选项] [文件或目录]
效果:列出目录内容,包括文件和子目录名称
-a或--all:列出目录下所有文件和目录,包括隐含文件
-A或--almost-all:列出 除当前目录和当前目录的上级目录外 的任何文件和目录
-b或--escape:将文件名中不可输出的字符用反斜杠加字符编号的形式列出
-c:输出文件最后更改的时间(ctime),并根据ctime排序
-C:分成多列显示文件和目录
-F或--classify:加上文件类型的指示符,“*”可执行的普通文件,“/”目录,“@”符号链接,“|”管道文件,“=”套接字
-d或--directory:将目录像文件一样显示,而不是显示其下的文件
-l:列出文件详细信息
创建和删除目录
mkdir命令
rmdir命令
mkdir命令
格式:mkdir [选项] 目录名
效果:创建由目录名命名的目录,且设置该目录的权限(用户必须有写权限,且目录名不可重名)
-m或--mode=MODE:对新建目录设置存取权限
-p或--parents:若新建目录不存在上层目录,则一并新建
rmdir命令
格式:rmdir [选项] 目录名
效果:从目录中删除一个或多个目录(删除时必须对其父目录有写权限,目录被删除前应是空目录)
--p或--parents:删除目录后,若其上层目录为空,则一并删除
注:以下均为改变文件或目录存取权限命令
改变文件或目录存取权限
改变文件或目录存取权限
chmod命令
格式:chmod [who] [opt] [mode] 文件或目录名
效果:改变文件或目录的访问权限。
who表示对象
u:文件所有者 g:同组用户 o:其他用户 a:所有用户
opt表示操作
+: 添加权限 -:取消权限 =: 赋予给定权限,并取消原有权限
mode表示权限
r:可读 w:可写 x:可执行
数字设定
格式:chmod [mode] 文件或目录名
效果:将rwx视为二进制数,1表示有权限,0表示无权限
例子:rwx rw- rw- 111 110 110
rw- r-- r-- 110 100 100
注:以下均为改变用户组和文件主命令
改变用户组和文件主
改变用户组和文件主
chgrp命令
格式:chgrp [选项] 所属组 文件或目录
效果:改变文件所属的用户组。Linux下一般只有超级用户能改变该文件的属组
-R或--recursive:递归改变指定目录及其下的子目录和文件的属组
chown命令
格式:chown [选项] [用户] [组] 文件
效果:将文件拥有者改为指定的用户或组。linux下需要超级用户
-R或--recursive:递归改变指定目录及其下的子目录和文件的拥有者
注:以下均为链接文件命令
链接文件
链接文件
链接:一种在共享文件和访问它的用户的若干项之间建立联系的方法
Linux下分为硬链接Hard Link和软链接Symbolic Link
硬链接:通过索引节点进行,可通过命令让多个文件名指向同一索引节点,使得一个文件具有不同文件名。但,不允许给目录创建硬链接,只有在同一文件系统中的文件之间才能创建硬链接。索引节点会随着文件移动文做出相应改变
软链接:也称符号链接,允许给目录创建链接,允许链接不同文件系统的文件。但,需要系统分配额外空间用以建立新的索引节点和保存原文件的路径。链接文件包含源文件路径信息,当原文件移动到其他目录时,再访问链接文件,会找不到原文件。
硬链接VS软链接
(1)硬链接的原文件与链接文件共用inode号,是同一文件。软链接的原文件和链接文件不同inode号,是两个文件
(2)硬链接文件和原文件是完全平等,原文件是普通文件,硬链接也是普通文件。软链接明确标识链接文件,其文件类型的字符处为“|”
(3)硬链接链接数目要增加,软链接不增加。
(4)硬链接文件大小与原文件相同,软链接文件不同
(5)硬链接具有自己的文件名,软链接的文件名指向链接原文件
ln命令
格式:ln [选项] 原文件或目录 目标文件或目录
效果:链接文件或目录
-s:对源文件建立软链接