### Unix常用命令详解
#### 硬件系统监控与信息查询
##### 查看CPU与内存状态
Unix系统提供了丰富的命令来监测硬件状态,包括CPU和内存。`psrinfo -v`用于查看CPU的主频;`prtconf | grep 'Memory'`用于查看内存总量;`mpstat`命令能展示多CPU的负载情况;`vmstat`则提供了一个全面的视图,监控CPU和内存使用情况;`prstat`可以列出各个进程的CPU负载状态;`iostat`则专注于磁盘I/O的监控。
##### mpstat命令字段解析
`mpstat`的输出字段提供了详细的CPU状态信息:
- **CPU**:处理器ID
- **minf**:次要故障
- **mjf**:主要故障
- **xcal**:跨越处理器的调用
- **intr**:中断
- **ithr**:线程中断
- **csw**:环境转换
- **icsw**:强制性环境转换
- **migr**:线程传送
- **smtx**:在互斥体上的转数
- **srw**:在读/写的锁上的转数
- **syscl**:系统调用
- **usr**:用户时间百分比
- **sys**:系统时间百分比
- **wt**:等待时间百分比
- **idl**:闲置时间百分比
##### vmstat命令字段解析
`vmstat`命令提供了关于进程、内存、分页、磁盘活动和系统中断的统计信息:
- **procs**:
- `r`:等待运行的进程数
- `b`:阻塞的进程数
- `w`:等待资源的换出进程数
- **memory**:
- `swap`:可用交换空间
- `free`:可用列表的大小
- **page**:
- `re`:回收的页面
- `mf`:次要和主要错误
- `pi`:页入的千字节数
- `po`:页出的千字节数
- `fr`:释放的千字节数
- `de`:最近换入的进程所需内存
- `sr`:被page守护程序扫描的未使用页数
- **disk**:磁盘操作数
- **faults**:
- `in`:每秒中断次数
- `sy`:每秒系统调用数
- `cs`:CPU上下文切换速率
- **cpu**:
- `us`:用户时间
- `sy`:系统时间
- `id`:空闲时间
##### prstat命令字段解析
`prstat`命令输出的字段包括:
- **PID**:进程ID
- **USERNAME**:真实用户名或ID
- **SIZE**:总虚拟内存大小
- **STATE**:进程状态
- **cpuN**:进程运行于的CPU编号
- **sleep/run**:进程状态,休眠或可运行
##### 其他硬件信息查询
除了CPU和内存,你还可以通过一系列命令来查看其他硬件信息:
- 使用`df`或`du`查看硬盘使用情况;
- 使用`lshw`或`hwinfo`获取更详细的硬件信息;
- 使用`uname -a`查看系统内核版本;
- 通过`file /boot/vmlinuz-*`确定系统是32位还是64位;
- 使用`ifconfig`或`ip addr show`来配置或检查网络接口IP地址;
- 用`halt`或`shutdown`命令安全关机。
#### 系统应用命令
Unix系统中,有许多命令帮助用户进行日常操作,如更改字符集(`locale`或`env`命令),切换用户(`su`或`sudo`),管理软件包(`pkgadd`或`pkgremove`),允许或禁止远程登录(`visudo`编辑`/etc/ssh/sshd_config`),以及文件和目录的基本操作(`cp`, `mv`, `rm`, `mkdir`, `rmdir`, `lsattr`, `ls`)。
#### 文本查看与编辑
Unix提供了强大的文本编辑和查看工具,如`vi`/`vim`编辑器,`more`和`less`用于浏览大文件,`tail`显示文件末尾内容,以及`touch`用于创建新文件。
#### 文件权限管理
`chmod`命令用于修改文件或目录的访问权限,而`chown`和`chgrp`用于改变文件的所有者和所属组。
#### 进程与任务管理
Unix的进程管理通过`ps`命令查看进程信息,`kill`命令终止进程,以及使用`top`实时监控系统资源使用情况。
#### 脚本与自动化
Unix支持shell脚本编写,用于自动化任务,例如数据库备份、web服务器重启等,并可通过`cron`实现定时执行。
Unix系统的强大在于其丰富的命令集,以上只是冰山一角,掌握这些基本命令是每个Unix用户入门的必修课。