Linuxuname -m从哪里获取信息?
我问是因为我有一台机器肯定是 64 位的,uname -a并且uname -r确认了这一点,但是uname -m打印i686. 这是从哪里弄来的??
POSIX shell 标准在这个站点上说
http://pubs.opengroup.org/onlinepubs/9699919799/
关于 shell 如何PATH用于查找可执行文件:
“应从头到尾搜索列表,将文件名应用于每个前缀,直到找到具有指定名称和适当执行权限的可执行文件。”
好吧,这不是在真正的 POSIX 实现中的工作方式:
man which 说:
“返回将在当前环境中执行的文件(或链接)的路径名,其参数在严格符合 POSIX 的 shell 中作为命令给出。它通过在 PATH 中搜索与名称匹配的可执行文件来实现参数。它不遵循符号链接。”
好,我们来看看这个情况:
$ pwd
/home/mark
$ echo $PATH
/home/mark/bin:...
$ ls -l bin/foobar
lrwxrwxrwx 1 mark mark 18 Dec 12 22:51 bin/foobar -> /home/mark/foobar1
$ touch foobar1
$ which foobar
$ chmod a+x foobar1
$ which foobar
/home/mark/bin/foobar
Run Code Online (Sandbox Code Playgroud)
好的,这里有一个PATH正确名称的符号链接,它被报告ls为可执行。
which 根本不看它,而只对它指向的东西感兴趣。
尽管事实上两者都man which明确表示它不遵循符号链接(实际上我们看到它没有,因为which foobar不打印foobar1),而且上面引用的 POSIX shell 文档从未提到 …
我正在尝试运行一个包含 的 Tcl 脚本package require cmdline,但它抱怨:
找不到包cmdline
如何找到另一个 Tcl 软件包并将其安装到现有的 Tcl 安装中?
我的用户名被允许执行
sudo 命令
那为什么这个炸弹
strace sudo 命令
有错误:
sudo: must be setuid root