请关注本头条号,每天坚持更新原创干货技术文章。
如需学习视频,请在微信搜索公众号“智传网优”直接开始自助视频学习
1. 前言
在运维的过程中,有时我们想列出本服务器上的Linux系统所支持的所有命令,即列出所有可执行的命令(包括bash shell里的别名和功能)。如果你有这样的需求,请试试compgen命令。本文主要介绍compgen命令的作用和使用
![133e05a19f5d66d78fbf845414d30b1e.png](https://i-blog.csdnimg.cn/blog_migrate/3d307a5b866ffb0542bf446d432268f0.jpeg)
查看Linux所有可以执行的命令
2. `compgen`的使用案例
[root@zcwyou ~]# compgen -c
输出结果
cp
egrep
fgrep
grep
l.
ll
ls
mv
rm
which
if
then
else
elif
fi
case
esac
for
select
while
until
do
done
in
function
time
{
}
!
还有更多未展示
查看关键字find的命令
[root@zcwyou ~]# compgen -c |grep find
findfs
btrfs-find-root
find
oldfind
nl-link-ifindex2name
nl-link-name2ifindex
findmnt
find2perl
这里只展示部分
查看本系统目前有多少命令可执行
[root@zcwyou ~]# compgen -c | wc -l
1288
![70439d6e304404b59c3eec8d9faeb9c9.png](https://i-blog.csdnimg.cn/blog_migrate/6971944b1f817f2f6f5550be1c30e15f.jpeg)
查看本系统目前有多少命令可执行
查看本用户有权限执行的命令数量
[root@zcwyou ~]# echo "$USER user can run $(compgen -c | wc -l) commands on $HOSTNAME."
![00c1193f412c82922d49a836ffe33868.png](https://i-blog.csdnimg.cn/blog_migrate/0192b18dd76ed1bb1ee01b24b4817e30.jpeg)
输出结果,
root user can run 1288 commands on CentOS7.linuxrumen.com.
表示本用户root可以运行1288个命令。
查看有多少别名命令,即使用了aliases定义了别名
[root@zcwyou ~]# compgen -a
cp
egrep
fgrep
grep
l.
ll
ls
mv
rm
which
查看内嵌命令
[root@zcwyou ~]# compgen -b
.
:
[
alias
bg
bind
break
builtin
caller
cd
command
compgen
complete
查看bash关键字
[root@zcwyou ~]# compgen -k
if
then
else
elif
fi
case
esac
for
select
while
until
do
done
in
function
查看bash所有的功能
[root@zcwyou ~]# compgen -A function
3. Linux几个常用命令
顺便介绍几个常用命令:
ls [option(s)] [file(s)]
ls命令用于列出目标目录的文件和子目录的内容,默认情况下,只显示目录和文件名,以最简单形式显示。
cp [option(s)] sourcefile targetfile
cp命令用于复制目录或者文件到特定目录。
mv [option(s)] sourcefile targetfile
mv命令用于移动或重命名文件
rm [option(s)] file(s)
rm命令用于删除文件或目录,可一次删除多个目录或者文件
ln [option(s)] sourcefile targetfile
ln命令以不同的名称创建从源文件到目标文件的内部链接。通常,这样的链接直接指向同一个文件系统上的源文件。但是,如果使用-s选项执行ln,则会创建一个仅指向源文件所在目录的符号链接,从而启用跨文件系统的链接.
cd [options(s)] [directory]
cd命令用于切换当前的工作目录。
mkdir [option(s)] directoryname
mkdir创建目录
rmdir [option(s)] directoryname
rmdir用于删除一个空目录
chown [option(s)] username.group file(s)
chown用于修改文件或者的所有者。
chgrp [option(s)] groupname file(s)
chgrp命令将给定文件的组所有权转移到具有指定组名的组。如果现有组和新组的成员,则文件所有者只能更改组所有权。
chmod [options] mode file(s)
chmod命令用于修改文件或者目录的权限,包括本用户的权限,同组用户的权限,其它用户的权限。