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命令应该做什么。
举例:
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工具
9、使用"kill"的语法
kill [信号或选项] PID(s)
默认信号(当没有指定的时候)是SIGTERM。当它不起作用时,你可以使用下面的命令来强制kill掉一个进程:
kill SIGKILL PID
或者
kill -9 PID
这里"-9"代表着SIGKILL信号。
不断更新中……