Posts tagged ‘sudo’

1、 怎样在shell命令行里输入制表符tab?

输入tab键,在shell里,会自动补完。当需要输入tab的时候,可以输入:C-v tab,即先ctrl+v,再按tab键。

2、 sudo命令与重定向

sudo ./test.php > no-permision.txt

这时会报错,没有权限。因为sudo只作用于一个命令。可以如下:

sudo sh -c ‘/test.php > no-permision.txt’

今天发现一个挺奇怪的现象,ms用户的home下有.bash_profile,其中我定义了一些path。但是当我从flykobe用户 sudo su ms之后,echo $PATH发现.bash_profile没有被加载。

flykobe@138 v1 $ echo $PATH
/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.1.2:/usr/local/apache/bin:/usr/local/mysql/bin:/home/yicheng/tools/:/usr/local/mysql/bin/:/home/yicheng/music_seo/script/:/home/yicheng/music_seo/script/smalltools/
ms@tj1cantispam002 /home/yicheng $ echo $PATH
/bin:/usr/bin
而且这个path明显也不是从flykobe用户带来的。
经过查找,发现sudo、su之间的微小差别:

su = switch user
su – username = switch user to that username and transfer current environment variables
sudo <command> = execute this command as root (requires you to be set as an admin in OS X)
sudo su = execute the switch user command as root, this is a little weird – you don’t need to be root to switch users.

也就是说,当我执行 sudo su ms的时候,仅仅是切换了用户,但是没有重新登录,所以也没有加载ms用户对应的一些配置文件。

而执行 sudo su – ms的时候,相当于真正的重新登录了!