当前位置: 首页 > news >正文

Linux后台研发超实用命令总结

作者 码龙喵 转载请注明出处

1.概述

计算机领域水太深了,不可能什么都记住,所以只需要理解并记住核心的原理,其他的交给网络,用的时候查一下就可以了。因此整理了平时工作中自己觉得好用的命令。

2.系统相关

  • 查看手册命令

man

  • 只查看当前下一级目录占用大小

du --max-depth=1 -h

  • 查看某个进程是否在运行

ps -ef | grep prog | grep -v grep

pgrep prog

  • 查看内存统计

free -m

  • 查看系统任务运行情况(类似window的任务管理器)

top

  • 根据内存或者CPU占用对进程排序

    • 内存排序:执行top,然后按“shift + m”,这时进程就会按照内存占用从大到小排序。

    • CPU排序:执行top即可,top默认是按照CPU占用排序,也可以执行“shift + p”从内存大小排序转换为CPU排序。

  • 查看系统CPU占用情况

mpstat -P ALL 2

  • 查看系统io,内存,swap分区,cpu等汇总统计信息

vmstat 2

  • 查看系统tcp连接情况

netstat -anpt

3.进程相关

  • 杀掉所有某个程序的所有进程

killall program

  • 强杀一个指定pid的进程,江湖俗称“酒杀”,一杀必中

kill -9 pid

  • 查看某个程序的所有进程

pidof program

  • 查看指定pid的进程的运行时加载的环境变量

cat /proc/pid/environ | tr -s '0' 'n'

  • 通过pid查看对应的执行文件(这对查看来历不明的进程有帮助)

lsof -p pid | grep txt

  • 查看指定pid的进程内存地址空间映射(查看进程运行时实际加载的是那个库)

pmap -x pid

  • 查看程序的符号表(排查编译连接失败,调用异常等问题很好用)

nm file

readelf -s file

  • 查看指定pid的进程线程关系树(查看某个开源程序是否是多线程模型)

pstree -p pid

  • 查看指定pid的进程打开的文件

lsof -p pid

  • 查看指定pid的进程当前运行时的堆栈

pstack pid

  • 查看指定pid的进程当前在执行的系统调用

strace -p pid

  • 查看指定pid的进程当前在执行的库调用

ltrace -p pid

  • 查看指定程序依赖的动态链接库

ldd program

4.运营调试相关

  • 从一堆文件中查找包含某个字符串的文件(编译一堆文件时有变量冲突时特别好用,可以快速定位在那些文件中声明了相同的变量)

find ./ -type f -name ".c" -o -name ".h" | xargs grep "strings"

  • 查看文件被那些进程打开(对查看库被那些进程使用,在你要修改一个基础库在评估影响范围的时候就很好用)

fuser -v filename

lsof filename

  • 对字符串求MD5值或者SHA1值(验证程序MD5和SHA1算法时特别有用)

echo -n "abcde123" | md5sum

echo -n "abcde123" | sha1sum

  • linux shell中如何快速查询历史命令

ctrl + r

  • 查看执行历史带详细时间

export HISTTIMEFORMAT="%F %T whoami "

history

  • c++函数符号转换成c模式工具

c++filt

  • gdb设置打印完整字符串

set print element 0

  • scp跨主机远程拷贝

scp src user@host:dest

  • ssh登录远程主机

ssh user@host

  • 返回当前用户的home目录

cd

cd ~

  • 返回上一个目录

cd -

  • 删除当前输入的命令

ctrl + u

  • 中断当前命令的输入或者中断当前在执行的前台程序

ctrl + c

  • 强制退出当前命令的执行,有时执行ctrl + c无用时采用

ctrl + \

  • 实时查看日志文件的输出(只要日志有更新就能看到且是实时的)

tail -20f /home/xxx/log/yy.log

  • 测试web服务工具

curl

wget

  • 打包压缩命令

tar -zcvf test.tar ./*

  • 解包解压命令

tar -zxvf test.tar

5.写在最后

后续我会写一系列关于Linux后端研发的文章,为大家展示如何一步一步构建一个真正的Linux后端集群服务,记录一个“Linux C/C++后端研发菜鸟成长记”。

传送门 后端研发菜鸟成长记 第一章 入门 之 云服务器

相关文章:

  • 《转》python学习(5)--数据类型
  • spring data jpa自定义bean字段映射
  • Java 利用枚举实现单例模式
  • Bzoj3611 [Heoi2014]大工程
  • HashMap的简单实现
  • 【后缀自动机】hihocoder1441 后缀自动机一·基本概念
  • kafka之zk搭建
  • 机器学习 —— 基础整理(一)贝叶斯决策论;二次判别函数;贝叶斯错误率;生成式模型的参数方法...
  • C# Int转Enum
  • 开启TDE的RDS SQL Server还原到本地环境
  • 如何使用thinkphp的model来验证前端表单?
  • 磁盘文件系统2
  • 201521123009 《Java程序设计》第6周学习总结
  • Java深入 - 深入理解Java集合
  • [转] CSSOM视图模式(CSSOM View Module)相关整理
  • 【css3】浏览器内核及其兼容性
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • const let
  • css选择器
  • E-HPC支持多队列管理和自动伸缩
  • java正则表式的使用
  • LintCode 31. partitionArray 数组划分
  • php ci框架整合银盛支付
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • SpriteKit 技巧之添加背景图片
  • sublime配置文件
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 基于Android乐音识别(2)
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • C# - 为值类型重定义相等性
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • elasticsearch-head插件安装
  • PostgreSQL之连接数修改
  • #HarmonyOS:基础语法
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (30)数组元素和与数字和的绝对差
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (zhuan) 一些RL的文献(及笔记)
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (四)Controller接口控制器详解(三)
  • (四)鸿鹄云架构一服务注册中心
  • (转)Linux整合apache和tomcat构建Web服务器
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • .NET Core 中的路径问题
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .Net的DataSet直接与SQL2005交互
  • .NET基础篇——反射的奥妙
  • .net开发引用程序集提示没有强名称的解决办法
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • @ComponentScan比较
  • @EnableWebMvc介绍和使用详细demo