• 测试开发面试准备之Linux -常用Linux系统命令(二)


    1.文件管理

    cat -n

    diff log2014.log log2013.log

    chmod ugo-r file

    file命令用于辨识文件类型 file -i install.log

    find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

    # find /var/log -type f -mtime +7 -ok rm {} ;

    cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。

    $ who|cut -b 3
    c
    who | cut -d 4

    less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

    locate命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。

    locate与find 不同: find 是去硬盘找,locate 只在/var/lib/slocate资料库中找。

    locate的速度比find快,它并不是真的查找,而是查数据库,一般文件数据库在/var/lib/slocate/slocate.db中,所以locate的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为:

    locate -u 

    一般情况我们只需要输入 locate your_file_name 即可查找指定文件。

    rcp命令用于复制远程文件或目录。rcp指令用在远端复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。

    tee命令用于读取标准输入的数据,并将其内容输出成文件。

    tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。

    whereis命令用于查找文件。

    该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。

    该指令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令。

    scp命令用于Linux之间复制文件和目录。

    scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。

    AWK

    2、文档编辑

    wc命令用于计算字数。

    利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。

    wc将计算指定文件的行数、字数,以及字节数。
    • -c或--bytes或--chars 只显示Bytes数。
    • -l或--lines 只显示行数。
    • -w或--words 只显示字数。
    • --help 在线帮助。
    • --version 显示版本信息。

    uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。

    uniq 可检查文本文件中重复出现的行列。

    uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--help][--version][输入文件][输出文件]

    参数

    • -c或--count 在每列旁边显示该行重复出现的次数。
    • -d或--repeated 仅显示重复出现的行列。
    • -f<栏位>或--skip-fields=<栏位> 忽略比较指定的栏位。
    • -s<字符位置>或--skip-chars=<字符位置> 忽略比较指定的字符。
    • -u或--unique 仅显示出一次的行列。
    • -w<字符位置>或--check-chars=<字符位置> 指定要比较的字符。
    • --help 显示帮助。
    • --version 显示版本信息。
    • [输入文件] 指定已排序好的文本文件。如果不指定此项,则从标准读取数据;
    • [输出文件] 指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)。

    实例

    文件testfile中第 2、3、5、6、7、9行为相同的行,使用 uniq 命令删除重复的行,可使用以下命令:

    uniq testfile 

    testfile中的原有内容为:

    $ cat testfile      #原有内容  
    test 30  
    test 30  
    test 30  
    Hello 95  
    Hello 95  
    Hello 95  
    Hello 95  
    Linux 85  
    Linux 85

    使用uniq 命令删除重复的行后,有如下输出结果:

    $ uniq testfile     #删除重复行后的内容  
    test 30  
    Hello 95  
    Linux 85

    检查文件并删除文件中重复出现的行,并在行首显示该行重复出现的次数。使用如下命令:

    uniq -c testfile 

    结果输出如下:

    $ uniq -c testfile      #删除重复行后的内容  
    3 test 30             #前面的数字的意义为该行共出现了3次  
    4 Hello 95            #前面的数字的意义为该行共出现了4次  
    2 Linux 85            #前面的数字的意义为该行共出现了2次 

    当重复的行并不相邻时,uniq 命令是不起作用的,即若文件内容为以下时,uniq 命令不起作用:

    $ cat testfile1      # 原有内容 
    test 30  
    Hello 95  
    Linux 85 
    test 30  
    Hello 95  
    Linux 85 
    test 30  
    Hello 95  
    Linux 85

    这时我们就可以使用 sort:

    $ sort  testfile1 | uniq
    Hello 95  
    Linux 85 
    test 30

    统计各行在文件中出现的次数:

    $ sort testfile1 | uniq -c
       3 Hello 95  
       3 Linux 85 
       3 test 30

    在文件中找出重复的行:

    $ sort testfile1 | uniq -d
    Hello 95  
    Linux 85 
    test 30
    sort命令用于将文本文件内容加以排序。

    sort可针对文本文件的内容,以行为单位来排序。

    语法

    sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件]

    参数说明

    • -b 忽略每行前面开始出的空格字符。
    • -c 检查文件是否已经按照顺序排序。
    • -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
    • -f 排序时,将小写字母视为大写字母。
    • -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
    • -m 将几个排序好的文件进行合并。
    • -M 将前面3个字母依照月份的缩写进行排序。
    • -n 依照数值的大小排序。
    • -o<输出文件> 将排序后的结果存入指定的文件。
    • -r 以相反的顺序来排序。
    • -t<分隔字符> 指定排序时所用的栏位分隔字符。
    • +<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
    • --help 显示帮助。
    • --version 显示版本信息。

    实例

    在使用sort命令以默认的式对文件的行进行排序,使用的命令如下:

    sort testfile 

    sort 命令将以默认的方式将文本文件的第一列以ASCII 码的次序排列,并将结果输出到标准输出。

    使用 cat命令显示testfile文件可知其原有的排序如下:

    $ cat testfile      #testfile文件原有排序  
    test 30  
    Hello 95  
    Linux 85

    使用sort命令重排后的结果如下:

    $ sort testfile #重排结果  
    Hello 95  
    Linux 85  
    test 30


  • 相关阅读:
    Codeforces Round #388(div 2)
    Codeforces Round #387(div 2)
    Codeforces Round #386(div 2)
    Codeforces Round #385(div 2)
    Codeforces Round #384(div 2)
    Wannafly Union Goodbye 2016
    写在2016的最后一天——给未来的自己
    2016HDU校赛
    2016BUAA校赛决赛
    codevs 1344 模拟退火
  • 原文地址:https://www.cnblogs.com/william126/p/10887372.html
Copyright © 2020-2023  润新知