Linux 系统管理命令集合

运行环境是Ubuntu  16.0.4,联网安装相关命令,同时记录常见命令fdisk、df、top、free等,命令格式的详细参数等,可以参考help或者man。

一、查看硬盘或者文件信息

1、fdisk

 sudo fdisk -l

fdisk命令,查看系统所有的硬盘设备信息。

如图,会显示如下的内存信息(未截图)、信息120GB的SSD硬盘,以及外挂的64GB  SD卡信息。

Linux 系统管理命令集合_第1张图片

2、df命令

命令格式:

df  [OPTION]... [FILE]...

作用:查看Linux所有文件系统的硬盘利用率信息(仅包括已经挂载的分区)。

Linux 系统管理命令集合_第2张图片

3、du 命令

命令格式

du  [OPTION]... [FILE]...OPTION]... [FILE]...

作用:查看文件占用的磁盘空间大小

du   -h    -d  1

4、md5sum命令

作用:查看文件md5校验值

二、实时资源信息查看

1、free命令

如图所示,free 命令显示,当前内存使用的总体情况。

2、top命令

具体命令格式,可以参考help。以及如下连接:

前5行是,统计信息,具体含义:

第一行是,系统时间信息、用户数、任务队列。

序号 含义
1 09:16:01 当前系统时间
2 50min 系统运行时间    格式是    小时:分钟
3 1 [user] 当前登录用户数
4 load average  0.23 系统负载  1分钟前任务平均长度
5 load average  0.27 系统负载  5分钟前任务平均长度
6 load average  0.21 系统负载  15分钟前任务平均长度

疑问:如何计算系统负载?

第二行,是进程信息。

序号 含义
1 246  [total] 进程总数
2 1 [running] 正在运行的进程数量
3 245 [sleeping] 休眠的进程数量
4 0 [stopped] 停止的进程数
5 0 [zombie] 僵死的进程数

第三行,是CPU信息。

可以使用1 - command,切换多核模式。

第四行是 物理内存使用情况。

序号 含义
1 11988028  total 物理内存总量
2 9600056   free 空闲物理内存
3 1134356    used 用户空间的物理内存量
4 1253616    buff/cache 内核缓存的物理内存量

可以使用E - command,切换不同的统计单位,如下      

           KiB = kibibyte = 1024 bytes
           MiB = mebibyte = 1024 KiB = 1,048,576 bytes
           GiB = gibibyte = 1024 MiB = 1,073,741,824 bytes
           TiB = tebibyte = 1024 GiB = 1,099,511,627,776 bytes
           PiB = pebibyte = 1024 TiB = 1,125,899,906,842,624 bytes
           EiB = exbibyte = 1024 PiB = 1,152,921,504,606,846,976 bytes

第五行是 虚拟内存使用情况。

序号 含义
1 3905532  total swap内存总量
2 3905532  free swap空闲总量
3 0    used swap使用量
4 10081020  avail mem swap分区交换至物理内存的总量

进程以及线程信息:

       PID:进程的ID
  USER:进程所有者
  PR:进程的优先级别,越小越优先被执行
  NInice:值
  VIRT:进程占用的虚拟内存
  RES:进程占用的物理内存
  SHR:进程使用的共享内存
  S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
  %CPU:进程占用CPU的使用率
  %MEM:进程使用的物理内存和总内存的百分比
  TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
  COMMAND:进程启动命令名称

# top -u  用户名     //查看用户进程占用资源情况

#U - command  可以根据用户名查看进程

#c - command   可以查看命令路径

内存查看与优化 - 好文

3、ps、netstat、pmap   等其他 命令

lsof命令  查询端口占用请看 

Linux 系统管理命令集合_第3张图片

netstat  查询端口网络情况,以下本机实例,查询TCP监听端口:

#jps               //查看Tomcat进程
1638 Bootstrap
13766 jps
#while true; do pmap -d  3066 | tail -1; sleep 2; done   //查看Tomcat进程占用内存情况
mapped: 6612168K    writeable/private: 722332K    shared: 2748K
mapped: 6612168K    writeable/private: 722332K    shared: 2748K
mapped: 6612168K    writeable/private: 722332K    shared: 2748K
mapped: 6612168K    writeable/private: 722332K    shared: 2748K
mapped: 6612168K    writeable/private: 722332K    shared: 2748K
mapped: 6612168K    writeable/private: 722332K    shared: 2748K
mapped: 6612168K    writeable/private: 722332K    shared: 2748K

4、locate、find  查询命令

locate与find都是Ubuntu等Linux系统提供的文件查询命令。

locate命令,首先通过建立一个系统内所有文件路径、文件名称的索引库(sqlite库?等待确定),之后执行locate命令,仅仅查询数据库,避免全盘扫描文件,实现快速文件查询。类似与Windows下的Everything文件工具,使用方式如下:

(1)更新文件索引库

(2)使用locate命令查询

locate  文件名

实例一:查询文件名是gulp.js的文件

实例二:查询/etc目录下以sh开头的文件

实例三:查询/softing目录下,以s开头的文件   -n  指示最多显示5条,同时-i  不区分大小写。

实例四:locate  -r   正则表达式

以×××开始,以/var/tmp开始的文件名:

以xxxx结束,以/Logs/log结束的文件名:

find,是Linux系统提供的实时文件查询命令。

基本用法如下:find   路径名   -name   文件名    

Linux 系统管理命令集合_第4张图片

find与grep命令配合:

find命令同时支持正则表达式:

find命令与locate命令,表示以/bin/find结束的文件

使用find + xargs + rm 删除特定目录下的log文件

// 删除以log结尾的日志
find ~/Downloads/ -name "*.log" | xargs rm -f

// 删除更改时间为5天前的,以log结尾的日志

find ~/Downloads/ -mtime +5 -name "*.log" | xargs rm -f

小总结:

(1)locate命令执行速度高于find命令,因为其本质是查询文件系统的索引库。

(2)locate命令是非实时的,是以文件索引库为准。系统会自动维护更新。

(3)locate命令,用户可以通过sudo  updatedb  命令更新文件索引库。

5、htop命令

首先,在Ubuntu 系统Terminal,使用 “apt” 命令在线安装htop

如果安装过程遇到如下错误:

是因为,在线安装atom软件包时,非正常结束。如图,我们可以使用  dpkg  命令卸载安装包。然后再安装htop。

然后,运行htop命令。观察相关信息。可以利用状态栏的F1 - F10功能键,完成交互查询。

6、tcpdump

tcpdump是Linux系统常用的网络包分析工具,显示通过网络传输到系统的TCP/IP以及其他网络的数据包。tcpdump使用libpcap。

安装:Linux发行版本普遍存在,联网机器,如果需要额外安装:

      CentOS/RHEL

$sudo yum install tcpdump*

      Fedora      

$dnf install tcpdump

      Ubuntu

$apt-get insyall tcpdump

运行权限:sudo特权或者root用户运行tcpdump,

数据来源:网卡或者网络数据包文件

依赖:libpcap

使用样例:

#su
#tcpdump -i any  //从所有网卡中抓获数据包
#tcpdump -i eth0 //从特定网卡抓获数据
#tcpdump -i eth1 -w packet_file //将抓包的包写入文件
#tcpdump -r packet_file       //读取保存的tcpdump文件
#tcpdump -ttttnnvvS      //获取
#tcpdump  net 192.168.0.111\24  //查看特定网络的数据包
#tcpdump host 192.168.0.111  //查看特定ip的数据包
#tcpdump src 192.168.0.111   //查看IP源地址等于192.168.0.111的数据包
#tcpdump dst 192.168.0.111  //查看IP源地址等于192.168.0.111的数据包

//特定协议或者端口的数据包
#tcpdump ssh
#tcpdump port 22
#tcpdump portrange 22-125
//使用与(&&,and )、或(||,or)、非(not,!)
#tcpdump src 192.168.0.11 && port 22 -w tcpdump.dmp

#tcpdump port 443 or 80 -w tcpdump.dmp   //抓获443或者80端口的数据

#tcpdump -i eth0 src pot not 22   // 捕获eth0网卡的非22端口的所有数据包

三、扫描局域网设备主机信息

  • nmap
    • 显示帮助信息
    • man nmap
      nmap -h

    • 扫描单个主机:nmap 192.168.199.222
    • 扫描单个子网:nmap 192.168.199.222/24

Linux 系统管理命令集合_第5张图片

  •           
    • 扫描多个主机:nmap 192.168.199.202 192.168.199.222
    • 扫描范围内主机:nmap 192.168.199.100-200
    • 扫描IP地址表:nmap -iL ip.log   

    • # ip.log 文件
      
      192.168.199.1
      192.168.199.100-240

    • 扫描地址段排除IP

      nmap 192.168.199.1/24 -exclude 192.168.199.222  
      nmap 192.168.199.1/24 -exclude ip.log
  • 扫描主机路由跟踪信息
sudo nmap --traceroute 192.168.199.202

sudo nmap -vv --traceroute 192.168.199.202
  • 扫描主机指定端口
# 其中T代表TCP协议、U代表UDP协议、S代表SCTP协议
sudo nmap -p U:100,T:22,80,443,554,1935,S:21 192.168.199.202
  • 快速扫描端口模式,扫描100个最有可能开放的端口 
nmap -F -v 192.168.199.202
  • 打印主机接口和路由
nmap --iflist

指定扫描方式sT(TCP扫描)、sU(UDP扫描)、sS( SYN 扫描)、sF(FIN scan )、

sP(Ping扫描) 、sL(Idle 扫描)

扫描端口时状态介绍:

Open  端口开启,数据有到达主机,有程序在端口上监控

Closed  端口关闭,数据有到达主机,没有程序在端口上监控  

Filtered  数据没有到达主机,返回的结果为空,数据被防火墙或者是IDS过滤  

UnFiltered  数据有到达主机,但是不能识别端口的当前状态  

Open|Filtered  端口没有返回值,主要发生在UDP、IP、FIN、NULL和Xmas扫描中

Closed|Filtered   只发生在IP ID idle扫描

四、查询系统信息

#uname -a     //电脑以及操作系统的相关信息电脑以及操作系统的相关信息
#cat /proc/version       //查询正在运行的内核版本
#cat /etc/issue"      //查询发行版本信息
#lsb_release -a       //(适用于所有的linux,包括Redhat、SuSE、Debian等发行版,但是在debian下要安装lsb)

#cat /etc/redhat-release    //查看CentOS系统版本

五、修改主机名称

#hostname mote
#sudo vim /etc/sysconfig/network    //修改其中的hostname   reboot 生效
#sudo vim /etc/hosts                          //修改dns本地配置


六、其他命令

# uname -a # 查看内核/操作系统/CPU信息 
# head -n 1 /etc/issue # 查看操作系统版本 
# cat /proc/cpuinfo # 查看CPU信息 
# hostname # 查看计算机名 
# lspci -tv # 列出所有PCI设备 
# lsusb -tv # 列出所有USB设备 
# lsmod # 列出加载的内核模块 
# env # 查看环境变量资源 
# free -m # 查看内存使用量和交换区使用量 
# df -h # 查看各分区使用情况 
# du -sh <目录名> # 查看指定目录的大小 
# grep MemTotal /proc/meminfo # 查看内存总量 
# grep MemFree /proc/meminfo # 查看空闲内存量 
# uptime # 查看系统运行时间、用户数、负载 
# cat /proc/loadavg # 查看系统负载磁盘和分区 
# mount | column -t # 查看挂接的分区状态 
# fdisk -l # 查看所有分区 
# swapon -s # 查看所有交换分区 
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备) 
# dmesg | grep IDE # 查看启动时IDE设备检测状况网络 
# ifconfig # 查看所有网络接口的属性 
# iptables -L # 查看防火墙设置 
# route -n # 查看路由表 
# netstat -lntp # 查看所有监听端口 
# netstat -antp # 查看所有已经建立的连接 
# netstat -s # 查看网络统计信息进程 
# ps -ef # 查看所有进程 
# top # 实时显示进程状态用户 
# w # 查看活动用户 
# id <用户名> # 查看指定用户信息 
# last # 查看用户登录日志 
# cut -d: -f1 /etc/passwd # 查看系统所有用户 
# cut -d: -f1 /etc/group # 查看系统所有组 
# crontab -l # 查看当前用户的计划任务服务 
# chkconfig –list # 列出所有系统服务 
# chkconfig –list | grep on # 列出所有启动的系统服务程序 
# rpm -qa # 查看所有安装的软件包
# dpkg -l | grep ^rc | cut -d' ' -f3 | sudo xargs dpkg --purge #删除rc状态(已经删除但是存在配置文件)的软件包

参考文档:

Linux Top 命令详解

lubuntu -locate 

每天一个Linux命令 - locate

E: 软件包 atom 需要重新安装,但是我无法找到相应的安装文件。_WenJimmy的专栏-CSDN博客

Linux 命令行

你可能感兴趣的:(linux,linux,常见命令)