Linux常用命令(文件命令)

来源:互联网 发布:售价金额和算法 编辑:程序博客网 时间:2024/06/15 20:58

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

例:

ls x* | moremore /yusa/yusa.txt

 

less

/usr/bin目录下

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

less [文件名]

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

既可。

 

head

显示指定文件的前若干行

head [-n] 文件

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

 

tail

查看文件尾部

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

+num从num行以后开始显示,默认值是10-num从距文件尾num行开始显示,默认值是10l以文本行为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是目录时,递归作用到各个文件和目录上
    原创粉丝点击