常用shell命令

1、显示文件大小命令

hadoop fs -du -h hdfs://./type11/     #显示该文件夹type11 下面所有文件的大小 ,自动给出最合适的单位,比如t,G等 比如:

642.7 G 1.9 T hdfs://./20161228
640.7 G 1.9 T hdfs://./20161229
656.0 G 1.9 T hdfs://./20161230

hadoop fs -du -s hdfs://./type11/  #显示该文件夹总的大小  但是不是自动调节大小的 ,返回:

195226540263591  585679620790773  hdfs://./type11

2、查看文件夹大小

统计总数大小
du -sh xmldb/
du -sm * | sort -n //统计当前目录大小 并安大小 排序
du -sk * | sort -n
du -sk * | grep guojf //看一个人的大小
du -m | cut -d "/" -f 2 //看第二个/ 字符前的文字
查看此文件夹有多少文件 * 有多少文件
du xmldb/
du xmldb* |wc -l
40752
解释:
wc [-lmw]
参数说明:
-l :多少行
-m:多少字符

-w:多少字

3、分隔文件

有系统运维的过程中,日志文件往往非常大,这样就要求对日志文件进行分割,在此特用shell脚本对文件进行分割
 
方法一:
 #!/bin/bash   
    
  linenum=`wc   -l   httperr8007.log|   awk   '{print   $1}'`   
  n1=1   
  file=1   
  while   [   $n1   -lt   $linenum   ]   
  do   
                  n2=`expr   $n1   +   999`   
                  sed   -n   "${n1},   ${n2}p"   httperr8007.log >   file_$file.log     
                  n1=`expr   $n2   +   1`   
                  file=`expr   $file   +   1`   
  done   
 
 其中httperr8007.log为你想分割的大文件,file_$file.log  为分割后的文件,最后为file_1.log,file_2.log,file_3.log……,分割完后的每个文件只有1000行(参数可以自己设置)
 
方法二:
split 参数:
-b  :后面可接欲分割成的档案大小,可加单位,例如 b, k, m 等;
-l  :以行数来进行分割;
 
#按每个文件1000行来分割除
split -l 1000 httperr8007.log httperr
 
httpaa,httpab,httpac ........
 
#按照每个文件100K来分割
split -b 100k httperr8007.log http
 
httpaa,httpab,httpac ........
 
三、一个文件夹下面有很多相似命名的文件 如:2017* , 要压缩一下
zip name.zip 2017* ;
 
或者  zip -r name.zip 把整个文件夹文件全部压缩了
 zip -r name.zip ./*
 
 
 
  • tar命令

      解包:tar zxvf FileName.tar

      打包:tar czvf FileName.tar DirName

  • gz命令

      解压1:gunzip FileName.gz

      解压2:gzip -d FileName.gz

      压缩:gzip FileName

      .tar.gz 和 .tgz

      解压:tar zxvf FileName.tar.gz

      压缩:tar zcvf FileName.tar.gz DirNam

原文地址:https://www.cnblogs.com/zhangbojiangfeng/p/6392547.html