ΒΆ2023-09-14

In Gentoo, when you SSH into a system, the environment is typically set up by various shell configuration files. These files are executed when a user logs in and can be used to set environment variables, aliases, and perform other customizations. The specific files executed can depend on the shell being used by the user. Here are some common examples:

  1. Bash (Bourne-Again SHell):

When you log in, the system typically runs /etc/profile, which sets up system-wide environment variables and configurations. For each user, when they log in, ~/.bash_profile, ~/.bash_login, or ~/.profile (in that order of precedence) is executed, depending on which file exists and is readable. These files can be used to customize the user's environment. Zsh (Z Shell):

  1. For Zsh, the system-wide configuration file is usually /etc/zsh/zshenv. For individual users, ~/.zshrc is typically sourced when they log in, and it's a common place to set user-specific environment variables and customizations. Fish (Friendly Interactive SHell):

  2. In Fish, when you log in, the system typically runs /etc/fish/config.fish, which sets up system-wide configurations. For each user, ~/.config/fish/config.fish is executed, and this file can be used for user-specific environment customizations. These are just some of the common configuration files. The exact setup might vary depending on how your system is configured, and you can also customize these files to meet your specific needs. When you SSH into a Gentoo system, these files help to establish your environment, including setting environment variables, aliases, and other shell-related settings.

# /etc/profile: login shell setup
#
# That this file is used by any Bourne-shell derivative to setup the
# environment for login shells.
#

# Load environment settings from profile.env, which is created by
# env-update from the files in /etc/env.d
if [ -e /etc/profile.env ] ; then
        . /etc/profile.env
fi

# You should override these in your ~/.bashrc (or equivalent) for per-user  <-- ~/.bash_profile will execute ~/.bashrc
# settings.  For system defaults, you can add a new file in /etc/profile.d/.
export EDITOR=${EDITOR:-/bin/nano}
export PAGER=${PAGER:-/usr/bin/less}

unset ROOTPATH

# process *.sh files in /etc/profile.d
for sh in /etc/profile.d/*.sh ; do
        [ -r "$sh" ] && . "$sh"
done
unset sh

if [ -n "${BASH_VERSION-}" ] ; then
        # Newer bash ebuilds include /etc/bash/bashrc which will setup PS1
        # including color.  We leave out color here because not all
        # terminals support it.
        if [ -f /etc/bash/bashrc ] ; then
                # Bash login shells run only /etc/profile
                # Bash non-login shells run only /etc/bash/bashrc
                # Since we want to run /etc/bash/bashrc regardless, we source it
                # from here.  It is unfortunate that there is no way to do
                # this *after* the user's .bash_profile runs (without putting
                # it in the user's dot-files), but it shouldn't make any
                # difference.
                . /etc/bash/bashrc
        else
                PS1='\u@\h \w \$ '
        fi
else
        # Setup a bland default prompt.  Since this prompt should be useable
        # on color and non-color terminals, as well as shells that don't
        # understand sequences such as \h, don't put anything special in it.
        PS1="${USER:-$(whoami 2>/dev/null)}@$(uname -n 2>/dev/null) \$ "
fi
#
# ~/.bash_profile
#

[[ -f ~/.bashrc ]] && . ~/.bashrc
#
# ~/.bashrc
#

# If not running interactively, don't do anything
[[ $- != *i* ]] && return

# $- represents the current shell options or flags.
# != is a comparison operator that checks if two strings are not equal.
# *i* is a pattern that looks for the letter "i" anywhere in the string.



alias ls='ls --color=auto'
alias grep='grep --color=auto'
PS1='[\u@\h \W]\$ '

GTK_IM_MODULE=fcitx5
QT_IM_MODULE=fcitx5
XMODIFIERS=@im=fcitx5

# tilix error
if [ $TILIX_ID ] || [ $VTE_VERSION ]; then
        source /etc/profile.d/vte.sh
fi

# GO PTH
# GOPATH=$HOME/go

# export PATH
export PATH=/bin:$PATH