核心工具集(三)
磁盘和内存管理
细节
Linux中,设备用/dev/目录下的文件表示。例如
1
2
3
4
/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文件中定义的所有设备。示例:
1
2
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.文件系统类型 分区设备文件
将分区格式化为文件系统。示例:
1
2
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 输入内容=实际内容
别名, 为命令指定一个别名,以简化输入。例如:
1
alias ls='ls -AF --color=auto'
可以将您的定义保存在~/.bashrc文件中
export 变量名
将变量导出为环境变量,常写变量赋值一同使用,例如:
1
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 路径
更改根目录,重新定义会话的运行环境。(通常在多系统环境下使用)
参考资料: