Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bash——版本。这些信息存储在哪里?_Bash_Macos_Environment Variables - Fatal编程技术网

bash——版本。这些信息存储在哪里?

bash——版本。这些信息存储在哪里?,bash,macos,environment-variables,Bash,Macos,Environment Variables,命令信息存储在哪个文件中 bash--version ? 我尝试了一些目录,如/bin或/var,/etc,但没有结果 我需要Linux和MAC OS x的这两个版本。谢谢 strings $(which bash) | grep "Bash version" 输出(例如): @(#)Bash版本4.3.48(1)发行版GNU 您有任何理由相信它不是在bash-可执行文件中硬编码的吗 要找出使用了哪个bash,请运行 which bash 对我来说,它给出了/bin/bash。现在,要查看可

命令信息存储在哪个文件中
bash--version
? 我尝试了一些目录,如/bin或/var,/etc,但没有结果

我需要Linux和MAC OS x的这两个版本。谢谢

strings $(which bash) | grep "Bash version"
输出(例如):

@(#)Bash版本4.3.48(1)发行版GNU
您有任何理由相信它不是在
bash
-可执行文件中硬编码的吗

要找出使用了哪个
bash
,请运行

which bash
对我来说,它给出了
/bin/bash
。现在,要查看可执行文件中是否有任何类似字符串的字节序列,其中包含子字符串
“version”
,请运行

strings /bin/bash | grep version
在这台机器上,它提供:

shell_version_string
build_version
sccs_version
rl_library_version
rl_do_lowercase_version
show_shell_version
rl_readline_version
dist_version
GNU bash, version %s-(%s)
GNU bash, version %s (%s)
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
@(#)Bash version 4.3.48(1) release GNU
display-shell-version
      -l    do not print tilde-prefixed versions of directories relative
    HOSTTYPE    The type of CPU this version of Bash is running under.
    OSTYPE  The version of Unix this version of Bash is running on.
    version, type `enable -n test'.
do-lowercase-version
.gnu.version
.gnu.version_r
shell\u版本\u字符串
版本
sccs_版本
RLU库版本
rl_do_小写版本
显示\u外壳\u版本
rl_读线_版本
dist_版本
GNU bash,版本%s-(%s)
GNU bash,版本%s(%s)
许可证GPLv3+:GNU GPL版本3或更高版本
@(#)Bash版本4.3.48(1)发行版GNU
显示shell版本
-l不打印带有波浪号前缀的相对目录版本
HOSTTYPE运行此版本Bash的CPU类型。
OSTYPE运行此版本Bash的Unix版本。
版本,键入'enable-n test'。
不使用小写版本
.gnu.version
.gnu.version\r

因此,
“Bash版本4.3.48”
在可执行文件中作为普通字符串硬编码。

可能硬编码到可执行文件中。为什么不呢?出于好奇,你到底在那些目录中尝试了什么?我正在搜索一些与/bin/bash可执行文件相关的变量。。。我几乎是个新手:D@Alex_DeLarge您可能应该查看
~/.bashrc
。字符串是否仅提取二进制文件中看似有效的Unicode部分?@madphestics:GNU字符串打印长度至少为4个字符且后跟不可打印字符的可打印字符序列。选项
--encoding=encoding
可能有助于Unicode UTF-16/UCS-2编码。感谢您启用我的惰性:)我以前从未见过这个程序,但懒得搜索。我必须在android上搜索它。我不知道我会得到什么特别的组合词:)清楚,谢谢。如果我想编辑一行呢?例如,在命令BASH版本中,我得到GNU BASH,Visto4.4.12(1)版本(X86Y64-PC-LIUX-GNU)版权(C)2016免费软件基金会,我想打印世界“CopyLead”而不是“版权”,您为什么在乎措辞?如果这很重要,我很确定维护人员会在源代码中进行更改。您始终可以编辑源代码并自己重新编译。@Alex_DeLarge是否在可执行文件中?我想你可以用一些十六进制编辑器,或者。我不是律师,我不确定编辑别人的版权声明是否是个好主意。“你为什么要这么做?”亚历克斯·德拉吉。您是否计划将所述可执行文件分发给其他人?@Alex_DeLarge,您需要注意不要更改偏移量——您可以修改字符串,但前提是保持字符串长度不变,或者有时缩短字符串并添加NUL作为填充。否则,您可以拆解、修改和重新组装。。。这当然也是有教育意义的。
shell_version_string
build_version
sccs_version
rl_library_version
rl_do_lowercase_version
show_shell_version
rl_readline_version
dist_version
GNU bash, version %s-(%s)
GNU bash, version %s (%s)
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
@(#)Bash version 4.3.48(1) release GNU
display-shell-version
      -l    do not print tilde-prefixed versions of directories relative
    HOSTTYPE    The type of CPU this version of Bash is running under.
    OSTYPE  The version of Unix this version of Bash is running on.
    version, type `enable -n test'.
do-lowercase-version
.gnu.version
.gnu.version_r