Linux常用命令(文件命令)

ln

ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化。

软连接

软连接:符号连接,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间。

ln –s 源文件 目标文件

硬连接

硬连接:原文件名和连接文件都指向相同的物理地址(目录不能有硬连接,硬连接不能跨越不同的分区)

由于删除文件要在同一个索引节点属于唯一的连接时才能成功,因此可以防止不必要的误删除。

ln 源文件 目标文件

语法

ln [-参数] source dist

-f 链结时先将与 dist 同档名的档案删除
-d允许系统管理者硬链结自己的目录
-i在删除与 dist 同档名的档案时先进行询问
-n在进行软连结时,将 dist 视为一般的档案
-s 进行软链结(symbolic link)
-v 在连结之前显示其档名
-b将在链结时会被覆写或删除的档案进行备份
-S SUFFIX将备份的档案都加上 SUFFIX 的字尾
-V METHOD指定备份的方式
--help显示辅助说明
--version显示版本

例:

ln -s yy zz将档案 yy 产生一个 symbolic link : zz

 

env

/usr/bin目录下

查看环境设定

例:

在PATH上增加一个/yusa/1,而把/yusa/2去掉(原:PATH=/usr/bin;/sbin;/yusa/2)

env PATH=/usr/bin;/sbin;/yusa/1

 

cat:显示或连接文件

/bin目录下

cat [-参数] 文件名称

参数:

-v用一种特殊形式显示控制字符,LFD和TAB除外
加了此参数后,-T和-E选项将起作用
-T将TAB展示为“UI”
-E在每行末尾显示一个$符
-u输出不经过缓冲区
-A等于 -vET
-t等于 -vT
-e等于 -vE

例:

cat a.txt展示a文件
cat a.txt | more分页显示文件
cat a.txt b.txt > c.txt连接两个文件
cat a.txt > b.txt把a文件内容copy到b文件
cat a.txt b.txt >> c.txt把a文件和b文件内容追加到c文件
cat > my.txt把键盘打人的字符存到my.txt文件中
ctrl+d结束

 

more

/bin目录下

分页显示一个文件或任何输出结果

more [-参数] [文件名]

参数:

-p显示下一屏之前先清屏
-c和-p一样
-d在每屏的底部出现友好提示
-l不处理(换页符)
如果没有此参数,则在显示一个包含字符串的行后暂停显示,等待命令
-s文件中连续的空白行压缩成一行

和more交互的命令

i空格若指定i,显示下面i行,否则显示下一屏
i输入键若指定i,显示下面i行,否则显示下一行
iz同“空格”,只是i将成为以下每个满屏的默认行数
is跳过下面i行,再显示一个整屏。默认值为1
if跳过下面i屏,再显示一个整屏。默认值为1
q或者Q退出more命令
=显示当前行号
v在当前行启动/usr/bin/vi对之进行编辑修改
h显示帮助命令
i/pattern查找匹配该模式的第i行。默认值为1
in查找符合运算式的倒数i行。默认值为1
! 或:!在子shell中执行命令
.重复上次输入的命令
i:n在命令行中指定了多个文件名的情况下,用此命令使之显示第i个文件。若i出界,则显示最后一个文件
i:p在命令行中指定了多个文件名的情况下,用此命令使之显示倒数第i个文件。若i出界,则显示第一个文件
i:f显示当前文件的文件名和行数

例:

ls x* | more
more /yusa/yusa.txt

 

less

/usr/bin目录下

分页显示一个文件并可以回头看

less [文件名]

操作:若需要在文件中往前移动,按键。若要移动到文件的百分比表示的位置,则指定一个0~100之间的数,并按

既可。

 

head

显示指定文件的前若干行

head [-n] 文件

n是前n行,如果没有给出n值,则默认10行。

 

tail

查看文件尾部

tail [+/- num] [参数] 文件

+num从num行以后开始显示,默认值是10
-num从距文件尾num行开始显示,默认值是10
l以文本行为num的计数单位
c以字节为num的计数单位

注:l和c可以省略,系统默认为l,以行计数。

 

od

查看特殊格式的文件内容。

od [-参数] 文件

- A 指定地址基数,包括:
d十进制
o八进制(系统默认值)
x十六进制
n不打印位移值
- t 指定数据的显示格式,主要的参数有:
cASCII字符或反斜杠序列
d 有符号十进制数
f 浮点数
o 八进制(系统默认值为02)
u 无符号十进制数
x十六进制数

除了选项c以外的其他选项后面都可以跟一个十进制数n,指定每个显示值所包含的字节数。
说明:od命令系统默认的显示方式是八进制,这也是该命令的名称由来(Octal Dump)。但这不是最有用的显示方式,用ASCII码和十六进制组合的方式能提供更有价值的信息输出。
例如:
$ od - Ax - tcx yusa.txt

 

whereis

/usr/bin目录下

寻找文件工具

whereis 文件名

例:

whereis php如果确认php是一个程序,没有找到的话,则代表系统没有安装php程序

 

find

/usr/bin目录下

寻找文件工具

语法:

find [寻找的目录] 查询条件 [操作]

寻找的目录缺省:则在当前目录下查找

查询条件:逻辑运算符

-a逻辑与(and),默认选项find –name main –xtype c –user yusa查询文件名为main的字符设备文件,拥有者为yusa
-o逻辑或(or)find –name main -o –name temp 
!逻辑非find ! –name temp 

查询条件:括号的使用

find / (-name main –xtype c –user yusa /)当使用很多逻辑时,可以用括号括起来,为了避免shell本身对括号引起的误解,需要加转义字符

查询条件:以名称和文件属性查找

-name 字符串查找名称为字符串的所有文件,字符串可以用*、?和[]
-lname 字符串查找名称为字符串的所有符号链接文件,字符串可以用*、?和[]
-gid n查找属于ID号为n的用户组的所有文件
-uid n查找属于ID号为n的用户的所有文件
-group 字符串查找属于组名为字符串的所有文件
-user 字符串查找属于用户名为字符串的所有文件
-empty查找大小为0的目录或者文件
-path 字符串查找路径名匹配字符串的所有文件,字符串可以用*、?和[]
-perm 许可权查找具有指定权限的文件和目录,权限表示可以如777
-size n[bckw]查找指定文件大小的文件,n后面的字符表示单位,默认b,代表512个字节块
-type x查找类型为x的文件,x为以下字符之一
b块设备文件
c字符设备文件
d目录文件
p管道文件(FIFO)
f普通文件
l符号链接文件(Symbolic links)
ssocket文件
-xtype x与-type基本相同,但之查找符号链接文件

查询条件:以时间为条件查找

-amin n查找n分钟前被访问过的所有文件
-atime n查找n天前被访问过的所有文件
-cmin n查找n分钟前文件状态被修改过的所有文件
-ctime n查找n天前文件状态被修改过的所有文件
-mmin n查找n分钟前文件内容被修改过的所有文件
-mtime n 查找n天前文件内容被修改过的所有文件

可执行的操作

-exec 命令名称 {}
  • 对符合条件的文件执行linux命令,而不询问用户是否需要执行该命令。
  • {}表示命令的参数即为找到的文件。
  • 命令的结尾必须尾/;结束。
-ok 命令名称 {}与-exec 命令名称 {}类似,不同点是询问用户是否需要执行该命令。
-ls详细列出所找到的所有文件
-fprintf 文件名将找到的文件名写入指定文件
-print在标准输出设备上显示查找的文件名
-printf 格式格式的写法参照C语言书

例:

find / –name my* -print从/目录开始查找以my开头的文件。print是显示出来的意思,把它当做固定加上的项目
find /yusa –atime 3 -print从/yusa目录开始往下找,找最近3天内存取过的文件
find /yusa –ctime 5 -print从/yusa目录开始往下找,找最近5天内修改过的文件
find /admin –user yusa –name 'j*' -print 从/admin目录开始往下找,找属于yusa的以j开头的文件
find /doc /( –name 'ja*' –o –name 'ma*' /) -print从/doc目录开始往下找,找ja或ma开头的文件
find /doc –name '*.bak' –exec rm {} /;从/doc目录开始往下找,找bak结尾的文件并删除。
-exec 执行命令的意思
-rm 删除命令
{} 表示文件名
/; 是规定的命令结束符
删除文件是不展示的,所以不用加-print

 

locate

/usr/bin目录下

寻找文件工具,比find命令搜索速度快,它需要一个资料库,这个资料库由每天的例行工作(crontab)程序来建立。

locate 文件名

例:

locate php

 

grep

/bin目录下

寻找某字符串内容工具

grep [-参数] [搜索模式] [文件1,文件2,……]

-n同时列出是出现在文件的第几行
-c计算一下该字符串出现的次数
-i比对的时候,忽略大小写的不同
-E每个模式作为一个扩展的正则运算式对待
-F每个模式作为一组固定字符串对待(以新行分隔),而不是作为正则运算式
-b在输出的每一行前显示包含匹配字符串的行在文件中的字节偏移量
-h在查找多个文件时,指示grep不要将文件名加入到输出之前
-l显示首次匹配串所在的文件名并用换行符将其隔开。当在某文件中多次出现匹配串时,不重复显示此文件名
-v只显示不包含匹配串的行
-x只显示整行严格匹配的行
-e expression指定检索的使用模式。用于防止以“-”开头的模式被解释为命令选项
-f expfile从expfile文件中获取要搜索的模式,一个模式占一行
  • 文件列表中也可以使用特殊符号,如*等用来生成文件名列表。
  • 如果搜索模式中含有空格,则可以用单引号把搜索模式括起来。

grep命令一次只能搜索一个指定模式。egrep命令检索扩展的正则表达式(包括运算式组和可选项)。fgrep命令检索固定字符串,它不识别正则表达式,是快速搜索的命令。

 

egrep

egrep [-参数] [查找模式] [文件1,文件2,……]

参数同grep

 

fgrep

fgrep [-参数] [查找模式] [文件1,文件2,……]

参数同grep

 

sort

对文件中各行进行排序,并将结果显示在标准输出上。

sort [-参数] 文件

-m若给定文件已经排序好,合并文件
-c检查给定的文件是否已经排序好,如没有,则错误提示,并以状态值1退出
-u对排序后认为相同的行只留其中一行
-o 输出文件将排序结果输出到文件中,如果输出文件是输入文件之一,sort先将该文件的内容写入一个暂存文件,然后再排序和写输出结果
-d按字典顺序排序。比较时仅字母、数字、空格和跳位字符有意义
-f将小写字母和大小字母同等对待
-I忽略非输出字符
-M作为月份比较   JAN
-r按逆序输出排序结果
+pos1-pos2指定一个或几个栏位作为排序关键字,栏位位置从pos1开始,到pos2为止(包括pos1,不包括pos2)。
如果不指定pos2,则关键字从pos1到行尾。
栏位和字符的位置从0开始
-b在每行中寻找排序关键字时忽略前导的空白(空格和跳位字符)。
-t separator指定字符separator作为栏位分隔符号。

 

uniq

使用sort排序后,可以使用此命令将从输出文件中删除,只留下每条记录的唯一样本。

uniq [-参数] 文件

-c显示输出中,在每行的行首加上本行在文件中出现的次数。它可取代-u和-d参数
-d只显示重复行
-u只显示文件中的不重复行
-n前n个栏位与每个栏位前的空白一起被忽略。一个栏位是一个非空格、非跳位字符的字串,彼此由跳位字符和空格隔开(栏位从0开始编号)
+n前n个字符被忽略,之前的字符被跳过(字符从0开始编号)
-fn与-n相同
-sn与+n相同

 

wc

wc [-参数] 文件……

-c统计字节数
-l统计行数
-w统计字数

 

comm

对两个有序文件进行比较。

comm [-123] file1 file2

comm读取这两个文件,然后生成三列输出:仅在file1中出现的行,仅在file2出现的行,在两个文件中都存在的行。

-12只显示在两个文件中都存在的行
-23只显示在第一个文件中出现而在第二个文件中未出现的行
-123什么也不显示

 

diff

比较两个文字文件,列出其不同之处。

diff [-参数] file1 file2

如果file1和file2是目录,则diff将使用该目录中的同名文件进行对比

diff /usr/yusa mine把目录/usr/yusa中名为mine的文件与当前目录的mine文件进行对比

输出形式

n1 a n3,n4

n1,n2 d n3

n1,n2 c n3,n4

n1,n2,n3,n4是行号
a,d,c前是file1的行号
a,d,c后是file2的行号
a代表add    d代表删除     c代表修改

在上述形式的每一行的后面跟随受到影响的若干行,以<打头的行属于第一个文件,以>打头的行属于第二个文件。

diff能区别块和字符设备文件以及FIFO(管道文件),不会把它们与普通文件进行比较。

-b忽略行尾的空格,而字符串中的一个或多个空白都视为相等
-c采用上下文输出格式(提供三行上下文)
-C n采用上下文输出格式(提供n行上下文)
-e产生一个合法的ed脚本作为输出
-r当file1和file2是目录时,递归作用到各个文件和目录上
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值