$ echo $PATH
/home/t/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
$ which PDFXCview.exe
/home/t/bin//PDFXCview.exe
$ ls /home/t/bin/PDFXCview.exe -l
lrwxrwxrwx 1 t t 97 Mar 18 09:20 /home/t/bin/PDFXCview.exe -> ../program_files/document/formats/pdf/TrackerSoftware/pdfxcview/pdfxchange_portable/PDFXCview.exe
Run Code Online (Sandbox Code Playgroud)
现在,
$ wine /home/t/bin/PDFXCview.exe &
[1] 23220
Run Code Online (Sandbox Code Playgroud)
但即使PDFXCview.exe可以在 中搜索$PATH,
$ wine PDFXCview.exe
wine: cannot find L"C:\\windows\\system32\\PDFXCview.exe"
Run Code Online (Sandbox Code Playgroud)
失败是因为它PDFXCview.exe没有作为命令名称出现在 中wine PDFXCview.exe,所以没有在 中搜索到吗$PATH?
有什么办法可以PDFXCview.exe 在wine PDFXCview.exe搜索中进行吗$PATH?
谢谢。
当我echo "${PATH}" | tr -s ':' '\n' | nl从 bash 脚本内部和终端输入时,得到相同的结果:
1 /home/nikhil/Documents/Git/Cs/Architecture/bin
2 /home/nikhil/.local/bin
3 /home/nikhil/opt/.nvm/versions/node/v16.13.0/bin
4 /home/nikhil/opt/bin
5 /usr/local/sbin
6 /usr/local/bin
7 /usr/sbin
8 /usr/bin
9 /sbin
10 /bin
11 /usr/games
12 /usr/local/games
13 /snap/bin
14 /home/linuxbrew/.linuxbrew/bin
15 /home/linuxbrew/.linuxbrew/sbin
16 /home/nikhil/.cargo/bin
17 /home/nikhil/.cabal/bin
18 /home/nikhil/opt/go/bin
19 /home/nikhil/.ruby/bin
20 /home/linuxbrew/.linuxbrew/opt/fzf/bin
Run Code Online (Sandbox Code Playgroud)
但是当我在 bash 脚本中和终端上输入以下内容时,我得到不同的结果:
# From Terminmal
$ type pandoc
pandoc is aliased to `/usr/bin/pandoc'
pandoc is /usr/bin/pandoc
pandoc is /home/linuxbrew/.linuxbrew/bin/pandoc
pandoc is /home/nikhil/.cabal/bin/pandoc
Run Code Online (Sandbox Code Playgroud)
# From Terminmal
$ …Run Code Online (Sandbox Code Playgroud) 我读了《Linux 圣经第 10 版》,第 3 章:使用 shell,第 70 页。有提示部分:
如果要添加自己的命令或 shell 脚本,请将它们放在主目录中的 bin 目录中(例如对于名为 cn 的用户来说为 /home/cn/bin)。在某些 Linux 系统中,此目录会自动添加到您的路径中,但在其他 Linux 系统上您可能需要创建该目录或将其添加到您的 PATH 中。因此,只要您将该命令添加到具有执行权限的 bin 中,您只需在 shell 提示符下键入命令名称即可开始使用它。要使命令可供所有用户使用,请将它们添加到/usr/local/bin
我正在运行 Fedora Linux 35 工作站版并尝试创建我的自定义命令。我创建了~/bin/kek.sh
#! /usr/bin/bash
echo "Kek"
Run Code Online (Sandbox Code Playgroud)
并转到命令行,输入kek我的主目录。我有bash: kek: command not found...。之后,我转到~/.bashrc并在文件末尾添加以下行
PATH=$PATH:~/home/bin/kek; export PATH;
Run Code Online (Sandbox Code Playgroud)
然后返回~目录,进入kek并得到相同的bash: kek: command not found.... 我已将.bashrc PATH 行更改为PATH=$PATH:~/home/bin; export PATH;,重新加载终端会话并始终得到相同的结果。
请解释一下,为什么它对我不起作用?如何创建自己的命令并使其仅通过名称即可访问?谢谢。
我没有将文件夹移动到父目录,而是使用 . 将其重命名为“..” mv folder_name ..。您有任何解决方案来恢复该文件夹还是只是将其删除?(MacOS 12.4)
对于一些初步信息,我正在使用 WSL2。这是我第一次使用Linux。
我想安装类似于 LaTeX 的Typst 。
我曾经wget为我的计算机体系结构下载该文件,但是当我尝试将其放入我知道位于路径中的目录中时(例如:),/usr/local/bin我不允许这样做。
有修复或解决方法吗?
我正在使用 Redhat 发行版。Mysql 与二进制文件一起安装在以下路径:
/root/opt/rh/mysql55/root/usr/bin/mysql
Run Code Online (Sandbox Code Playgroud)
此外,环境变量 PATH 回显:
echo $PATH
/root/opt/rh/mysql55/root/usr/bin/mysql:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/opt/rh/mysql55/root/usr/bin/mysql
Run Code Online (Sandbox Code Playgroud)
服务器已重新启动,但如果我输入
mysql
Run Code Online (Sandbox Code Playgroud)
进入 bash 它返回以下内容:
# mysql -u root
-bash: mysql: command not found
Run Code Online (Sandbox Code Playgroud)
请指教
编辑
将 PATH EV 更改为
/root/opt/rh/mysql55/root/usr/bin
Run Code Online (Sandbox Code Playgroud)
使用
export mysql /opt/rh/mysql55/root/usr/bin
export PATH ${mysql}:${PATH}
Run Code Online (Sandbox Code Playgroud)
还是得到 command not found
重新启动服务器后, echo $PATH 现在是:
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
Run Code Online (Sandbox Code Playgroud)
这样,mysql的路径就没有了。
我正在使用 RPI 3B
uname -a 返回: 4.14.98-v7+ #1200 armv71
操作系统是 stretch
gcc version is 4.9.3
我正在尝试根据 hackster.io 上的这个项目将我的 RPi 设置为 BLE 网关。我执行了前几个命令:
git clone --recurse-submodules https://github.com/Wolkabout/WolkGateway.git
sudo apt-get install mosquitto cmake python python-pip && python -m pip install conan
Bash 脚本
然后我运行了一个包含以下内容的 bash 脚本 (configure.sh):
!/usr/bin/env bash
cp tools/git/pre-commit .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit
pushd out
conan install -s compiler.libcxx=libstdc++11 --build=missing ..
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ..
popd
Run Code Online (Sandbox Code Playgroud)
Bash 脚本的输出
终端输出:
line 21: conan: command not found
Run Code Online (Sandbox Code Playgroud)
第 …
我阅读了有关如何将文件夹添加到PATH. 我将以下内容添加到.bashrc文件中:
export PATH=/opt/aseprite/build/bin
Run Code Online (Sandbox Code Playgroud)
当我尝试使用source ./.bashrcfrom 时zsh
出现此错误
/home/luke/.bashrc:16: command not found: shopt
/home/luke/.bashrc:24: command not found: shopt
/home/luke/.bashrc:111: command not found: shopt
/usr/share/bash-completion/bash_completion:45: command not found: shopt
/usr/share/bash-completion/bash_completion:1512: parse error near `|'
\[\e]0;\u@\h: \w\a\]\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$
Run Code Online (Sandbox Code Playgroud)
这是我的完整链接.bashrc:https : //pastebin.com/28RQV97K
我在PATH这里的变量有什么问题?
我想知道如何将目录添加到路径(例如我的Downloads文件夹),以便每当我cd Downloads从任何目录键入时,我都会转到~/Downloads.
path ×9
bash ×2
command ×2
directory ×2
shell-script ×2
cd-command ×1
command-line ×1
fedora ×1
macos ×1
mv ×1
permissions ×1
python ×1
shell ×1
wine ×1
zsh ×1