Es atradu .bashrc
failu un vēlos uzzināt tā mērķi/funkciju. Kā un kad tas tiek izmantots?
.bashrc
ir apvalka skripts, ko Bash palaidīs, kad vien tas tiks interaktīvi palaists. Tas inicializē interaktīvās čaulas sesiju. Šajā failā var ievietot jebkuru komandu, ko var ievadīt komandu uzvednē.
Šeit var ievietot komandas, lai iestatītu čaulu lietošanai konkrētā vidē vai lai pielāgotu to savām vēlmēm. Parasti .bashrc
ir jāieliek aliases, ko vēlaties, lai tās vienmēr būtu pieejamas.
.bashrc
tiek palaists katrā interaktīvās čaulas palaišanas reizē. Ja jūs sakāt:
$ bash ; bash ; bash
un pēc tam trīs reizes nospiež Ctrl-D, .bashrc
tiks palaists trīs reizes. Bet, ja tā vietā jūs sakāt:
$ bash -c exit ; bash -c exit ; bash -c exit
tad .bashrc
vispār netiks palaists, jo -c
padara Bash izsaukumu neinteraktīvu. Tas pats attiecas uz čaulas skripta palaišanu no faila.
Pretstatā tam ir .bash_profile
un .profile
, kas tiek palaisti tikai jaunas pieteikšanās čaulas sākumā. (bash -l
) Jūs izvēlaties, vai komanda tiks ievietota .bashrc
vai .bash_profile
, atkarībā no tā, vai vēlaties, lai tā tiktu palaista vienreiz vai katrā interaktīvās čaulas startā.
Kā pretpiemēru aliāniem, kurus es labprātāk ievietoju .bashrc
, jūs vēlaties veikt PATH
korekcijas .bash_profile
, jo šīs izmaiņas parasti nav idempotentas:
export PATH="$PATH:/some/addition"
Ja tā vietā to ievietotu .bashrc
, katru reizi, kad palaistu interaktīvu apakšvirsmu, :/some/addition
atkal tiktu pievienots PATH
beigās, radot papildu darbu čaulā, kad kļūdītos komandas ievadīšanā.
Jaunu interaktīvo Bash čaulu jūs saņemat ikreiz, kad, piemēram, ar :sh
ievadāt čaulu no vi
.
.bashrc
faila mērķis ir nodrošināt vietu, kur varat iestatīt mainīgos, funkcijas un aizstājvārdus, definēt savu (PS1) uzvedni un citus iestatījumus, kurus vēlaties izmantot katru reizi, kad atverat jaunu termināļa logu.
Tas darbojas tā, ka tiek palaists katru reizi, kad atverat jaunu termināli, logu vai logu.
Ļoti minimālai programmai varētu būt šādas funkcijas:
export CLICOLOR=1
export LANG="en_US.UTF-8"
alias cp="cp -i"
alias ls="ls --color=auto"
export PS1="\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "
export EDITOR="vim"
Tas ir viss, ko jūs patiešām zināt, lai sāktu darbu.
Šeit ir "overkill" versija, kas noder pieredzējušiem izstrādātājiem:
Pieredzējušam izstrādātājam bieži vien būs daudz vairāk.
Manējo var apskatīt šeit (attēlā ar sintakses izcelšanu):
HISTCONTROL=ignoreboth:erasedups HISTSIZE=100000 HISTFILESIZE=200000
ls --color=al > /dev/null 2>&1 && alias ls='ls -F --color=al' || alias ls='ls -G'
md () { [ $# = 1 ] && mkdir -p "$@" && cd "$@" || echo "Error - no directory passed!"; }
git_branch () { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'; }
HOST='\033[02;36m\]\h'; HOST=' '$HOST
TIME='\033[01;31m\]\t \033[01;32m\]'
LOCATION=' \033[01;34m\]`pwd | sed "s#\(/[^/]\{1,\}/[^/]\{1,\}/[^/]\{1,\}/\).*\(/[^/]\{1,\}/[^/]\{1,\}\)/\{0,1\}#\1_\2#g"`'
BRANCH=' \033[00;33m\]$(git_branch)\[\033[00m\]\n\$ '
PS1=$TIME$USER$HOST$LOCATION$BRANCH
PS2='\[\033[01;36m\]>'
set -o vi # vi at command line
export EDITOR=vim
test -f ~/.bash_aliases && . $_
test -f ~/.git-completion.bash && . $_
test -s ~/.autojump/etc/profile.d/autojump && . $_
[ ${BASH_VERSINFO[0]} -ge 4 ] && shopt -s autocd
[ -f /etc/bash_completion ] && ! shopt -oq posix && . /etc/bash_completion
[ -z $TMUX ] && export TERM=xterm-256color && exec tmux
export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$home/.rvm/scripts/rvm"
Paskaidrojums:
-1. Iestatīju savu vēstures failu tā, lai tas ignorētu dublikātus un būtu daudz lielāks par noklusējuma failu.
-2. Krāsas opcija ls
atkarībā no tā, vai izmantojat linux vai OSX.
-3. Funkcija "md
", lai ar vienu komandu izveidotu un cd direktoriju.
-4. Atrod pašreizējo git zaru, ja tas atrodas git repozitorijā, un...
-5. -9. Definē lielisku PS1 uzvedni, piemēram, .
-10. Uzlabota PS2 uzvedne
-11. Iestatiet vi kā redaktoru komandrindā
-12. Iestatiet vi kā noklusējuma redaktoru
-13. Izpildīt manu .bash_aliases
failu, ja tas pastāv.
-14. Izpildiet manu git cilnes pabeigšanas skriptu (attālinātajiem un filiālēm), ja tas eksistē.
-15. Izpildīt autojump, ja tas eksistē
-16. Ļauj cd'ing bez cd daļas rakstīšanas, ja bash versija >= 4
-17. Izpildīt bash pabeigšanas skriptu, ja tāds pastāv
-18. Izmantot TMUX, ja tāds ir
-19. Pievienojiet rvm manam PATH
-20. Izmantot rvm, ja tas ir.
Es esmu izveidojis šo portatīvo lietojumprogrammu tā, lai tā darbotos jebkurā no manām linux vai OSX mašīnām bez pielāgošanas - tāpēc pirms noteiktu funkciju un citu skriptu izmantošanas tiek veikti vairāki klātbūtnes testi.
Tas arī atvieglo visu failu uzreiz izmantot jaunā datorā, neradot problēmas, kas ietekmē jauna termināļa loga atvēršanu.
ATGĀDINĀJUMS - ja maināt savu .bashrc failu, pārliecinieties, ka esat atvēris jaunu termināļa logu, lai pārliecinātos, ka tas darbojas, PĒC restartēšanas (labākā prakse - darīt to tūlīt pēc izmaiņu veikšanas). Ja jūs kādreiz sabojājat savu .bashrc un pārstartējaties, JUMS VĒL NEBŪT VĒLNI VARĒTIES PIEVIENOTIES! Personīgi es personīgajās ierīcēs izveidoju arī otru lietotāju 'admin', lai šādos ārkārtas gadījumos (sabojāta pieteikšanās) es varētu pie tā pieteikties un pēc tam izmantot sudo, lai labotu savu otru pieteikšanās .bashrc failu.
Tas ir bash
konfigurācijas fails.
Interaktīvās (ne-pierakstīšanās) čaulas, tad konfigurācija tiek nolasīta no šiem failiem:
$`HOME/.bashrc
Pieslēgšanās čaulām konfigurācija tiek nolasīta no šiem failiem:
/etc/profile
(vienmēr tiek iegūts no avota)$HOME/.bash_profile
(pārējie faili tiek pārbaudīti secīgi, līdz tiek atrasts viens no tiem, tad pārējie netiek lasīti)$HOME/.bash_login
$HOME/.profile
Vienkārša ilustrācija tam, kā un kad tie tiek ielādēti, ir attēlā zemāk.
Es pievienoju echo
savam .bashrc
un .bash_profile
.
Lai iegūtu vairāk informācijas, skatiet man bash