vlambda博客
学习文章列表

大数据实战之最全的Linux命令


大数据实战之最全的Linux命令

1、操作文件和目录



1.1、显示命令

命令格式:ls  [- 选项]  [参数]


选项

含义

-a

列举目录中的全部文件,包括隐藏文件

-l

列举目录中细节,包括权限、所有者、组群、大小、创建日期、文件是否是链接等

-f

列举的文件显示文件类型

-r

逆向,从后向前地列举目录中内容

-R

递归,该选项递归地列举当前目录下所有子目录内的内容

-s

大小,按文件大小排序

-lh

以人类可读的方式显示文件的大小,如用 K、M、G 作单位


1.2 目录转移

命令格式:cd  [参数]


cd 命令用来改变所在目录。

cd /转到根目录中

cd ~转到/home/user 用户目录下

cd /usr  转到根目录下的 usr 目录中绝对路径

cd test  转到当前目录下的test 子目录中相对路径

cd ..  返回上一层目录



1.3 打印工作目录

命令格式:pwd


输入 pwd 命令,Linux 会输出当前目录。



1.4 创建目录

命令格式:mkdir (-p)  [参数]


mkdir /data/zll

在绝对路径/data下创建zll的文件夹

mkdir -p /data/test/zll

递归创建,因为我/data下没有test文件,所以使用-p就可以直接递归创建。

mkdir /data/test /data/dev

可以一次创建多个目录。



1.5 创建文件

命令格式: touch 文件名



1.6 删除文件/目录

命令格式: rm [-rf ] 文件/目录


-r: 删除目录

-f: 强制执行

rm -r /data/test/

删除目录,rm -rf 强制删除,不用判断y



1.7 复制文件/目录

命令格式: cp -rp [源文件] [目标文件]


-r 复制目录   

-p 保留文件属性(时间属性等等)


选项

含义

-i

互动:如果文件将覆盖目标中的文件,他会提示确认

-r

递归:这个选项会复制整个目录树、子目录以及其他

-v

详细:显示文件的复制进度


cp -r /data/test/ /data/prod

如果复制到没有的文件夹,会自动创建



1.8 移动文件/目录

命令格式: mv [旧文件名] [新文件名]


mv /data/test/ipTest /data/dev/ 

移动文件的位置

mv /data/test/a.py /data/test/p.py

文件重命名



大数据实战之最全的Linux命令

2、阅读文件命令



2.1 vim

命令格式:vim 文件名


查看文件全部内容

文件底部:Shift+G(快捷方式)

查询某个字符:输入  /字符



2.2 head、tail

命令格式: head/tail -n [数字] 文件路径

head -n 2 azkaban_test.sh 查看前2行

tail -n 2 azkaban_test.sh  查看后2行,如果未指定数字则默认显示10行。

tail –f test.sh 控制台实时监控文章的内容



2.3 cat

命令格式:cat 文件名


cat azkaban_test.sh | grep test 筛选含有‘test’字符的行

grep Test azkaban_test.sh | grep py多条件筛选,筛选含有‘Test’和‘py’字符的行



2.4 more/less

命令格式:more [选项] [fileNames]


选项

含义

-num

一次显示的行数

-d

提示使用者,在画面下方显示[Press space to continue, q  to quit.],如果使用者按错键,则会显示[Press h for instructions.]而不是哔声

-f

计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太

长的会被扩展为两行或两行以上)

-p

不以卷动的方式显示每一页,而是先清除萤幕后再显示内容

-c

跟-p 相似,不同的是先显示内容再清除其他旧资料

-s

当遇到有连续两行以上的空白行,就代换为一行的空白行

-u

不显示下引号(根据环境变数 TERM 指定的 terminal 而有所不同)

+/

在每个档案显示前搜寻该字串(pattern),然后从该字串之后开始显示

+num

从第 num 行开始显示

fileNames

欲显示内容的档案,可为复数个数


more 和 less 的主要区别是,less 允许使用箭头来前后移动,而 more 使用空格键和b 键来前后移动。


来列举/etc 目录下的内容:

ls –al /etc | more

要使用 more 在文本文件中搜索关键字

按/键并输入命令搜索条目:/foo 

使用空格键来先前翻阅页码

按 q 键退出。


more -s testfile 逐页显示 testfile 之档案内容,如有连续两行以上空白行则以一行空白行显示。

more +20 testfile 从第 20 行开始显示 testfile 之档案内容。



大数据实战之最全的Linux命令

3、磁盘空间查询命令



3.1 df命令

命令格式:df [选项] 


参数

含义

-a

把全部的文件系统和各分区的硬盘使用情形列出来,包括 0 区块的,例如/proc 这个文件系统

-i

列出 I-nodes 的使用量

-k

把各分区的大小和挂上来的文件分区的大小用 k 表示

-t

列出某一文件系统的所有分区磁盘空间使用量

-x

列出不是某一文件系统的所有分区磁盘空间使用量,和-t 选项相反

-T

列出每个分区所属文件系统的名称

-h

查看每个根路径的分区大小

-hl

查看磁盘剩余空间



3.2 du命令

命令格式:du [选项] [目录名]


参数

含义

-sh

返回该目录的大小

-sm

返回该文件夹总M数

-h

查看指定文件夹下的所有文件大小(包含子文件夹)更新详细命令文档



3.3 mount/umount 命令

命令格式:mount –t  [设备类型] [存放目录]



参数

含义

不加任何参数,直接输入命令可以显示已挂载的文件系统和目录

-a

挂上/etc/fstab 下的全部文件系统

-t

制定所挂上来的文件系统的名称,所有系统支持的文件系统,这个信息可以在

/proc/filesystems 这个文件里看到

-n

挂上文件系统,但是不把文件系统的数据写入/etc/mtlab 这个文件

-w

将文件系统设为可读写

-r

挂上来的文件系统设为只读


mount 命令的功能是挂载文件系统,可以挂载硬盘、光盘、软盘,也可以挂载NFS 网络文件系统.


umount 命令的功能是卸载已挂上的文件系统,在关闭系统前应该把所有挂载上的文件系统卸载。这个命令和 mount命令是相对的



3.4 fsck 命令

命令格式:fsck (选项) [分区名称]


选项

含义

-a

自动修复文件系统,不询问任何问题,比较危险

-A

依照/etc/fstab配置文件的内容,检查该文件内所列全部文件系统。若没有附加参数"-P”,则会先检查/目录的文件系统,而不会同时检查所有文件系统

-R

采取互动方式,在修复时询问问题,让用户确认并决定处理方式

-S

依次检查作业而不是同时执行。当依次指定多个文件系统且采用互动的方式进行检查时,请使用此参数以便顺序执行,否则fsck 可能会同时询问数个问题,让人不知所措

-V

显示命令执行的过程

-T

指定要检查的文件系统的类型

-N

不是真正执行指令,仅列出实际执行时会进行的动作


fsck 命令的功能是检查和修复 Linux 文件系统,这个命令最好在没有人或是没有分区挂上来时使用,其实每次开机系统都会做一次检查,看是否有坏轨或数据流失的现象



3.5 其他


查看硬盘的分区:fdisk -l

查看IDE硬盘信息:hdparm -i /dev/hda

查看STAT硬盘信息:hdparm -I /dev/sda 或 apt-get install blktool 或 blktool /dev/sda id



大数据实战之最全的Linux命令

4、内存相关命令



4.1 free命令

命令格式:free (-h) 


free -h 以更友好的方式显示,会以K、M、G为单位来显示

free -h -s 3 以一定时间间隔重复的输出,这个命令是每3秒输出一次

free -m 查看内存使用情况


free样例:


大数据实战之最全的Linux命令


下面是对内存查看free命令输出内容的解释:


total:总计物理内存的大小。

used:已使用多大。

free:可用有多少。

Shared:多个进程共享的内存总额。

Buffers/cached:磁盘缓存的大小。



4.2 top命令

命令格式:top [选项]


选项

含义

d

指定每两次屏幕信息刷新之间的时间间隔

p

通过指定监控进程ID来仅仅监控某个进程的状态

q

该选项将使top没有任何延迟的进行刷新

S

指定累计模式 

s

使top命令在安全模式中运行

i

使top不显示任何闲置或者僵死进程

c

显示整个命令行而不只是显示命令名


top样例:

大数据实战之最全的Linux命令


列名

含义

PID

进程id

PPID

父进程id

RUSER

Real user name

UID

进程所有者的用户id

USER

进程所有者的用户名

GROUP

进程所有者的组名

TTY

启动进程的终端名。不是从终端启动的进程则显示为 ?

PR

优先级

NI

nice值。负值表示高优先级,正值表示低优先级

P

最后使用的CPU,仅在多CPU环境下有意义

%CPU

上次更新到现在的CPU时间占用百分比

TIME

进程使用的CPU时间总计,单位秒

TIME+

进程使用的CPU时间总计,单位1/100秒

%MEM

进程使用的物理内存百分比

VIRT

进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

SWAP

进程使用的虚拟内存中,被换出的大小,单位kb。

CODE

可执行代码占用的物理内存大小,单位kb

DATA

可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb

RES

进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR

共享内存大小,单位kb

nFLT

页面错误次数

nDRT

最后一次写入到现在,被修改过的页面数。

S

进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)

COMMAND

命令名/命令行

WCHAN

若该进程在睡眠,则显示睡眠中的系统函数名

Flags

任务标志,参考sched.



4.3 其他


cat /proc/cpuinfo 查看linux系统的CPU型号、类型以及大小


cat /proc/meminfo 查看linux系统内存大小的详细信息,可以查看总内存,剩余内存、可使用内存等信息



大数据实战之最全的Linux命令

5、进程和端口相关命令



5.1 ps命令


ch

ps -ef|  grep [端口号]



5.2 netstat命令


查看端口进程:

netstat -anlp | grep [端口号]

netstat -anpt | grep [端口号]

netstat -nlp | grep [端口号]


查看哪些端口被打开:

netstat -anp



5.3 lsof命令


查看端口号:

lsof -i:[端口号]



5.4 yarn进程处理


1)杀掉YARN上面的任务

yarn application -kill appid

2)查看各个程序进程内存使用的内存情况

ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -r | less



5.5 杀死僵尸进程


直接kill -9 进程号 可能杀不掉

需要找到它的父进程,进行杀掉,然后在看有没有

ps -ef | grep defunct | more

如果还有的话,需要重启一下服务器



5.6 其他


ll /proc/进程ID/cwd    查看进程

pwdx [进程id]    查看进程运行路径



6、文件压缩和解压



6.1 zip格式


1)压缩的命令格式:

zip [选项] 压缩包名 源文件或源目录


选项:
-r:压缩目录


示例:

zip ana.zip anaconda-ks.cfg

压缩多个文件:

zip test.zip abc abcd


2)解压缩的命令格式:

unzip [选项] 压缩包名


选项:
-d:指定解压缩位置


示例:

unzip -d /tmp/ test.zip



6.2 gz格式


1)压缩的命令格式:

zip [选项] 源文件


选项

含义

-c

将压缩数据输出到标准输出中,可以用于保留源文件

-d

解压缩

-r

压缩目录


注意:使用gzip压缩文件后会将原文件删除,如果想保留原文件则可以使用-c选项将压缩过程产生的标准输出写入一个新的文件中,示例如下:>的作用是覆盖内容,>>的作用是追加内容


gzip -c demo.sh > demo.sh.gz

这样在压缩的时候就不再删除源文件了


gzip -r test

如果test是一个目录,上述命令则会分别压缩test目录下的每个文件,而不是压缩test目录,也就是说gzip命令不会打包压缩


2)解压的命令格式

gunzip [压缩文件]

gzip -d [压缩文件]



6.3 bz2格式


1)压缩的命令格式:

bzip2 [选项] 源文件


教程

含义

-d

解压缩

-k

压缩时,保留源文件

-v

显示压缩的详细信息


注意:

bzip2不能压缩目录,会报错

解压时如果原文件已存在则会报错,因此最好先将原文件删除


2)解压缩的命令格式:

bunzip2 [压缩文件]

bzip2 -d [压缩文件]



6.4 tar格式


1)打包的命令格式:

tar [选项] [-f 压缩包名] 源文件或源目录


选项

含义

-c

打包

-f

指定压缩的文件名,压缩的扩展名是管理员用来识别格式的,所以一定要正确指定扩展名

-v

显示打包文件过程


注意:使用tar命令打包并不会压缩文件


2)解打包的命令格式

tar [选项] 压缩包 (-C 解打包目录)


选项

含义

-x

解打包

-f

指定压缩包的文件名

-v

显示解打包文件的过程

-t

测试,就是不解打包,只是查看包里有哪些文件


由于gzip和bzip2不能打包只能压缩,而tar只能打包不会压缩,因此可以先使用tar打包,然后使用gzip或bzip2进行压缩



6.5 .tar.gz格式和.tar.bz2格式


1)压缩的命令格式

tar [选项] [压缩包] 源文件或源目录


选项

含义

-z

压缩和解压缩".tar.gz"格式

-j

压缩和解压缩".tar.bz2"格式


示例:

tar -zxvf test.tar.gz test/    解压缩

tar -zxvf test.tar.gz -C /tmp  解压缩到指定目录



最后看看Linux与它另外两兄弟的关系吧!!!