add: linux guide kernel toolkit 03

This commit is contained in:
viletyy 2021-07-21 17:24:30 +08:00
parent ac74e74924
commit 26366ebdba
1 changed files with 298 additions and 0 deletions

View File

@ -0,0 +1,298 @@
---
layout: post
title: "开源世界旅行手册:核心工具集(三)"
date: 2020-01-04 10:28:00
author: "Viletyy"
header-style: text
tags:
- Linux
---
## 核心工具集(三)
### 磁盘和内存管理
**细节**
Linux中设备用/dev/目录下的文件表示。例如
```shell
/dev/hda1 第一块硬盘的第一主分区
/dev/hdb5 第五块硬盘的第一逻辑分区
/dev/sda4 第一块SATA硬盘的第四主分区或者扩展分区
/dev/null 黑洞设备
```
**mount 设备文件 [挂载路径]**
挂载文件系统
| -t 指定文件系统的类型 | 含义 |
| --------------------- | --------------------------- |
| reiserfs | ReiserFS 3.6版 |
| xfs | SGI技术 |
| jfs | IBM技术 |
| ext3 | Linux传统文件系统 |
| vfat | fat fat32 |
| ext2 | Linux传统文件系统不带日志 |
| ntfs | WINNT |
| iso9660 | 光盘 |
| smbfs | Windows文件共享 |
| -o [选项] [选项2]...... | 含义 |
| ----------------------- | ------------------------------------------------------------ |
| loop | 环设备。光盘、ISO映像文件等通常用于挂载映像文件而不是设备文件 |
| bind | 绑定。将一个目录(而不是设备文件)挂载到另一个目录 |
| ro \| rw | 只读 readonly; 可读写 read-write |
| sync \| async | 同步模式|异步模式。决定修改是否立即写入文件系统 |
| atime \| noatime | 读取时是否修改访问时间。对于写入敏感设备例如闪存、软盘建议使用noatime |
| auto \| noauto | 自动挂载模式 |
| exec \| noexec | 是否允许执行 |
| defaults | 使用预设的选项 rw, suid, dev, exec, auto, nouser, async |
| iocharset=UTF-8 | 指定字符集可简写为utf8 |
| codepage=936 | 指定代码页可简写为cp936西文系统代码页为437 |
| umask=权限掩码① | 设定权限掩码 |
| uid=用户编号 | 设定归属用户 |
| gid=群组编号 | 设定归属群组 |
remount 以不同的选项重新挂载
-L 卷标 挂载带有特殊卷标的分区
① 权限掩码=777-目标权限三位7777-目标权限(四位)
假如权限掩码为022则目标权限为755 rwxr-xr-x
可以使用umask命令设置权限掩码
> 提示
>
> 挂载NTFS分区时请使用utf8选项挂载FAT分区时请使用iocharset=utf8,codepage=936选项以避免乱码
挂载/etc/fstab文件中定义的所有设备。示例
```shell
sudo mount -t iso9660 -o loop /dev/cdrom0 /media/cdrom
sudo mount -t vfat -o remount iocharset=utf8,codepage=936 /dev/hda5 /media/hda5
```
**umount 设备文件 |挂载路径**
卸载已挂载文件系统
**df**
查看已挂载文件系统的磁盘空间占用
| 参数 | 含义 |
| --------------- | ------------------------------------------------------------ |
| -a | 显示所有文件系统的磁盘使用情况包括0块block的文件系统如/proc 文件系统 |
| -T | 显示文件系统类型 |
| -k | 以k字节为单位显示 |
| -i | 显示i节点信息而不是磁盘块 |
| -t 文件系统类型 | 显示指定类型的文件系统的磁盘空间使用情况 |
| -x 文件系统类型 | 列出排除指定类型文件系统的磁盘空间使用情况与t选相反 |
| -l | 只显示本地文件系统 |
**free**
查看内存、缓冲区、交换空间的占用
| 选项 | 含义 |
| ----- | ---------------------- |
| -b | 以字节为单位显示数值 |
| -k | 以千字节为单位显示数值 |
| -m | 以兆字节为单位显示数值 |
| -g | 以吉字节为单位显示数值 |
| -l | 显示内存占用峰值 |
| -o | 不显示缓冲区占用 |
| -t | 统计结果 |
| -s 秒 | 刷新频率 |
**sync**
同步文件系统。将缓冲区中的数据写入文件系统
**fdisk 磁盘设备文件**
分区表修改工具(磁盘设备文件应为整块磁盘,而不是磁盘中的分区。例如/dev/sda而不是/dev/sda1
| 选项 | 含义 |
| ---- | ------------------------------- |
| m | 使用帮助 |
| l | 查看已知文件系统类型 |
| p | 显示分区信息 |
| n | 新建分区p:主分区 l:扩展分区) |
| d | 删除分区 |
| t | 改变分区类型 |
| w | 将改动写入分区表 |
| q | 放弃改动并退出 |
fdisk -l 查看所有磁盘分区信息
**cfdisk**
更加友善的分区表修改工具
**mkfs.文件系统类型 分区设备文件**
将分区格式化为文件系统。示例:
```shell
sudo mkfs.reiserfs /dev/hda1
sudo mkfs.xfs /dev/sda1
```
**hdparm 磁盘设备文件**
设置硬盘参数
| 参数 | 含义 |
| ---------- | -------------------- |
| -d 0\|1 | DMA模式开关 |
| -a 0\|1 | 预读模式开关 |
| -t | 性能测试 |
| -T | 缓存性能测试 |
| -c 0\|1\|3 | 32位传输模式开关 |
| -g | 显示柱面、扇区等信息 |
| -i\|-I | 显示磁盘信息 |
### 硬件管理
**lspci**
查看PCI总线连接的设备实际上也可以查看ISA、AGP、USB等总线信息
| 选项 | 含义 |
| ------- | ------------------------------------ |
| -v | |
| -vv | |
| -vvv | 显示详细信息 |
| -k | 同时显示使用的驱动和加载的模块 |
| -n | 显示设备ID号 |
| -b | 显示PCI、ISA扩展槽地址和中断 |
| -t | 显示总线树结构 |
| -F 文件 | 从指定文件读信息 |
| -m | |
| -mm | 以便于机器处理的格式输出所有硬件信息 |
**lsusb**
查看USB接口连接的设备
**lsmod**
查看已加载模块。/lib/modules/uname -r 目录下为所有可用模块
**modprobe 模块名称**
启用模块
| 参数 | 含义 |
| ---- | ------------------------------------------------------------ |
| -a | 加载所有匹配模块 |
| -c | 显示当前使用的配置 |
| -d | 显示调试信息 |
| -k | 将指定模块设置为“自动清除”模式 |
| -l | 显示所有匹配模块 |
| -n | 模拟执行 |
| -q | 不显示错误信息 |
| -r | 删除使用命令加载的模块;对非命令加载的模块设置“自动清除”模式 |
| -s | 将结果记录到系统记录中 |
| -t | 指定模块类型 |
| -v | 显示详细信息 |
| -C | 指定配置文件。默认使用/etc/modules.conf文件为配置文件 |
### 其他
**echo 字符串**
回显。较复杂的字符串,可以使用""括起来。
| 选项 | 含义 |
| ---- | -------------- |
| -n | 输出内容不换行 |
| -E | 不解析脱字符 |
| -e | 解析脱字符 |
| 控制字符 | 含义 |
| -------- | ---------- |
| \\\ | 反斜线 |
| \a | 警告 |
| \b | 退格 |
| \n | 换行 |
| \r | 回车 |
| \t | 水平制表符 |
**clear**
清空屏幕
**alias 输入内容=实际内容**
别名, 为命令指定一个别名,以简化输入。例如:
```shell
alias ls='ls -AF --color=auto'
```
可以将您的定义保存在~/.bashrc文件中
**export 变量名**
将变量导出为环境变量,常写变量赋值一同使用,例如:
```shell
export PATH="$PATH:xxx"
```
**shutdown**
关闭计算机向根进程init发送信号更改runlevel为0halt
| 选项 | 含义 |
| ------------- | ------------------------------ |
| -h | 关闭电源 |
| -r | 重启 |
| -n | 强行关机不向init进程发送信号 |
| -k | 模拟关机,向登录者发送关机警告 |
| -t 秒 | N秒后关机 |
| time 时间 | 定时关机 |
| -c [说明信息] | 取消关机 |
| -f | 重启时忽略检测文件系统 |
| -F | 重启时强制检测文件系统 |
**halt**
关闭计算机。调用shutdown -h结束系统进程同步文件系统停止内核。
| 选项 | 含义 |
| ---- | ----------------------------- |
| -n | 不同步文件系统 |
| -w | 模拟关机,写/var/log/wtmp记录 |
| -f | 不调用shutdown,强行关机 |
| -p | 默认选项关机时调用poweroff |
| -i | 关机前断开网络 |
**reboot **
重新启动计算机。选项与halt相似
**init 数字**
更改运行级别
| 级别 | 含义 |
| ---- | ---------- |
| 0 | 关机 |
| 1 | 单用户模式 |
| 6 | 重启 |
**chroot 路径**
更改根目录,重新定义会话的运行环境。(通常在多系统环境下使用)
参考资料:
- [开源世界旅行手册](https://i.linuxtoy.org/docs/guide/)