su:switch user:su命令和su -命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;
而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户以后,pwd
一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。用echo
$PATH命令看一下su和su -以后的环境变量有何不同。以此类推,要从当前用户切换到其它用户也一样,应该使用su -命令。
1.su的作用是变更为其它使用者的身份,需要键入该使用者的密码(超级用户除外)。
2.格式
su [选项]... [-] [USER [ARG]...]
3.主要参数
-f , --fast:不必读启动文件(如 csh.cshrc 等),仅用于csh或tcsh两种Shell。
-l , --login:加了这个参数之后,就似乎是重新登陆为该使用者一样,大部分环境变量(例如HOME、SHELL和USER等)都是以该使用者(USER)为主,并且工作目录也会改变。假如没有指定USER,缺省情况是root。
-m, -p ,--preserve-environment:执行su时不改变环境变数。
-c command:变更账号为USER的使用者,并执行指令(command)后再变回原来使用者。
USER:欲变更的使用者账号,ARG传入新的Shell参数。

#su [-l] 用户名

#passwd

pwd: PrintingWorking directory, pwd命令主要用于打印当前工作目录的工作路径,在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置。

1.命令格式:

  pwd [选项]

  2.命令功能:

  查看”当前工作目录“的完整路径

  3.常用参数:

  一般情况下不带任何参数

  如果目录是链接时:

  格式:pwd -P 显示出实际路径,而非使用连接(link)路径。

  4.常用实例:

  实例1:用 pwd 命令查看默认工作目录的完整路径

  命令:

  pwd

  输出:

  [root@localhost~]# pwd

  /root

  [root@localhost~]#

  实例2:使用 pwd 命令查看指定文件夹

  命令:

  pwd

  输出:

  [root@localhost~]# cd /opt/soft/

  [root@localhostsoft]# pwd

  /opt/soft

  [root@localhostsoft]#

  实例三:目录连接链接时,pwd -P 显示出实际路径,而非使用连接(link)路径;pwd显示的是连接路径

  命令:

  pwd -P

  输出:

  [root@localhostsoft]# cd /etc/init.d

  [root@localhostinit.d]# pwd

  /etc/init.d

  [root@localhostinit.d]# pwd -P

  /etc/rc.d/init.d

  [root@localhostinit.d]#

  实例4:/bin/pwd

  命令:

  /bin/pwd [选项]

  选项:

  -L 目录连接链接时,输出连接路径

  -P 输出物理路径

  输出:

  [root@localhostinit.d]# /bin/pwd

  /etc/rc.d/init.d

  [root@localhostinit.d]# /bin/pwd --help

  [root@localhostinit.d]# /bin/pwd -P

  /etc/rc.d/init.d

  [root@localhostinit.d]# /bin/pwd -L

  /etc/init.d

  [root@localhostinit.d]#

  实例五:当前目录被删除了,而pwd命令仍然显示那个目录

  输出:

  [root@localhostinit.d]# cd /opt/soft

  [root@localhostsoft]# mkdir removed

  [root@localhostsoft]# cd removed/

  [root@localhostremoved]# pwd

  /opt/soft/removed

  [root@localhostremoved]# rm 。。/removed -rf

  [root@localhostremoved]# pwd

  /opt/soft/removed

  [root@localhostremoved]# /bin/pwd

  /bin/pwd: couldn‘t find directory entry in “。。” with matching i-node

  [root@localhostremoved]# cd

  [root@localhost~]# pwd

  /root

  [root@localhost~]#