GNU/Linux >> Znalost Linux >  >> Linux

Rozdíl mezi ~/.profile, ~/.bashrc, ~/.bash_profile, ~/.gnomerc, /etc/bash_bashrc, /etc/screenrc …?

Odpovědi na otázky týkající se SO a askubuntu spolu s procházením (a čtením záhlaví) $HOME a /etc/ , označují počet souborů, které lze použít k nastavení proměnných prostředí, včetně:

  • ~/.profile
  • ~/.bashrc
  • ~/.bash_profile
  • ~/.gnomerc
  • ~/.Rprofile
  • /etc/bash_bashrc
  • /etc/profile
  • /etc/screenrc

Tyto soubory shromažďuji v /etc/ fungují pro všechny uživatele, zatímco soubory v $HOME jsou specifické pro uživatele. Také shromažďuji tento .profile se načte při přihlášení, zatímco .bashrc načteno při /bin/bash je proveden. Chápu také, že různé programy mají různé soubory nastavení (např. .Rprofile pro R). Ale ocenil bych nějaké upřesnění:

  • Jsou *rc a *profile soubory zásadně odlišné?
  • Jaký je rozsah takových souborů (např. jaké soubory se běžně používají v Linuxu)
  • Existuje nějaká hierarchie (např. .bashrc přepíše proměnné nastavené v .settings )
  • Jaká je dobrá reference pro tuto třídu souborů? Možnosti v těchto souborech?

Propojené otázky

  • "Jak získat přístup k proměnné prostředí bash z R v emacs-ess?"
  • „Rozdíl mezi spouštěním aplikace pomocí klávesové zkratky a terminálem?“

Přijatá odpověď:

Organizace konfiguračních souborů je mnohem méně jednotná, než se zdá z vašich otázek. Neexistuje žádná „třída“, neexistuje žádná „hierarchie“ a neexistuje žádný globální „konfigurační car“ ani výbor, který by nařizoval společnou syntaxi nebo jiná pěkná čistá zobecnění, jako jsou ta, která hledáte. Existuje pouze velké množství samostatných aplikací jako R , bash , screen a desktopové prostředí GNOME, z nichž každý má své vlastní způsoby, jak dělat věci, takže byste se měli podívat na dokumentaci pro každý jednotlivý program, abyste odpověděli na konkrétní otázky týkající se konkrétního souboru. Pokud se to zdá ad-hoc, je to proto, že tomu tak je:většina unixového/linuxového softwaru byla vyvinuta pro různé účely různými lidmi, kteří přistupovali ke konfiguraci trochu jinak.

Chcete-li správně odpovědět na vaše další otázky:

  • *rc a *profile moc neznamenají, takže na tuto otázku nelze skutečně odpovědět. „rc“ je pouze běžně používaná zkratka nebo přípona pro konfigurační soubory. Jeho etymologie sahá do starověku (v počítačových letech) a pravděpodobně znamená spustit příkazy (z runcomu). To, že aplikace používají stejné slovo, neznamená, že souhlasí s konvencemi. „profil“ je mnohem méně běžná přípona.

  • Definujte „rozsah“. Většina aplikací nesdílí konfigurační soubory s jinými nesouvisejícími aplikacemi. Jedinou možnou výjimkou je /etc/profile a .profile , který může být používán více různými shelly (včetně alespoň sh a bash ). S každým běžícím procesem je spojeno něco, čemu se říká prostředí, které může obsahovat proměnné, které mohou ovlivnit chování uvedeného procesu. Obecně jsou proměnné prostředí nastaveny příslušnými konfiguračními soubory shellu nebo možná konfiguračními soubory jakéhokoli grafického desktopového prostředí, které používáte. Existují také konfigurační soubory pro „knihovny“, jako je .inputrc pro readline a .gtkrc* pro GTK, což ovlivní každou aplikaci, která používá knihovnu.

  • Ne, pro konfigurační soubory neexistuje žádná globální hierarchie. Znovu se podívejte do dokumentace ke konkrétnímu programu, například bash manuál pro bash . Obecnou konvencí, na kterou se obvykle můžete spolehnout, je uživatelské nastavení v $HOME přepsat konfiguraci celého systému v /etc . Toho se obvykle dosáhne čtením uživatelského souboru po systémovém souboru, takže pozdější nastavení přepíší dřívější. To však není záruka a pro definitivní odpovědi byste se měli podívat do dokumentace ke konkrétnímu programu, který používáte.

  • Neexistuje žádná „třída“, alespoň žádná dostatečně obecná, aby zahrnovala všechny soubory, které jste uvedli ve své otázce, takže otázka odkazu na takovou „třídu“ je diskutabilní. Znovu se podívejte do dokumentace konkrétního programu, který používáte.

Související:Sloučení složek s mv?
Linux
  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. Linux:Rozdíl mezi /dev/console, /dev/tty a /dev/tty0?

  3. Rozdíl mezi /opt a /usr/local?

  1. Centos – Jaký je rozdíl mezi /usr/lib/systemd/system a /etc/systemd/system?

  2. CentOS / RHEL :Jak obnovit ze smazaného souboru /etc/passwd

  3. Příkaz grpck – Odstraňte poškozené nebo duplicitní položky v souborech /etc/group a /etc/gshadow.

  1. Jaké je spojení mezi adresáři /etc/init.d a /etc/rcX.d v Linuxu?

  2. Proč mají všechny adresáře /home, /usr, /var atd. stejné číslo inodu (2)?

  3. Měly by weby žít ve /var/ nebo /usr/ podle doporučeného použití?