Kysymys:
Mitä eroa on .bash_profile ja .bashrc välillä?
daviesgeek
2012-05-11 02:39:54 UTC
view on stackexchange narkive permalink

Jos haluat tehdä aliaksen päätelaitteelle OS X: ssä, voit joko sijoittaa aliakset kohtaan .bash_profile tai .bashrc . Mitä eroa on näiden kahden välillä ja miksi haluaisin laittaa aliakset yhteen eikä toiseen?

Ei rohkaise tässä olevaa unix-tietämystä, mutta bash on puhdas UNIX-peto, joten saatat saada parempaa tietoa tai saada vastauksen tähän kysymykseen useita kertoja kumppanisivustolla. [Unix] -palvelussa on reilusti yli 200 bashrc kysymys / vastausparia (http://unix.stackexchange.com/search?page=5&tab=relevance&q=%5bbash%5d%20profile%20bashrc)
Siellä on
Jos teet `` bash-asennuksen`` ja käytät iTerm2: ta, voit asettaa `profile -> command` -asetukseksi` / usr / local / bin / bash`, joka lataa `.bashrc` oletuksena` .bash_profile`: n jälkeen.Tämä antaa sinulle myös Bash 4 hyvää ...
Viisi vastused:
#1
+305
Alex
2012-05-11 02:46:26 UTC
view on stackexchange narkive permalink

.bash_profile suoritetaan kirjautumissarakkeille, kun taas .bashrc suoritetaan vuorovaikutteisille ei-kirjautumisille kuoreille.

Kun kirjaudut sisään (kirjoita käyttäjänimi ja salasana) konsolin kautta, joko koneen ääressä tai etänä ssh: n kautta: .bash_profile suoritetaan komentotulkin määrittämiseksi ennen ensimmäistä komentokehotetta.

Mutta jos Olet jo kirjautunut koneellesi ja avaa uuden pääteikkunan (xterm), sitten .bashrc suoritetaan ennen ikkunan komentokehotetta. .bashrc suoritetaan myös, kun aloitat uuden bash-ilmentymän kirjoittamalla päätelaitteeseen / bin / bash .

OS X: ssä oletuksena Terminal suorittaa kirjautumissuoran joka kerta, joten tämä on hieman erilainen kuin useimmat muut järjestelmät, mutta voit määrittää sen asetuksissa.

`` OS X: ssä Terminal suorittaa oletusarvoisesti kirjautumiskäynnin joka kerta '' - Olen aina ollut niin hämmentynyt, ettet ymmärrä tätä.Hyvää tietoa!
Olen OS X -käyttöjärjestelmässä ja käytän zshelliä bashin sijaan ja iTermiä terminaalin sijaan.Huolimatta siitä, että käytän erilaista päätelaitetta ja erilaista kuorta kuin vastauksessa puhutaan, OS X näyttää silti harkitsevan kaikkea kirjautumiskuorta, koska `.zprofile` suoritetaan joka kerta.
Niille, jotka etsivät perusteellista selostusta kirjautumisen / ei kirjautumisen ja vuorovaikutteisten / ei-vuorovaikutteisten kuorien yhdistelmistä, ja kun he suorittavat näitä asetustiedostoja, katso https://unix.stackexchange.com/a/46856/38715
#2
+58
Lurch
2012-05-11 03:53:34 UTC
view on stackexchange narkive permalink

X11 tarkastelee .bashrc -tunnistettasi, kun taas tavallinen pääte tarkastelee .bash_profile

Jos kuitenkin lisäät seuraavat .bash_profile , voit sitten siirtää kaiken .bashrc -tiedostoon, jotta kaikki voidaan yhdistää yhteen paikkaan kahden sijasta:

  jos [-f $ HOME / .bashrc]; lähde sitten $ HOME / .bashrcfi  
Tai voit vain tehdä `cd ~; ln -s .bashrc .bash_profiili ".
Näillä kahdella kokoonpanotiedostolla on selvästi erillinen toiminto. Joissakin tapauksissa on välttämätöntä, että asioita on alustettava istunnon alussa ja vain siellä (`~ / .bash_profile`). Usein on myös välttämätöntä, että inkrementaalisuus määritetään jokaisella kuoritasolla (`~ / .bashrc`). Ei ole paras idea ehdottaa tämän vapauden tukahduttamista.
@danielAzuelos: Lurch jätti tämän osan pois, mutta OS X -terminaalin lähteet ovat ~ / .bash_profile `` jokaiselle uudelle ikkunalle / välilehdelle, joten ei ole oikeastaan ​​tapaa erottaa näitä kahta terminaalista.
@mipadi Niiden erottamiseen on edelleen arvoa.Esimerkiksi tiedostoa `.bash_profile` ei voida koskaan hankkia uudestaan lapsiprosessissa.Jokainen sisäkkäisten Bash-lähteiden taso `.bashrc`, joten jos laitat jotain` `export A = a: $ A` kohtaan` `.bashrc '',` $ A`si pidentyy sisäkkäisessä Bashissa.Jätän tyypillisesti ympäristömuuttujan profiiliin ja aliakset RC: hen.
@FranklinYu ei ehkä ole niin iso juttu monille ihmisille, mutta olen täysin samaa mieltä!Se on hieno tekninen seikka muistuttaa ihmisiä ja ansaitsee paljon enemmän ääniä.
näin jotain <.~ / .bashrc> eikä , onko mitään eroa?
@DingxinXu tiedostopolun edessä oleva piste (kuten `. ~ / .Bashrc`) on pikakuvake [` lähteeseen`] (http://ss64.com/bash/source.html), joten ei eroa.Katso https://unix.stackexchange.com/questions/114300/whats-the-meaning-of-a-dot-before-a-command-in-shell
Yksi asia tässä.Kun suoritat `source .bashrc` terminaalissa, jolla on` if [-f $ HOME / .bashrc];sitten lähde $ HOME / .bashrc fi `in. .bash_profile` kopioi kaikki polut, jotka olet lisännyt tiedostoon` .bashrc`.
#3
+28
FredZhen
2017-02-03 09:00:37 UTC
view on stackexchange narkive permalink

MacOS-käyttöjärjestelmässä .bash_profile -laitteeseen lisättävä koodi kaiken konsolidoimiseksi .bashrc -kohtaan on seuraava:

  jos [-f ~ / .bashrc];sitten
    lähde ~ / .bashrc
fi
 

Tämä on tarkempi Mac-päätelaitteen käyttäjälle.

Vaikka tämä on totta, kuinka tämä eroaa [Lurchin vastauksesta vuodelta 2012] (https://apple.stackexchange.com/questions/51036/what-is-the-difference-between-bash-profile-and-bashrc/51043#51043)?
#4
+6
Leo
2019-08-12 07:15:50 UTC
view on stackexchange narkive permalink

TLDR; käytä aliaksia varten .bash_profile .

Tapa, jolla eri alustustiedostot toimivat yhdessä, on hieman monimutkaisempi, ja OSX: ssä on joitain tärkeitä erikoistapauksia. Tässä ovat kohokohdat:

  • Bash suorittaa millä tahansa alustalla yhden useista tiedostoista sen mukaan, miten sitä kutsutaan. Yksityiskohdat ovat täällä.
  • OSX: n Terminal-sovellus tekee jotain epätyypillistä: se luo jokaisen uuden välilehden tai ikkunan ikään kuin se olisi kirjautumissuori, mikä tarkoittaa, että .bash_profile kutsutaan. Näin ollen yllä olevat TLDR-neuvot.
  • .bashrc on myös vaihtoehto, mutta sitä kutsutaan joka kerta, kun luot alikuoren (ts. kutsutaan bash ), mikä voi aiheuttaa tehottomuutta, jos päivität sen sisällä oleva muuttuja (esim. PATH = / bin / foo: $ PATH )
  • Muut sovellukset, joissa on upotettuja päätelaitteita, voivat päättää noudattaa Terminal App -sovellusta. Erityisesti Visual Studio Code ei oletuksena ole.
  • GUI: n kautta haettuja sovelluksia ei synny kuoresta. Siksi on olemassa useita kilpailevia mekanismeja ympäristömuuttujien asettamiseksi heidän nähtäväksi, jotka ovat muuttuneet vuosien varrella.
  • Katkelmat, jotka kutsuvat .bashrc -kenttää osoitteesta .bash_profile , ovat melko yleisiä.
Miksi `.bash_profile`-tiedoston käyttö aliaksille on monimutkaista?Luettelossa vain osittain luetellut kohteet koskevat lainkaan aliaksia, joten sen sijaan, että luettaisit vain joitain luettelomerkkejä, jotka saattavat selittää * miksi * se näyttää olevan monimutkainen, voitko ehdottaa tapaa tehdä siitä helpompaa näissä rajoissa?
Ymmärrän pointtisi.Ei ole, että .bash_profile on monimutkainen.Tiedostojen kutsuminen on monimutkaista.Päivitän.
.Bashrc: n kutsuminen .bash_profile-tiedostosta on suositeltavaa GNU bash -käyttöoppaassa - muuten miten asetat muuttujia jne., Joita tarvitset sekä sisäänkirjautumiseen että ei-interaktiivisiin?
Jokaisella pääteemulaattorilla, jota käytän eri käyttöjärjestelmissä, on mahdollisuus ajaa uudet ikkunat kirjautumiskuorena, xterm ja Xfce vain kahdeksi.
#5
  0
oussama boumaad
2020-05-05 16:25:59 UTC
view on stackexchange narkive permalink

ubuntu / debain -ohjelmaa varten lisätään tämän koodin .bashrc -kentän loppuun:

  jos [-f ~ / .bash_profile];sitten
    lähde ~ / .bash_profile
 fi
 

Nyt aliakseni tulevat voimaan kaikissa uusissa avatuissa päätelaitteissa (tai välilehdissä)



Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 3.0-lisenssistä, jolla sitä jaetaan.
Loading...