මම වෙනස්කම් කරන්නේ නම් .bashrc
, පිටතට නොගොස් නැවත ඇතුල් නොවී එය නැවත පූරණය කරන්නේ කෙසේද?
මම වෙනස්කම් කරන්නේ නම් .bashrc
, පිටතට නොගොස් නැවත ඇතුල් නොවී එය නැවත පූරණය කරන්නේ කෙසේද?
Answers:
ඔබට විධානය ඇතුළත් කළ යුතුය:
source ~/.bashrc
හෝ ඔබට විධානයේ කෙටි අනුවාදය භාවිතා කළ හැකිය:
. ~/.bashrc
alias editbashrc='vim ~/.bashrc; source ~/.bashrc'
. අභිරුචි අන්වර්ථය භාවිතා කරන්නේ නම්, සංස්කරණය කිරීමෙන් පසුව, නැවත පූරණය කිරීම ගැන සිතීමට ඔබට අවශ්ය නොවන බැවින් මෙය සංස්කරණය වඩාත් සුමට කරයි.
නැතහොත් ඔබට භාවිතා කළ හැකිය:
exec bash
මෙය එකම දේ කරන අතර මතක තබා ගැනීම පහසුය (අවම වශයෙන් මට).
මෙම exec
විධානය සම්පූර්ණයෙන්ම නිශ්චිත විධාන රේඛාව ධාවනය වන ෂෙල් ක්රියාවලිය විස්ථාපනය කරනු ඇත. අපගේ උදාහරණයේ දී, එය වත්මන් කවචය ඕනෑම දෙයක් නැවුම් අවස්ථාවක් සමඟ ප්රතිස්ථාපනය කරයි bash
(යාවත්කාලීන කළ වින්යාස ගොනු සමඟ).
source .bashrc
විධානයේ වෙනස පැහැදිලි කළ හැකිද exec bash
?
source
යනු ගොඩනඟන ලද ෂෙල් විධානයකි, එය වත්මන් කවචය තුළ තර්කයක් ලෙස සම්මත කරන ලද ගොනුවේ අන්තර්ගතය ක්රියාත්මක කරයි . එබැවින් ඔබේ උදාහරණයේ දී එය වත්මන් කවචයේ .bashrc ගොනුව ක්රියාත්මක කරයි. හා exec
විධානය ලබා දී වැඩසටහන සමග ෂෙල් විස්ථාපනය, ඔබගේ උදාහරණය, එය ඔබගේ ෂෙල් bash (යාවත්කාලීන කරන මානකරන ගොනු සමඟ) සමග ප්රතිස්ථාපනය
. ~/.bashrc
දී ක්රියාත්මක වනු ඇත dash
වඩා bash
, ඒ නිසා නිසා දෝෂයක් පවතී shopt
අතුරුදහන් කර ඇත. source
කවචයෙන් සොයාගත නොහැකි නිසා එම විසඳුම ද එළියට එයි. මම මෙය අත්හදා බැලූ අතර ඩොකර් රූපය සුමටව ගොඩනගා ඇත!
source ~/.bashrc
ඔබගේ සමස්ත ෂෙල් පරිසරය සුරැකෙනු ඇත (බොහෝ විට මූලාශ්රය මගින් වෙනස් කර ඇත ~/.bashrc
), නමුත් exec bash
ඔබේ වර්තමාන කවචයේ පරිසර විචල්යයන් පමණක් ආරක්ෂා කරනු ඇත (ෂෙල් විචල්යයන්, ක්රියාකාරිත්වය, විකල්පයන් නැතිව වත්මන් කවචයේ කිසියම් තාවකාලික වෙනස්කමක්). ඔබගේ අවශ්යතා මත පදනම්ව, එක් හෝ වෙනත් ප්රවේශයක් වඩාත් කැමති විය හැකිය.
exec bash
. මෙම exec
විධානය විස්ථාපනය අපේ නඩුව, bash දී, මෙම වැඩසටහන සමග ෂෙල්. ඉතින්, පර්යන්තය තුළ සෑම විටම බැෂ් එකක එක් අවස්ථාවක් තිබේ.
කිරීමට සැළසුම් හා සසඳා වඩාත්ම ජනප්රිය පිළිතුරු දෙකක්, . ~/.bashrc
සහ exec bash
:
විසඳුම් දෙකම effectively ලදායී ලෙස නැවත පූරණය වේ ~/.bashrc
, නමුත් වෙනස්කම් තිබේ:
. ~/.bashrc
හෝ ඔබගේ වර්තමාන කවචය ආරක්ෂාsource ~/.bashrc
කරනු ඇත :
~/.bashrc
වත්මන් ෂෙල් බවට ( මාර්ග අපගත ) වර්ගයන්, එම වත්මන් ෂෙල් හා එහි රාජ්ය ඇත , කල් තබා ගන්නා පරිසරය විචල්ය, සිප්පි කටු විචල්ය, සිප්පි කටු විකල්ප, සිප්පි කටු කටයුතු, සහ විධාන ඉතිහාසය ද ඇතුළත් වන,.exec bash
, හෝ, වඩාත් ශක්තිමත් ලෙස, exec "$BASH"
[1] , ඔබගේ වර්තමාන කවචය නව අවස්ථාවක් සමඟ ප්රතිස්ථාපනය කරනු ඇත , එබැවින් ඔබගේ වර්තමාන කවචයේ පරිසර විචල්යයන් පමණක් ආරක්ෂා කරයි (ඔබ තාවකාලිකව අර්ථ දක්වා ඇති ඒවා ද ඇතුළුව).
ඔබගේ අවශ්යතා මත පදනම්ව, එක් හෝ වෙනත් ප්රවේශයක් වඩාත් කැමති විය හැකිය.
[1] exec bash
න්යායාත්මකව , කලින් ලැයිස්තුගත කර ඇති නාමාවලියක පවතින විට, වර්තමාන කවචය ආරම්භ කළ ඒවාට වඩා වෙනස් bash
ක්රියාකාරීත්වයක් ක්රියාත්මක කළ $PATH
හැකිය. විශේෂ විචල්යය $BASH
සෑම විටම වත්මන් කවචය ආරම්භ කළ ක්රියාත්මක කළ හැකි සම්පූර්ණ මාර්ගය අඩංගු වන බැවින් එකම ක්රියාත්මක කළ හැකි exec "$BASH"
භාවිතා කිරීම සහතික කෙරේ . අවට
සටහනක් : ද්විත්ව උපුටා දැක්වීම මඟින් බාෂ්ගේ අර්ථ නිරූපණයකින් තොරව විචල්ය අගය භාවිතා වන බව සහතික කරයි; වටිනාකමට කාවැද්දූ අවකාශයක් හෝ වෙනත් ෂෙල් මෙටාචරැක්ටර් නොමැති නම් (මෙම අවස්ථාවේදී එය එසේ නොවේ), ඔබට තදින් ද්විත්ව උපුටා දැක්වීම් අවශ්ය නොවේ, නමුත් ඒවා භාවිතා කිරීම හොඳ පුරුද්දකි."..."
$BASH
exec $BASH
ප්රභවයක් වනු ඇත ~/.bashrc
, එබැවින් නව සැසියේදී ෂෙල් පරිසරයට එහි වෙනස්කම් ඔබ දකිනු ඇත.
වැරදි ඉංග්රීසි එකතු කිරීම සඳහා යමෙක් මගේ පිළිතුර සංස්කරණය කළේය, නමුත් මෙහි මුල් පිටපත විය, එය පිළිගත් පිළිතුරට වඩා පහත් ය.
. .bashrc
~/
, නමුත් ඉහල පිළිතුර වැඩසටහන් දෙකම සිට source ~/.bashrc
හා . ~/.bashrc
මම පුදුම මෙම පිළිතුර හුදෙක් අතිරික්ත ලෙස මකාදැමිය යුතුයි නම්.
ඔබගේ පරිසරය අනුව, යතුරු ලියනය කරන්න
bash
වැඩ කළ හැකිය.
. ~/.bashrc
source ~/.bashrc
exec bash
exec
විධානය මඟින් ලබා දී ඇති වැඩසටහනක් මඟින් කවචය ප්රතිස්ථාපනය කරයි ... - WhoSayIn
exec bash
වත්මන් කවචයේ පරිසරය තවමත් උරුම වේ. exec env -i bash
වඩා සමීප වනු ඇත (හෝ exec env -i bash -l
ඔබ දැනට පිවිසුම් කවචයක සිටී නම්).
ඔබේ පරිසරය මත පදනම්ව, ඔබ SSH සැසියක් විවෘත කරන විට ස්වයංක්රීයව .bashrc පැටවීම සඳහා ස්ක්රිප්ටින් එක් කිරීමට ඔබට අවශ්ය විය හැකිය. මම මෑතකදී උබුන්ටු ධාවනය වන සේවාදායකයකට සංක්රමණය කළ අතර, එහි .profile, .bashrc හෝ .bash_profile පෙරනිමියෙන් පටවනු ලැබේ. .Bashrc හි ඕනෑම ස්ක්රිප්ට් එකක් ධාවනය කිරීමට නම් මට ධාවනය කිරීමට සිදුවියsource ~/.bashrc
කිරීමට, සැසියක් විවෘත කළ සෑම අවස්ථාවකම කිරීමට සිදුවිය, එය දුරස්ථ යෙදවුම් ධාවනය කිරීමේදී උපකාරී නොවේ.
සැසියක් විවෘත කිරීමේදී ඔබේ .bashrc පැටවීම ස්වයංක්රීයව ලබා ගැනීමට, .profile වෙත මෙය එක් කිරීමට උත්සාහ කරන්න:
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
ඔබේ සැසිය නැවත විවෘත කරන්න, එය ඔබට .bashrc හි ඇති ඕනෑම මාර්ග / ස්ක්රිප්ට් පූරණය කළ යුතුය.
මගේ වල්ටර් වලාකුළු මත පදනම් වූ සේවාදායකය සැකසීමට මම ඊසෙන්ජින් භාවිතා කළෙමි.
මගේ බාෂ් ගොනුව මට හමු විය /etc/bash.bashrc
.
ඒ නිසා source /etc/bash.bashrc
මා වෙනුවෙන් උපක්රමය කළා!
යාවත්කාලීන කිරීම
හිස් සේවාදායකයක් සැකසීමේදී (උබුන්ටු 16.04), ඔබ තවමත් පරිශීලක නාමයක් සකසා නොමැති විට සහ root හරහා ප්රවේශ වන විට ඉහත තොරතුරු භාවිතා කළ හැකිය.
පරිශීලකයෙකු නිර්මාණය කිරීම වඩාත් සුදුසුය (sudo privateledges සමඟ), ඒ වෙනුවට මෙම පරිශීලක නාමය ලෙස පුරනය වන්න.
මෙය .profile සහ .bashrc ගොනු ඇතුළුව ඔබගේ සැකසුම් සඳහා නාමාවලියක් නිර්මාණය කරයි.
https://linuxize.com/post/how-to-create-a-sudo-user-on-ubuntu/
දැන්, ඔබ ~/.bashrc
ගොනුව සංස්කරණය කර (සහ "මූලාශ්රය") කරනු ඇත.
මගේ සේවාදායකයේ, මෙය පිහිටා ඇත්තේ /home/your_username/.bashrc
( your_username
ඇත්ත වශයෙන්ම ඔබ ඉහත නිර්මාණය කළ නව පරිශීලක නාමය කොතැනද , දැන් පුරනය වන්න)
exec bash යනු ධාරාව ප්රතිස්ථාපනය කිරීම සඳහා නව කවචයක් නැවත ක්රියාත්මක කිරීමට සහ දියත් කිරීමට හොඳ ක්රමයකි. පිළිතුරට එකතු කිරීම සඳහා, $ ෂෙල් විසින් වත්මන් කවචය නැවත ලබා දෙයි. පහත දැක්වෙන දෑ භාවිතා කිරීමෙන්, එය වත්මන් කවචය නැවත පූරණය කරනු ඇත.
exec $SHELL -l;
මම PATH වෙනස් කරන විට ක්රියා කරන්නේ කුමක්ද: exec "$BASH" --login
~/.bashrc
, වන --login
කරනු නොහැකි (සෘජුවම) රීලෝඩ්; පරිශීලක මට්ටමින්, එය ඒ වෙනුවට නැවත පූරණය වේ ~/.bash_profile
( ~/.bash_login
හෝ ~/.profile
).
මම msysgit හි පහත විධානය භාවිතා කරමි
. ~/.bashrc
හි කෙටි අනුවාදය
source ~/.bashrc
අන්තර්ක්රියාකාරී කවචයක් උපකල්පනය කරමින්, ඔබගේ වර්තමාන විධාන ඉතිහාසය තබා ගැනීමට සහ / etc / profile (/ etc / bashrc ඇතුළු පරිසර දත්ත පටවන සහ Mac OS X මත පැටවීම /etc/paths.d/ හරහා අර්ථ දක්වා ඇති මාර්ග පැටවීමට ඔබ කැමතිද? path_helper), ඔබේ විධාන ඉතිහාසය එකතු කර පිවිසුම් ('-l') විකල්පය සමඟ bash ක්රියාත්මක කරන්න:
history -a && exec bash -l
පිරිසිදු exec bash
විධානය මඟින් පරිසර විචල්යයන් ආරක්ෂා කරනු ඇති බව මම දුටුවෙමි , එබැවින් ඔබ exec -c bash
හිස් පරිසරයක බාෂ් ධාවනය කිරීමට භාවිතා කළ යුතුය .
උදාහරණයක් ලෙස, ඔබ විසින් bash ලොගින්, සහ export A=1
ඔබ නම්, exec bash
මෙම, A == 1
.
ඔබ නම් exec -cl bash
, A
හිස්.
මම හිතන්නේ මෙය ඔබේ කාර්යය කිරීමට හොඳම ක්රමයයි.
මට පෞද්ගලිකව තිබේ
alias ..='source ~/.bashrc'
මගේ bashrc හි, එවිට මට එය නැවත පූරණය කිරීමට ".." භාවිතා කළ හැකිය.
..
අන්වර්ථයක් ලෙස භාවිතා කරයි cd ..
, එබැවින් එය ඉතා ව්යාකූල වනු ඇත.
alias rehash='source ~/.bashrc'
මගේ තේරීම.
export PATH=$PATH:foo
ඉන්පසු ඔබ එය වෙනස් කරයිexport PATH=$PATH:bar
. ඔබ ලොග් වී ආපසුbar
ගියහොත්, එය පවතින්නේ PATH හි පමණි, නමුත් ඔබ යෝජනා කරන දේ කරන්නේ නම්, දෙකමfoo
සහbar
PATH හි ඇත. මේ සඳහා ක්රමයක් ගැන ඔබ දන්නවාද?