Java各类技能知识点学习链接大全:七、Linux命令

以下内容大多是学习链接,他人整理,个人收藏以便复习,同时归纳分享出来(如有不妥,原作者可随时联系本人删除,感谢!)

七、Linux  命令

1、tar打包:

将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar

打包:

tar -zcvf /tmp/etc.tar.gz /etc

查看打包文件:

tar -ztvf /tmp/etc.tar.gz /etc

解压到某个路径:

tar -zxvf /tmp/etc.tar.gz /etc

打包: tar -cvf apache-tomcat-6.0.44.tar  apache-tomcat-6.0.44/

 (c是create,v是可视化,-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。)

tar -zcvf /home/testuser/apache-tomcat-8.0.21.tar.gz /home/testuser/

tar -xvf apache-tomcat-8.0.21.tar.gz

(这里就是解压了,-x是Extract,从压缩包中提取)

假设 test目录下有 1 2 3 4 5 这5个目录

现在要将 3 4 5目录tar打包,1和2目录不要

tar -zcvf  testa.tar.gz –exclude=1 –exclude=2 test

tar -zcvf  test.tar.gz –exclude=test/1 –exclude=test/2  test

将当前路径下testa目录打包成testa.tar.gz压缩文件

tar -zcvf  testa.tar.gz  testa

如果报错:tar: /data1/decision: Not found in archive

加上sudo,-C 参数,使用tar解压文件到指定目录时出现Not found in archive是因为没有设置-C这个参数(create),解压后的文件只有

2、mkdir创建目录命令testFolder

创建权限777(当前用户、当前组、其它用户)读写执行421 的命令

mkdir -m 777  testFolder

3、 cp命令

        cp   -i file1 file2        将文档 file1 复制成 file2 . –i为提示确认。

        cp file1 dir1        将文档 file1 复制到目录 dir1 下,文件名仍为 file1.

        cp /tmp/file1 .        将目录 /tmp 下的文档 file1复制到现行目录下,档名仍为 file1.

        cp /tmp/file1 file2        将目录 /tmp 下的文档 file1现行目录下,档名为file2

        cp -r dir1 dir2        (recursive copy) 复制整个目录.若目录 dir2 不存在,新建一个目录dir2,

                               若 dir2存在,则直接把dir的东西拷贝过去,包括子目录

4、find / -name testa  查找文件/文件夹在某个路径

     find /|grep nginx.conf(也可以find结合grep使用)

   查找路径下,名字为NJZL-HZ *的,时间30天以前的,删除:

    find "/data1/hrbb/file/contract/filing/" -mtime +30 -name "NJZL-HZ*"| xargs rm –rf

   查找路径下:NJZL*文件开头的文件

find /data1/hrbb/file |grep 'NJZL*'

5、下载url的路径在某个路径/testa   -P

wget -P /testa url

6、vi命令

(vim命令,可以直接编辑*****.jar包里面的配置文件)

进入vi的命令 :

    vi +n filename :打开文件,并将光标置于第n行首

    vi + filename :打开文件,并将光标置于最后一行首

    vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处

    vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename

s命令替换:

    :s/vivian/sky/ 替换当前行第一个 vivian 为 sky

  :s/vivian/sky/g 替换当前行所有 vivian 为 sky

  :n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky

  :n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky

  移动光标类命令:

  h :光标左移一个字符

  l :光标右移一个字符

  space:光标右移一个字符

  Backspace:光标左移一个字符

  k或Ctrl+p:光标上移一行

  j或Ctrl+n :光标下移一行

   

    插入文本类命令:

    i :在光标前

    I :在当前行首

    a:光标后

    A:在当前行尾

    o:在当前行之下新开一行

    O:在当前行之上新开一行

    r:替换当前字符

   

    删除命令:

    ndw或ndW:删除光标处开始及其后的n-1个字

    do:删至行首

    d$:删至行尾

    dd: 删除当前行

    ndd:删除当前行及其后n-1行

    x或X:删除一个字符,x删除光标后的,而X删除光标前的

    Ctrl+u:删除输入方式下所输入的文本

搜索及替换命令 :

    /pattern:从光标开始处向文件尾搜索pattern

    ?pattern:从光标开始处向文件首搜索pattern

    n:在同一方向重复上一次搜索命令

    N:在反方向上重复上一次搜索命令

    :s/p1/p2/g:将当前行中所有p1均用p2替代

    :n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代

:g/p1/s//p2/g:将文件中所有p1均用p2替换

编辑后退出:

linux vi 保存退出 操作:esc键,输入      :wq

linux vi 不保存退出 操作:esc键,键入    :q!

7、scp

scp上传:

scp /home/202003/123.doc  root@172.16.162.159:/data1/hrbb

scp下载:

 scp root@39.97.172.66:/home /202003/123.doc  /data1/hrbb

scp -r /home/apache-tomcat/  testuser@10.139.38.139:/data1/

-r:

将B服务器上/home/ apache-tomcat /目录下所有的文件全部复制到本地的/data1目录下

8、chmod

chmod  o+w /data1/home/testuser/apache-tomcat-8.0.21/bin -R

chmod  755 /data1/home/testuser/apache-tomcat-8.0.21/bin -R

      

打包: tar -cvf apache-tomcat-6.0.44.tar  apache-tomcat-6.0.44/

 (c是create,v是可视化,-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。)

9、grep

grep 关键字 目录 -R    (这样就可以找出要找的关键字在哪个文件里面)

grep -r '影像' /data1/paybank/applogs/ |sort -n -r

(搜索路径下面关键字,并且按照逆序排序)

grep  关键字 目录 -Rn   (这条命令更省事,直接告诉你在哪个文件的哪一行)

10、netstat

netstat -apn|grep 8080 ,8080端口被占用,会显示Listen状态的8080端口被占用情况,

   如果没有被占用,会显示Time_wait状态的数据,可以kill掉某个端口的进程PID,,kill -9

11、curl

curl -v -d"@/tmp/a.txt" -H "Content-Type: application/json;charset=UTF-8" -H "Expect:"  -H "referer: http://130.1.12.152:8010/;ws" http://172.16.32.190:8091/proxybank/S100001001084015

curl -X POST -d '{"applyNo":"123","guarantyNo":"123","statusMess":"123","ratingEndDate":"123","ratingEndTime":"123"}'  -H "Content-Type: application/json;charset=UTF-8" -H "Expect:"  -H "referer: http://200.198.253.2:8090/paybank/callback;ws" http://200.198.253.2:8091/proxybank/MF1002

12、split拆分大文件

参考连接:Linux命令之大文件分割_小哥骑单车-优快云博客_linux拆分文件

Linux运维实战篇之大文件切割 - 云+社区 - 腾讯云

我们有时候会遇到大文件需要处理,当文件过大时,Linux中使用vim、cat、vim、grep、awk 等这些工具对大文件进行分析执行速度缓慢,占用内存资源大,文件传输慢;

这里有一个原始文件,sourcelist.xlsx ,比较大了,5G多,光是用wc -l统计行数,就花费了3分钟;

linux命令  split提供两种方式对文件进行切割:

(1)、根据行数切割,-l参数,以下命令是50w行一个文件, --verbose表示显示执行的详细过程,sourcelist.xlsx原文件名,

split -l 500000 -d --verbose sourcelist.xlsx  target.xlsx

生成后的文件名有一点问题,我们本来需要的是*.xlsx文件后缀,现在都新增了一个序号在后面,处理一下:

for i in `ls|grep target`; do a=`echo $i|awk -F '.xlsx' '{print $1$2".xlsx"}'`; mv $i $a; done

wc -l target11.xlsx ,wc -l target12.xlsx   (注意:这里是我重命名文件后缀格式以后,再来统计行数得)

切割以后的文件大小不一样,但是每个文件得行数都是一样得:

(2)、根据大小切割,-b(不推荐这种方式,如果linux强行按照大小去分割文件,那么可能会破坏原始数据的格式完整性,比如刚好在某一行数据中间,前后就被分割到了相邻的两个文件中)

split -b 60M -d --verbose sourcelist.xlsx target.xlsx

(3)、合并文件的方式:

cat 命令 

cat target00.xlsx  target01.xlsx > targetmerge.xlsx,合并后的targetmerge.xlsx大小 120mb,合理:

备注:在上面第1步,split -l 500000 -d --verbose sourcelist.xlsx  target.xlsx命令生成新文件,关于格式后缀的问题,

其实可以先生成得时候不加后缀,: split -l 500000 -d --verbose sourcelist.xlsx  target

find ./ -name 'target*' -printf %f\\n|awk -F'.' '{print $1}'|xargs -i{} mv {} {}.xlsx

Linux运维实战篇之大文件切割 - 知乎

13、搜索关键字最后最开始出现位置

grep -C N "keyword" file | tail -M (其中 M=2*N+1,也就是显示当前关键字行和上下N行,所以就是2*N+1)

grep -C 10 'ResponseBody' paybank_info.log |tail -21

14、查看压缩文件名   ******.gz

 zcat +文件名.gz | more

zgrep  xxx    文件名.gz

15、awk+uniq+sort 统计字符串出现次数并排序

awk+uniq+sort 统计字符串出现次数并排序 - 简书

如何在日志文件中查找出访问最多的前10个IP地址 - yuanshichao1988的个人页面 - OSCHINA - 中文开源技术交流社区

16、Linux 下清空或删除大文件内容的 5 种方法

# > access.log

# echo "" > access.log

技术|Linux 下清空或删除大文件内容的 5 种方法

17、vimdiff在linux下,比较 ,比diff看的更方便

18、查看磁盘剩余空间 df   disk free

du -sh (-s  sum 表示汇总,-h表示以KB, MB, GB, TB格式进行人性化显示)

du -lh  ( -l   list   -h  即human   表示以KB, MB, GB, TB格式进行人性化显示)  ( disk  usage - list human )

19、查看目录和文件大小: du -sh

查看目录和文件大小: du -sh - 简书

20、linux 删除N天前的文件

linux 删除N天前的文件_maqingli20的专栏-优快云博客

21、查看当前目录下所有一级子目录文件夹大小 并排序

du -h --max-depth=1 |sort

22、

du -sh:查看当前目录总大小。
du -sh *:查看当前目录所有子目录大小。
du -sh redis/  :查看当前redis目录大小

 23、

如何查找大文件?
其实很多时候,你需要了解当前系统下有哪些大文件,比如文件大小超过100M或1G(阀值视具体情况而定)。那么如何把这些大文件搜索出来呢?例如我要搜索当前目录下,超过800M大小的文件

[root@getlnx01 u03]# find . -type f -size +800M 
如上命令所示,我们仅仅能看到超过800M大小的文件的文件名称,但是对文件的信息(例如,文件大小、文件属性)一无所知,那么能否更详细显示一些文件属性或信息呢,当然可以,如下所示

[root@getlnx01 u03]# find . -type f -size +800M  -print0 | xargs -0 ls -l 
当我们只需要查找超过800M大小文件,并显示查找出来文件的具体大小,可以使用下面命令

[root@getlnx01 u03]# find . -type f -size +800M  -print0 | xargs -0 du -h 
如果你还需要对查找结果按照文件大小做一个排序,那么可以使用下面命令

[root@getlnx01 u03]# find . -type f -size +800M  -print0 | xargs -0 du -h | sort -nr 

譬如有时候磁盘空间告警了,而你平时又疏于管理、监控文件的增长,那么我需要快速的了解哪些目录变得比较大,那么此时我们可以借助du命令来帮我们解决这个问题。

[root@getlnx01 u03]# du -h --max-depth=1 
16K     ./lost+found
33G     ./flash_recovery_area
37G     ./oradata
70G     .
如果你想知道flash_recovery_area目录下面有哪些大文件夹,那么可以将参数max-depth=2 ,如果你想对搜索出来的结果进行排序,那么可以借助于sort命令。如下所示
[root@getlnx01 u03]# du -h --max-depth=2 | sort -nr,倒序排序:

参考链接:

Linux查找大文件 (find的用法) - 飞入云端_blog - 博客园 (cnblogs.com)

24、ls命令大全:英文版长文:

How to Use the ls Command to List Files and Directories on Linux

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值