From 26366ebdba1f7cccdd159cec19a5653359dc2d44 Mon Sep 17 00:00:00 2001 From: viletyy Date: Wed, 21 Jul 2021 17:24:30 +0800 Subject: [PATCH] add: linux guide kernel toolkit 03 --- ...020-01-04-linux-guide-kernel-toolkit-03.md | 298 ++++++++++++++++++ 1 file changed, 298 insertions(+) create mode 100644 _posts/2020-01-04-linux-guide-kernel-toolkit-03.md diff --git a/_posts/2020-01-04-linux-guide-kernel-toolkit-03.md b/_posts/2020-01-04-linux-guide-kernel-toolkit-03.md new file mode 100644 index 0000000..cea1dc7 --- /dev/null +++ b/_posts/2020-01-04-linux-guide-kernel-toolkit-03.md @@ -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为0(halt) + +| 选项 | 含义 | +| ------------- | ------------------------------ | +| -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/) \ No newline at end of file