更新升级 专属应用 系统故障 硬件故障 电脑汽车 鸿蒙刷机 鸿蒙开发Linux教程 鸿蒙开发Linux命令
当前位置:HMXT之家 > 鸿蒙开发Linux命令 > Linux umount、ulimit、uname命令的用法及解释

Linux umount、ulimit、uname命令的用法及解释

更新时间:2022-01-19 11:07:23浏览次数:902+次

以下为你详细解释umount、ulimit、uname命令的用法。

\

Linux umount命令的用法及解释

Linux umount命令用于卸载已经加载的文件系统。利用设备名或挂载点都能umount文件系统,不过最好还是通过挂载点卸载,以免使用绑定挂载(一个设备,多个挂载点)时产生混乱。

1、语法

umount(选项)(参数)

2、选项

-a:卸除/etc/mtab中记录的所有文件系统;

-h:显示帮助;

-n:卸除时不要将信息存入/etc/mtab文件中;

-r:若无法成功卸除,则尝试以只读的方式重新挂入文件系统;

-t<文件系统类型>:仅卸除选项中所指定的文件系统;

-v:执行时显示详细的信息;

-V:显示版本信息。

3、参数

文件系统:指定要卸载的文件系统或者其对应的设备文件名。

4、实例

下面两条命令分别通过设备名和挂载点卸载文件系统,同时输出详细信息:

通过设备名卸载:

umount -v /dev/sda1

/dev/sda1 umounted

通过挂载点卸载:

umount -v /mnt/mymount/

/tmp/diskboot.img umounted

如果设备正忙,卸载即告失败。卸载失败的常见原因是,某个打开的shell当前目录为挂载点里的某个目录:

umount -v /mnt/mymount/

umount: /mnt/mymount: device is busy

umount: /mnt/mymount: device is busy

有时,导致设备忙的原因并不好找。碰到这种情况时,可以用lsof列出已打开文件,然后搜索列表查找待卸载的挂载点:

lsof | grep mymount         查找mymount分区里打开的文件

bash   9341  francois  cwd   DIR   8,1   1024    2 /mnt/mymount

从上面的输出可知,mymount分区无法卸载的原因在于,francois运行的PID为9341的bash进程。

对付系统文件正忙的另一种方法是执行延迟卸载:

umount -vl /mnt/mymount/     执行延迟卸载

延迟卸载(lazy unmount)会立即卸载目录树里的文件系统,等到设备不再繁忙时才清理所有相关资源。卸载可移动存储介质还可以用eject命令。下面这条命令会卸载cd并弹出CD:

eject /dev/cdrom      卸载并弹出CD

Linux ulimit命令的用法及解释

Linux ulimit命令用来限制系统用户对shell资源的访问。如果不懂什么意思,下面一段内容可以帮助你理解:

假设有这样一种情况,当一台 Linux 主机上同时登陆了 10 个人,在系统资源无限制的情况下,这 10 个用户同时打开了 500 个文档,而假设每个文档的大小有 10M,这时系统的内存资源就会受到巨大的挑战。

而实际应用的环境要比这种假设复杂的多,例如在一个嵌入式开发环境中,各方面的资源都是非常紧缺的,对于开启文件描述符的数量,分配堆栈的大 小,CPU 时间,虚拟内存大小,等等,都有非常严格的要求。资源的合理限制和分配,不仅仅是保证系统可用性的必要条件,也与系统上软件运行的性能有着密不可分的联 系。这时,ulimit 可以起到很大的作用,它是一种简单并且有效的实现资源限制的方式。

ulimit 用于限制 shell 启动进程所占用的资源,支持以下各种类型的限制:所创建的内核文件的大小、进程数据块的大小、Shell 进程创建文件的大小、内存锁住的大小、常驻内存集的大小、打开文件描述符的数量、分配堆栈的最大大小、CPU 时间、单个用户的最大线程数、Shell 进程所能使用的最大虚拟内存。同时,它支持硬资源和软资源的限制。

作为临时限制,ulimit 可以作用于通过使用其命令登录的 shell 会话,在会话终止时便结束限制,并不影响于其他 shell 会话。而对于长期的固定限制,ulimit 命令语句又可以被添加到由登录 shell 读取的文件中,作用于特定的 shell 用户。

1、语法

ulimit(选项)

2、选项

-a:显示目前资源限制的设定;

-c <core文件上限>:设定core文件的最大值,单位为区块;

-d <数据节区大小>:程序数据节区的最大值,单位为KB;

-f <文件大小>:shell所能建立的最大文件,单位为区块;

-H:设定资源的硬性限制,也就是管理员所设下的限制;

-m <内存大小>:指定可使用内存的上限,单位为KB;

-n <文件数目>:指定同一时间最多可开启的文件数;

-p <缓冲区大小>:指定管道缓冲区的大小,单位512字节;

-s <堆叠大小>:指定堆叠的上限,单位为KB;

-S:设定资源的弹性限制;

-t <CPU时间>:指定CPU使用时间的上限,单位为秒;

-u <程序数目>:用户最多可开启的程序数目;

-v <虚拟内存大小>:指定可使用的虚拟内存上限,单位为KB。

3、实例

[root@localhost ~]# ulimit -a

core file size          (blocks, -c) 0           #core文件的最大值为100 blocks。

data seg size           (kbytes, -d) unlimited   #进程的数据段可以任意大。

scheduling priority             (-e) 0

file size               (blocks, -f) unlimited   #文件可以任意大。

pending signals                 (-i) 98304       #最多有98304个待处理的信号。

max locked memory       (kbytes, -l) 32          #一个任务锁住的物理内存的最大值为32KB。

max memory size         (kbytes, -m) unlimited   #一个任务的常驻物理内存的最大值。

open files                      (-n) 1024        #一个任务最多可以同时打开1024的文件。

pipe size            (512 bytes, -p) 8           #管道的最大空间为4096字节。

POSIX message queues     (bytes, -q) 819200      #POSIX的消息队列的最大值为819200字节。

real-time priority              (-r) 0

stack size              (kbytes, -s) 10240       #进程的栈的最大值为10240字节。

cpu time               (seconds, -t) unlimited   #进程使用的CPU时间。

max user processes              (-u) 98304       #当前用户同时打开的进程(包括线程)的最大个数为98304。

virtual memory          (kbytes, -v) unlimited   #没有限制进程的最大地址空间。

file locks                      (-x) unlimited   #所能锁住的文件的最大个数没有限制。

Linux uname命令的用法及解释

Linux uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。

1、语法

uname(选项)

2、选项

-a或--all:显示全部的信息;

-m或--machine:显示电脑类型;

-n或-nodename:显示在网络上的主机名称;

-r或--release:显示操作系统的发行编号;

-s或--sysname:显示操作系统名称;

-v:显示操作系统的版本;

-p或--processor:输出处理器类型或"unknown";

-i或--hardware-platform:输出硬件平台或"unknown";

-o或--operating-system:输出操作系统名称;

--help:显示帮助;

--version:显示版本信息。

3、实例

使用uname命令查看全部信息:

[root@localhost ~]# uname    #单独使用uname命令时相当于uname -s

Linux

[root@localhost ~]# uname -a

Linux localhost 4.4.18-348.6.1.el5 #1 SMP Tue May 21 15:34:22 EDT 2017 i686 i686 i386 GNU/Linux

[root@localhost ~]# uname -m

i686

[root@localhost ~]# uname -n

localhost

[root@localhost ~]# uname -r

4.4.18-4-686

[root@localhost ~]# uname -s

Linux

[root@localhost ~]# uname -v

#1 SMP Tue May 21 15:34:22 EDT 2017

[root@localhost ~]# uname -p

i686

[root@localhost ~]# uname -i

i386

[root@localhost ~]# uname -o

GNU/Linux

[root@localhost ~]# uname --version

uname (GNU coreutils) 5.97

Copyright (C) 2018 free Software Foundation, Inc.

这是自由软件。您可以按照 GNU GPL 协议的条款再发布此软件的副本,但我们无法保证相关法律不对这一情形进行限制。

由 David MacKenzie 编写。