标签: path

为 Linux 可执行文件创建命令

我正在使用一个名为 node-webkit 的程序,但是如果不指定可执行文件的完整路径,我将无法启动该程序。有什么方法可以将命令(例如node-webkit)与 Linux 上的可执行文件相关联,以便不需要指定文件的完整路径?

path executable

9
推荐指数
2
解决办法
3万
查看次数

为什么“which”命令会给出重复的结果?

which -a ruby 给我

/usr/ruby
/usr/ruby
/usr/ruby
Run Code Online (Sandbox Code Playgroud)

它给出了三次相同的路径。为什么会发生这种情况?

shell path which

9
推荐指数
1
解决办法
409
查看次数

如何在运行时使用 nix 安装的库?

nix在我不是 root 的系统中以“单用户模式”使用(有关我的 nix 设置的描述,请参见下文)。

我想快速运行我的一个二进制文件,它与系统中不存在的库动态链接。

所以,我已经安装了库nix

$ nix-env -qa 'gmp'
gmp-4.3.2
gmp-5.1.3
$ nix-env -i gmp-5.1.3
Run Code Online (Sandbox Code Playgroud)

但是链接器仍然找不到该库:

$ ldd -r ../valencies 
../valencies: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by ../valencies)
../valencies: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ../valencies)
    linux-vdso.so.1 =>  (0x00007fffbbf28000)
    /usr/local/lib/libsnoopy.so (0x00007f4dcfbdc000)
    libgmp.so.10 => not found
    libffi.so.5 => /usr/lib64/libffi.so.5 (0x00007f4dcf9cc000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f4dcf748000)
    librt.so.1 => /lib64/librt.so.1 (0x00007f4dcf540000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f4dcf33c000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f4dcf11f000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f4dced8b000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f4dcfde7000)
undefined …
Run Code Online (Sandbox Code Playgroud)

path dynamic-linking not-root-user nix altlinux

9
推荐指数
1
解决办法
9272
查看次数

如何从另一个路径运行脚本,并知道脚本的路径?

我需要运行一个脚本来访问它所在路径中的文件。

例如:我有脚本/home/me/folder/script.sh,这个脚本将访问文件/home/me/folder/myfile. 由于文件在脚本的同一路径中,我只使用 name myfile,而不是完整路径。

但是,如果我从 运行它/tmp/,例如:

/tmp$ /home/me/folder/script.sh
Run Code Online (Sandbox Code Playgroud)

它给了我:

myfile: No such file or directory
Run Code Online (Sandbox Code Playgroud)

那么,我如何在脚本中说该文件与脚本本身在同一路径中?

shell scripting path shell-script

8
推荐指数
2
解决办法
9204
查看次数

$PATH 和可执行文件的问题

我有一个位于我生成的目录中的 unix 可执行文件。我相信我需要在我的目录中获取这个目录,$PATH以便 unix 可执行文件是可执行的,但是源代码的文档说我需要编辑我的 shell 配置文件以添加$home/meme/bin到我的 shell 路径中。

path executable

8
推荐指数
1
解决办法
2万
查看次数

Linux中的PATH环境变量

我想知道 linux 操作系统给出的标准环境变量如 PATH、HOME 是如何自动设置的。这些是从哪个文件中读取的。当特定用户登录时,应该有一些文件从中设置这些变量。

login path environment-variables

8
推荐指数
1
解决办法
1977
查看次数

OS X 和其他 Unices 中的 /etc/paths

是否/etc/paths被我在 OS X 中运行的每个 shell读取?例如,如果我使用 zsh,它会解析/etc/path填充$PATH吗?

OS X 的填充顺序究竟是什么$PATH?它的做法与其他 Unices 有什么不同吗?

osx zsh path etc

8
推荐指数
1
解决办法
2104
查看次数

如何获取缓冲区的文件路径?

我知道寄存器 % 包含当前缓冲区的完整路径。但是如何通过其编号获得另一个缓冲区的完整路径?

VIM 中有这样的函数/命令吗?

我想解释一下我是如何想到这个问题的......

有 2 个缓冲区打开。第一个是左侧窗口中的 XML 文件,另一个是右侧窗口中的 XSD 文件。我编辑了他们两个。在编辑期间,我想根据架构验证 XML。

然而命令

!xmllint --schema /tmp/schema.xsd %
Run Code Online (Sandbox Code Playgroud)

当然,只有当当前缓冲区是带有 XML 的缓冲区时才能很好地工作。所以我很好奇是否可以/tmp/schema.xsd用一些命令或函数调用来替换,这些命令或函数调用将通过缓冲区编号确定完整路径。就像是:

!xmllint --schema getBufferPath(3) %
Run Code Online (Sandbox Code Playgroud)

vim path

8
推荐指数
1
解决办法
4277
查看次数

在 bin 中创建程序

我已经编译链接并在 C++ 中创建了一个程序,现在我有了

foobar.out
Run Code Online (Sandbox Code Playgroud)

我希望能够将它放入 bin 目录并像系统范围的命令一样使用它,例如

ssh, echo, bash, cd...
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

linux path binary raspberry-pi

8
推荐指数
3
解决办法
4316
查看次数

将尚未安装在系统上的内容添加到 PATH 变量是否有任何潜在的负面影响?

我已将 LaTeX 添加到 PATH 变量,但当我将 shell 配置传输到多台计算机时,并非所有计算机上都安装了 LaTeX。除了无法访问软件的明显后果之外,当系统上不存在 PATH 变量所引用的软件时,配置 PATH 变量是否还会产生任何其他负面影响?

我的 .zshenv 文件:

# TeX Live
export PATH=$PATH:/usr/local/texlive/2023/bin/x86_64-linux
Run Code Online (Sandbox Code Playgroud)

zsh path

8
推荐指数
2
解决办法
1699
查看次数