我只是好奇如果我删除~/.bashrc用户的文件会发生什么。甚至root用户也有自己的~/.bashrc文件吗?如果我删除它会怎样,或者我可以吗?
在我的一台 Ubuntu 11.10 服务器上,当我sudo -i成为 root 用户时,root 的 .bashrc 没有被执行。在所有其他服务器上,据我所知,其相关配置是相同的,它正在正确执行。
这是我检查过的:
source .bashrc,之后该会话的一切正常。bash在 sudoed 到 root 后手动键入执行 bash,然后执行 .bashrc还有什么要检查的吗?
xsession 中没有错误,而且我没有 .bash_login 或 .bash_profile 文件,所以我 100% 确定它们都没有加载,因此取消了 .profile 加载。
当我将 .profile 重命名为 .bash_profile 并打开一个新的终端窗口时,它仍然没有加载。当我通过“. ~/.profile”手动加载文件时,文件中的所有内容(别名和 PATH 导出)都有效,但不会自动加载。
我看到一篇关于修复你的别名的帖子.bashrc。
他说在你把你的别名放进去后.bashrc,你需要使用:
. ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
我不太明白第一个点(' . ') 在这里做什么。它的功能是什么,叫什么名字?
我正在尝试访问剪贴板,但是当我source ~/.bashrc 在终端中输入时出现此错误:
bash: /home/taran/.bashrc: line 2: syntax error near unexpected token ('
bash: /home/taran/.bashrc: line 2:alias pbpaste='xclip -selection
clipboard -o'# ~/.bashrc: executed by bash(1) for non-login shells
Run Code Online (Sandbox Code Playgroud)
我尝试在Gary Woodfine's answer to Command Line Clipboard Access 中做教程。
的输出cat ~/.bashrc是:
alias pbcopy='xclip -selection clipboard'
alias pbpaste='xclip -selection clipboard -o'# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
case $- …Run Code Online (Sandbox Code Playgroud) 我有一个使用 shebang 的第三方脚本#!/usr/bin/env python。
根据 python 文档,这是适用于 Python v2 和 Python v3 ( https://docs.python.org/3/using/windows.html#shebang-lines ) 的脚本的正确形式。
我的 Ubuntu (WSL) 只安装了 Python 3:
~? which python
~? which python3
/usr/bin/python3
Run Code Online (Sandbox Code Playgroud)
我已将此添加到路径中,方法是在我的内容中添加以下内容~/.bashrc并获取它
~? which python
~? which python3
/usr/bin/python3
Run Code Online (Sandbox Code Playgroud)
~? . ~/.bashrc
~? env | grep PATH
PATH=/home/me/.local/bin:/home/me/bin:/usr/bin/python3:/opt/gradle/gradle-5.3.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Run Code Online (Sandbox Code Playgroud)
然而,当我运行这个脚本时,它抱怨找不到 Python。我创建了一个简短的测试文件foo,其中包含相同的 shebang 和一个print("Hello"):
~? ./foo
/usr/bin/env: ‘python’: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我还能做些什么来env使用python3?
PS:我没有python 2,也不想安装它。第三方脚本的自述文件特别提到支持 Python v2 和 v3,并且根据 Python 文档本身,shebang 指出了这一点,如上所述。
PPS:添加别名并不能解决这个问题,因为它们仅在用户在提示符下调用 …
在玩终端时,我注意到有很多方法可以创建永久别名。
我是 Linux 新手,据我所知,正在做:
sudo ln -s /path/to/executable /usr/local/bin/desired_aliasdesired_alias = '/path/to/executable'到~/.bashrc取消注释这些行~/.bashrc:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Run Code Online (Sandbox Code Playgroud)
并把desired_alias = '/path/to/executable'成~/.bash_aliases
都具有相同的效果。
第一种方法和第二种方法有什么区别?
请参阅下面我的编辑,这并不完全是Shell 提示自定义和 cmd 行为的重复
我reverse-search在 CLI 中的功能坏了,我不知道如何修复它......
当我按 ctrl+r 并搜索我之前执行的命令时,找到它然后按向右箭头键使用它,输出已损坏。下面是一个例子:
# I reverse-searched the word "test" then pressed right arrow
yoshiji@x1carbon:~/path/to/git/folder (master) $ch)`test': rake test
# ^^^^^^^^^^ weird output
# ^ cursor right there
Run Code Online (Sandbox Code Playgroud)
它还将我的光标“移动”到不同的位置。如果我按回车,就会执行正确的命令(rake test在这种情况下),所以这意味着显示的文本与实际执行的不同。
我知道这很可能与我PS1在 my 中的导出有关~/.bashrc,所以这里是这个文件的最后几行:
# Git branch in prompt.
git_branch() {
branch=$(__git_ps1 2> /dev/null)
if [ "$branch" = " (master)" ]; then
echo -e "\033[33m${branch}\033[00m" # yellow
elif [ "$branch" = "" ]; then
echo …Run Code Online (Sandbox Code Playgroud) 我希望我的 bash 脚本(特别是我的~/.bashrc. 我如何确定是什么情况?有一个变量吗?提前致谢。
当我 ssh 进入我的 Ubuntu 盒子时,我看到下面的输出。我很惊讶地看到引用和 TechRepublic 文章的链接。
那是广告吗?有谁知道这是从哪里来的?有什么办法可以去掉吗?
谢谢,本
Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-37-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Sun 21 Jun 2020 10:06:54 PM PDT
System load: 0.05 Processes: 249
Usage of /: 43.6% of 227.74GB Users logged in: 0
Memory usage: 8% IPv4 address for enp0s25: <redacted>
Swap usage: 0% IPv4 address for wlp2s0: <redacted>
Temperature: 56.0 C
* "If you've been waiting for the perfect Kubernetes …Run Code Online (Sandbox Code Playgroud)