linux笔记|linux 常用命令汇总(面向面试)

linux 常用命令汇总 个人认为先掌握一些比较常用的,剩下的需要再学
总结了一些面试比较可能会问道的命令

文章目录

  • linux 常用命令汇总
    • 基础命令
      • ulimit
      • dos2unix和unix2dos
    • 查看活动进程
      • ps进程信息
      • top进程cpu内存信息
      • pidstat进程资源
    • 查看内存
      • free
    • 跟踪进程
      • pstack
      • strace
    • 网络相关
      • telnet
      • traceroute
      • netstat
      • tcpdump
          • 常规过滤规则

基础命令 grep
find —— find [指定查找?录] [查找规则] [查找完后执?的action]
ls
文件操作略
ulimit
Linux系统对每个登录的?户都限制其最?进程数和打开的最??件句柄数。为了提?性能,可以根据硬件 资源的具体情况设置各个?户的最?进程数和打开的最??件句柄数。可以?ulimit -a来显示当前的各种 系统对?户使?资源的限制。
设置?户的最?进程数: ulimit -u 1024 设置?户可以打开的最??件句柄数: ulimit -n 65530
dos2unix和unix2dos
?于转换Windows和UNIX的换?符,通常在Windows系统h开发的脚本和配置,UNIX系统下都需要转换。
使??式:
dos2unix test.txt
unix2dos test.txt
#转换整个?录 f
ind . -type f -exec dos2unix {} ;
find ./ -type f此命令是显示当前?录下所有的?件
查看活动进程 ps进程信息
ps??于显示系统内的所有进程,-l或l 采?详细的格式来显示进程状况。
常??式:ps -elf 和ps -ef
(1)检测是否有活动进程:
sudo ps -ef |grep “nginx: master process” |grep -v grep
(2)检测有?个同样的活动进程
sudo ps -ef |grep “nginx: master process” |grep -v grep |wc -l
top进程cpu内存信息
top命令?于查看活动进程的CPU和内存信息,能够实时显示系统中各个进程的资源占?情况,可以按照 CPU、内存的使?情况和执?时间对进程进?排序。
详情请见
linux笔记|linux 常用命令汇总(面向面试)
文章图片

第一行:
10:01:23 — 当前系统时间
126 days, 14:29 — 系统已经运行了126天14小时29分钟(在这期间没有重启过)
2 users — 当前有2个用户登录系统
load average: 1.15, 1.42, 1.44 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
第二行:
Tasks — 任务(进程),系统现在共有183个进程,其中处于运行中的有1个,182个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。
第三行:cpu状态
6.7% us — 用户空间占用CPU的百分比。
0.4% sy — 内核空间占用CPU的百分比。
0.0% ni — 改变过优先级的进程占用CPU的百分比
92.9% id — 空闲CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
0.0% si — 软中断(Software Interrupts)占用CPU的百分比
第四行:内存状态
8306544k total — 物理内存总量(8GB)
7775876k used — 使用中的内存总量(7.7GB)
530668k free — 空闲内存总量(530M)
79236k buffers — 缓存的内存量 (79M)
第五行:swap交换分区
2031608k total — 交换区总量(2GB)
2556k used — 使用的交换区总量(2.5M)
2029052k free — 空闲交换区总量(2GB)
4231276k cached — 缓冲的交换区总量(4GB)
第七行以下:各进程(任务)的状态监控
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)
pidstat进程资源
pidstat?于监控全部或指定的进程占?系统资源的情况,包括CPU、内存、磁盘I/O、程切换、线程数等 数据。
-u:表示查看cpu相关的性能指标
-w:表示查看上下?切换情况
-t:查看线程相关的信息,默认是进程的; 常与-w结合使?(cpu的上下?切换包括进程的切换、线程的 切换、中断的切换)
-d:展示磁盘 I/O 统计数据
-p:指明进程号
使??式:pidstat [option] interval [count] 使?范例:pidstat -urd -p 进程号
【linux笔记|linux 常用命令汇总(面向面试)】linux笔记|linux 常用命令汇总(面向面试)
文章图片

CPU信息
%usr #?户层任务正在使?的CPU百分?(with or without nice priority ,NOT include time spent running a virtual processor)
%system #系统层正在执?的任务的CPU使?百分?
%guest #运?虚拟机的CPU占?百分?
%CPU #所有的使?的CPU的时间百分?
CPU #处理器数量
Command #命令
内存信息
· PID #进程号
· minflt/s #每秒次缺?错误次数(minor page faults),次缺?错误次数意即虚拟内 存地址映射成物理内存地址产?的page fault次数
· majflt/s #每秒主缺?错误次数(major page faults),当虚拟内存地址映射成物理 内存地址时,相应的page在swap中,
§ 这样的page fault为major page fault,?般在内存使?紧张时产?
VSZ #该进程使?的虚拟内存(以kB为单位)
RSS #该进程使?的物理内存(以kB为单位)
%MEM #当前任务使?的有效内存的百分?
Command #任务的命令名
磁盘I/O
PID #进程号
kB_rd/s #每秒此进程从磁盘读取的千字节数
kB_wr/s #此进程已经或者将要写?磁盘的每秒千字节数
kB_ccwr/s #由任务取消的写?磁盘的千字节数
Command #命令的名字
上下?切换 PID #PID号
cswch/s #每秒?动上下?切换
nvcswch/s #每秒??愿的上下?切换
Command #命令
查看内存 free
此命令?于显示系统内存的使?情况,包括总体内存、?经使?的内存;还可?于显示系统内核使?的缓 冲区,包括缓冲(buffer)和缓存(cache)等。
使??式:free free -h
linux笔记|linux 常用命令汇总(面向面试)
文章图片

  1. Mem ?(第??)是内存的使?情况。
  2. Swap ?(第三?)是交换空间的使?情况。
    total 列显示系统总的可?物理内存和交换空间??。
    used 列显示已经被使?的物理内存和交换空间。
    free 列显示还有多少物理内存和交换空间可?使?。
    shared 列显示被共享使?的物理内存??。
    buff/cache 列显示被 buffer 和 cache 使?的物理内存??。
free 与 available
在 free 命令的输出中,有?个 free 列,同时还有?个 available 列。这?者到底有何区别? free 是真正尚未被使?的物理内存数量。?于 available 就?较有意思了,它是从应?程序的?度看到的 可?内存数量。Linux 内核为了提升磁盘操作的性能,会消耗?部分内存去缓存磁盘数据,就是我们介绍 的 buffer 和 cache。所以对于内核来说,buffer 和 cache 都属于已经被使?的内存。当应?程序需要 内存时,如果没有?够的 free 内存可以?,内核就会从 buffer 和 cache 中回收内存来满?应?程序的 请求。所以从应?程序的?度来说,available = free + buffer + cache。请注意,这只是?个很理想的 计算?式,实际中的数据往往有较?的误差。
加上 -h 选项按G、M显示,持续观察内存的状况,此时可以使? -s 选项并指定间隔的秒数:
linux笔记|linux 常用命令汇总(面向面试)
文章图片

1、Buffer(缓冲区)是系统两端处理速度平衡(从?时间尺度上看)时使?的。它的引?是为了减?短期 内突发I/O的影响,起到流量整形的作?。?如?产者——消费者问题,他们产?和消耗资源的速度?体接 近,加?个buffer可以抵消掉资源刚产?/消耗时的突然变化。
2、Cache(缓存)则是系统两端处理速度不匹配时的?种折衷策略。因为CPU和memory之间的速度差异 越来越?,所以?们充分利?数据的局部性(locality)特征,通过使?存储系统分级(memory hierarchy)的策略来减?这种差异带来的影响。
3、假定以后存储器访问变得跟CPU做计算?样快,cache就可以消失,但是buffer依然存在。?如从?络 上下载东?,瞬时速率可能会有较?变化,但从?期来看却是稳定的,这样就能通过引??个buffer使得 OS接收数据的速率更稳定,进?步减少对磁盘的伤害。
跟踪进程 pstack
pstack命令?来显示每个进程的调?栈。可以使?pstack来查看进程正在挂起的执??法,也可以?来查 看进程的本地线程堆栈。
用法:pstack 进程ID gdb的 bt命令 类似
strace
系统调??具,是Linux系统下的?款程序调试?具,?来监控?个应?程序所使?的 系统调?,通过它 可以跟踪系统调?,让你熟悉?个Linux程序在背后是怎么?作的。 适?于想研究Linux底层的?作机制的 场景。
常用参数
-c 统计每?系统调?的所执?的时间,次数和出错的次数等.
-p pid 跟踪指定的进程pid.
strace -c -p 25901
网络相关 ifconfig ping
telnet
telnet是TCP/IP协议族的?员,是?络远程登录服务的标准协议,帮助?户在本地计算机上连接远程主 机。
使??式:telnet IP PORT
和ssh的区别 端?区别:telnet是23 ssh是22 本质:telnet是明码传输,ssh是加密传输
traceroute
traceroute可以提供从?户的主机到互联?另?端的主机的路径,虽然每次数据包由同?出发点到达同? ?的地的路径可能会不?样,但通常来说?多数情况下路径是相同的。
使??式:traceroute sina.com
netstat
此命令显示?络连接、端?信息等,另外?个命令ss与netstat命令类似,不再单独介绍。
(1)根据使?端?
netstat -nap | grep 8080
(2)根据进程ID查找进程的详细信息
ps -elf | grep 25901
tcpdump
tcpdump是?络状况分析和跟踪?具,是可以?来抓包的实?命令,使?前需要对TCP/IP有所熟悉,因为 过滤使?的信息都是TCP/IP格式。
详细用法
常规过滤规则 基于IP地址过滤:host
tcpdump host 192.168.10.100
# 根据源ip进行过滤 $ tcpdump -i eth2 src 192.168.10.100
# 根据目标ip进行过滤 $ tcpdump -i eth2 dst 192.168.10.200
基于端口进行过滤:port
tcpdump port 8088
# 根据源端口进行过滤 $ tcpdump src port 8088
# 根据目标端口进行过滤 $ tcpdump dst port 8088

    推荐阅读