/etc/passwd 包含了登录 Linux 系统所必需的每个用户的信息
# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
..
2. 使用 getent 命令
getent命令显示类似于/etc/passwd 文件的用户详细信息,它将每个用户详细信息显示为包含七个字段的单行。
# getent passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
...
3. 使用 compgen 命令
compgen 是 bash 的内置命令,运行: compgen -u 可以查看所有linux的用户。
# compgen -u
root
bin
daemon
adm
lp
...
Linux系统下显示所有可用命令,可以利于Shell脚本来实现,方法如下:
#Shell[bash+rel4调试通过]代码:var=`echo $PATH|sed "s/:/ /g"`
for list in $var
do
ls -lR $list|grep -v '^d'
done
-EOF-
因为终端中的命令是通过PATH环境变量中的路径进行搜索,只要在PATH路径下能找到的可执行文件都可以直接作为命令使用,所以先echo $PATH,找到所有路径,依次ls即可显示所有Linux命令。
1、自动补全是Bash Shell的功能,相关的命令(compgen、complete、compopt)2、complete实例
创建hello_complete,内容:
complete -F _hello_complete_func hello.sh
_hello_complete_func ()
{
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts="help usage version"
if [[ ${cur} == * ]] then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
}
3、source hello_complete让补全的参数生效。
4、创建hello.sh
#!/bin/sh
echo "hello world"
5、./hello.sh [TAB][TAB]
help usageversion
6、不用complete简单的提醒需要输入参数
#!/bin/sh
str=$1
if [[ $1 == '' ]]then
echo "Usage: $0 help|version"
exit 0
fi
echo "$str"
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)