1.路径/文件显示
pwd:显示当前路径
cd ..:返回上一级路径
cd:返回最顶层路径
ls -a: 显示全部文件(包括隐藏文件)
ls –l(ll): 以列表方式显出文件: 包括权限(模式)、所有者、组群、大小、创建日期等
ls -s: 显示大小
ls *.sh:显示当前目录的某种后缀的文件
eg:结果:run.sh run_show.sh run_vtml_auc.sh run_vtml_show.sh
ls –lh:输出-rw-r–r– 1 ad ad 68M Sep 19 16:03 part-r-00067,大小那项会表示为M,K
2.编辑文件
vi/vim+文件名: 进入文件编辑模式
vi编辑器有3种模式:命令模式、输入模式、末行模式。
在命令模式中输入字幕“i”就可以进入vi的输入模式编辑文件。在命令模式输入“:”即可进入该模式
i: 转换为insert模式
q!: 退出不保存文件
wq!: 保存并退出文件
/:查找
gg:跳转到文件底端
shift+g:跳转到文件开头
dd:删除一行
set list:显示文件中的空格,\t等符号
:$+enter 跳到文件最后一行
:0或:1 +enter跳到文件第一行
复制,黏贴,删除,撤销,跳转等命令
1,复制
a,复制整行
命令模式下,光标位于要复制的当前行,输入 yy
b,复制一个单词
命令模式下,光标位于要复制的当前单词的第一个字母,输入 yw
2,黏贴
命令模式下,输入 p
3,删除
a,删除整行
命令模式下,光标位于要删除的所在行,输入 dd
b,删除一个单词
命令模式下,光标位于要删除的单词的第一个字母,输入 dw
4,撤销
命令模式下,输入 u
5,跳转
命令模式下,输入 要跳转的行数,然后再输入 gg
如:要跳转到当前文件的第150行,输入 150gg、
3. 解压
bzip2 -d:解压文件eg: $ bzip2 -d part-r-00000.bz2,(part-r-00000.bz2为文件名)
gzip -d filename.gz :解压.gz文件
4. sort
sort [选项] [输入文件]
选项
-c 测试文件是否已经被排序 complete
-k 指定排序的域 k1 k2nr 往后加命令即可
-m 合并两个已排序的文件 merge
-n 根据数字大小进行排序 number
-o [输出文件] 将输出写到指定的文件,相当于将输出重定向到指定文件 open
-r 将排序结果逆向 reverse
-t 改变域分隔符 eg:默认是空格,如果要改成\t需要sort -t$’\t’
-u 去除结果中的重复行 unique -u
Eg:
sort -t’,’ -k2,2g:排序:
eg:sort -t’,’ -k2,2g losscomma3注:-k2,2 是从第二行初到第二行末的意思,g是通用的意思
如果使用 sort -t’,’ -k2,2gr losscomma3,r代表倒叙(从大到小)losscomma3为文件名
两次排序,先按照第一列排序,再按照第二列排序,Sort的默认分隔符是 空格要制定成 \t
cat mobile_industry | tr ‘,’ ‘\t’|sort -t$’\t’ -k1,1 -k2,2n
5. 列分割_cut
cut命令用于从标准输入或文本文件中按域或行提取文本
-f 指定提取的域数,或域范围 field
-d 指定分隔符
eg:
cut –f5+文件名:可以显示文件中第五个字段的内容
cat temp|cut -f2 -d’,’ 以,为分隔符,提取文件temp第2列
head -n 5 part-r-00067|cut -f1,3 未指定分隔符时,分隔符是\t,f1,3表示提取第一列和第三列
6. 行分割_split
split命令用于将大文件切割成小文件,split命令可以按照文件的行数、字节数切割文件,并能在输出的多个小文件中自动加上编号
格式: split [-n] file [name]选项 意义
Eg:split -55 myfile ff
将文件myfile依次截断到名为ffaa,ffab,ffac…..的文件中,每一文件的长度为55行
按大小分割:
用法:split [选项] [输入 [前缀]]
将将这个276M文件分割成20M的小文件,文件分割操作如下:
split -b 20m RevolutionOS.rmvb RevOS_part_
7. 操作文件
查看文件有多少行:wc -l +文件名
eg:wc -l aucpidcosttmapsort-aah
out:207517 aucpidcosttmapsort-aah
rm+文件名:删除一个文件
dos2unix+文件名: 文件类型转换,用ftp从Windows传到linux的文件,需要使用文件类型转换
more+文件名:查看当前目录的一部分数据
eg:more part-r-00000
8. 编辑文件夹
mkdir + 文件名:创建一个文件夹(文件夹显示为蓝色):
rmdir +文件名:删除一个空文件
rm -r + 文件夹:删除一个有内容的文件夹
9. 执行文件
A.cat模拟执行MR文件:
Eg: cat access.out|python cookie.py
注:|代表管道,将access.out输入到cookie.py中
Eg:cat auction.out | python auction_dsp.py | sort | python auction_dsp_reduce.py
这里的sort会为结果的每列都进行排序,而在hadoop上执行,sort只为第一列排序
Eg:cat part-00000 showpidcost0813|python loss_pidcost_map.py|sort|python
loss_pidcost_reducev1.py >111
在多个输入需要进行map的时候,使用cat 加两个文件名,中间用空格隔开,执行完后保存到111文件中。
本机的sort是按照空格分割的,需要指定成按照\t分割
Eg:sort -t$’\t’
Eg:sort -t$’\t’ -k1,1,以\t分割,按照第一列排序
B. head –n 使用前n条数据执行程序:
Eg: head -n 100 auction.out | python auction_dsp.py | sort | python auction_dsp_reduce.py 使用数据的前100条执行mapreduce
Eg: head -n 10000 auction.out | python auction_dsp.py 只执行map
C. tail -n ,显示文件内容的最后几行
tail -n 行数值 文件名;
显示/etc/profile的最后5行内容:
tail -n 5 /etc/profile
D.显示文件的中间一些行
显示1000行到3000行
cat filename| head -n 3000 | tail -n +1000
F.执行shell程序:
$ sh run1.sh执行一个程序
nohup sh run.sh > job_log 2>&1 &
注:2>&1,表示把标准文件,错误文件都输出到job_log之中
nohup sh run.sh >xxx.log &
注:nohup…&的作用是将文件放到后台去执行
注:在服务器上执行shell程序,本地断了,服务器上也会继续执行。出错的时候可以去log中查看出错的原因
如果要关闭正在执行的这个程序:
ps aux | grep run_invideo
kill xxxx:xxxx为程序前面的编号
10. 发邮件
cat 文件名| yk_sendmail 标题 收件人邮箱:
eg:cat temp|yk_sendmail “test” xxx@163.com
在发送邮件的.sh中
echo -e $htmlhead $title “invideo” $content $title1 “vhtml” $content2 | yk_sendmail “${subject}” “${receiverME}” ${result_path}/invideo160905
最后没有用双引号引上的${result_path}/invideo160905,会被当做附件传送
11. 其他常用操作
用户切换
su +用户名:su ad
查看python安装了哪些库
Help(‘modules’)
命令行首/尾/删除
Ctrl+a跳到本行的行首,
Ctrl+e则跳到页尾。
Ctrl+u删除当前光标前面的文字
ctrl+k 删除当前光标后面的文字
如果删除错误,使用Ctrl+y进行恢复Ctrl+L进行清屏操作