linux常用操作命令总结

简介: linux常用操作命令总结

总结下常用的linux命令,linux下的命令组合着实强大。有时候即便是使用的windows系统也可以在Dos窗口下使用linux下的一些命令工具,完成一些文本日常处理。


查找所有文件


find ./ -name "*.log"


查找某一后缀的文件并删除


find ./ -name "*.log" |xargs rm -rf


文件批量重命名方法


#查找当前路径下的所有文件,定向输出到old文件
$find ./ -name '*.log'  > old 2> /dev/null
$cat old
#遍历替换.log后缀名为.txt后缀名
$for i in `cat old`;do echo mv $i ${i/.log/.txt}; done > mv  2> /dev/null
#查看文件
$cat mov
#不想保存mv语句,直接执行mv命令,那就执行以下命令
$for i in `cat old`;do  mv $i ${i/.log/.txt}; done 2> /dev/null | bash -x


批量重命名原理解释


1.首先用find命令找到满足条件的文件,把结果重定向到文件old(find寻找的对象里面包含正则匹配符号时记得外面要用单引号,否则会报错)。


2.变量循环读取文件old,使用替换方法,生成mv命令到新文件mv,先不执行生成的mv命令(注意命令中do和done后面没有分号)。


linux 下用find命令查找文件,rm命令删除文件。


删除指定目录下指定文件


find 要查找的目录名 -name .svn |xargs rm -rf


删除指定名称的文件或文件夹: find -type d | grep .svn$ | xargs rm -r


分析:


find -type d | grep .svn$ 通过此命令查找文件夹 过滤正则表达式中的目录

| xargs rm -r 执行删除指令


删除目录下所有exe文件


find . -name '*.exe' -type f -print -exec rm -rf {} ;


(1) "." 表示从当前目录开始递归查找


(2) “ -name '*.exe' "根据名称来查找,要查找所有以.exe结尾的文件夹或者文件


(3) " -type f "查找的类型为文件


(4) "-print" 输出查找的文件目录名


(5) 最主要的是是-exec了,-exec选项后边跟着一个所要执行的命令,表示将find出来的文件或目录执行该命令。exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个,最后是一个分号。


grep常用指令


搜索文件中的内容,递归文件夹查找字符串。


$grep "xxx"  -R -n ./


-R:递归查找


-n:显示行号


指定查找目录:


grep "xxx" -R -n /system/core


grep A | grep B                //显示既匹配A又匹配B的行


例如:grep "getValue"  -R -n ./ | grep KEY_SCENE_MOD



"或"操作查找两个字符串:


grep -E 'A|B' filepath        //显示匹配A或匹配B的行


例如:


grep -E 'getBlock|forwardPdfiumError'  -R -n ./jni/android/graphics/


find命令删除指定文件


--时间单位为天


find 查询路径  -ctime/-mtime/-atime 时间范围 -name 文件名称 -type f -exec rm {} \;


--时间单位为分钟


find 查询路径  -cmin/-mmin/-amin 时间范围 -name 文件名称 -type f -exec rm {} \;


#--删除/home/testfile目录下修改时间大于2天,后缀为.dat的文件
find /home/testfile  -mtime +2 -name "*.dat" -type f -exec rm {} \;


Linux为我们提供了一个简便的查询方式,那就是 +n 和 -n。下面以 -mtime 举例说明:


 -mtime n : n为数字,意思为在n天之前的“一天之内”被更改过内容的文件


 -mtime +n : 列出在n天之前(不含n天本身)被更改过内容的文件名


 -mtime -n : 列出在n天之内(含n天本身)被更改过内容的文件名


找 “5天之内被更改过的文件” 就是 find / -mtime -5 ,找“5天前的那一天被更改过的文件” 就是 find / -mtime 5 ,找“5天之前被更改过的文件” 就是 find / -mtime +5。+5 代表大于等于 6 天前的文件, -5 代表小于等于 5 天内的文件,5 则是代表 5-6 那一天的文件。


自动删除7天前的文件


下面的脚本是删除/home目录下7天前的文件:


#!/bin/bash
find /home/ -type f -mtime +7 -exec rm -f {} \;


把这个脚本保存在/tmp目录下,命名为:clearfile.sh


加入计划任务


crontab -e


10 22 * * * /bin/sh /tmp/clearfile.sh


这个表示为,每天22点10分执行这个脚本。


Linux crontab 命令


Linux crontab 是用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。


crontab [ -u user ] { -l | -r | -e }


Linux xxd命令


Linux xxd -i功能


Linux系统xxd命令使用二进制或十六进制格式显示文件内容。若未指定outfile参数,则将结果显示在终端屏幕上;否则输出到outfile中。详细的用法可参考linux命令xxd。


本文主要关注xxd命令 -i 选项。使用该选项可输出以inputfile为名的C语言数组定义。例如,执行 echo 12345 > test 和 xxd -i test 命令后,输出为:


unsigned char test[] = {
  0x31, 0x32, 0x33, 0x34, 0x35, 0x0a
};
unsigned int test_len = 6;


可见,数组名即输入文件名(若有后缀名则点号替换为下划线)。注意,0x0a表示换行符LF,即’\n’。



xxd -i常见用途


当设备没有文件系统或不支持动态内存管理时,有时会将二进制文件(如引导程序和固件)内容存储在C代码静态数组内。此时,借助xxd命令就可自动生成版本数组。


xxd 的常用参数


  1. -p 以无格式的普通文本输出


  1. -r 反向操作将十六进制数据转换为字符


echo abc |xxd
0000000: 6162 630a                                abc.
#纯文本无格式输出
echo abc |xxd -p
6162630a
#不让echo输出换行符
echo -e 'abc\c' | xxd -p
616263
#反向操作,十六进制转字符
echo -e '616263\c' |xxd -r -p
abc


Linux的nc命令


nc是netcat的简写,是一个功能强大的网络工具,有着网络界的瑞士军刀美誉。nc命令在linux系统中实际命令是ncat,nc是软连接到ncat。nc命令的主要作用如下:


  • 实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口


  • 端口的扫描,nc可以作为client发起TCP或UDP连接


  • 机器之间传输文件


  • 机器之间网络测速


下面模拟一次整个 TCP 通讯过程


用 nc 在服务器上监听 8000 端口,在另一台机器上通过 nc 发送数据到 8000 端口,通过 tcpdump 抓包通信过程


在服务器上监听 8000 端口

[root@zhulangren ~]# nc -lvk 8000 -x a.txt
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Listening on :::8000
Ncat: Listening on 0.0.0.0:8000
Ncat: Connection from 192.168.1.14.
Ncat: Connection from 192.168.1.14:52545.
~(F '`)(WnՂՂ132183198002213311 0¢~^C
[root@zhulangren ~]# more a.txt 
[0000]   7E 07 02 00 28 06 46 09   27 60 29 F6 A5 01 21 07   ~...(.F. '`)...!.
[0010]   13 08 28 57 00 06 C0 EE   D4 C2 D4 C2 31 33 32 31   ..(W.... ....1321
[0020]   38 33 31 39 38 30 30 32   32 31 33 33 31 31 00 00   83198002 213311..
[0030]   00 20 99 12 30 A2 7E 


测试 8000 端口的连通性


#-v:显示指令执行过程;-w num 设置超时等待秒数;-z 使用0输入/输出模式,只在扫描通信端口时使用
nc -v -w 1 192.168.1.100 -z 8000


发送16进制报文


echo -e '7E070200029F6A501228570006C0EED4C2D4C233100000020991230A27E\c' | xxd -r -p |nc 192.168.1.100 8000 


若把报文保存为文本文件中,则可以这样以16进制发送:


cat test.txt |  xxd -r -p |nc 127.0.0.1 5050


服务器端若要能够显示16进制,则需:


nc -l 5050 | xxd  -p


在服务器上抓包


tcpdump -i eno1  tcp and port 8000 -w a.cap


linux下抓包tcpdump命令


Tcpdump是linux环境下抓包工具,可以对对应网络接口流量进行抓取或者过滤抓取,可以打印输出到屏幕,也可以保存到指定文件。指定的文件可以用wireshark来打开查看。可以快速查看符合网络接口符合某一条件的抓包,方便我们确定网络问题。


可以在linux系统环境下输入man tcpdump回车来查看它的帮助说明。如下图:


其命令格式是:tcpdump  跟踪范围   选项和对应参数  表达式


tcpdump   -i  eth0   -nnevv   host  192.168.205.201  and  icmp


tcpdump的跟踪接口的数据流量,首先得指定跟踪接口,不指定默认是编号最小的接口。


跟踪范围可以是某一个接口,也可以是any所有接口。选项和参数完成输出显示符合一定要求功能。表达式完成过滤一些特殊需要的包。


命令执行后,一般用ctrl+c来终止抓取,有的系统用ctrl+z,有的环境中ctrl+z不生成文件,要生成抓包文件必须用ctrl+c结束后才能生成;结果有输出打印和捕获包数,过滤包数和缓存占满丢弃包数。如下图:



执行结果是时间戳,链路层信息,网络层以上协议相关内容。常见格式就是源目的mac地址和方向,源目的ip地址,方向用>表示。协议的结果看下一章节的协议格式。常用arp,ip,tcp和udp。我们根据具体打印协议格式判断问题。根据选项确定显示格式,通过表达式确定筛选对应的包。


tcpdump捕获方式


格式:


#tcpdump [协议类型] [源或目标] [主机名称或IP] [or/and/not/!条件组合] [源或目标] [主机名或IP] [or/and/not/!条件组合] [端口] [端口号] …… [or/and/not/!条件组合] [条件]


tcpdump  ip dst 192.168.56.1 and src 192.168.56.210 and port 80 and host  ! www.baidu.com 


命令思维导图


https://ucc.alicdn.com/images/user-upload-01/img_convert/ea24c6961ee07c9540ae4476c5d7279c.png


引用


linux 命令 find与rm实现查找并删除目录或文件 - 会飞的斧头 - 博客园


【转】find命令批量修改文件后缀_cuihe6058的博客-CSDN博客


find命令批量修改文件后缀_ITPUB博客


Linux下批量修改后缀名_weixin_33795833的博客-CSDN博客


Linux常用命令大全(非常全面)_江畔独步的博客-CSDN博客_linux常用命令


linux系统 常用命令(全面总结)_籽麟网络的博客-CSDN博客_linux命令总结


Linux常用命令,目录解析,思维导图_51CTO博客_linux常用命令删除目录


LINUX基本指令_本小爷世界第一花式帅的博客-CSDN博客


find命令查询指定时间的大文件并删除_DBA_JohnHuang的博客-CSDN博客


【shell】find查找某段时间内的文件|定期删除7天前的文件|shell显示特定时间段文件_bandaoyu的博客-CSDN博客_find查看七天的文件


三分钟上手linux基本指令_就爱酸辣土豆丝的博客-CSDN博客


Linux crontab 命令 | 菜鸟教程


通过nc模拟通信报文 - 逐浪人的个人空间 - OSCHINA - 中文开源技术交流社区


Linux命令之nc命令_Mr-Wanter的博客-CSDN博客_nc命令


Linux nc命令 | 菜鸟教程


nc命令_东城绝神的博客-CSDN博客


tcpdump命令详解_wj31932的博客-CSDN博客_tcpdump命令详解


Tcpdump命令详解_IT.cat的博客-CSDN博客_tcpdump命令详解


nc命令使用_杨小扬的博客-CSDN博客_nc命令


linux-网络-nc命令_一边学习一边哭的博客-CSDN博客


万字最全Linux Shell详细教程! - 知乎 

相关文章
|
1月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
91 8
|
1月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
251 6
|
1月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
78 3
|
1月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
71 2
|
14天前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
42 14
Linux 10 个“who”命令示例
|
2天前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
52 20
|
3天前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
23 7
|
22天前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
31 9
|
21天前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解
|
27天前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
110 3