LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 879|回复: 10

一个相对路径与绝对路径的问题: /usr/sbin

[复制链接]
发表于 2005-2-2 00:31:56 | 显示全部楼层 |阅读模式
大家好! 我是linux新手, 在使用ntsysv命令时, 遇到了以下问题, 觉得有点奇怪.
不知道谁能给我解释一下原因。
因为我按DOS的目录结构来类比,觉得以下的命令都可以执行。
(我用的是Redhat ES3.0, 命令是在“系统工具=>终端”中输入的)

$ su
Password:
# cd /usr/sbin
# pwd
/usr/sbin

# ntsysv                                <==不行, 提示为英文
bash: ntsysv: command not found                     
# /./usr/sbin/sysv                         <==不行, 提示为中文
bash: /./usr/sbin/sysv: 没有那个文件或目录                                                      
                                         
# /usr/sbin/ntsysv                         <==OK
# ./ntsysv                                <==OK
# ../sbin/ntsysv                            <==OK
发表于 2005-2-2 12:49:46 | 显示全部楼层
可能/usr/sbin不在你的用户目录上
echo $PATH   看一下
在$PATH里任何目录下都能执行

export PATH=$PATH:/usr/sbin  将目录临时添加到$PATH上

./ 是当前目录
我也遇见过,没什么,能用就行呗,不用太钻牛角尖
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-2-2 13:19:17 | 显示全部楼层
呵呵, 刚才我在官方网站看帮助才知道不用这么麻烦,  
在 "系统设置->服务器设置->服务" 里面就有了.

不过问题还是没搞清, 我是在当前目录下的!

我也同意楼上的话: "能用就行呗,不用太钻牛角尖",
可人有时候总会有点好奇心的, 这大概也是我学linux的原因吧.
回复 支持 反对

使用道具 举报

发表于 2005-2-2 16:25:48 | 显示全部楼层
su的时候使用如下命令就可以了
su -l root
连接上去之后就包括路径了
回复 支持 反对

使用道具 举报

发表于 2005-2-2 17:02:28 | 显示全部楼层
在当前目录下的程序如果没有指定./ 而在$PATH中又不包含./ 是不可以执行的.因为系统是按$PATH中的位置寻找,即便程序在当前目录,也是找不到的.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-2-2 21:39:25 | 显示全部楼层
呵呵, 我觉得还有别的原因, 比方说提示为什么会有中文和英文之别?
这并没什么大惊小怪的, 只是探讨一下, 实际上也没什么影响.
回复 支持 反对

使用道具 举报

发表于 2005-2-3 10:57:59 | 显示全部楼层
[root@NEWLFS ~]#sad
bash: sad: command not found
[root@NEWLFS ~]#cd asd
bash: cd: asd: 没有那个文件或目录
[root@NEWLFS ~]#

locale的原因。
[root@NEWLFS ~]#locale
LANG=zh_CN
LC_CTYPE="zh_CN"
LC_NUMERIC="zh_CN"
LC_TIME="zh_CN"
LC_COLLATE="zh_CN"
LC_MONETARY="zh_CN"
LC_MESSAGES="zh_CN"
LC_PAPER="zh_CN"
LC_NAME="zh_CN"
LC_ADDRESS="zh_CN"
LC_TELEPHONE="zh_CN"
LC_MEASUREMENT="zh_CN"
LC_IDENTIFICATION="zh_CN"
LC_ALL=zh_CN
[root@NEWLFS ~]#
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-2-9 15:51:52 | 显示全部楼层
呵呵,我现在才知道, 所有当前目录的可执行命令都要加"./";
可能是约定的吧.
另外, 有没有兄弟知道怎么把启动的错误信息搞成英文? 乱码很麻烦的.
是不是修改.18n文件就可以了? 我还没找到更详细的资料。
回复 支持 反对

使用道具 举报

发表于 2005-2-10 13:10:29 | 显示全部楼层
当你输入一个命令时, shell 会在 PATH 变量里找。找得到的话就执行。
你用 su 来切换到 root 时,并没有加载 root 的 .bashrc ,也就是说 PATH 里没有 /usr/sbin ,所以就无法执行了。
可以用 su - 来加载环境变量。
回复 支持 反对

使用道具 举报

发表于 2005-2-10 13:12:08 | 显示全部楼层
Post by soboy
呵呵,我现在才知道, 所有当前目录的可执行命令都要加"./";
可能是约定的吧.
另外, 有没有兄弟知道怎么把启动的错误信息搞成英文? 乱码很麻烦的.
是不是修改.18n文件就可以了? 我还没找到更详细的资料。


这个简单啦,设置 LANG=POSIX 就OK了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表