• linux常用命令


    一、压缩解压命令

      Linux最基本的就算是对文件的压缩和解压操作了吧,现简单整理下常用命令:

      1.tar命令(涉及后缀.tar  .tar.gz  .tgz)

        压缩单文件夹:tar czvf FileName.tar DirName

        压缩多文件夹:tar zcvf FileName.tar.gz DirName1 DirName2 DirName3 ...

        解压文件:tar zxvf FileName.tar

       2.gz命令(涉及后缀  .gz)

        压缩:gzip FileName

        解压1:gunzip FileName.gz

        解压2:gzip -d FileName.gz

      3.zip命令(涉及后缀 .zip)

        压缩:zip FileName.zip DirName

        解压:unzip FileName.zip

    二、向文件行首或行尾加入固定字符

      1.向行首加入固定字符 :sed -i 's/(^)/字符/g'  file.txt

      2.行首固定长度(一个点的长度为1)的字符替换成固定字符: sed -i 's/(^.)/字符/g'  file.txt

      3.向行尾加入固定字符 :sed -i 's/($)/字符/g'  file.txt

      4.行尾固定长度(一个点的长度为1)的字符替换成固定字符: sed -i 's/(.$)/字符/g'  file.txt

      5.文本替换: sed -i 's/替换前字符/替换后字符/g'  file.txt

      6.linux下还有一种常用分隔符,在Windows中不可见,如^M,是用ctrl+V+M打出来,其他符号同理类推。

      7.删除文件第一行数据,特别适合文件特别大,不适合vim打开的操作。sed -i '1d' filename

    三、文件拼接

      paste

    四、文件切分

      split       文本内容切分 cut

    五、文件合成

      将一个文件夹中的文件都写入一个文件中去:find -name "*.txt" -exec 'cat' {} ; > test.tmp

        将一个文件A中包含的文件B中的内容全部去除(B文件内容较少的情况):cat fileA | egrep -v "`cat fileB`" > c

    六、排序

      sort

      1.按照文件制定的某一列排序,-t,需特别注意的是,制表符不能用 直接切分,需要利用如下的方式进行分隔:

        1.1 sort  -t $' ' -k1 -g -r test> test_sort

        1.2 sort -t'<ctrl>v<tab>' -k1 -g -r test> test_sort    注:<ctrl>v<tab>代表先同时按下Ctrl和v键,然后松开,按下tab键  

       2 .sort + uniq 可以统计文本中每行内容出现的次数(uniq -c),同时也可去重。

    七、查看工具的安装路径

      which

      eg.which python即可查看Python的安装路径

    八、后台操作

      screen ( 与nohup异曲同工 )

      1. detach窗口:ctrl+a+d

      2. 恢复:screen -r

      3. 杀死:ctrl+a+k(测试貌似没什么反应,exit即可)

    九、for循环 

    for i in {3..8..2}
      do
         #time=`date +'%Y%m%d' -d "$i day ago"`  #i天前的日期
         #cat 'data/'$time'_result' >> testFile
         echo $i
     done

    #> file  #新建一个文件

      i 的取值范围{3..8..2}中,3表示开始的位置,8表示结束的位置,2为步长。    

      

       2.另一种表达方式

      

    for i in {0..10..1}
      do
         #time=`date +'%Y%m%d' -d "$i day ago"`
         #cat 'data/'$time'_result' >> testFile
         echo "i:"$i
         #m=10
         p=$(expr 10 - $i)
         echo "p:"$p
         #for j in {0..${p}..1}
         for((j=0;j<=${p};j++))
           do
              echo "j:"$j
              k=$(expr 10 - $i - $j)
              echo $i"_"$j"_"$k
           done
     done
    

      

      

      

    十、神器

      1.AWK

        1.1行切分,列之间以 "^A"分隔符进行切分,取第27列。(此命令中$0表示这行数据本身)

          cat test | awk -F "^A" '{print $27}' >> test.out

        1.2列选择,常见的就是训练集和测试集的划分啦。

          awk  '{if(NR%10==0){print $0}}' file > test

          awk  '{if(NR%10!=0){print $0}}' file > train

         1.3 计算平均

          awk '{sum+=$1} END {print "Average = ", sum/NR}'

         1.4 截取指定区间    

          awk 'BEGIN{FS="[= ]"}{for(i=1;i<=NF;i++)if($i=="{DSSM_ID")print $(i+1)}' > test

         1.5 保留小数点后指定位数

          awk  '{printf "%.2f ", $1}'  test 

      2.SED

      3.GREP

        3.1 egrep

          egrep 是筛选出满足条件的行,egrep -v就是剔除满足条件的行,|表示或,满足其中之一即可。

          3.2 统计一段文本中指定字符的个数

          grep -o 'haha' file | wc -l  

          附:awk -v RS='haha' 'END {print --NR}' file 也可以,亲测有效 

          -v 去设定一个变量的值,RS是记录的分隔符,默认的是新行( ),就是说awk按照一行一行读数据,但是现在RS为'haha'后,就按'haha'读数据了,NR为已读的记录数,n个记录是被n-1个分隔符分开的,所以就是--NR了

    十一、查看剩余空间

      1.du 

       du -ah --max-depth=1     这个是我想要的结果  a表示显示目录下所有的文件和文件夹(不含子目录),h表示以人类能看懂的方式,max-depth表示目录的深度。

       

      du常用的选项:
      -h:以人类可读的方式显示
      -a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小
      -s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小
      -c:显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和
      --apparent-size:显示目录或文件自身的大小
      -l :统计硬链接占用磁盘空间的大小
      -L:统计符号链接所指向的文件占用的磁盘空间大小
     

      2. df

       df -hl 常用命令

        

    【reference】

      1.http://blog.csdn.net/zhoubl668/article/details/44341447

  • 相关阅读:
    BZOJ3672/UOJ7 [Noi2014]购票
    POJ3718 Facer's Chocolate Dream
    BZOJ1453:[WC]Dface双面棋盘
    BZOJ2957:楼房重建
    AtCoder Grand Contest 009 D:Uninity
    BZOJ2877:[NOI2012]魔幻棋盘
    BZOJ3065:带插入区间K小值
    BZOJ3489:A simple rmq problem
    浅谈主席树
    AtCoder Regular Contest 080 E:Young Maids
  • 原文地址:https://www.cnblogs.com/zidiancao/p/5567785.html
Copyright © 2020-2023  润新知