Linux系统的文件操作命令:目录的显示、添加、修改、删除、查找、复制、修改等常用命令及操作方法。
Shell命令 Shell命令的一般格式:命令 [选项] [参数]
注意:
选项的字母以减号“-”开头,少部分选项是以“- -”ls - -help
开头,可以多个选项组合一起使用; 有些命令对参数的数目有明确规定;
Linux 系统严格区 分天小写:所以命令、选项和参数的 大小写一定要注意。
Shell常用的简单命令 下面主要编程一些Shell常用命令,
这些命令可以带选项和参数,也可以只是命令
文件查看创建:ls cat touch mkdir | 日期:date |
cal | head |
uname | more |
clear wc | Pwd Who |
1、cd命令 cd命令主要功能改变工作目录,目录的表示可以是相对路径名或绝对路径名。
其命令格式: cd [选项] <目录名>
命令选项 | 说明 |
“.” | 代表当前目录 |
“..” | 代表当前目录的父目录 |
“/” | 代表根目录 |
“~” | 表示当前用户的主目录,与不带任何参数的形式效果一致 |
命令示例:
cd directory1 #切换到directory1目录
cd .. #返回上一层目录(cd . ???)
cd ../directory1 #切换到上级目录下的directory1下
cd #切换到个人主目录下
cd ~ #切换到个人主目录下
2、ls命令:主要使用来显示指定目录中的文件或子目录信息。
格式为:ls [选项] [目录|文件], ls命令的选项意义
命令选项 | 说明 |
-a | 列出指定目录下所有文件和子目录的信息(包括隐含文件) |
-A | 同a,但不列出“.”和“..” |
-b | 当文件名中有不可显示的字符时,将显示该字符的八进制数字 |
-c | 按文件的状态时间排序输出文件目录内容,排序依据是索引节点ctime,即属性更改时间 |
-C | 分成多列显示 |
-d | 显示目录名而不是显示目录下的内容,一般与-l连用 |
-F | 在列出的文件名后加上符号来区别不同类型 |
-R | 递归地显示指定目录的各级子目录中的文件 |
-s | 给出每个目录项所用的块数,包括何接块 |
-t | 按最后修改时间措序,即内容修改时间(新的在前,旧的在后) |
-l | 以长格式显示文件的详细信息 |
说明如下。 ●-F: 在列出的文件名后加上符号来区别不同类型,符号和它们表示意义如下。
/:表示一个目录名。
*:表示一个可执行文件。
@:表示一个符号链接文件。
|:表示管道文件。 =: 表示socket文件。
隐藏文件显示
说明如下。
● 以长格式显示文件的详细信息,包括:文件的类型与权限、链接数、文 件所有者、文件所有者所属的组、文件大小、最近修改时间、文件名。其 中文件类型与权限由10列组成,可分为两部分,如图所示。
第一列定义文件类型,第2~10列定义文件权限: r表示读; w表示写: x表示执行。 例如,图中显示的root目录下的第一个文件 file1的基本属性信息如下: 文件的类型与权限值为“-rw-r--r--”,说明该文件是普通文件;权限为“-rw-r--r--”; 文件链接数是1;文件所有者为root;文件所有者所属的组是root;文件大小为1069 byte;最 近修改时间3月18日23:06,文件名为anacona-ks.cfg。
3、touch 命令
touch 命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
其命令格式:
touch [选项] <文件名> 选项说明:
a 改变档案的读取时间记录。
m 改变档案的修改时间记录。
c 假如目的档案不存在,不会建立新的档案。
f 不使用,是为了与其他 unix 系统的相容性而保留。
r 使用参考档的时间记录,与 --file 的效果一样。
d 设定时间与日期,可以使用各种不同的格式。
t 设定档案的时间记录,格式与 date 指令相同。 --version 列出版本讯息。
4、mkdir命令 mkdir命令功能是创建目录。
其命令格式: mkdir [选项] <目录名>
命令选项 | 说明 |
-m 数字 | 用m后的数字设置新建的目录的权限 |
-p | 如果目录名中的路径中包含着不存在的子目录,那么就逐一的建立, 直到最后的子目录为止 |
说明:在某个目录下创建它的子目录:目录名前面如果没有路径名,则表示在当前目录下创建;如果有路径名,就在指定的路径下建立。新建的子目录必须不能和已经存在的文件名或目录名重名。
例如,在/root目录下创建dtest,并/root/dtest 目录下创建test1和test2(第三步那?) 方法1 :输入下面命令:
例如,在/root目录下创建dtest,并/root/dtest 目录下创建test1和test2 方法2 :输入下面命令:
此命令的含义:mkdir -p dtest/test2 dtest/test3
5、cal命令:主要用来显示日历,它所显示的日历是公元1- 9999年中的任意一CL个年份的任意一个月份的日历。
格式为:cal [月份] [年份]
注意:默认月份和年份就直接显示当前年份对应月份的日历;年份必须是4位(2019,不可只写19),月份可以一位也可以两位(如,5或05)。
6、cat命令:用来显示指定文本文件的内容。
格式为:cat [选项] 文件列表
-n 表示在每一行前显示行号
命令选项 | 说明 |
-b | 在非空白文本内容的行前显示行号 |
-E | 在显示的文本内容的每行的最后加上“$”符号 |
-n | 在显示的文本内容的每行的前面加上符号(包括空白文本),编号从1开始递增 |
-s | 如果文件中有多个连续空白行,则显示只以一行表示 |
-T | 将文中的跳格(Tab)以“^I”表示 |
-v | 控制字符以“^”表示(除跳格和换行字符除外),ASCII 码值大于127的扩展字符用M-表示 |
cat命令:用来显示指定文本文件的内容。
格式为:cat [选项] 文件列表
-n 表示在每一行前显示行号
7、clear命令:用来清屏
格式为:clear
8、date命令:用来显示当前系统的时间或修改当前系统的时 间。
格式为:date [MMDDhhmm[YYYY]]
DA
date显示当前系统时间,其显示顺序为星期、月份、 日期、时、分、秒和年份 date MMDDhhmm[YYYY]: 修改当前系统时间,年份4位可省略,其余参数顺序为月份、日期、时和分为两位,不足补0,若修改系统时间需要是管理员身份,普通用示户没有此权限。
9、head命令:
1)用来显示指定文本文件的开头部分内容,默认显示文 本文件的前10行。
格式为:head [选项] 文件
2)也可以利用选项来指定显示的行数。
格式为:head -n 数字
注意: 与head命令功能相似的还有一个命令 tail,该命令主要是显示文本文件后面部分,默认显示后10行,其使用格式与head一样。
10、pwd命令:用来显示的当前工作的全路径名,该命令不带参数。
其命令格式: pwd 说明:通过使用该命令,用户可以随时查看当前所在工作目录。
例如,显示当前的工作目录,如图所示。
11、uname命令:查看当前操作系统的信息.
格式为:uname [选项] 常用选项如下(可组合)
●-r:显示发行版本号。
●-m:显示所用机器类型。
●-i:显示所需硬件平台。
●-v:显示操作系统版本
12、wc命令:用来统计给定文件的行数、字数和字符数.
格式为:wc [选项] 文件名 常用选项如下。
-l: 选项统计行数。
-w: 选项统计字数。
-c: 选项统计字节数。
例如:wc -lwc liyueying,统计文本文件liyueying 中的文本行数、字数以及字节数
Shell的在线帮助命令
1、在线帮助命令(man):该命令可以查找到指定命令的 语法结构、主要功能、主要选项等信息。 格式为:man 命令名
2、使用选项“- -help”提供某一命令的帮助信息查看, 由于不是所有的命令都有help选项,所以在使用时需要略加 注意。
格式为:命令名 - -help( 结合习惯使用频率高)
3、info和whatis等命令也可以进行一些命令信息的查看 。
格式为:
1)info:info 命令名
2)whatis:whatis 命令名
说明: 1) 该命令一次显示一屏,若信息未显示完屏幕底部出现: -More–(xx%)
2) 按Space, 显示下一屏内容;
按(Enter)键,显示下一行内容; 按(b)键显示上一屏;
按(q/Q)键退出more命令;
输入“/+字符串”,可在文本中寻找一个匹配字符串。
文件复制、删除及移动命令
1、cp 命令
2、rm 命令
3、mv 命令
1、cp 命令 CP命令主要功能是完成文件、目录复制操作。
其格式: cp [选项] <源文件|目录> <目标文件|目录>
命令选项 | 说明 |
-a | 该选项常在复制目录时使用,它保留链接、文件属性,并递归地复制目录 |
-f | 如果目标文件或目录已存在,就覆盖它,并且不做提示 |
-i | 与f选项正好相反,它在覆盖时,会让用户回答“Y”来确认 |
-r | 若给出的源是一个目录,那么cp 将递归复制该目录下所有的子目录和文件,不过这要求目标也是一个目录名 |
说明:若原文件是普通文件,直接复制到目标文件;
若是目录,需要使用“-r”将整个 目录复制到目标位置。
cp命令示例:
cp file1 file2 #将文件 file1复制到文件file2中,文件将覆盖原有文件
cp ./* direcotory1 #将当前目录下的所有文件 (不包含目录)复制到direcotory1中
cp -r direcotory 1 direcotory 2 #将目录direcotory 1及其子目录复制到目录
direcotory2中
cp –f file1 file2 #文件将覆 盖原有文件,且不发出提示信息
注意: cp命令复制一个文件, 源文件保持不变。
例1,实现file1文件的内容复制到文件file2 中,如图所示。
可以使用cat命令显示file1、 file2 文件原来的内容
然后执行“cp file1 file2” 命令,
显示文件file2的内容,可以看到file2的内容已经完全被覆盖。
例2:将目录shell中的文件file1 ,file2复制到当前目录(/root)中。
例3: cp ./* d2 #将当前目录下的所有文件 (不包含目录)复制到目录d2中。
例4:cp -r d1 d2 #将目录d1及其子目录复制到目录d2中。
2、rm 命令 rm命令主要功能是删除文件、目录。删除一个目录中的一个或多 个文件或目录, 也可删除某个目录及其下面的所有文件和子目录。
其命令格式: rm [选项]<文件名|目录名>
命令选项 | 说明 |
-d | 删除非空目录(只限超级用户) |
-f | 强制删除文件或目录已存在 |
-i | 与f选项正好相反,它在删除时,会让用户回答“Y”来确认 |
-r 或-R | 指示rm将参数中列出的全部目录和子目录都递归地删除 |
说明:如果用rm删除目录一定使用-r 或-R选项。 rm -r *
mv 命令
mv命令的主要功能是移动文件或目录,
其命令格式:mv [选项] <源文件|目录> <目标文件|目录>
命令选项 | 说明 |
-f | 如果操作要覆盖某已有的目标文件时不给任何指示 |
-i | 与f选项正好相反,它在移动并覆盖时,会让用户回答“y”来确认 |
说明:
1)移动文件或目录时,如果目标目录不存在,则系统自动建立。
2)如果更名后的新文件名已经存在,则将新文件名的扩展名末尾加上 “bak",例如,更名后的新文件名是“ok.txt” 则需更名为“ok.txtbak"。
命令示例:
mv file1 file2 #将源文件名 file1改为目标文件名file2
mv file1 directoryl #将文件file1移动到目标目录directory1
mv directory1 directory2 #目标目录已存在:源目录directory1移动到目标目录directoy2
mv directory1 d1 #目标目录不存在:改名
示例:将源文件名 file1改为目标文件名file3
示例:将文件file1分别移动到目标目录d1和d2
示例:将目录d3 移动到目标目录d1
示例:将目录d4 移动到目标目录d5(d5不存在)
注意:mv文件移动但文件个数没增加,cp文件复制,文件个数增加。
TAR的软件包管理
TAR包的含义:在Linux中TAR包的作用是文件、数据备份,使用tar 命令把系统中需要备份的数据打包归档为一个文件,经过tar 命令处理后文件的扩展名为“.tar”或“.tar.gz",前者表示非压缩包,后者表示经过压缩的包文件。
tar [选项] <TAR包名> <文件或目录名>
tar命令选项如表所示
命令选项 | 说明 |
-z | 表示使用 “gzip”程序进行文件压缩, 解压缩 |
-c | 表示建立一个新的tar包 |
-v | 表示执行命令时有更多提示信息 |
-f | 表示指定tar包的文件名 |
-t | 显示 tar文件内容 |
-x | 表示释放(extract),即从tar文件中取由文件 |
(1) 建立TAR包 建立TAR包有两种方式:一种是只打包,不压缩;另一种是打包并压缩。其 命令格式: tar [-zcvf] <TAR包名> <文件或目录名>
注意:若建立TAR包为非压缩的TAR包则不需用参数“-z”。
“-z”使用 “gzip”“程序进行文件压缩。
(2)查询TAR包 在释放TAR包之前,查看TAR包中的文件内容。
其格式:tar [-ztf] <TAR包名>
(3) 释放TAR包
释放分为 解非压缩和压缩包两种方式,
命令格式: tar [-xzvf] <TAR包名>
注意: 若释放TAR包为非压缩的TAR包,则不需用参数“-z”;默认释放的路径是当前文件的路径。
4. gzip命令
gzip的命令格式:
gzip [选项] <TAR包名> <文件或目录名>
gzip命令的功能是对tar包文件进行压缩或解压缩。
gzip命令选项如下表所示。
命令选项 | 说明 |
-z | 表示使用 “gzip”程序进行文件压缩。 |
-c | 表示文件输出到标准设备上,并保留原文件 |
-d | 表示进行解压缩操作 |
-v | 表示执行命令时有更多提示信息 |
-f | 强制压缩文件,包括链接文件 |
注意:经过gzip命令压缩的文件扩展名.gz,压缩后原文件被删,如果选项为 “-d”表示进行文件的解压缩操作。
例如:已知/home/linux /test中有文件f1、f2,现使用tar命令将test中的文 件归档生成remark.tar,并用gzip压缩生成remark.tar.gz,过程如图所 示:在执行上述操作后,再使用上述命令,更换选项进行文件的释放还原,如 图所示。
打包压缩
解压解包
Linux的文件检索、排序命令 (扩展)
文件的检索操作是为了方便用户检索文件和目录,用户只需要知 道文件和目录的名称,甚至只知道文件和目录的名称的几个字符就可 以检索到文件、目录及其所在位置;而排序可以使文件按照用户的要 求有规则地组织文件的内容,从而满足用户需求。
1、find 命令
其格式: find [目录] [选项] [操作]
命令选项 | 说明 |
-name’字符串’ | 查找文件名中包含所给字符串的所有文件 |
-user’用户名’ | 查找属于指定用户的文件 |
-group’用户组名’ | 查找属于指定用户组的文件 |
-type x | 查找类型为x的文件,x可以是以下几种类型文件:b块设备文件;c字符设备文件; d目录文件; p命名管道文件;f普通文件; l 符号链接文件; s socket文件 |
-atime n | 查找n天以前访问过的文件 |
-size n(c) | 查找文件大小为n块,若带c按字符(字节)计算 |
说明:
1)命令中的如果有目录表示从该目录起遍历其下所有的子目录,查找满足条件的文件 , 默认时表示当前目录。
2) 命令中的选项是一个逻辑表达式,当表达式为“真”时,搜索条件成立,为“假” 时不成立。
3) 操作如下。 -print #将查找到的文件或目录送往标准终端输出 -exec 命令名 { }\ ;#将查找到的 文件或目录按命令名给定的命令功能执行
4) 命令示例如下。
$ find ./ -name ‘*.txt’ -print #从当前目录查找所有以以结.txt结尾的文件并在
屏幕上显示出来。
$ find ./ -type l -exec rm {} \;#从根目录查找类型为符号链接文件的文件符号
链接文件的文件将其删除
$ find ./ -user ‘tom’ -print #从当前目录查找用户tom的所有文件并在屏幕上显示
$ find ./ -name “*.c” -size +20c -print #显示当前目录中大于20字节长的.c文件名
$ find ./ -atime 10 -print #显示当前目录中恰好10天前访问的文件名
例如,从 /root 目录查找类型为f的文件file1、file2 、file3并将其删除,如图
注意:上图命令-exec rm {} \; 中的“ {}”两侧有空格,{}代表找到的文件名。
两个实例的含义??
2、grep 命令
grep命令的功能是在文件中搜索指定的字符串模式,
其命令格式: grep [选项] [字符串] <文件名...>
命令选项 | 说明 |
-F | 查找字符串 |
-i | 要查找的字符串不区分字母的大小写 |
-r | 以递归方式查找目录下的所有子目录的文件 |
说明:该命令不仅仅是在文件中搜索指定的字符串,还要列出含有匹配 于模式的字符串的文件名,并输出含有该字符串的文本行。 例如,在file3中查找包含“om”的所有行,不管字符的大小写,如图 所示。
大小写区分
3、sort 命令
sort 命令的主要功能是逐行对文件中的所有行进行排序与合并, 并将结果 显示在屏幕。
其命令格式: sort [选项] <文件列表>
命令选项 | 说明 |
-m | 把已经排过序的文件列表合并成一个文件,并送往标准输出 |
-d | 按字典顺序排序,可比较的字符仅包含字母、数字、空格、制表符 |
-c | 检查给定的文件是否排过序 |
-r | 按降序排序,默认时是升序 |
-f | 忽略大小写 |
-n | 按数值进行排序 |
-k n | 指定每行按第几个字段(关键字)进行排序,n为第n个字段 |
说明:排序的依据是从输入文件的每一行提取的一个或多个排序关键字
进行的。排序关键字定义了用来排序的最小单位。
命令示例
sort file1 #对file1文件按每行第1个字符进行排序输出
sort filel file2 #对file1和file2两个文件合并起来进行排序输出
sort -r file1 #对file1文件按每行第1个字符进行反序排序输出
sort –r -o outf1 file1 #对filel 文件按每行第1个字符进行反序
排序输出给文件outf1
sort -n filel #对file1文件按每行第1个字段进行排序输出
sort -k 3 filel #对filel文件按每行第3个字段进行排序输出
例如,将已经存在的文件file3 先进行每行第1个字符排序,然后按每行 第3个字符进行排序显示排序结果,如图所示。
3、sort 命令
sort 命令的主要功能是逐行对文件中的所有行进行排序与合并, 并将结果 显示在屏幕。
其命令格式: sort [选项] <文件列表>
命令选项 | 说明 |
-m | 把已经排过序的文件列表合并成一个文件,并送往标准输出 |
-d | 按字典顺序排序,可比较的字符仅包含字母、数字、空格、制表符 |
-c | 检查给定的文件是否排过序 |
-r | 按降序排序,默认时是升序 |
-f | 忽略大小写 |
-n | 按数值进行排序 |
-k n | 指定每行按第几个字段(关键字)进行排序,n为第n个字段 |