shell常用技巧汇总

1、  shell如何判断某个文件路径是否存在

[XX]$ t=`hadoop fs -test -dhdfs://ns/user/hive/warehouse/database_name.db/hotelrankings_final_train/d='2017-05-25';echo$?`

[XX]$ echo $t

0

[XX]$ t=` hadoop fs -test -dhdfs://ns/user/hive/warehouse/database_name.db/hotelrankings_final_train/d='2019-05-25';echo$?`

[XX]$ echo $t

1

注:返回值为0,文件存在;返回值为1,文件不存在。

 

2、  shell如何查找某个文件

举例:查找yuanmin目录下main_function.py文件名的文件,并存入f.txt

find / -name main_function.py | grep yuanmin > f.txt

注:Permission denied 信息,不会出现在f.txt中


3、查看文件大小

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


4、  shell统计文件数据行数

语法:wc [选项] [文件1] [文件2]……[文件n]

参数:

- l 统计行数

- c 统计字节数。

- w 统计字数。

 

举例:一个目录下各文件数据统计

[XX]$ wc -lcw *

     87     139   2394 fishcode1.R

     86     139   2395 fishcode_final.R

  16799  100794 816534 Fishtrip_Data.csv

      2       1     23 myfun1.R

      2       2     41 myfun2.R

    667     667  36668 results0213.csv

   1540    6864 172788 产量预测趋势图(参考).pdf

  19183  108606 1030843 total


5、退出命令

(1)保存退出

w: write,退出

q: quit,退出

方法1:wq (错误的形式:Wq, WQ, wQ, 另外,单个的w, q均无法执行!)

方法2:在“命令模式: ”状态,直接输入"x",也是一样的,即x=wq(x小写)

方法3:在”一般模式ESC”下,按shift+zz,或者切换到大写模式按ZZ

(2)放弃修改退出

方法:“:q!”

(3):q命令 (很少用到)

系统退出Vi返回到shell,若在用此命令退出Vi时,编辑文档没有被保存,则Vi在显示窗口的最末行显示如下信息:

E37: No write since last change (add ! to override)

提示用户该文档被修改后没有保存,然后Vi并不退出,继续等待用户命令。

(4):w (很少用到)

Vi保存当前编辑文档,但并不退出,而是继续等待用户输入命令。在使用w命令时,能够再给编辑文档起一个新的文档名。

(5):w newfile

将修改后的文件,保存的文件newfile,执行完后,若用:wq,则原文件也保存退出;若:q!, 则原文件不发生修改。若newfile已经存在,则会提示: 13: File exists (add ! to override) , 可以用:w!newfile,替换原文档。

 

6、如何到行末和行首、上一行和下一行、上n行和下n行

在vi模式下,vi到行首按“0”;到行尾是$, 就是shift+4。


7、归档数据tar

虽然zip命令能够很好的将数压缩和归档到单个文件,但它不是Unix和Linux中的标准归档工具。目前,Unix和Linux上最广泛使用的归档工具是tar命令。

命令格式:

     tar function[options] object1 object2

function参数定义了tar命令应该做什么。

shell常用技巧汇总

shell常用技巧汇总

shell常用技巧汇总shell常用技巧汇总

举例:

1)创建一个含有test和test2目录内容的叫test.tar的归档文件。

tar –cvf test.tar test/ test2/ 

2)列出tar文件test.tar的内容,但并不解压文件

tar –tf test.tar

3) 从tar文件test.tar中提取内容。如果tar文件是从一个目录结构创建的,那整个目录结构都会在当前目录下重新创建。

4)下载开源软件,会经常看到文件名以.tgz结尾。这些是以gzip压缩过的tar文件,可以用命令tar–zxvf filename.tgz来解压。

 

8、压缩数据:gzip工具

shell常用技巧汇总



9、使用"kill"的语法

kill [信号或选项] PID(s)

默认信号(当没有指定的时候)是SIGTERM。当它不起作用时,你可以使用下面的命令来强制kill掉一个进程:

kill SIGKILL PID

或者

kill -9 PID

这里"-9"代表着SIGKILL信号。

 

不断更新中……