Linux的10个冷门却有用的命令(二)

本文介绍了Linux系统中的一些冷门但实用的命令,如查看用户登录信息的last和lastb,调整shell行为的shopt,模拟火车效果的sl,锁定终端的lock,处理输入的xargs,检查依赖库的ldd,查看打开文件的lsof,分析符号的nm,反汇编的objdump,以及查看硬盘信息的hd。这些命令在特定场景下具有高效性和实用性。
摘要由CSDN通过智能技术生成

在Linux操作系统中,除了基本的常用命令,还有许多冷门但实用的命令。以下是一些相对不那么广为人知的Linux操作命令,它们可能在特定场景下非常有用:

一、last/lastb:查看用户登录成功或登录失败的信息。

last命令用于显示用户最近登录系统的历史记录。默认情况下,它会显示所有的用户登录信息,包括登录时间、登录的终端设备、登录的IP地址等。

last命令的基本用法是:

last

lastb命令用于显示登录系统失败的历史记录。它会显示登录失败的用户名、登录失败的时间、登录失败的终端设备、登录失败的IP地址等。

lastb命令的基本用法是:

lastb

这两个命令都需要以root用户或使用sudo权限运行,因为它们需要读取系统的登录记录文件(/var/log/wtmp/var/log/btmp)。

使用lastlastb命令可以查看用户的登录历史和登录失败记录,这对于系统管理员来说非常有用,可以帮助他们跟踪和监控系统的登录活动。

二、shopt:显示和设置shell中的行为选项,用于增强shell的易用性。

shopt命令用于设置shell的选项。该命令用于控制bash shell的行为,包括shell的交互方式、文件名扩展、作业控制等。

shopt命令的一般语法如下: shopt [选项] [参数]

常用的选项包括:

  • s:打开指定的shell选项。
  • u:关闭指定的shell选项。
  • q:列出所有已打开的shell选项。
  • o:列出所有可用的shell选项。

常用的参数如下:

  • autocd:如果指定的命令不是可执行文件或shell内建命令,则尝试根据所输入的参数进入相应的目录。
  • cdable_vars:如果目录名与环境变量名称匹配,则可以使用该环境变量进行目录切换。
  • checkhash:如果设置为on,shell会在调用命令时检查命令的哈希值,以提高执行速度。
  • extglob:启用扩展模式匹配。
  • globstar:启用递归文件查找。

使用shopt命令可以查询和设置这些选项的状态。例如,要查看当前打开的选项,可以执行以下命令: shopt -q

要打开一个选项,可以使用以下命令: shopt -s [选项]

要关闭一个选项,可以使用以下命令: shopt -u [选项]

例如,要启用cdable_vars选项,可以执行以下命令: shopt -s cdable_vars

要关闭extglob选项,可以执行以下命令: shopt -u extglob

使用shopt命令可以根据需要调整shell的行为,以适应特定的工作环境和需求。

三、sl:一个有趣的命令,模拟ls命令的蒸汽火车效果。

在Linux中,sl命令是一个有趣的命令,它会显示一个火车驶过屏幕的动画效果。使用sl命令的方法很简单,只需在终端中输入sl即可。

当你输入sl命令后,一个火车图形会从屏幕一侧驶过,伴随着火车的响声。这是一个有趣的小彩蛋,可以用来轻松一下或者展示给别人看。

需要注意的是,sl命令可能不是所有Linux系统默认安装的,如果你的系统上没有该命令,可以尝试通过包管理器安装,或者从源代码进行编译安装。

总结起来,sl命令的用法很简单,只需在终端中输入sl即可,它会显示一个火车驶过屏幕的动画效果。

四、lock:锁定终端会话,防止他人使用。

Linux lock命令用于将指定文件加上锁,防止其他用户对文件进行读写操作。

lock命令的基本用法如下:

lock [选项] 文件路径

常用选项包括:

  • k:清除文件锁;
  • p:查看文件锁;
  • u:使用非标准的文件锁;
  • t:以超时方式获取文件锁。

使用lock命令可以实现如下效果:

  1. 设置锁定:对指定文件加上锁,防止其他用户修改或删除文件;
  2. 查看锁定:查看指定文件是否被其他用户锁定;
  3. 清除锁定:清除指定文件的锁定状态,允许其他用户对文件进行读写操作。

下面是几个示例:

  1. 锁定文件:lock -p /path/to/file 查看文件是否被锁定。

  2. 清除锁定:lock -k /path/to/file 清除文件的锁定状态,允许其他用户对文件进行读写操作。

请注意,lock命令在某些Linux发行版中可能没有预装,需要额外安装。在部分发行版中,lock命令可能以其他名称存在,比如使用了flock命令。

五、xargs:从标准输入读取项,并构建和执行命令行。

Linux中的xargs命令用于从输入中构建和执行命令行。它通常与其他命令配合使用,以处理输入中的多行文本。

xargs命令的基本用法如下:

command | xargs [options] [command]

其中,command是要执行的命令,它可以是任何有效的Linux命令。options是一些选项,用于指定xargs的行为。[command]是可选的,用于在xargs执行之前对输入进行处理。

xargs命令的效果是将输入的每一行作为参数,构建新的命令行,并执行该命令。它特别适合处理包含大量文件名的输入。

以下是一些常用的xargs命令的用法和效果:

1.将输入的每一行作为参数,执行命令:

echo "file1 file2 file3" | xargs ls

这将输出file1、file2和file3的详细信息。

2.限制每个命令行的最大参数数目:

echo "file1 file2 file3" | xargs -n 1 ls

这将分别执行ls命令,输出每个文件的详细信息。

3.以null作为分隔符,处理包含空格或特殊字符的文件名:

find . -type f -name "*.txt" -print0 | xargs -0 rm

这将删除所有以.txt结尾的文件。

4.从文件中读取参数,并执行命令:

xargs -a file.txt -n 1 command

这将从file.txt文件中读取参数,并每次执行一个命令。

5.指定并行执行的进程数:

echo "file1 file2 file3" | xargs -P 2 ls

这将并行执行两个ls命令,而不是按顺序执行。

xargs命令还有其他一些选项,可以根据实际需求进行使用。使用man xargs命令可以查看详细的xargs命令帮助文档。

六、ldd:显示可执行文件的依赖库。

ldd命令用于打印共享库的相关信息。它会显示一个可执行文件或共享库所依赖的动态链接库。下面是ldd命令的用法和效果:

用法: ldd [选项] <可执行文件或共享库>

选项: -v:显示详细信息,包括库的版本、路径和符号表等。 -u:显示未解析的符号。 -d:显示每个库的依赖关系。 -r:递归显示依赖关系,包括被依赖的库。 -p:显示库的相对路径。 -s:打印符号表。 -X:显示扩展的库信息。

效果: ldd命令将列出指定文件所依赖的共享库,并显示每个库的路径和加载地址。它可以帮助我们查找共享库的路径,检查共享库的版本和解决共享库依赖问题。通过查看ldd的输出,我们可以确定程序是否能够正确加载所需的共享库,以及是否存在版本冲突或缺失的共享库。

七、lsof:列出打开的文件和它们的进程。

lsof命令用于显示当前系统中打开文件的情况。它可以列出所有打开的文件,包括普通文件、目录、网络连接、系统文件等等。

lsof命令的基本语法如下:

lsof [选项] [文件]

其中,选项可以是:

  • -i:仅显示网络连接相关的文件。
  • -a:显示同时满足多个条件的文件。
  • -c:按进程名过滤文件。
  • -g:按组名过滤文件。
  • -u:按用户名过滤文件。
  • -p:按进程ID过滤文件。
  • -t:仅显示进程ID。
  • -d:按文件描述符过滤文件。
  • -F:以不同的格式输出文件列表。

文件参数可以是具体的文件名、目录名或者设备文件名。

使用lsof命令可以获取以下信息:

  1. 显示指定文件被哪些进程打开。
  2. 显示指定进程打开了哪些文件。
  3. 显示指定用户打开了哪些文件。
  4. 显示指定端口被哪些进程使用。

lsof命令的输出结果包含以下信息:

  • COMMAND:进程的名称。
  • PID:进程的ID。
  • USER:进程所属的用户。
  • FD:文件描述符,如cwd(当前工作目录)、txt(可执行文件)、mem(内存映射文件)等。
  • TYPE:文件类型,如DIR(目录)、REG(普通文件)、CHR(字符设备)、BLK(块设备)、IFO(管道)、SOCK(套接字)等。
  • DEVICE:设备号。
  • SIZE:文件大小。
  • NODE:索引节点号。
  • NAME:文件名或者文件描述符的路径。

通过lsof命令可以方便地查看系统中打开的文件情况,帮助用户定位问题、查找资源占用情况等。

八、nm:列出目标文件中的符号。

Linux中的nm命令用于显示二进制目标文件中的符号表。可以用来查看目标文件中定义的全局变量、函数和外部引用等信息。

使用nm命令的基本语法是: nm [OPTION]... FILE...

常用的选项包括:

  • -a 或 --debug-syms:显示所有符号表条目,包括调试符号;
  • -g 或 --extern-only:只显示外部全局符号;
  • -o 或 --print-file-name:在每行前面显示文件名;
  • -C 或 --demangle:显示C++函数名的解析形式。

可以指定一个或多个目标文件作为输入,也可以使用通配符来匹配多个文件。

nm命令的输出结果包含以下几列:

  • 符号的值(地址);
  • 符号类型(如U表示未定义符号,T表示文本段中的符号,D表示数据段中的符号,等);
  • 符号名称。

使用nm命令可以帮助开发者查看目标文件的符号信息,以便进行调试和分析。

九、objdump:显示二进制文件信息。

Linux的objdump命令是一个反汇编工具,用于查看目标文件的汇编代码和相关信息。它可以用于分析和调试可执行文件、共享库和目标文件。

objdump命令的用法如下:

objdump [选项] [输入文件]

一些常用的选项包括:

  • -d:将目标文件的机器代码反汇编成汇编代码。
  • -S:将目标文件的机器代码和源代码混合显示。
  • -t:显示目标文件的符号表。
  • -r:显示目标文件的重定位信息。
  • -x:显示目标文件的头部信息。
  • -j section:只显示指定节(section)的内容。

通过objdump命令,我们可以查看目标文件的汇编代码、符号表、重定位信息和头部信息,这对于分析目标文件的结构和调试问题非常有帮助。

例如,要查看一个可执行文件的汇编代码,可以使用以下命令:

objdump -d executable_file

这将显示可执行文件的机器代码和相应的汇编代码。

十、hd:以十六进制格式显示文件内容。

Linux的hd命令是用来显示硬盘的相关信息的。使用hd命令可以查看硬盘的基本信息、分区信息、容量以及其他详细信息等。

hd命令的使用格式如下: hd [选项] [设备]

常用选项包括: -h:显示帮助信息; -i:显示硬盘的详细信息; -c:显示硬盘缓存大小; -g:显示硬盘几何参数; -p:显示硬盘分区信息; -v:显示硬盘引导扇区信息; -U:显示硬盘序列号和产品号。

例如,使用hd命令显示硬盘的详细信息: hd -i /dev/sda

使用hd命令显示硬盘分区信息: hd -p /dev/sda

使用hd命令显示硬盘引导扇区信息: hd -v /dev/sda

使用hd命令显示硬盘序列号和产品号: hd -U /dev/sda

使用hd命令可以方便地查看硬盘的相关信息,帮助用户了解硬盘的基本情况。

以上这些命令可能不是日常工作中最常用的,但在某些特定场景或需要深入系统操作时,它们会显得非常有用。请注意,不同的Linux发行版可能对这些命令的支持有所不同,某些命令可能需要通过包管理器安装额外的软件包才能使用。在使用这些命令时,建议查阅相关的手册页(通过man命令)以获取更详细的信息和用法示例。

##欢迎关注交流

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

runqu

你的鼓励是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值