Articles of bashrc

如何通过SSH(使用Putty)login到RHEL时将文件导出到其他用户的bash?

我正在运行RHEL 7.3,但是在其他Linux系统上的过程可能相似。 我已经以root身份login。 我有一个名为openrc的文件,它充满了像export OS_IDENTITY_API_VERSION=3这样的行。 我想将此文件移动到某个位置,以便在其他用户使用SSHlogin时自动加载该文件。 读过相关的线程后,我尝试使用这个作为root用户添加这个,但是这似乎只是为root用户添加这些值。 当我作为另一个用户login时,说'admin01'值不会被加载。 echo source /home/admin01/openrc>>~/.bash_profile 我也尝试将这个文件移动到/etc/profile.d,但是这似乎也只加载了根,而不是任何其他用户login。有人请解释发生了什么事。 cp /home/admin01/openrc /etc/profile.d/openrc.sh /etc/profile有这样的警告; # It's NOT a good idea to change this file unless you know what you # are doing. It's much better to create a custom.sh shell script in # /etc/profile.d/ to make custom changes to your environment, as this […]

域用户挂起login

在使用SSHlogin到我的服务器时,任何域用户都会挂起,直到他们按Ctrl + C ,然后将其放到Bash。 从阅读关于这个主题的各种答案,我被认为是由于.profile和.bashrc之间的无限循环。 但是,我已经运行这两个文件之间的diff域用户和本地用户,并没有区别。 我也看了一下,我不能发现任何明显的循环点,所以我会感谢一些帮助解决这个问题。 .bashrc是删除注释的默认值: case $- in *i*) ;; *) return;; esac HISTCONTROL=ignoreboth shopt -s histappend HISTSIZE=1000 HISTFILESIZE=2000 shopt -s checkwinsize [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then debian_chroot=$(cat /etc/debian_chroot) fi case "$TERM" in xterm-color|*-256color) color_prompt=yes;; esac if [ […]

无法在Ubuntu 11中成功安装RVM

我之前在Debian和OSX中安装了RVM,没有任何问题,但是在Ubuntu中这样做让我疯狂。 我尝试了不同的教程, 这是最后一个。 我认为一切都很顺利,直到我不得不更新.bashrc,这似乎什么都不做。 当我检查RVM是否被识别为$ type rvm | head -n1的函数 $ type rvm | head -n1我只得到“未find”。 如果我尝试执行RVM,则会收到“rvm未安装”消息。 也许这个教程已经过时了? 谁能帮忙? 这是在Virtualbox上运行的Ubuntu 11的全新安装,如果有用的话。 这是我的.bashrc现在看起来,在尝试另一种方法build议在这里的评论 # ~/.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 [ -z "$PS1" ] && return # […]

红帽5.4 – 添加时间到bashrc

我正在尝试将当前时间添加到Redhat中的bash中。 我想看看: [user @ hostname 01:01:01〜]显然是相对于bash提示符被放置在那里。 任何想法,如果这是可能的,如果是这样,如何?

ssh SendEnv从Windows到Linux服务器使用cygwin

我正在从Windows cygwin ssh到Open SU​​SE Linux服务器。 我想通过ssh命令发送一个本地环境variables,这样我就可以在login后立即加载一些特定的.bashrc文件。下面是我试过的。 Windows机器有这个envvariables IDENTITY=samiron echo %IDENTITY% samiron 在Linux机器上我有 vim /etc/ssh/sshd_config AcceptEnv IDENTITY 在/home/user/.bashrc我写了类似的东西 export ME=$IDENTITY 我的计划是有一个像.bashrc.samiron文件,并从.bashrc文件source ~/.bashrc.$ME 。 不过,我正在做如下ssh,期待variables$ME包含"samiron" ssh -o SendEnv=IDENTITY [email protected] 但是在logging之后 user@server:~> echo $ME 它什么也没有显示 任何人都可以build议我在这里做错了吗?

RBASH如何防止用户退出正常bash?

我已经设置了一些testing帐户来testingrbash,以限制用户在服务器上执行的操作。 目前我正在使用.bash_profile为这些configuration文件设置bash -r 。 但是当用户键入exit它们会进入正常的bash shell。 我想这样做,当他们键入exit注销服务器。 否则bash -r将不会限制访问。 请让我知道你有什么想法。

从systemd运行一个bash脚本,就像我login一样

我有一个服务作为bash脚本实现。 里面实际上是一个节点应用程序,但是对于这个问题,它可能是任何东西。 基本用例是我们在交互式shell中开发/debugging脚本,然后将其作为服务启用。 如果我ssh到我的设备(login)我的整个环境在那里,我可以在命令行启动我的脚本,没有问题。 我所在的shell已经从.bashrc,.profile等中选取了合适的环境,并且一切正常。 但是,如果我从一个systemd服务启动它,它会像交互式shell一样获得环境。 有条款给环境variables添加环境variables,但是我在这里所做的只是重复了我的交互环境所做的事情,并成为一种简单的方法来忘记一些事情。 对于一个真正的生产服务,我确信有一个正确的方法来做到这一点,但这是一个实验室应用程序,我需要简化,所以没有人在脚本上工作需要知道系统如何工作。 所以问题是:我需要做什么才能让脚本写在交互式bash shell下运行,从systemd运行? 我试图用–login启动bash,但是这不起作用。 也不在外部脚本中明确地执行源.bashrc。 以下是我正在处理的示例,以突出显示问题: 核心脚本(job.sh): #!/bin/bash cd while [ 1 ] do pwd echo USER is $USER echo PATH is $PATH which node node –version sleep 1 done 我从另一个脚本(wrapper.sh)调用它: #!/bin/bash echo starting wrapper… bash –login /home/droid/job.sh 这里是我在/etc/systemd/system/job.service中的job.service单元: [Unit] Description=Job Daemon [Service] User=droid ExecStart=/home/droid/wrapper.sh [Install] WantedBy=multi-user.target 我对systemd有什么不了解,这让我无法正常工作?

在nix环境中是否有“模式”或定义* rc文件的组?

我开始使用命令行多一点,我看到有很多方法来configuration我的$HOME一些configuration文件。 这很好,因为您可以按自己喜欢的方式进行自定义。 不幸的是,对于初学者来说,有太多的select是有点混乱。 例如,我为我使用的别名创build了.bash_alias 。 我甚至不知道这个选项存在,我习惯简单地编辑.bashrc。 是否存在一个模式,一个“良好的实践”,从rc文件结构的angular度来设想灵活性和模块化 ? 为此,是否存在一个标准化小组,或者每个人都创build它自己的configuration设置?

在Linux中,我如何对文件和目录进行不同的掩饰?

我希望在我的.bashrc中有一些将掩盖文件权限为022(导致新文件具有权限rwxr – r–)和目录权限为066(导致新的目录有权限rwx – x – X)。 这可能吗?

build立本地glibc,打破了系统,我怎么不sshparsing.bashrc?

我所在的集群拥有非常老的构build工具,我需要使用CUDA5。 我是一个非常聪明的家伙,我计划build立坏死的工具。 所以,我build立了gcc,bintools和glibc的本地副本。 CUDA5可能需要的所有东西。 所有的构build完成没有错误。 我testing了gcc和bintools。 一切都很好,我build立并运行了一些程序。 我在.bashrc设置了LD_LIBRARY_PATH ,然后重新login,预计将会有一个高效的夜晚。 令我惊恐的是,我意识到一切都是dynamic链接的。 现在我不能做像ls这样简单的命令 [ex @ uid377〜] $ ls ls:加载共享库时出错:__vdso_time:dlopen()的无效模式:无效参数 我不能做命令来解决像rm或vim这样的问题! 有没有办法让我ssh,但也忽略.bashrc文件? 任何build议,非常感谢。 这台机器显然在维护,我不知道什么时候我可以得到pipe理员的支持。