Linux 系统管理命令集合
运行环境是Ubuntu 16.0.4,联网安装相关命令,同时记录常见命令fdisk、df、top、free等,命令格式的详细参数等,可以参考help或者man。
一、查看硬盘或者文件信息
1、fdisk
sudo fdisk -l
fdisk命令,查看系统所有的硬盘设备信息。
如图,会显示如下的内存信息(未截图)、信息120GB的SSD硬盘,以及外挂的64GB SD卡信息。
2、df命令
命令格式:
df [OPTION]... [FILE]...
作用:查看Linux所有文件系统的硬盘利用率信息(仅包括已经挂载的分区)。
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命令 查询端口占用请看
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 文件名
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
- 扫描多个主机: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.202sudo 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 系统管理命令集合相关推荐
- 基本BASH SHELL脚本命令——Linux系统管理命令-检测程序、检测磁盘空间
详细介绍Linux系统管理命令,演示如何通过命令行命令来探查Linux系统的内部信息 一.监测程序 Linux系统管理员面临的最复杂的任务之一就是跟踪运行在系统中的程序--尤其是现在,图形化桌面集成了 ...
- linux 系统管理命令整理
10个超实用的CentOS网络和监控命令 网络和监控命令类似于这些: hostname, ping, ifconfig, iwconfig, netstat, nslookup, traceroute ...
- LINUX 常用命令集合
su su命令是最基本的命令之一,常用于不同用户间切换.例如,如果登录为 user1,要切换为user2,只要用如下命令: $su user2 然后系统提示输入user2口令,输入正确的口令之后就可以 ...
- gdbstub中的基本命令_程序员应该知道的 20 个 Linux 系统管理命令
在充满新工具和多样化开发环境的世界中,任何开发人员或工程师都必须学习一些基本的系统管理命令,以下这 20 个基本的系统管理命令可以帮助开发人员排除故障.优化应用程序.提供重要的系统信息等,是每个程序员 ...
- Linux春招面试复习之:Linux必备命令集合
管道符"|"将两个命令隔开,左边命令的输出作为右边命令的输入.连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推 1 文 ...
- Linux系统管理命令大全
1.adduser命令 Linux adduser命令用于新增使用者帐号或更新预设的使用者资料. adduser 与 useradd 指令为同一指令(经由符号连结 symbolic link). 使用 ...
- 【Linux常用命令】linux常用命令集合配例子解析说明(持续更新)【Linux基础命令使用及总结】2020-12-21
Linux基本命令集合(持续更新) 前言 一.pwd命令 二.ls命令 三.cd命令 前言 本文将随着个人头发稀疏程度的时间戳而更新,且这个列举的命令,不管简单复制与否,都会逐一做出举例解释说明,但某 ...
- Linux基础命令集合
1 文件{ ls -rtl # 按时间倒叙列出所有目录和文件 ll -rt touch file # 创建空白文件 rm -rf 目录名 # 不提示删除非空目录(-r:递归删除 -f强制) dos2u ...
- linux ftp 命令集合
1 前言 下面就所有命令给出解释和例子. 说明: 1. remote-file 指远程文件,即服务器上的文件 2. local-file 指本地文件,即本地机器上的文件 2 登录登出命令 2.1 ...
最新文章
- MySQL 狠甩 Oracle 稳居 Top1,私有云最受重用,大数据人才匮乏! | 中国大数据应用年度报告...
- paddle自定义weight初始参数(parameter)
- 新疆那些大学在计算机专业好,新疆哪些二本大学的计算机科学与技术专业最好?...
- 神经网络的分类准确率是连续的吗?
- 让Python中类的属性具有惰性求值的能力
- 【Linux】编译C语言文件(-o -lpthread)
- 2021年世界科技进展100项
- Copy as Markdown - 将页面链接按照 Markdown 格式copy
- python scrapy同时执行spiders多个爬虫
- HDU 3449 Consumer
- 2022安徽合肥经济技术开发区招聘社区工作者冲刺试题及答案
- 《认知盈余》核心摘要——“人们实际上很喜欢创造并分享”: 参与是一种行为
- Rust语言教程(6) - 错误处理和可选值
- vue获取当前时间、时间戳方法
- Win10常见问题【Office等】
- 北京开始整治互联网加班了!附 955 不加班公司名单(2022版)
- 怎么做好宝贝标题优化?
- 车规级芯片IC等级及其特点
- 【218】java课的一些笔记
- SQL计算某个字符的出现次数
热门文章
- VS2015 Winform 添加文件后 中文乱码
- matlab solve 警告,当发出警告时令测试失败的插件
- I帧、P帧、B帧、GOP、IDR 和PTS, DTS之间的关系
- 弘辽科技:同为女强人,人生道路却大不相同。
- matlab中set的用法,set函数(set函数的使用方法)
- vue-cli3的项目 CDN链接报错解决 Uncaught TypeError: Cannot read property 'prototype' of undefined at Object.
- 2016暑假集训小结
- RGCN - Modeling Relational Data with Graph Convolutional Networks 使用图卷积网络对关系数据进行建模 ESWC 2018
- 一个优秀IT专家的成长历程---献给所有的颓废或即将颓废的人们
- linux 强制关闭进程