如何在Linux上关闭设备文件? (linux关闭设备文件)

在Linux系统中,设备文件是一个可以让用户和内核直接进行交互的特殊文件。它们可以是终端、串行接口、USB设备等等。当用户与设备进行交互时,设备文件会被打开,并保持打开状态,直到用户将其关闭为止。然而,在某些情况下,我们需要关闭设备文件,这篇文章将介绍如何在Linux上关闭设备文件。

之一步:查找打开的设备文件

在关闭设备文件之前,我们需要确定哪些设备文件已经被打开。我们可以使用fuser命令来查看所有正在使用中的设备文件。比如,我们要查看串口设备/dev/ttyUSB0是否被打开:

sudo fuser -v /dev/ttyUSB0

执行该命令的输出应该类似于下面的内容:

USER PID ACCESS COMMAND

/dev/ttyUSB0: root 1229 F…. bash

从输出可以看出,设备文件/dev/ttyUSB0已经被shell中的bash进程打开,并且进程的PID为1229。

第二步:关闭设备文件

一旦我们确认了设备文件被哪个进程打开了,我们可以使用命令kill来关闭设备文件。比如,如果我们要关闭串口设备/dev/ttyUSB0,我们可以执行如下命令:

sudo kill -9 1229

执行该命令的输出应该类似于下面的内容:

USER PID ACCESS COMMAND

/dev/ttyUSB0: root 1229 F…. bash

USER PID ACCESS COMMAND

/dev/ttyUSB0: root 1229 ..c.. bash

从输出可以看出,串口设备/dev/ttyUSB0原来被bash进程打开,并且进程的PID为1229。通过执行kill -9 1229命令,我们成功地关闭了该设备文件。

在Linux系统中,设备文件是一个非常重要的组成部分。由于设备文件可以与内核直接进行交互,因此,在某些情况下,我们可能需要关闭设备文件。为了关闭设备文件,我们需要首先查找正在使用设备的进程,然后使用kill命令关闭设备文件。当然,我们在关闭设备文件之前需要确保不会对其他用户或进程造成影响。

相关问题拓展阅读:

/dev/null 2>&1″>linux下这个命令是什么意思mount /dev/sd1 /mnt/u >/dev/null 2>&1

mount /dev/sdb1 挂载U盘(sdb1)到 mnt/下 ;

/mnt/u,mount /dev/sdb1 /mnt/u >/dev/null 2>&1

就是挂载mount /dev/sdb1设备到/mnt/u 下,其中dev/sdb1为设备名,/mnt/u 为挂载点;>为输出流重导向,将错误导到/dev/null 内,dev/null为linux的“垃圾桶”。2>&1是用来判断对错的!比如你的mnt/u,mount /dev/sdb1 /mnt/u 目录或设备不存在或不正确!

祝你成功

来自:寒枫

mount /dev/sdb1 /mnt/u >/dev/null 2>&1这句话的意思是挂载sdb1(一般为

U盘

设备)设备到/mnt/u目录,并将标准输出及标准错误输出重定向到控设备文件。

” >/dev/null 2>&1 “常用来避免shell命令或者程序等运行中有内容输出。

说明:

(1)mount是磁盘挂载命令,用于挂载设备到目录。

(2)>表示重定向到

(3)/dev/null表示linux的空设备文件

(4)2>&1表示标准错误输出重定向等同于标准输出,这里的2表示标准错误输出,&1表示等同于1(标准输出),因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

其中(4)中的数字2,1说明:

0:表示键盘输入(stdin)

1:表示标准输出(stdout),系统默认是1

2:表示错误输出(stderr)

>/dev/null意思是吧标准输出,输出到/dev/null,/dev/null你可以理解成无底洞

2>&1意思就是把错误输出,输出到标准输出用的设备上,也就是/dev/null

整合意思就是执行命令后,把所有的信息都不显示出来,哪怕是错误信息也不显示

你可以看看shell的重定向

mount /dev/sdb1 挂载U盘(sdb1)到 mnt/下 ;

/mnt/u,mount /dev/sdb1 /mnt/u >/dev/null 2>&1

就是挂载mount /dev/sdb1设备到/mnt/u 下,其中dev/sdb1为设备名,/mnt/u 为挂载点;>为输出流重导向,将错误导到/dev/null 内,dev/null为linux的“垃圾桶”。2>&1是用来判断对错的!比如你的mnt/u,mount /dev/sdb1 /mnt/u 目录或设备不存在或不正确

你可以上这个网站查查

&

mount

如何在Linux下禁用键盘,触摸板,鼠标等输入设备

都禁用了,你想怎么控制你机器呢

禁用后依旧可以远程管理

xinput 来禁用/启用输入设备。我经常用 synclient 来关掉我的触摸板, 或者用 xinput 来关闭我的笔记本键盘。

之一步我们需要先拿到设备的名字或者ID:

$ xinput list

⎡ Virtual core pointerid=2

⎜ ↳ Virtual core XTEST pointer id=4

⎜ ↳ USB Optical Mouseid=8

⎜ ↳ SynPS/2 Synaptics TouchPad id=7

⎣ Virtual core keyboardid=3

↳ Virtual core XTEST keyboard id=5

↳ Sleep Button id=9

↳ Power Button id=10

↳ Video Bus id=11

↳ AT Translated Set 2 keyboardid=6

在这里触摸板的名字是 ‘SynPS/2 Synaptics TouchPad’ ID是 7;

键盘的名字是 ‘AT Translated Set 2 keyboard’ ID是 6.

下一步我们要知道设备都有什么属性:

$ xinput list-props ‘AT Translated Set 2 keyboard’

Device ‘AT Translated Set 2 keyboard’:

Device Enabled (127): 1

键盘只有一个属性 ‘Device Enabled’ 他的值是 1,意思就是说键盘是打开状态的。

我们来尝试关掉它:

sleep 0.1 ; xinput set-prop ‘AT Translated Set 2 keyboard’ ‘Device Enabled’ 0 ; sleep 5 ; xinput set-prop ‘AT Translated Set 2 keyboard’ ‘Device Enabled’ 1

开头 sleep 0.1 的目的是要留出时间让你执行当前命令时所敲的回车的按键(keypress)事件能够完成, 我猜测当你按下回车时命令就会执行并把键盘禁用,但雀陵敏是按键弹起(keyup)还没有被发送,所以X会以为你一直按这回车键。

另一个更简单的用法是用ID来进行操作,这样你就不顷枝需要输入一大长串的名字了:

sleep 0.1 ; xinput set-prop; sleep 5 ; xinput set-prop

键盘的ID是8, 属性 ‘Device Enabled’ 的ID是127。 当你用 list-props 列出设备属性时, 在属性名后面的数字就是汪亮属性的ID。 像 ‘Device Enabled’ 的ID总是 127,但是设备的ID就不一样,它跟设备的连接时间有关,一般越先连接的设备ID越小,之后会越来越大。

关于linux关闭设备文件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 如何在Linux上关闭设备文件? (linux关闭设备文件)