【Linux命令大全】010.设备管理之MAKEDEV命令(实操篇) 📅 发布时间:2026/7/9 1:57:25 👁️ 浏览次数: 【Linux命令大全】010.设备管理之MAKEDEV命令实操篇✨ 本文为Linux设备管理命令的全面汇总与深度优化结合图标、结构化排版与实用技巧专为高级用户和系统管理员打造。(关注不迷路哈)文章目录【Linux命令大全】010.设备管理之MAKEDEV命令实操篇一、功能与作用二、基本用法1. 创建标准设备节点2. 创建多个设备节点3. 创建特定设备如null设备4. 创建零设备5. 在指定目录创建设备三、高级用法1. 不创建符号链接2. 创建软链接3. 在脚本中批量创建设备4. 查看设备节点是否创建成功5. 手动创建设备节点替代方案四、实用技巧与常见问题实用技巧常见问题五、总结一、功能与作用MAKEDEV命令是Linux系统中的一个设备节点管理工具用于创建设备节点device nodes这些节点通常位于/dev目录下。设备节点是用户空间程序与内核设备驱动程序进行通信的接口。通过MAKEDEV命令系统管理员可以手动创建设备节点用于生成磁盘、终端、null、zero等特殊设备文件。这在系统安装、修复设备节点或添加新硬件时非常有用。参数详解参数说明device_name设备名称如 tty, null, zero 等-n不创建符号链接-d指定设备目录-s创建软链接二、基本用法1. 创建标准设备节点使用MAKEDEV命令创建标准设备节点如tty设备# 创建标准设备节点sudoMAKEDEVtty# 注意MAKEDEV命令通常需要root权限2. 创建多个设备节点使用all参数可以创建所有支持的设备节点# 创建多个设备节点sudoMAKEDEV all# 这将创建设备目录下的所有标准设备节点# 注意这可能需要一些时间具体取决于系统配置3. 创建特定设备如null设备可以指定创建特定的设备节点如null设备# 创建特定设备如null设备sudoMAKEDEV null# 验证设备是否创建成功ls-l /dev/null# crw-rw-rw- 1 root root 1, 3 Jun 10 15:30 /dev/null4. 创建零设备创建zero设备该设备可以提供无限的空字符流# 创建零设备sudoMAKEDEV zero# 验证设备是否创建成功ls-l /dev/zero# crw-rw-rw- 1 root root 1, 5 Jun 10 15:31 /dev/zero5. 在指定目录创建设备使用-d参数可以在指定的目录中创建设备节点而不是默认的/dev目录# 在指定目录创建设备sudoMAKEDEV -d /tmp/devtty# 验证设备是否在指定目录创建成功ls-l /tmp/dev/tty*三、高级用法1. 不创建符号链接使用-n参数可以在创建设备节点时不创建符号链接# 不创建符号链接sudoMAKEDEV -ntty# 查看创建的设备节点不包含符号链接ls-l /dev/tty*2. 创建软链接使用-s参数可以在创建设备节点时创建软链接# 创建软链接sudoMAKEDEV -stty# 查看创建的设备节点和软链接ls-l /dev/tty*3. 在脚本中批量创建设备可以创建一个脚本来批量创建设备节点这在系统安装或恢复时非常有用# 在脚本中批量创建设备catcreate_devices.shEOF #!/bin/bash # 检查是否以root权限运行 if [ $EUID -ne 0 ] then echo 请以root权限运行此脚本 exit 1 fi # 创建设备目录如果不存在 DEV_DIR/dev if [ ! -d $DEV_DIR ] then echo 创建设备目录: $DEV_DIR mkdir -p $DEV_DIR chmod 755 $DEV_DIR fi # 定义需要创建的设备列表 DEVICES(tty null zero random urandom console tty1 tty2 tty3 tty4) # 批量创建设备 for dev in ${DEVICES[]} do echo 创建设备: $dev MAKEDEV $dev # 检查设备是否创建成功 if [ -e $DEV_DIR/$dev ] || [ -L $DEV_DIR/$dev ] then echo ✓ 设备 $dev 创建成功 else echo ✗ 设备 $dev 创建失败 ERRORS1 fi done # 显示创建结果 if [ -z $ERRORS ] then echo 所有设备创建成功 else echo 部分设备创建失败请检查错误信息。 exit 1 fi EOF# 使脚本可执行chmodx create_devices.sh# 运行脚本批量创建设备sudo./create_devices.sh4. 查看设备节点是否创建成功在创建设备节点后可以使用ls命令查看设备节点是否成功创建# 查看设备节点是否创建成功catcheck_devices.shEOF #!/bin/bash # 定义需要检查的设备列表 DEVICES(tty null zero random urandom console tty1 tty2 tty3 tty4) # 检查设备是否存在 echo 检查设备节点状态 echo for dev in ${DEVICES[]} do if [ -e /dev/$dev ] then # 获取设备信息 DEV_INFO$(ls -l /dev/$dev) echo 设备 $dev: 存在 echo $DEV_INFO # 检查设备权限 PERMISSIONS$(stat -c %a /dev/$dev) echo 权限: $PERMISSIONS # 检查设备类型 if [ -c /dev/$dev ] then echo 类型: 字符设备 elif [ -b /dev/$dev ] then echo 类型: 块设备 elif [ -L /dev/$dev ] then echo 类型: 符号链接 echo 链接目标: $(readlink -f /dev/$dev) fi echo else echo 设备 $dev: 不存在 echo MISSING1 fi done # 显示检查结果 if [ -z $MISSING ] then echo echo 所有设备检查通过 else echo echo 警告部分设备不存在请使用MAKEDEV命令创建。 fi EOF# 使脚本可执行chmodx check_devices.sh# 运行脚本检查设备sudo./check_devices.sh5. 手动创建设备节点替代方案在没有MAKEDEV命令或需要更精细控制的情况下可以使用mknod命令手动创建设备节点# 手动创建设备节点替代方案catmanual_mknod.shEOF #!/bin/bash # 检查是否以root权限运行 if [ $EUID -ne 0 ] then echo 请以root权限运行此脚本 exit 1 fi # 手动创建tty设备 echo 手动创建tty设备... mknod /dev/tty c 5 0 chmod 666 /dev/tty ls -l /dev/tty # 手动创建null设备 echo \n手动创建null设备... mknod /dev/null c 1 3 chmod 666 /dev/null ls -l /dev/null # 手动创建zero设备 echo \n手动创建zero设备... mknod /dev/zero c 1 5 chmod 666 /dev/zero ls -l /dev/zero # 手动创建random设备 echo \n手动创建random设备... mknod /dev/random c 1 8 chmod 666 /dev/random ls -l /dev/random # 手动创建urandom设备 echo \n手动创建urandom设备... mknod /dev/urandom c 1 9 chmod 666 /dev/urandom ls -l /dev/urandom # 说明 echo \n设备节点创建说明 echo - mknod命令格式: mknod [选项] 设备名 类型 主设备号 次设备号 echo - 类型: c字符设备, b块设备 echo - 主设备号: 标识设备驱动程序 echo - 次设备号: 标识特定的设备实例 EOF# 使脚本可执行chmodx manual_mknod.sh# 运行脚本手动创建设备sudo./manual_mknod.sh四、实用技巧与常见问题实用技巧理解设备节点的结构设备节点包含设备类型、主设备号和次设备号等关键信息# 设备节点的结构理解echo查看设备节点的详细信息ls-l /dev/null# crw-rw-rw- 1 root root 1, 3 Jun 10 15:30 /dev/nullecho\n设备节点字段解释echoc: 字符设备类型b表示块设备echorw-rw-rw-: 设备权限所有者、组、其他用户的读写权限echoroot root: 设备的所有者和所属组echo1, 3: 主设备号和次设备号echo主设备号标识设备驱动程序次设备号标识特定的设备实例# 查看设备驱动程序信息cat/proc/devices# 字符设备和块设备的主设备号列表使用MAKEDEV创建设备组MAKEDEV支持创建设备组如创建所有tty设备# 使用MAKEDEV创建设备组echo创建所有tty设备sudoMAKEDEVttyecho创建所有串口设备sudoMAKEDEV ttySecho创建所有并口设备sudoMAKEDEV lpecho创建所有磁盘设备sudoMAKEDEV sd# 查看可用的设备组ls/etc/makedev.d/# 或查看MAKEDEV脚本中的设备组定义在chroot环境中创建设备节点在chroot环境中可能需要手动创建设备节点# 在chroot环境中创建设备节点echo1. 准备chroot环境CHROOT_DIR/mnt/chrootmkdir-p$CHROOT_DIR/devecho2. 在chroot环境中创建设备节点sudomknod$CHROOT_DIR/dev/nullc13sudomknod$CHROOT_DIR/dev/zeroc15sudomknod$CHROOT_DIR/dev/ttyc50sudomknod$CHROOT_DIR/dev/randomc18sudomknod$CHROOT_DIR/dev/urandomc19echo3. 设置正确的权限sudochmod666$CHROOT_DIR/dev/nullsudochmod666$CHROOT_DIR/dev/zerosudochmod666$CHROOT_DIR/dev/ttysudochmod666$CHROOT_DIR/dev/randomsudochmod666$CHROOT_DIR/dev/urandomecho4. 检查创建的设备节点ls-l$CHROOT_DIR/dev/设备节点的自动创建设置现代Linux系统通常使用udev或systemd-udev自动管理设备节点# 设备节点的自动创建设置echo检查udev服务状态systemctl status systemd-udevd.serviceecho\n查看udev配置文件ls/etc/udev/ls/etc/udev/rules.d/echo\n手动触发udev设备探测sudoudevadm triggerecho\n重新加载udev规则sudoudevadm control --reload-rulesecho\n查看udev设备信息udevadm info --queryall --name/dev/sda备份和恢复设备节点配置可以备份和恢复设备节点的配置信息# 备份和恢复设备节点配置echo1. 备份设备节点配置DEV_BACKUP/root/devices_backup_$(date%Y%m%d).txtls-l /dev/$DEV_BACKUPecho设备节点配置已备份到$DEV_BACKUPecho2. 备份设备权限PERM_BACKUP/root/devices_permissions_$(date%Y%m%d).txtfind/dev/ -type c -o -type b|xargsstat-c%n %a$PERM_BACKUPecho设备权限已备份到$PERM_BACKUPecho3. 查看备份内容head-10$DEV_BACKUPhead-10$PERM_BACKUPecho\n恢复提示echo- 恢复设备节点使用MAKEDEV命令或根据备份文件手动创建echo- 恢复设备权限使用chmod命令根据备份文件设置权限常见问题找不到MAKEDEV命令在某些现代Linux发行版中MAKEDEV命令可能不可用# 找不到MAKEDEV命令的解决方法echo1. 检查MAKEDEV是否存在whichMAKEDEV# 如果不存在尝试查找替代位置find/sbin /usr/sbin -nameMAKEDEVecho2. 安装MAKEDEV包如果可用# 在Debian/Ubuntu上apt-get install makedev# 在CentOS/RHEL上yum install makedevecho3. 使用udev替代MAKEDEVsudoudevadm triggerecho4. 使用mknod命令手动创建设备节点# 例如sudo mknod /dev/null c 1 3创建设备节点时权限不足执行MAKEDEV命令需要root权限# 创建设备节点时权限不足的解决方法MAKEDEVtty# 可能会报错Permission denied# 使用sudo命令sudoMAKEDEVtty# 或者切换到root用户su- MAKEDEVtty设备节点创建后无法正常使用创建设备节点后可能由于权限或设备号不正确导致无法正常使用# 设备节点创建后无法正常使用的解决方法echo1. 检查设备权限是否正确ls-l /dev/device_name# 确保有正确的读写权限echo2. 检查设备驱动程序是否加载lsmod|grepdriver_name# 如果驱动未加载尝试加载# modprobe driver_nameecho3. 检查设备号是否正确# 查看正确的设备号cat/proc/devices# 重新创建设备节点# mknod /dev/device_name type major minorecho4. 检查udev规则是否冲突grep-rdevice_name/etc/udev/rules.d/在容器环境中创建设备节点在Docker或其他容器环境中创建设备节点可能需要特殊权限# 在容器环境中创建设备节点的解决方法echo1. 在Docker中使用--privileged参数# docker run --privileged -it ubuntu /bin/bashecho2. 在Docker中使用--device参数映射设备# docker run --device /dev/sda:/dev/sda -it ubuntu /bin/bashecho3. 在容器内创建设备节点需要privileged权限# 在容器内执行# mknod /dev/mydevice c 10 200echo4. 查看容器内可用的设备节点# ls -l /dev/系统重启后设备节点丢失在某些情况下系统重启后手动创建的设备节点可能会丢失# 系统重启后设备节点丢失的解决方法echo1. 检查是否使用了udev自动管理设备节点systemctl status systemd-udevd.serviceecho2. 创建udev规则使设备节点持久化UDEV_RULE/etc/udev/rules.d/99-mydevice.rulesechoKERNELmydevice, NAMEmydevice, MODE0666|sudotee$UDEV_RULEsudoudevadm control --reload-rulesecho3. 添加到系统启动脚本echoMAKEDEV mydevice|sudotee-a /etc/rc.localsudochmodx /etc/rc.localecho4. 在systemd系统上创建服务cat/etc/systemd/system/create-mydevice.serviceEOF [Unit] DescriptionCreate mydevice node Afterlocal-fs.target [Service] Typeoneshot ExecStart/sbin/MAKEDEV mydevice [Install] WantedBymulti-user.target EOFsudosystemctlenablecreate-mydevice.servicesudosystemctl start create-mydevice.service五、总结MAKEDEV命令是Linux系统中用于管理设备节点的重要工具它可以创建设备节点用于生成磁盘、终端、null、zero等特殊设备文件。通过本文的详细介绍和实例相信您已经掌握了MAKEDEV命令的基本用法和高级技巧包括如何创建标准设备节点、如何在指定目录创建设备、如何在脚本中批量创建设备等。同时我们也介绍了一些实用技巧和常见问题的解决方法帮助您在使用MAKEDEV命令时更加得心应手。无论是系统安装、设备修复还是添加新硬件MAKEDEV命令都是一个不可或缺的工具。
【信息科学与工程学】【财务管理】第二篇 产品线财务基础篇02 产品开发财务评估全周期知识体系 编号 一级分类 二级分类 核心概念/方法/模型 关键特征/数学表述/核心输入 主要功能与应用场景 理论/法规/数据依据 I. 核心理念与价值管理 1 根本目标 价值导向 产品开发财务评估的核心目标 在产品全生命周期中,通过… 2026/7/6 11:51:05
【无人机】根据任务需求(紧急程度、飞行距离、是否需冷链)智能筛选最优无人机,为选中的无人机生成平滑的 7 次多项式飞行轨迹附matlab代码 ✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和… 2026/7/6 14:19:28
数据主权法规下跨境测试环境搭建的法律风险与合规实践指南 一、核心法律风险全景图:三大法域的合规边界 法域核心法规对测试环境的关键约束合规触发阈值中国《数据安全法》《个人信息保护法》《促进和规范数据跨境流动规定》测试数据若含个人信息或重要数据,出境需通过安全评估、标准合同或认证࿱… 2026/7/9 1:41:31
15个实用的在线思维导图模板,技术方案 15个实用的在线思维导图模板,技术方案 # 高效提升生产力!15个实用的在线思维导图模板助力技术方案设计 在技术方案设计和项目管理过程中,思维导图是梳理逻辑、高效表达想法的利器。下面我为大家整理了15个经过实战验证的在线思维导图模板&a… 2026/7/9 1:55:57
15个实用的在线协作工具,敏捷开发 15个实用的在线协作工具,敏捷开发 **15个实用的在线协作工具,敏捷开发必备!** 在快节奏的软件开发中,高效的团队协作是项目成功的关键。无论是远程办公还是敏捷开发,选择一款合适的在线协作工具可以显著提升团队效率。… 2026/7/9 1:53:57
倒装芯片封装 3 种凸块工艺对比:金/铜柱/锡凸块选型与 5 项关键参数 倒装芯片封装 3 种凸块工艺对比:金/铜柱/锡凸块选型与 5 项关键参数在半导体封装领域,倒装芯片技术正逐渐成为高性能计算和移动设备的主流选择。与传统引线键合相比,倒装芯片通过直接在芯片焊盘上制作金属凸块,将芯片倒扣在基板上… 2026/7/9 1:47:55
信号完整性设计实战:3种端接方案消除反射,眼图张开度提升40% 信号完整性设计实战:3种端接方案消除反射,眼图张开度提升40% 在高速PCB设计中,信号完整性(SI)问题往往成为工程师最头疼的挑战之一。当信号频率突破GHz级别,那些在低频设计中可以忽略的微小阻抗变化&#x… 2026/7/9 1:45:55
提升中标率基础要素 一、高质量需求牵引 采购输电线路风险智能感知、预警、平台接入和运维闭环能力。 这样竞争点就不再是最低价,而是: 产品是否有第三方检测; 传感器是否有校准; 是否适应高压输电线路环境; 是否能接入甲方平台&#x… 2026/7/9 1:43:54
杰理之旋转编码器【篇】 RDEC(Rotary Decoder,旋转编码器)模块用于处理旋转编码器的输入信号,广泛应用于各种需要检测旋转方向、速度和位置的设备中,如音量控制、电机控制、工业设备等。旋转编码器通常输出两路相位差90度的脉冲信号࿰… 2026/7/9 1:39:54
机器视觉与PLC集成:轮毂缺陷检测与字符识别误差控制在0.2mm内 机器视觉与PLC集成:轮毂缺陷检测与字符识别误差控制在0.2mm内的技术实现轮毂作为汽车关键零部件,其表面质量直接影响行车安全与美观。传统人工检测效率低且易漏检,而采用机器视觉与PLC集成方案可实现微米级精度检测。本文将深入解析高精度视觉… 2026/7/9 0:01:04
GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比 GBase 8a与MySQL 8.0:ALTER TABLE语法差异深度解析与实战指南1. 两种数据库的ALTER TABLE能力全景对比在数据库架构设计和运维过程中,表结构变更(DDL操作)是不可避免的需求。GBase 8a作为国产分析型数据库代表,与开源M… 2026/7/9 0:03:06
【大数据毕业设计】基于多源旅游数据的景区热度分析与推荐系统的设计与实现 基于 Django 的旅游偏好挖掘与景区推荐系统(源码+文档+远程调试,全bao定制等) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am… 2026/7/9 0:05:09
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/8 20:15:17
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/8 14:25:08