.Bash_profile සහ .bashrc අතර වෙනස කුමක්ද?


284

OS X මෙහෙයුම් පද්ධතිය තුල ටර්මිනල් සඳහා අන්වර්ථයක් සෑදීම සඳහා, ඔබ විසින් එක්කෝ දී යොමුවීම් කළ හැකි .bash_profileහෝ .bashrc. මේ දෙක අතර ඇති වෙනස කුමක්ද සහ මම අන්වර්ථ නාමයන් එකක් තුළට තෝරා ගැනීමට තෝරා ගන්නේ ඇයි?


7
මෙහි යුනික්ස් දැනුම අධෛර්යමත් කිරීමට නොවේ, නමුත් බාෂ් යනු පිරිසිදු යුනික්ස් මෘගයෙකු වන බැවින් ඔබට වඩා හොඳ දැනුමක් ලබා ගැනීමට හෝ හවුල්කාර වෙබ් අඩවියක මෙම ප්‍රශ්නයට කිහිප වතාවක්ම පිළිතුරු ලබා ගත හැකිය. මත වැඩි bashrc ප්රශ්නය / පිළිතුර යුගල 200 කට අධික වේ unix
bmike

1
.ප්‍රොෆයිල් ද ඇත ... මෙම ප්‍රශ්නය Stack Overflow හි බලන්න.
යාකොව් බාරුක්

2
ඔබ brew install bashසහ iTerm2 භාවිතා කරන්නේ නම් , ඔබට පෙරනිමියෙන් පූරණය වන profile -> commandස්ථානයට සැකසිය හැකිය . මෙය ඔබට Bash 4 goodies ද ලබා දෙයි .../usr/local/bin/bash.bashrc.bash_profile
Ray Foss

මට ඇසුණි .bashrc වසර ගණනාවක් තිස්සේ භාවිතා කර නැති අතර පෙරනිමියෙන් ක්‍රියා නොකරනු ඇත. සහ .Bash_profile යනු macosx හි ඇති දෙයයි. මම උත්සාහ කළෙමි .බෂ්ර්ක් සහ ටී මා වෙනුවෙන් වැඩ නොකළ නමුත් .බෑෂ්_ප්‍රොෆයිල් කළා
බාර්ලොප්

Answers:


289

.bash_profileපිවිසුම් කවච .bashrcසඳහා ක්‍රියාත්මක වන අතර අන්තර්ක්‍රියාකාරී නොවන පිවිසුම් කවච සඳහා ක්‍රියාත්මක වේ.

ඔබ කොන්සෝලය හරහා පිවිසෙන විට (පරිශීලක නාමය සහ මුරපදය ටයිප් කරන්න), යන්ත්‍රයේ වාඩි වී සිටීම හෝ දුරස්ථව ssh හරහා: .bash_profileආරම්භක විධාන විමසුමට පෙර ඔබේ කවචය වින්‍යාස කිරීම සඳහා ක්‍රියාත්මක වේ.

නමුත්, ඔබ දැනටමත් ඔබේ යන්ත්‍රයට ඇතුළු වී නව පර්යන්ත කවුළුවක් (xterm) විවෘත කර .bashrcඇත්නම්, කවුළු විධාන විමසුමට පෙර ක්‍රියාත්මක වේ. ටර්මිනලයක් .bashrcටයිප් කිරීමෙන් ඔබ නව බාෂ් නිදසුනක් ආරම්භ කරන විට ද ක්‍රියාත්මක /bin/bashවේ.

OS X හි, ටර්මිනලය පෙරනිමියෙන් සෑම විටම පිවිසුම් කවචයක් ධාවනය කරයි, එබැවින් මෙය අනෙක් බොහෝ පද්ධති වලට වඩා ටිකක් වෙනස් වේ, නමුත් ඔබට එය මනාපයන් තුළ වින්‍යාසගත කළ හැකිය.


69
On OS X, Terminal by default runs a login shell every time- මෙය වටහා නොගැනීම නිසා මම නිතරම ව්‍යාකූල වී සිටිමි. නියම තොරතුරු!
වෝගන්

2
Lex ඇලෙක්ස්, OS X පර්යන්තය සෑම විටම පිවිසුම් කවචයක් ධාවනය කරන්නේ ඇයි?
පැසීරියර්

20
සමහර ඇපල් දේව් මුලින් වෙනස වටහා නොගත් අතර දැන් එය සමහර මුම්බෝ ජම්බෝ වල අන්තර්ගත කර ඇත.
ස්නෝක්‍රෑෂ්

3
මම OS X හි සිටින අතර මම bash වෙනුවට zshell ද ටර්මිනල් වෙනුවට iTerm ද භාවිතා කරමි. මම වෙනත් පර්යන්තයක් සහ පිළිතුරට වඩා වෙනස් කවචයක් භාවිතා කළද, OS X තවමත් සෑම දෙයක්ම ප්‍රවේශවීමේ කවචයක් ලෙස සලකන බව පෙනේ .zprofile.
ඇඩම් සර්නර්

4
පිවිසුම් / පිවිසුම් නොවන සහ අන්තර්ක්‍රියාකාරී / අන්තර්ක්‍රියාකාරී නොවන කවච වල සංයෝජනයන් පිළිබඳ සවිස්තරාත්මක පැහැදිලි කිරීමක් සොයන අය සඳහා සහ මෙම වින්‍යාස ගොනු ක්‍රියාත්මක කරන විට, unix.stackexchange.com/a/46856/38715
kevinmicke

53

X11 ඔබ දෙස බලන .bashrcඅතර “සාමාන්‍ය” පර්යන්තයක් දෙස බලනු ඇත.bash_profile

කෙසේ වෙතත්, ඔබ පහත සඳහන් දෑ ඔබගේ වෙත එකතු කළහොත් .bash_profile, ඔබට සියල්ල ඔබගේ .bashrcගොනුවට ගෙනයාමට හැකි වන අතර එවිට සියල්ල දෙකක් වෙනුවට එක් ස්ථානයකට ඒකාබද්ධ කළ හැකිය:

if [ -f $HOME/.bashrc ]; then
        source $HOME/.bashrc
fi

නැත්නම් ඔයාට කරන්න පුළුවන් cd ~ ; ln -s .bashrc .bash_profile.
lhf

6
මෙම වින්‍යාස ගොනු 2 පැහැදිලිවම වෙනම ශ්‍රිතයක් ඇත. සමහර අවස්ථා වලදී, සැසිය ආරම්භයේදීම ආරම්භ කිරීමට අවශ්‍ය දේවල් තිබිය යුතු අතර එහි ( ~/.bash_profile) පමණි . සෑම ෂෙල් මට්ටමින්ම ( ~/.bashrc) වර්ධක අර්ථ දැක්වීම සඳහා දේවල් තිබීම බොහෝ විට අවශ්‍ය වේ . මෙම නිදහස යටපත් කිරීමට යෝජනා කිරීම හොඳම අදහස නොවේ.
dan

3
an ඩැනියෙල් අසුවෙලෝස්: ලර්ච් මෙම කොටස අතහැර දමා ඇත, නමුත් ~/.bash_profileසෑම නව කවුළුවක් / ටැබ් සඳහාම OS X පර්යන්තය ප්‍රභව වේ, එබැවින් ටර්මිනලය සම්බන්ධයෙන් ගත් කල මේ දෙක වෙන් කිරීමට ක්‍රමයක් නොමැත.
මිපාඩි

16
@mipadi ඒවා වෙන් කිරීමට තවමත් වටිනාකමක් ඇත. නිදසුනක් වශයෙන්, .bash_profileළමා ක්‍රියාවලිය තුළ නැවත කිසි දිනෙක ලබා ගත නොහැක. පිලිතුරු කැදැලි බෑෂ් ආරංචි මාර්ග සෑම මට්ටමකට .bashrc, මොකක් හරි දෙයක් වගේ එව්වා නම් export A=a:$Aදී .bashrc, ඔබේ $Aතවදුරටත් පිලිතුරු කැදැලි බෑෂ් දී ලැබෙනු ඇත. මම සාමාන්‍යයෙන් පරිසර විචල්‍යය පැතිකඩෙහි ද අන්වර්ථ නාමයන් ආර්.සී.
ෆ්‍රැන්ක්ලින් යූ

RanFranklinYu බොහෝ මිනිසුන් සඳහා එතරම් විශාල ගනුදෙනුවක් නොවිය හැකි නමුත් මම සම්පූර්ණයෙන්ම එකඟ වෙමි! මිනිසුන්ට මතක් කිරීම ඉතා හොඳ තාක්‍ෂණික කරුණක් වන අතර වැඩි දියුණුවක් ලැබිය යුතුය.
සබ්ෆියුෂන්

27

මැකෝස් සඳහා, .bash_profileසියල්ල ඒකාබද්ධ කිරීම සඳහා තැබිය යුතු කේතය .bashrcපහත දැක්වේ:

if [ -f ~/.bashrc ]; then
    source ~/.bashrc
fi

මැක් ටර්මිනල් පරිශීලකයා සඳහා මෙය වඩාත් විශේෂිත වේ.


11
සත්‍ය වුවත්, මෙය 2012 සිට ලර්ච්ගේ පිළිතුරට වඩා වෙනස් වන්නේ කෙසේද?
අර්ජන්

5

ටීඑල්ඩීආර්; .bash_profileඔබේ අන්වර්ථ නාම සඳහා භාවිතා කරන්න.

විවිධ ආරම්භක ලිපිගොනු එකට වැඩ කරන ආකාරය ටිකක් සංකීර්ණ වන අතර OSX හි වැදගත් විශේෂ අවස්ථා කිහිපයක් තිබේ. මෙන්න විශේෂ අවස්ථා:

  • Bash, ඕනෑම වේදිකාවක, එය ක්‍රියාත්මක කරන ආකාරය අනුව වෙනස් ගොනු කිහිපයකින් එකක් ක්‍රියාත්මක කරයි. විස්තර මෙහි ඇත.
  • ඕඑස්එක්ස් හි ටර්මිනල් ඇප් ප්‍රමිතියෙන් තොර දෙයක් කරයි: එය සෑම නව ටැබ් එකක් හෝ කවුළුවක්ම පිවිසුම් කවචයක් මෙන් නිර්මාණය කරයි, එයින් අදහස් වන්නේ .bash_profileඑය හැඳින්වේ. මේ අනුව ඉහත TLDR උපදෙස්.
  • .bashrcද විකල්පයක් නොවේ, නමුත් එම ඔබ උප කබොළ (එනම්, පහ නිර්මාණය වන සෑම අවස්ථාවකදීම හඳුන්වනු ඇත bashඔබ එය තුළ විචල්ය (උදා, යාවත්කාලීන නම් අකාර්යක්ෂමතාව නිර්මාණය කළ හැකි වන), PATH=/bin/foo:$PATH)
  • ටර්මිනල් කාවැද්දූ වෙනත් යෙදුම්වලට ටර්මිනල් ඇප් සම්මුතිය අනුගමනය කිරීමට තෝරා ගත හැකිය. පෙරනිමියෙන් , දෘශ්‍ය ස්ටුඩියෝ කේතය එසේ නොවේ .
  • GUI හරහා ආයාචනා කරන ලද යෙදුම් කවචයකින් විහිදෙන්නේ නැත. මේ අනුව, ඔවුන්ට දැකීමට පරිසර විචල්‍යයන් සැකසීම සඳහා තරඟකාරී යාන්ත්‍රණ කිහිපයක් තිබේ, ඒවා වසර ගණනාවක් තිස්සේ වෙනස් වී ඇත .
  • .bashrcසිට කැඳවන ස්නිපෙට් .bash_profileබහුලව දක්නට ලැබේ.

1
.bash_profileඅන්වර්ථ නාම සඳහා භාවිතා කිරීම හරියටම සංකීර්ණ වන්නේ ඇයි? ඔබ ලැයිස්තුගත කරන අයිතමයන් අර්ධ වශයෙන් අන්වර්ථ නාමයන් වේ, එබැවින් එය සංකීර්ණ යැයි පෙනෙන්නේ මන්දැයි පැහැදිලි කළ හැකි සමහර උණ්ඩ ලැයිස්තුගත කරනවා වෙනුවට මෙම සීමාවන් තුළ එය පහසු කිරීම සඳහා ක්‍රමයක් යෝජනා කළ හැකිද?
නොහිල්සයිඩ්

මම ඔබේ අදහස දකිමි. .Bash_profile භාවිතා කිරීම සංකීර්ණ බව නොවේ. එනම් ලිපිගොනු ආයාචනා කරන ආකාරය සංකීර්ණ වීමයි. මම යාවත්කාලීන කරන්නම්.
ලියෝ

1
.Bash_profile වෙතින් .bashrc ඇමතීම GNU bash අත්පොතෙහි නිර්දේශ කර ඇත - එසේ නොමැතිනම් පිවිසුම් කවච සහ අන්තර්ක්‍රියාකාරී නොවන දෙකටම ඔබට අවශ්‍ය විචල්‍යයන් සකසන්නේ කෙසේද?
user151019

විවිධ මෙහෙයුම් පද්ධති වල මා භාවිතා කරන සෑම ටර්මිනල් ඉමුලේටරයකටම නව කවුළු පිවිසුම් කවචයක් ලෙස ධාවනය කිරීමට විකල්පයක් ඇත, xterm සහ Xfce දෙකක් පමණක් නම් කරන්න.
fd0
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.