此路径上存在许多脚本:/usr/local/bin/
。
对于用户来说,指令是<script_name>
在提示符下键入脚本名称[username@servername]$
。 怎么可能我没有键入./script_name
,而脚本只是在用户提示符下写入脚本名称就开始在标准输出上显示结果?
答案1
/usr/local
是用于那些您不想在升级操作系统时被破坏的东西。
操作系统可以自由地吹走它想要的任何东西/usr/bin
,设置本地变体是为了防止它破坏非操作系统的东西。
而且,通过将所有这些本地内容(bin
、、etc
等等)置于一个控制点之下,可以很容易地备份站点(而不是必须获取/bin
、、/etc
等等/lib
操作系统内容) - 您只需备份整个层次/usr/local
结构。
如果你echo $PATH
,你可能会发现它就/usr/local/bin
在那里。或者,尝试which PROG
(替换PROG
为你的实际程序名称)查看它在哪里找到:
pax> pwd
/home/pax
pax> echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin
pax> ls /usr/local/bin/ico*
iconv
pax> which iconv
/usr/local/bin/iconv
pax> iconv -?
Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]
or: iconv -l
Try 'iconv --help' for more information.
答案2
/usr/local
在 BSD 系统上,所有非系统软件(端口)都默认安装。
在大多数 Linux 发行版中,它旨在用于由本地管理员从源代码安装的软件,绕过发行版包管理器。
答案3
/usr/local/bin 可能是你的路径的一部分
答案4
回答你关于 /usr/local/bin 用途的标题 /usr/local 用于机器本地的软件,通常手动安装(而不是通过 rpm 或 deb 等包管理)
为了回答你的实际问题,我认为你应该了解 PATH 变量。尝试在终端中 echo $PATH
./somescript.sh 表示您希望脚本位于当前目录(.)中,如果您不输入任何路径,只输入命令名称,shell 将在 PATH 中查找该命令(当然,除非它是您的 shell 的内部命令)。