Linux常用命令

 2022-08-29    0 条评论    19759 浏览

shell

Find命令

文件名查找

当前文件夹查找文件
find . -name '文件名'
指定文件夹查找文件
find /opt -name '文件名'
根目录查找文件
find / -name '文件名'
通配符查找文件
find / -name '*匹配前后缀*'
文件特征查找

找出大于限定大小得文件(c:字节,w:双字,k:KB,M:MB,G:GB)

find . -size +30k

找出小于限定大小得文件(c:字节,w:双字,k:KB,M:MB,G:GB)

find . -size -5k



Grep命令

功能说明

  • grep 命令用于查找文件中,符合指定范文本样式的字符串,并输出相关行内容。
  • grep可以指定文件筛选,如果不指定具体文件或文件集合,则会从标准输入中获取筛选数据。

简单例子

从error.log中查找Exception

grep 'Exception' error.log

或者

cat error.log|grep 'Exception'

会筛选打印所有包含‘Exception’的数据

前者直接筛选文件内容,后者将文件内容输入到流再grep筛选。

参数功能

grep命令可以附加参数,让筛选更灵活

grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
  • -a 或 --text : 不要忽略二进制的数据。
  • -A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
  • -b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
  • -B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
  • -c 或 --count : 计算符合样式的列数。
  • -C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
  • -d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
  • -e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
  • -E 或 --extended-regexp : 将样式为延伸的正则表达式来使用。
  • -f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
  • -F 或 --fixed-regexp : 将样式视为固定字符串的列表。
  • -G 或 --basic-regexp : 将样式视为普通的表示法来使用。
  • -h 或 --no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
  • -H 或 --with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
  • -i 或 --ignore-case : 忽略字符大小写的差别。
  • -l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称。
  • -L 或 --files-without-match : 列出文件内容不符合指定的样式的文件名称。
  • -n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
  • -o 或 --only-matching : 只显示匹配PATTERN 部分。
  • -q 或 --quiet或--silent : 不显示任何信息。
  • -r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。
  • -s 或 --no-messages : 不显示错误信息。
  • -v 或 --invert-match : 显示不包含匹配文本的所有行。
  • -V 或 --version : 显示版本信息。
  • -w 或 --word-regexp : 只显示全字符合的列。
  • -x --line-regexp : 只显示全列符合的列。
  • -y : 此参数的效果和指定"-i"参数相同。

操作对比

普通操作
grep 'tomcat' nohup.out
多显示匹配位置后2行数据
grep 'tomcat' -A 2  nohup.out

grep 'tomcat' nohup.out -A 2
多显示匹配位置前2行数据
grep 'tomcat' -B 2  nohup.out

grep 'tomcat' nohup.out -B 2
多显示匹配内容前后2行数据
grep 'tomcat' -C 2  nohup.out

grep 'tomcat' nohup.out -C 2
查找指定后缀文件的指定内容

查找当前目录下指定.log后缀文件的包含Exception的内容

grep 'Exception' *.log
递归查找文件夹

递归查找/opt/logs目录下所有包含Exception的内容

grep -r Exception /opt/logs
反向查找

可以反向查找不包含内容的数据

递归查找/opt/logs目录下所有不包含Exception的内容

grep -v Exception /opt/logs

scp命令

  • Linux scp 命令用于 Linux 之间复制文件和目录。
  • scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。
  • scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。

复制文件

格式
scp 文件 用户名@IP:路径
命令样例
scp  file.tar.gz root@1.1.1.1:/home/houqiang

复制目录

scp -r /opt/files root@1.1.1.1:/home/houqiang

scp指定端口

scp -P 2233 -r /opt/files root@1.1.1.1:/home/houqiang

scp参数

参数说明:

  • -1: 强制scp命令使用协议ssh1
  • -2: 强制scp命令使用协议ssh2
  • -4: 强制scp命令只使用IPv4寻址
  • -6: 强制scp命令只使用IPv6寻址
  • -B: 使用批处理模式(传输过程中不询问传输口令或短语)
  • -C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
  • -p:保留原文件的修改时间,访问时间和访问权限。
  • -q: 不显示传输进度条。
  • -r: 递归复制整个目录。
  • -v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
  • -c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
  • -F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
  • -i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
  • -l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
  • -o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
  • -P port:注意是大写的P, port是指定数据传输用到的端口号
  • -S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

netstat

netstat安装

执行的时候如果提示:bash: netstat: 未找到命令 则先安装

yum install net-tools

查看已启动端口

netstat -ntlp

查看指定进程端口

netstat -nap | grep 进程pid

查看指定端口状态

netstat -ntlp | grep 端口号

命令行参数详解

  • -a (all)显示所有选项,默认不显示LISTEN相关
  • -t (tcp)仅显示tcp相关选项
  • -u (udp)仅显示udp相关选项
  • -n 拒绝显示别名,能显示数字的全部转化成数字。
  • -l 仅列出有在 Listen (监听) 的服务状态
  • -p 显示建立相关链接的程序名
  • -r 显示路由信息,路由表
  • -e 显示扩展信息,例如uid等
  • -s 按各个协议进行统计
  • -c 每隔一个固定时间,执行该netstat命令。