京东商智_Linux命令大全
1.网络传输类
1.1 nc
nc是一个功能强大的网络工具,可以用于实现对本服务器上任意TCP/UDP端口的监听,也可以用于连接其他服务器的TCP/UDP端口,从而实现服务器节点之间的文件传输和接口连通性扫描。
1.2 lftp
FTP服务是指在不同机器之间实现文件传输功能的服务,要实现该服务,首先需要安装vsftpd软件搭建一台ftp服务器,这样其他机器才可以从这台ftp服务器上上传或下载文件。
一般的使用场景就是在公司内部建设一个专门的文件服务器,将公司内的文档资料等都存放在该服务器上,所有的同事都可以去下载,起到集中存放文件的作用。
使用lftp命令即可远程登录到ftp服务器上,并进行文件操作。
一般我们不会单独使用使用lftp命令,而是与wget、wput等命令配合使用,实现快捷地文件上传、下载等操作。
使用案例:
先将原py脚本删除再上传新脚本。
lftp ads_zs:YTVhZmFlNGQ2MTZjMGI5NzU0ZWE4NWFh@ads-ftp.jd.com -e “rm BLTaskCur.py; put BLTaskCur.py;bye”
1.3 wget
wget是一个从网络上自动下载文件的工具,支持http、https、ftp等多种数据传输协议。不仅能支持上节所述的从ftp服务器下载数据,也支持http、https等超文本传输协议。
使用案例:
从ftp服务器上下载脚本并重命名
wget -T20 -t3 -w3 –random-wait ftp://mfs.jd.com:/mnt/mfs/ftp/ads_zs/GETaskCur.py -O GETask.py
1.4 curl
curl是一个强大的命令行工具,作用是发出网络请求,然后从响应中得到和提取数据,先是在“标准输出”(stdout)上面。它支持多种协议,可以请求任何web服务器,如果使用熟练,完全可以取代Postman这一类图形界面工具。
2.文件处理类
Linux下一切皆文件,对Linux的操作就是对文件的处理,那么有一系列的文件处理命令。
2.1 管道符“|”
Linux提供了管道符将两个命令隔开,管道符号左边命令的输出会作为右边命令的输入。
2.2 grep
grep命令用于对目标文件进行过滤,将被匹配到的行打印到控制台。
2.3 sed
sed命令是一种针对目标文件数据行的流编辑器,一次处理一行内容并打印到控制台,不断重复直到文件末尾。
2.4 awk
awk命令把目标文件逐行读入,以空格作为默认分隔符对每行进行切分,再对切分的部分进行后续处理。
使用案例:awk ‘{print $1}’ 用于将文件中每一行按空格分割并取第一个字段。
列出hdfs目录中每个文件大小的数值
hadoop fs -du -h hdfs://ns22017/user/ads_sz_load/hfile_convert/origin/archive/data/hb_ibd/HB_IBD_PRO_ANALYSIS_FLOW_RECENT_NEW |awk ‘{print $1}’
2.5 wc
wc命令用于统计目标文件中的字节数、字数、行数,其中字数是以空格作为默认分隔符进行切分统计的。
使用案例:wc -c统计字节数,wc -l统计行数,wc -w统计字数。
计算hdfs目录中文件个数:
hadoop fs -ls hdfs://ns22017/user/ads_sz_load/hfile_convert/origin/archive/data/hb_ibd/HB_IBD_PRO_ANALYSIS_FLOW_RECENT_NEW | wc -l
2.6 sort
sort命令用于对目标文件中的行以字典序进行排序,并打印到控制台。
使用案例:sort 用于将文件中每一行进行排序。
将hdfs目录中每个文件大小的数值进行排序
hadoop fs -du -h hdfs://ns22017/user/ads_sz_load/hfile_convert/origin/archive/data/hb_ibd/HB_IBD_PRO_ANALYSIS_FLOW_RECENT_NEW |awk ‘{print $1}’ |sort
3.状态查看类
3.1 top
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的
任务管理器。第一行为负载均衡,第二行为进程统计,第三行为cpu占用情况,第四行为内存使用情况,第五行为交换分区使用情况,剩下的就是各个进程的详细监控数据。
第一行的load average负载均衡字段,后面三个数分别是1分钟、5分钟、15分钟的负载值,该值是每
隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数值除以逻辑CPU的数量,结果高
于5的时候就表明系统在超负荷运转了。
逻辑cpu=物理CPU个数×CPU核数,如果CPU支持超线程技术,则逻辑cpu=物理CPU个数×CPU核数x2。
3.2 netstat
netstat命令用于查看各种网络相关信息,如网络连接、路由表、接口状态、pid、程序名等。
使用案例:
查看8094端口对应程序的运行情况
netstat -tunlp | grep 8094
3.3 df/du
df用于查看整个磁盘情况,du用于查看指定文件夹占用磁盘情况。
3.4 free
free命令用于查看内存使用情况,比top命令多了一个buffers/cache标识内核使用的内存缓冲区情况。
3.5 ps
ps命令用于显示当前进程的状态,也有点类似于 windows 的任务管理器。
使用案例:
查看case-server相关程序的进程pid
ps -ef | prep case-server
3.6 lsof
lsof命令用于查找进程打开了哪些文件以及与打开文件相关联的内容。
使用案例:
查看8094端口对应程序的程序名和进程pid
lsof -i tcp:8094
4.文件查看类
4.1 cat
从第一行开始显示文件内容。
4.2 tac
从最后一行开始显示文件内容。
4.3 more
一页一页的显示文件内容。
Enter 向下1行;Ctrl+f 向下滚动一屏,空格键 向下滚动一屏;Ctrl+b 返回上一屏;= 输出当前行的行号;q退出more。
4.4 less
一页一页的显示文件内容,比more更强在于还可以往前翻页。
Enter 向下移动一行;y 向上移动一行;空格键 向下滚动一屏;b 向上滚动一屏;g 跳到第一行;G 跳到最后一行;/pattern 搜索pattern;q 退出less。
4.5 head
只看头几行。
4.6 tail
只看尾部几行,-f 还可以实时显示最新变化。
使用案例:
实时显示日志文件最新写入变化
tailf 20220518_01.log
4.7 nl
还可以显示行号。