Linux高频命令

Linux指令

常用指令

磁盘管理

  • ls指令
ls(list)功能:列出目录内容
格式:ls[参数](参数少部分有顺序要求)[目录](不写查看当前目录)
    -a or -all 查看所有文件和目录
    -l 详细格式列表
    -t 用文件和目录的更改时间排序
    -r 反向排序
    -h 友好的显示方式 ll -h
常用 ls -l 等同于ll  例如 ll /home/
  • cd指令
cd(change directory)功能:切换目录
语法:cd[目录]
常用
    cd ~    ,切换到当前用户目录(用户主目录)
    cd /    ,跟目录
    cd - ,上一次访问的目录即后退
    cd ..   ,上一级目录
    cd 目录名称 ,访问下一级目录
    cd      ,缺省,切换到当前用户目录
  • pwd指令
pwd(print working directory)功能:显示工作目录(当前目录)
  • mkdir命令
mkdir(make directory)功能:创建目录
    -p 父目录不存在情况下线生成父目录
    -v 显示命令执行过程中的详细信息
  • clear伪清屏命令

文件管理

  1. cat命令 快速查看整体内容,文件不过太大
cat(catenate)功能:显示文本文件内容
语法:cat 文件名称  ,显示指定文件的所有内容
  1. more命令
more功能:分页显示文件内容,支持直接跳行等功能
操作
    Enter   向下n行,默认一行
    空格键  向下滚动一屏or Ctrl+F
    B   返回上一屏or Ctrl+B
    q   退出more
    Ctrl+c强制退出
example:more /root/install.log
  1. less命令
less功能:分页显示文件内容,操作更详细
    -m  显示类似more命令的百分比
    -N  显示每行的行号
操作
    空格键:前进一页
    b:后退一页
    Enter:前进一行 or 方向键向下
    y:后退一行 or 方向键向下
    /字符串:向下搜索
    ?字符串:向上搜索
    v:进入vim编辑器
    q:退出
example:less -mN /root/install.log
  1. tail命令:常用于看日志.log
功能:显示指定文件末尾内容
    -n<行数> 显示行数
    -f 循环读取   (可以不停的查看最新信息)
example:ping 127.0.0.1 > ip.log &   (&表示后台运行)
         tail -f ip.log   

文档编辑

系统命令

sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://mtpyn9ce.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

chmod 增加可执行权限

sudo chmod +x /usr/local/bin/docker-compose

网络配置

初始化虚拟机

执行命令

vi /etc/sysocnfig/network-scripts/ifcfg-ens33,将ONBOOT=NO改为yes 网络支持
yum -y install perl gcc gcc-c++ make cmake kernel kernel-headers kernel-devel net-tools  基本工具依赖
    其中 yum search ifconfig 得到信息 ifconfig命令依赖net-tools

高频命令

查找文件:

在根目录/下查找包含kafka的文件
find / -name '*kafka*'  
查找.log后缀 包含elk的行
find / -name "*.log" | xargs grep "elk"

高亮显示  kafka  
find / -name '*kafka*' |grep --color  kafka
查找进程所在目录
ps aux | grep 进程名称
ll /proc/pid
cwd符号链接的是进程运行目录;
exe符号连接就是执行程序的绝对路径;
cmdline就是程序运行时输入的命令行命令;
environ记录了进程运行时的环境变量;
fd目录下是进程打开或使用的文件的符号连接 
如:
ps aux | grep job
ll /proc/22212
显示 cwd -> /usr/local/job1

查看系统资源:

内存:free
    free -m  单位 M
磁盘:lsblk
cpu:lscpu

查找进程:ps

查找进程名称包含java的进程
ps -ef | grep java
查找进程名称包含java不包含grep的进程 
    -v相当于not
    -e相当于and
    -E "pattern1|pattern2" 相当于or
ps -ef | grep java | grep -v grep
ps -aux 和 ps -ef 显示信息类似但是风格不一样
System V风格和BSD 风格
ps aux 是BSD风格
ps -ef 是System V Style风格

显示磁盘容量:

df -h 

排查磁盘占用情况:

du -sh /* 当前文件夹下所有文件及文件夹占用情况
du -h --max-depth=1    ;Linux 查找占用空间最大的文件与目录
ls –lhS 将文件以从大到小顺序展现
rm –f xxx.log 删除日志
/usr/sbin/lsof|grep deleted 确认删除文件是否被占用
kill -9 xxx杀死进程

排查内存占用情况:ps

ps aux | sort -k4nr | head -n 10 

vim基本操作:

一般模式(默认)
i:insert插入模式

v:visual模式
    移动光标选择复制内容  
    y  复制光标选中内容
    yy 复制整行
在以上模式按Esc退出到一般模式
在一般模式:wq  保存退出
        :q  直接退出

查看服务器是否开放某端口:netstat

tcp端口:>netstat -ntpl
udp端口:>netstat -nupl
查看所有连接
netstat -natp

查看程序端口号通信

根据线程号查询正在运行的程序的port(端口号)
netstat -anop | grep pid(程序的线程号)

查看TCP连接

统计聚合
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
    CLOSE_WAIT 16
    ESTABLISHED 126
    TIME_WAIT 297
指定端口号的tcp统计
    netstat -n |grep -i ":80" | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
CLOSED 没有使用这个套接字[netstat 无法显示closed状态]
LISTEN 套接字正在监听连接[调用listen后]
SYN_SENT 套接字正在试图主动建立连接[发送SYN后还没有收到ACK]
SYN_RECEIVED 正在处于连接的初始同步状态[收到对方的SYN,但还没收到自己发过去的SYN的ACK]
ESTABLISHED 连接已建立
CLOSE_WAIT 远程套接字已经关闭:正在等待关闭这个套接字[被动关闭的一方收到FIN]
FIN_WAIT_1 套接字已关闭,正在关闭连接[发送FIN,没有收到ACK也没有收到FIN]
CLOSING 套接字已关闭,远程套接字正在关闭,暂时挂起关闭确认[在FIN_WAIT_1状态下收到被动方的FIN]
LAST_ACK 远程套接字已关闭,正在等待本地套接字的关闭确认[被动方在CLOSE_WAIT状态下发送FIN]
FIN_WAIT_2 套接字已关闭,正在等待远程套接字关闭[在FIN_WAIT_1状态下收到发过去FIN对应的ACK]
TIME_WAIT 这个套接字已经关闭,正在等待远程套接字的关闭传送[FIN、ACK、FIN、ACK都完毕,这是主动方的最后一个状态,在过了2MSL时间后变为CLOSED状态]

注意 TIME_WAIT 的数量

-- 查询指定端口80端口连接
netstat -nat|grep -i ":80"
-- 统计80端口连接数
netstat -nat|grep -i ":80"|wc -l
-- 统计httpd协议连接数
ps -ef|grep httpd|wc -l

查看进程或线程资源:top

查看进程资源

top [-d number] | top [-bnp]
    top -d 5 -bn 1 -i -c
-d:top命令显示页面刷新时间,默认5秒
-b:以批次的方式执行top 
-n:与-b配合使用,表示需要进行几次top命令的输出结果
-p:指定特定的pid进程号进行观察
-i -c:查看每个用户的执行的具体命令,类似于ps -f 进程id

执行top命令后
 按 小写x 默认按cpu排序
 按 大写M 内存排序 P cpu排序 N 启动时间排序

排查线程 cpu 飙升

top -Hp [pid]   进程号命令找到 CPU 消耗最多的线程号(列名仍然为 PID)
    top -Hp 11211
printf "%x\n"   上面的列表把pid转为16进制
    printf "%x\n" 27181
        6a2d
jstack 进程号 | grep 16进制线程号 -A 10 命令找到 CPU 消耗最多的线程方法堆栈

非java使用 perf top -p 27181  
    yum install perf 安装

查看系统版本:

uname -a 查看当前系统版本

uname -r:发行版号  3.10
3.10.0-693.2.2.el7.x86_64
uname -v: 内核编译日期
#1 SMP Tue Sep 12 22:26:13 UTC 2017
uname -o:操作系统
GNU/Linux

排查网络

dig
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值