
title: linux系列之常用运维命令整理笔录
date: 2019-10-03 00:00:00
---
<Excerpt in index | 首页摘要> 
本博客记录工作中需要的linux运维命令，大学时候开始接触linux，会一些基本操作，可是都没有整理起来，加上是做开发，不做运维，有些命令忘记了，所以现在整理成博客，当然vi，文件操作等就不介绍了，慢慢积累一些其它拓展的命令，博客不定时更新
<!-- more -->
<The rest of contents | 余下全文>

@[toc]
### 一、系统监控
#### 1、free命令
free 命令能够显示系统中物理上的空闲和已用内存，还有交换内存，同时，也能显示被内核使用的缓冲和缓存

```powershell
语法：free [param]
```

param可以为：
* -b：以Byte为单位显示内存使用情况；
* -k：以KB为单位显示内存使用情况；
* -m：以MB为单位显示内存使用情况；
* -o：不显示缓冲区调节列；
* -s<间隔秒数>：持续观察内存使用状况；
* -t：显示内存总和列；
* -V：显示版本信息。


![在这里插入图片描述](https://img-blog.csdnimg.cn/20191028191938222.png)
Mem：表示物理内存统计
* total：表示物理内存总数(total=used+free)
* used：表示系统分配给缓存使用的数量(这里的缓存包括buffer和cache)
* free：表示未分配的物理内存总数
* shared：表示共享内存
* buffers：系统分配但未被使用的buffers 数量。
* cached：系统分配但未被使用的cache 数量。

-/+ buffers/cache：表示物理内存的缓存统计
* (-buffers/cache) 内存数： (指的第一部分Mem行中的used – buffers – cached)
* (+buffers/cache) 内存数:  (指的第一部分Mem行中的free + buffers + cached)

(-buffers/cache)表示真正使用的内存数， (+buffers/cache) 表示真正未使用的内存数

Swap：表示硬盘上交换分区的使用情况


#### 2、ulimit命令
ulimit用于显示系统资源限制的信息
语法：ulimit [param]
param参数可以为：
  * -a 　显示目前资源限制的设定。 
 * -c <core文件上限> 　设定core文件的最大值，单位为区块。 
 * -d <数据节区大小> 　程序数据节区的最大值，单位为KB。 
 * -f <文件大小> 　shell所能建立的最大文件，单位为区块。 
 *  -H 　设定资源的硬性限制，也就是管理员所设下的限制。 
 *  -m <内存大小> 　指定可使用内存的上限，单位为KB。 
 *  -n <文件数目> 　指定同一时间最多可开启的文件数。 
 *  -p <缓冲区大小> 　指定管道缓冲区的大小，单位512字节。 
 *  -s <堆叠大小> 　指定堆叠的上限，单位为KB。 
 *  -S 　设定资源的弹性限制。 
 *  -t <CPU时间> 　指定CPU使用时间的上限，单位为秒。 
 *  -u <程序数目> 　用户最多可开启的程序数目。 
 *  -v <虚拟内存大小> 　指定可使用的虚拟内存上限，单位为KB

#### 3、top命令
top命令可以实时动态地查看系统的整体运行情况，是一个综合了多方信息监测系统性能和运行信息的实用工具

```powershell
语法：top [param]
```

param为：
* -b：以批处理模式操作；
* -c：显示完整的治命令；
* -d：屏幕刷新间隔时间；
* -I：忽略失效过程；
* -s：保密模式；
* -S：累积模式；
* -u [用户名]：指定用户名；
* -p [进程号]：指定进程；
* -n [次数]：循环显示的次数。



#### 4、df命令
* df -h查看磁盘使用情况
* df -i 查看inode使用情况


#### 5、ps命令
ps命令用于查看进程统计信息

常用参数：
* a：显示当前终端下的所有进程信息，包括其他用户的进程。
* u：使用以用户为主的格式输出进程信息。
* x：显示当前用户在所有终端下的进程。
* -e：显示系统内的所有进程信息。
* -l：使用长（long）格式显示进程信息。
* -f：使用完整的（full）格式显示进程信息。

在使用中可以加上grep命令一起使用，也可以单独使用

```
# ps命令单独使用的情况
ps -elf tomcat
#结合管道操作和grep命令进行过滤，用于查询某一个进程的信息
ps -elf | grep tomcat
```

### 二、文件操作
#### 1、tail命令
 tail 命令可用于查看文件的内容，语法为
 

```powershell
tail [param] [filename]
```
其中param可为：
* -f ：循环读取 
* -q ：不显示处理信息 
* -v ：显示详细的处理信息 
* -c [数目]： 显示的字节数 
* -n [行数]： 显示文件的尾部 n 行内容 
* --pid=PID ：与-f合用,表示在进程ID,PID死掉之后结束 
* -q, --quiet, --silent ：从不输出给出文件名的首部 
* -s, --sleep-interval=S ：与-f合用,表示在每次反复的间隔休眠S秒 

#### 2、ll -ah
ll -ah命令，可以用于查看文件情况

```shell
ll -ah
```

### 三、网络通信
#### 1、netstat
netstat命令是用于监控进出网络的包和网络接口统计的命令行工具

```powershell
语法：netstat [param]
```

param参数可以为：
* -h  :   查看帮助
* -r   :   显示路由表
* -i   :   查看网络接口

#### 2、重启网络
设置了linux网络，需要重启网络，可以用命令：

```shell
service network restart 
```

#### 3、SELinux
SELinux全称是 Security-Enhanced Linux，它是由美国国家安全局（NSA）贡献的，它为 Linux 内核子系统引入了一个健壮的强制控制访问Mandatory Access Control架构。详情可以参考[SELinux 入门](https://linux.cn/article-7317-1.html)，[SELINUX工作原理](https://www.cnblogs.com/gailuo/p/5041034.html)

其实SELinux的功能也就是类似于防火墙的功能，不过安全相对比较好，ok，所以本博客介绍一下SELinux的使用命令

查看selinux状态
```shell
getenforce
```
临时禁用SELINUX(学习用的linux才可以禁用，生产的不建议禁用SELINUX)
```shell
setenforce
```
永久禁用SELINUX(学习用的linux才可以禁用，生产的不建议禁用SELINUX)

```shell
 # 将SELINUX=enforce改成SELINUX=disabled
 vi /etc/selinux/config
```

 
#### 4、防火墙
查询linux系统防火墙开启状态
```shell
firewall-cmd --state
```
临时关闭防火墙(学习用的linux才可以禁用，生产的不建议禁用SELINUX)
```shell
systemctl stop firewalld.service
```
永久关闭防火墙(学习用的linux才可以禁用，生产的不建议禁用SELINUX)
```shell
systemctl disable firewalld.service
```

### 四、系统管理
#### 1、uname
uname命令用于查看内核版本
#### 2、ip addr
查看linux的ip地址：可以用命令

```shell
 ip addr
```


附录：
* [Linux命令大全(手册)](https://www.linuxcool.com/)
* [我的Docker博客专栏](https://blog.csdn.net/u014427391/category_9195352.html)


