info

Linux下info格式的帮助指令

info命令 是Linux下info格式的帮助指令。

就内容来说,info页面比man page编写得要更好、更容易理解,也更友好,但man page使用起来确实要更容易得多。一个man page只有一页,而info页面几乎总是将它们的内容组织成多个区段(称为节点),每个区段也可能包含子区段(称为子节点)。理解这个命令的窍门就是不仅要学习如何在单独的Info页面中浏览导航,还要学习如何在节点和子节点之间切换。可能刚开始会一时很难在info页面的节点之间移动和找到你要的东西,真是具有讽刺意味:原本以为对于新手来说,某个东西比man命令会更好些,但实际上学习和使用起来更困难。

语法

1
info(选项)(参数)

选项

1
2
3
4
-d:添加包含info格式帮助文档的目录;
-f:指定要读取的info格式的帮助文档;
-n:指定首先访问的info帮助文件的节点;
-o:输出被选择的节点内容到指定文件。

参数

帮助主题:指定需要获得帮助的主题,可以是指令、函数以及配置文件。

实例

在info后面输入命令的名称就可以查看该命令的info帮助文档了:

1
info info

面介绍一下它的几个常用快捷键。

1
2
3
4
5
6
7
8
9
10
**?键:** 它就会显示info的常用快捷键。
**N键:** 显示(相对于本节点的)下一节点的文档内容。
**P键:** 显示(相对于本节点的)前一节点的文档内容。
**U键:** 进入当前命令所在的主题。
**M键:** 敲M键后输入命令的名称就可以查看该命令的帮助文档了。
**G键:** 敲G键后输入主题名称,进入该主题。
**L键:** 回到上一个访问的页面。
**SPACE键:** 向前滚动一页。
**BACKUP或DEL键:** 向后滚动一页。
**Q:** 退出info。

命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 **?**      显示帮助窗口

在帮助窗口中:
**Ctrl-x 0** 关闭帮助窗口
**Ctrl-x Ctrl-c** 关闭整个 Info

**q** 退出 info
**n** 打开与本 Node 关联的下一个 Node
**p** 打开与本 Node 关联的前一个 Node
**u** 打开与本 Node 关联的上一个 Node
**l** 回到上一次访问的 Node
**m或g** 选择一个菜单项(Node 的名字)
输入指定菜单的名字后按回车,打开指定菜单项关联的 Node
**空格键** 下一页(PageDown 也可以,下一页从当前页的最后两行开始算起)
下一个 Node (若当前页在 Node 文档的末尾)
**Del 键** 上一页(PageUp 也可以,上一页从当前页的开始两行开始算起)
上一个 Node (若当前页 Node 文档的开始)

**b 或 t 或 Home** 文档的开始(b 是 begining 的意思)
**e 或 End** 文档的末尾(b 是 ending 的意思)
**Ctrl-l** 刷新当前页,若当前文档显示情况有问题时
**Ctrl-g** 取消所键入的指令

mtools

显示mtools支持的指令

mtools命令 显示mtools支持的指令,mtools为MS-DOS文件系统的工具程序,可模拟许多MS-DOS的指令。这些指令都是mtools的符号连接,因此会有一些共同的特性。

语法

1
mtools(选项)

选项

1
2
3
4
5
6
7
8
9
10
-a:长文件名重复时自动更改目标文件的长文件名;
-A:短文件名重复但长文件名不同时自动更改目标文件的短文件名;
-o:长文件名重复时,将目标文件覆盖现有的文件;
-O:短文件名重复但长文件名不同时,将目标文件覆盖现有的文件;
-r:长文件名重复时,要求用户更改目标文件的长文件名;
-R:短文件名重复但长文件名不同时,要求用户更改目标文件的短文件名;
-s:长文件名重复时,则不处理该目标文件;
-S:短文件名重复但长文件名不同时,则不处理该目标文件;
-v:执行时显示详细的说明;
-V:显示版本信息。

实例

使用mtools命令显示其支持的所有的指令,输入如下命令:

1
2
3
4
5
6
[root@localhost ~]# mtools     #显示所有支持的指令名称
Supported commands:
mattrib, mbadblocks, mcat, mcd, mclasserase, mcopy, mdel, mdeltree
mdir, mdoctorfat, mdu, mformat, minfo, mlabel, mmd, mmount
mpartition, mrd, mread, mmove, mren, mshowfat, mtoolstest, mtype
mwrite, mzip

如上所示,其显示的所有命令均为mtools工具所支持的。

nologin

拒绝用户登录系统

nologin命令 可以实现礼貌地拒绝用户登录系统,同时给出信息。如果尝试以这类用户登录,就在log里添加记录,然后在终端输出This account is currently not available信息,就是这样。一般设置这样的帐号是给启动服务的账号所用的,这只是让服务启动起来,但是不能登录系统。

语法

1
nologin

实例

Linux禁止用户登录:

禁止用户登录后,用户不能登录系统,但可以登录ftp、SAMBA等。我们在Linux下做系统维护的时候,希望个别用户或者所有用户不能登录系统,保证系统在维护期间正常运行。这个时候我们就要禁止用户登录。  

1、禁止个别用户登录,比如禁止lynn用户登录。

1
passwd -l lynn

这就话的意思是锁定lynn用户,这样该用户就不能登录了。  

1
passwd -u lynn

上面是对锁定的用户lynn进行解锁,用户可登录了。    

2、我们通过修改/etc/passwd文件中用户登录的shell

1
vi /etc/passwd

更改为:

1
lynn:x:500:500::/home/lynn:/sbin/nologin

该用户就无法登录了。  

3、禁止所有用户登录。

1
touch /etc/nologin

除root以外的用户不能登录了。

passwd

用于让用户可以更改自己的密码

passwd命令 用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。

语法

1
passwd(选项)(参数)

选项

1
2
3
4
5
6
-d:删除密码,仅有系统管理者才能使用;
-f:强制执行;
-k:设置只有在密码过期失效后,方能更新;
-l:锁住密码;
-s:列出密码的相关信息,仅有系统管理者才能使用;
-u:解开已上锁的帐号。

参数

用户名:需要设置密码的用户名。

知识扩展

与用户、组账户信息相关的文件

存放用户信息:

1
2
/etc/passwd
/etc/shadow

存放组信息:

1
2
/etc/group
/etc/gshadow

用户信息文件分析(每项用:隔开)

1
2
3
4
5
6
7
8
例如:jack:X:503:504:::/home/jack/:/bin/bash
jack  # 用户名
X  # 口令、密码
503  # 用户id(0代表root、普通新建用户从500开始)
504  # 所在组
:  # 描述
/home/jack/  # 用户主目录
/bin/bash  # 用户缺省Shell

组信息文件分析

1
2
3
4
5
6
7
8
9
例如:jack:$!$:???:13801:0:99999:7:*:*:
jack  # 组名
$!$  # 被加密的口令
13801  # 创建日期与今天相隔的天数
0  # 口令最短位数
99999  # 用户口令
7  # 到7天时提醒
*  # 禁用天数
*  # 过期天数

实例

如果是普通用户执行passwd只能修改自己的密码。如果新建用户后,要为新用户创建密码,则用passwd用户名,注意要以root用户的权限来创建。

1
2
3
4
5
[root@localhost ~]# passwd linuxde     # 更改或创建linuxde用户的密码;
Changing password for user linuxde.
New UNIX password: # 请输入新密码;
Retype new UNIX password: # 再输入一次;
passwd: all authentication tokens updated successfully. # 成功;

普通用户如果想更改自己的密码,直接运行passwd即可,比如当前操作的用户是linuxde。

1
2
3
4
5
6
[linuxde@localhost ~]$ passwd
Changing password for user linuxde. # 更改linuxde用户的密码;
(current) UNIX password: # 请输入当前密码;
New UNIX password: # 请输入新密码;
Retype new UNIX password: # 确认新密码;
passwd: all authentication tokens updated successfully. # 更改成功;

比如我们让某个用户不能修改密码,可以用-l选项来锁定:

1
2
3
4
5
6
7
8
9
10
[root@localhost ~]# passwd -l linuxde     # 锁定用户linuxde不能更改密码;
Locking password for user linuxde.
passwd: Success # 锁定成功;

[linuxde@localhost ~]# su linuxde # 通过su切换到linuxde用户;
[linuxde@localhost ~]$ passwd # linuxde来更改密码;
Changing password for user linuxde.
Changing password for linuxde
(current) UNIX password: # 输入linuxde的当前密码;
passwd: Authentication token manipulation error # 失败,不能更改密码;

再来一例:

1
2
3
4
5
6
[root@localhost ~]# passwd -d linuxde   # 清除linuxde用户密码;
Removing password for user linuxde.
passwd: Success # 清除成功;

[root@localhost ~]# passwd -S linuxde # 查询linuxde用户密码状态;
Empty password. # 空密码,也就是没有密码;

注意:当我们清除一个用户的密码时,登录时就无需密码,这一点要加以注意。

smbpasswd

samba用户和密码管理工具

smbpasswd命令 属于samba套件,能够实现添加或删除samba用户和为用户修改密码。

语法

1
smbpasswd(选项)(参数)

选项

1
2
3
4
5
6
-a:向smbpasswd文件中添加用户;
-c:指定samba的配置文件;
-x:从smbpasswd文件中删除用户;
-d:在smbpasswd文件中禁用指定的用户;
-e:在smbpasswd文件中激活指定的用户;
-n:将指定的用户的密码置空。

参数

用户名:指定要修改SMB密码的用户。

users

打印当前主机所有登陆用户的名称。

概要

1
users [OPTION]... [FILE]

主要用途

  • 每个显示的用户名对应一个登录会话;如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数。

选项

1
2
--help       显示帮助信息并退出。
--version 显示版本信息并退出。

参数

FILE(可选):记录用户当前登录情况的文件;默认使用 /var/run/utmp/var/log/wtmp

返回值

返回0表示成功,返回非0值表示失败。

例子

1
2
[root@localhost ~]# users
root root

注意

  1. 该命令是GNU coreutils包中的命令,相关的帮助信息请查看man -s 1 usersinfo coreutils 'users invocation'