linux命令格式及who、whoami、su和passwd命令
1. Linux命令的格式
Linux命令的语法格式:
命令 【选项】 【参数】
命令格式中命令、选项、参数的具体含义:
命令:告诉Linux(UNIX)操作系统做(执行)什么。
选项:说明命令运行的方式(可以改变命令的功能)。选项部分是以“-”字符开始的。
参数:说明命令影响(操作)的是什么(如一个文件、一个目录或是一段正文文字)
2. whoami命令
whoami命令常用工具命令 whoami命令用于打印当前有效的用户名称,相当于执行id -un命令。
语法:
whoami(选项)
选项:
--help:在线帮助;
--version:显示版本信息。
实例:
[root@localhost ~]# whoami
root
[root@localhost ~]# id -un
root
3. who命令
who命令是显示目前登录系统的用户信息。执行who命令可得知目前有那些用户登入系统,单独执行who命令会列出登入帐号,使用的终端机,登入时间以及从何处登入或正在使用哪个X显示器。
语法:
who(选项)(参数)
选项:
-H或--heading:显示各栏位的标题信息列;
-i或-u或--idle:显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串;
-m:此参数的效果和指定"am i"字符串相同;
-q或--count:只显示登入系统的帐号名称和总人数;
-s:此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题;
-w或-T或--mesg或--message或--writable:显示用户的信息状态栏;
--help:在线帮助;
--version:显示版本信息。
参数:
文件:指定查询文件。
实例:
[root@localhost ~]# who
root pts/0 2013-08-19 15:04 (192.168.0.134)
root pts/1 2013-12-20 10:37 (180.111.155.40)
[root@localhost ~]# who -q
root root
# users=2
[root@localhost ~]# who -H
NAME LINE time COMMENT
root pts/0 2013-08-19 15:04 (192.168.0.134)
root pts/1 2013-12-20 10:37 (180.111.155.40)
[root@localhost ~]# who -w
root + pts/0 2013-08-19 15:04 (192.168.0.134)
root + pts/1 2013-12-20 10:37 (180.111.155.40)
4.su命令
su命令用户和工作组管理 su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。
语法:
su(选项)(参数)
选项:
-c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份;
-f或——fast:适用于csh与tsch,使shell不用去读取启动文件;
-l或——login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量;
-m,-p或--preserve-environment:变更身份时,不要变更环境变量;
-s或--shell=:指定要执行的shell;
--help:显示帮助;
--version;显示版本信息。
参数:
用户:指定要切换身份的目标用户。
实例:
变更帐号为root并在执行ls指令后退出变回原使用者:
su -c ls root
变更帐号为root并传入-f选项给新执行的shell:
su root -f
变更帐号为test并改变工作目录至test的家目录:
su -test
5.passwd命令
passwd命令用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。
语法:
passwd(选项)(参数)
选项:
-d:删除密码,仅有系统管理者才能使用;
-f:强制执行;
-k:设置只有在密码过期失效后,方能更新;
-l:锁住密码;
-s:列出密码的相关信息,仅有系统管理者才能使用;
-u:解开已上锁的帐号。
参数:
用户名:需要设置密码的用户名。
与用户、组账户信息相关的文件
存放用户信息:
/etc/passwd
/etc/shadow
存放组信息:
/etc/group
/etc/gshadow
用户信息文件分析(每项用:隔开)
例如:jack:X:503:504:::/home/jack/:/bin/bash
jack //用户名
X //口令、密码
503 //用户id(0代表root、普通新建用户从500开始)
504 //所在组
: //描述
/home/jack/ //用户主目录
/bin/bash //用户缺省Shell
组信息文件分析
例如:jack:$!$:???:13801:0:99999:7:*:*:
jack //组名
$!$ //被加密的口令
13801 //创建日期与今天相隔的天数
0 //口令最短位数
99999 //用户口令
7 //到7天时提醒
* //禁用天数
* //过期天数
实例:
如果是普通用户执行passwd只能修改自己的密码。如果新建用户后,要为新用户创建密码,则用passwd用户名,注意要以root用户的权限来创建。
[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。
[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选项来锁定:
[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 //失败,不能更改密码;
再来一例:
[root@localhost ~]# passwd -d linuxde //清除linuxde用户密码;
Removing password for user linuxde. passwd: Success //清除成功;
[root@localhost ~]# passwd -S linuxde //查询linuxde用户密码状态;
Empty password. //空密码,也就是没有密码;
注意:当我们清除一个用户的密码时,登录时就无需密码,这一点要加以注意。