AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1250008
Accepted
programmerNoob1234
programmerNoob1234
Asked: 2020-06-14 11:07:28 +0800 CST2020-06-14 11:07:28 +0800 CST 2020-06-14 11:07:28 +0800 CST

每次我打开终端,已经执行了几个命令

  • 772

我是初学者,很久没有使用Linux了。现在我不再知道我做了什么,每次打开终端时都会执行 3 个命令,我不再需要这些命令,也不再像以前那样工作了。现在我的问题是:如何关闭每次打开终端时都会执行这些命令。

command-line gnome-terminal bash execute-command
  • 2 2 个回答
  • 2098 Views

2 个回答

  • Voted
  1. Best Answer
    Christos Takaridis
    2020-06-14T11:15:51+08:002020-06-14T11:15:51+08:00

    检查目录中的.bashrc文件以获取命令。homesource

    每次您的终端仿真器启动时都会读取此文件,如果它包含 asource它会运行这些命令。

    您可以通过运行检查这一点:

    cat .bashrc | grep source
    
    • 4
  2. Eliah Kagan
    2020-06-14T12:09:24+08:002020-06-14T12:09:24+08:00

    TL;DR: diff /etc/skel/.bashrc ~/.bashrc显示对 的更改~/.bashrc,并且还有其他文件~/.bashrc可能会产生您所描述的问题。

    当您启动 Bash shell 时运行意外命令时,.bashrc 如 Christos Takaridis 所说,检查通常会发现问题。但有时这还不够。除了source命令之外,还有更多要检查的文件,有时您需要检查的文件不仅仅是.bashrc.

    内置的 Bash shellsource也可以拼写.(这实际上是它更常见的拼写),所以除了:

    grep source ~/.bashrc
    

    运行以下命令也可能会有所帮助:

    grep -F '. ' ~/.bashrc
    

    (没有-F,该grep命令将其模式视为正则表达式,并且.正则表达式中未转义的字符匹配任何字符,而不仅仅是文字.。)

    虽然,即使在 之后的文字空间.,如图所示,也可能有一些误报。

    如果您确实找到了使用source命令或.命令(在 Bash 中它们是同义词)来源的文件,那么我建议在注释掉(使用前导#)或删除sourceor.行之前检查它们的内容。在它们中,您可能会找到您正在寻找的命令,或者您可能会找到其他.或source命令。

    特别是~/.bashrcUbuntu 中的默认文件源(带有.)该文件(~/.bash_aliases如果存在)。通常这被用作定义别名的方便位置,但任何 Bash 命令都可以进入那里并运行。有时意外的输出结果是来自意外放置在非别名定义的命令~/.bash_aliases。如果别名定义意外格式错误,您还将以错误消息的形式获得输出(尽管如果它格式正确但定义为扩展的文本是错误的,那么在您实际使用别名之前您不会知道这一点)。

    另一种检查已添加或删除内容的.bashrc方法是将其与系统为新创建的用户帐户提供的版本进行比较。通常这与您在进行修改之前开始使用的文件相同,但有时当 Ubuntu 从一个版本升级到另一个版本时,此文件会更改(不会导致.bashrc现有用户主目录中的文件发生更改)。这个文件是/etc/skel/.bashrc(因为目录的内容被复制到新创建的用户帐户的主目录中,当以通常的方式创建帐户时),您可以通过运行查看它与您的文件/etc/skel之间的差异:.bashrc

    diff /etc/skel/.bashrc ~/.bashrc
    

    在这个问题的一个变体中,您~/.bashrc可能包含放置在非常高的位置的输出生成命令,以便它们在检查当前 shell 是否是交互式的之前运行。许多非交互式 shell 根本不运行命令~/.bashrc,但是一些远程 shell(在 Ubuntu 中包括以非交互方式运行单个命令ssh并管理sftp或scp连接的 shell)会这样做。由于实际使用的大部分内容.bashrc不适合此类 shell,因此默认.bashrc检查当前运行的 shell 是否是交互式的,如果不是则停止。如果你想在这些 shell 中运行某些东西,它必须放在交互检查之前。更常见的是,你没有,但无论如何可能已经把它们放在那里。在交互性检查之前产生任何输出的命令通常会阻止sftp并scp为该用户帐户工作,直到它们被删除。

    (或者,更罕见的是,此检查可能会被删除或修改。在 Debian 和 Ubuntu 之外,默认值.bashrc可能包含也可能不包含此类检查。此答案主要针对 Ubuntu 用户。)

    在此问题的另一个变体中,您要查找的命令无法在其中找到~/.bashrc并且只能在登录 shell 中运行,其中包括您在非图形虚拟控制台上登录以及进入时获得的sshshell机器,但不包括您打开终端窗口时获得的 shell(除非您已将终端应用程序配置为启动登录 shell,或者除非这是 Windows 10 中的 WSL 系统)。shopt login_shell告诉您当前正在运行的交互式 Bash shell 是否是登录 shell。

    在这种情况下,您应该检查您的~/.profile,哪些登录 shell 使用:

    diff /etc/skel/.profile ~/.profile
    

    在 Ubuntu 中,您通常不会有~/.bash_profileor~/.bash_login文件。如果其中之一确实存在,它会被使用而不是,~/.profile尽管它可能会导致~/.profile被 sourcing 使用~/.profile。

    默认情况下,在 Ubuntu 中,~/.profilesources ~/.bashrc,因此即使是交互式登录 shell 也会在其中运行命令,~/.bashrc并且仅在登录 shell和其他 shell中存在问题并不意味着它一定存在于~/.bashrc.

    最后,请注意 和 的系统范围对应物分别是~/.bashrc和。这些文件很少被修改,也很少应该被修改,但如果你修改它们,它们也会以类似的方式影响 shell 启动行为。~/.profile/etc/bash.bashrc/etc/profile

    • 3

相关问题

  • 如何从命令行仅安装安全更新?关于如何管理更新的一些提示

  • 如何从命令行刻录双层 dvd iso

  • 如何从命令行判断机器是否需要重新启动?

  • 文件权限如何工作?文件权限用户和组

  • 如何在 Vim 中启用全彩支持?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve