在Linux操作系统中,除了基本的常用命令,还有许多冷门但实用的命令。以下是一些相对不那么广为人知的Linux操作命令,它们可能在特定场景下非常有用:
一、last/lastb:查看用户登录成功或登录失败的信息。
last
命令用于显示用户最近登录系统的历史记录。默认情况下,它会显示所有的用户登录信息,包括登录时间、登录的终端设备、登录的IP地址等。
last
命令的基本用法是:
last
lastb
命令用于显示登录系统失败的历史记录。它会显示登录失败的用户名、登录失败的时间、登录失败的终端设备、登录失败的IP地址等。
lastb
命令的基本用法是:
lastb
这两个命令都需要以root用户或使用sudo权限运行,因为它们需要读取系统的登录记录文件(/var/log/wtmp
和/var/log/btmp
)。
使用last
和lastb
命令可以查看用户的登录历史和登录失败记录,这对于系统管理员来说非常有用,可以帮助他们跟踪和监控系统的登录活动。
二、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命令可以实现如下效果:
- 设置锁定:对指定文件加上锁,防止其他用户修改或删除文件;
- 查看锁定:查看指定文件是否被其他用户锁定;
- 清除锁定:清除指定文件的锁定状态,允许其他用户对文件进行读写操作。
下面是几个示例:
-
锁定文件:lock -p /path/to/file 查看文件是否被锁定。
-
清除锁定: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命令可以获取以下信息:
- 显示指定文件被哪些进程打开。
- 显示指定进程打开了哪些文件。
- 显示指定用户打开了哪些文件。
- 显示指定端口被哪些进程使用。
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命令)以获取更详细的信息和用法示例。
##欢迎关注交流