应用场景:一般大型的互联网或IT公司内部使用跳板机登录服务器,禁止开发者使用Xshell等免费第三方软件,禁止开发者使用ssh方式登录服务器,禁止开发者使用基于ssh的文件传输方式。比如我日常开发使用的MacBook,也经常通过通道机登录服务器上传jar包和下载文件,使用nc相关命令行完成相关操作,快速高效,支持各种文件操作,且文件大小几乎不受限制,也是比较推荐的。
服务器端:
tar -cvf - lbs_weibo_mobile_20160724.log | nc -l 9998
或ipv6服务器端:
tar -cvf - category.txt | nc -4 -l 9998
对应的本机:
nc 172.13.42.155 9998 | tar -xvf -
服务器端:
nc -l 9998 | tar -xvf -
ipv6服务器端:
nc -4 -l 9998 | tar -xvf -
对应的本机:
tar -cvf - lbs_weibo_mobile_20160724.log | nc 172.13.42.155 9998
应用场景:跨部门甚至和第三方合作时,涉及数据安全传输:从第三方提供的指定接口、指定地址获取数据;将本部门的数据推送到指定地址供第三方使用。
从指定地址下载数据:
rsync --port=8875 "11.159.88.887::wap_root/var/logs/wapcommon/place/tencent/succ*" Desktop/data
将数据推送到指定地址:
rsync -avr SiWeiCategoryPoi2022Q2.txt 11.159.88.887::sendmsg/SiWeiCategoryPoi2022Q2.txt --port=8875 > result.txt
应用场景:sudo命令相信大家都很熟悉,这里我只记录了日常中使用最频繁的命令行。
服务器端和MacBook本机:
sudo -s
应用场景:当需要查看内容或显示文件内容的时候,一般会用到cat命令。不过,实践中发现,只有当文件不大且内容不太多的情况下比较适合使用cat。另外,cat命令也具有将文件内容定向输出到指定文件中的功能。
cat systemOut.txt
cat -n systemOut.txt
cat -b systemOut.txt
cat systemOut.txt > test.txt
应用场景:用于查看文件头部部分内容。参数-n后面可以加上行数,但是实际上不加参数,默认显示文件前10行,添加参数意义不大。
head lbs_poi.txt
或
head -n 5 lbs_poi.txt
应用场景:用于查看文件尾部部分内容。参数-n后面可以加上行数,但是实际上不加参数,默认显示文件前10行,添加参数意义不大。
tail lbs_poi.txt
或
tail -n 5 lbs_poi.txt
应用场景:用于统计文件内容或者词条数量。我开发日常中最常用的就是加参数-l,用于统计文件有多少行。
wc -l lbs_poi.txt
应用场景:当原文件数据量很大,而我们需要获取一部分数据用于本地跑测试程序的数据源时,可用该命令行获取一部分数据,下载到本地用于测试。
注意📢:shuf也可以用于查看显示文件内容,它与cat命令行的区别是:shuf无序显示文件内容,cat有序显示文件内容。
shuf -n 1000 lbs_poi.txt > test.txt
应用场景:查看jar包或任务进程运行状态
ps -ef | grep pointinpolygon-1.0-SNAPSHOT.jar
应用场景:grep命令很强大,可以和多个命令组合使用,也可以单独使用。我在日常开发中常用来搜索文件中的内容,查看指定词或数据是否存在于某个文件,或者文件中是否有重复数据等等。
grep 98180293 四维全量数据.txt
应用场景:显示当前工作目录。
相对文件路径:相对文件路径不以代表根目录的正斜线(/)开头,而是以目录名(如果用户准备切换到当前工作目录下的一个目录)或是一个特殊字符开始。有两个特殊字符可用于相对文件路径中:单点符(.),表示当前目录;双点符(..),表示当前目录的父目录。
pwd .
应用场景:日常开发中,mv命令可以用于将文件移动,也可以用于给文件改名。
mv test.txt new.txt
应用场景:df命令可以让你很方便地查看所有已挂载磁盘的使用情况;du命令可以显示某个特定目录(默认情况下是单签目录)的磁盘使用情况。这一方法可用来快速判断系统上某个目录下是不是有超大文件。
df -h
du -c
du -h
du -s
du -sh systemOut.txt
或
du -sh resource/lbs_poi/