පරිශීලක පරිසර විචල්‍යයක් මා සකසන්නේ කෙසේද? (ස්ථිරවම, සැසිය නොවේ)


148

මෙය මා කෝපයට පත් කරයි. මම යෝජනා කිහිපයක් දුටුවෙමි (සියල්ලම විවිධ ලිපිගොනු සහ සින්ටැක්ස් භාවිතා කරයි) සහ ඒ කිසිවක් ක්‍රියාත්මක වූයේ නැත.

විශේෂිත පරිශීලකයෙකු සඳහා පරිසර විචල්‍යයක් සකසන්නේ කෙසේද? මම ඉන්නේ ඩෙබියන් මිරිකීමෙන්. ABC = "123" සෑදීම සඳහා මා ගොනුවට දැමිය යුතු නිශ්චිත වාක්‍ය ඛණ්ඩය කුමක්ද?


7
ඔබ දැනටමත් උත්සාහ කළේ කුමක්ද?
l0b0

1
සංස්කරණය කිරීම .bashrc, .bash_profile, .profile සහ .ssh / eviroment. මම එය නිවැරදි ස්ථානයේ ලියා ඇත්දැයි හෝ සෑම විටම නිවැරදි වාක්‍ය

4
.bashrcඒ සඳහා ප්‍රධාන ස්ථානයයි.
rozciorzewiacz

zrozciorzewiacz: හරි නමුත් ... විසඳුම ලැබීමෙන් පසුව පවා මම එම ගොනුවේ ආරම්භයේ සහ අවසානයේ ABC1 සහ ABC2 සැකසීමට උත්සාහ කළ අතර එය මගේ පරිසරයේ සකසා නොමැත.

1
.bash_profileවැනි යමක් අඩංගු දැයි පරීක්ෂා කරන්න [[ -f ~/.bashrc ]] && . ~/.bashrc.
rozciorzewiacz

Answers:


118

ප්‍රකාශය ඔබේ කවචයේ ආරම්භක ලිපිගොනු තුළ තැබිය යුතුය:

  • ඔබ bash, අළු, ksh හෝ වෙනත් බෝර්න් විලාසිතාවේ කවචයක් භාවිතා කරන්නේ නම්, ඔබට එකතු කළ හැකිය

    ABC="123"; export ABC
    

    ඔබගේ .profileගොනුවේ ( ${HOME}/.profile). බොහෝ යුනික්ස් ස්ථාපනයන්හි සහ විශේෂයෙන් ඩෙබියන් හි පෙරනිමි තත්වය මෙයයි.

    ඔබේ පිවිසුම් කවචය බාෂ් නම්, ඔබට .bash_profile( ${HOME}/.bash_profile) හෝ .bash_loginඒ වෙනුවට භාවිතා කළ හැකිය .

    සටහන: මෙම ලිපිගොනු වලින් එකක් හෝ ඔබගේ පිවිසුම් කවචය බාෂ් නම්, .profileඔබ ssh හරහා හෝ පෙළ කොන්සෝලයකට පිවිසෙන විට කියවන්නේ නැත, නමුත් .bash_profileඔබ GUI වෙතින් ලොග් වුවහොත් එය තවමත් කියවනු ඇත. එසේම, නොමැති .bash_profileනම් භාවිතා කරන්න .bashrc.

  • ඔබ ඔබේ පිවිසුම් කවචය ලෙස zsh සකසා ඇත්නම්, ~/.zprofileඒ වෙනුවට භාවිතා කරන්න ~/.profile.

  • ඔබ tcsh භාවිතා කරන්නේ නම්, එකතු කරන්න

    setenv ABC "123"
    

    දී .loginගොනුව ( ${HOME}/.login)

  • ඔබ වෙනත් කවචයක් භාවිතා කරන්නේ නම් ෂෙල් අත්පොත දෙස බලන්න පරිසර විචල්‍යයන් නිර්වචනය කරන්නේ කෙසේද සහ ෂෙල් ආරම්භයේ දී ක්‍රියාත්මක කරන්නේ කුමන ගොනුද යන්න.


6
පෙරනිමි හැසිරීම su userනම්, ඇමතුම් භාවිතා කරන්නාගේ නිවාස නාමාවලිය සහ පරිසරය තබා ගනිමින් වත්මන් කවචයේ හිමිකම පරිශීලක නාමය වන ආර්ග් ලෙස වෙනස් කිරීමයි. නව පරිශීලකයා බවට පත්වන ආකාරයට කවචයකට ඇතුළු වීමට සහ ඔවුන්ගේ සියලු පාරිසරික සැකසුම් ලබා ගැනීමට (AT PATH, OM HOME, $ ABC, ආදිය) ඔබ සමත් විය යුතුය - පළමු තර්කය ලෙස. su - usernameඔබ ඉල්ලන දේ ඉටු කරනු ඇත.
ටිම් කෙනඩි

1
රැඳී සිටින්න: "මූලයට පිටවීම" යන්නෙන් ඔබ අදහස් කරන්නේ කුමක්ද? ක 'සිහල' බවට ඕනෑම අවස්ථාවක කරන්නේ නැහැ ෂෙල් ආරම්භනය. ඔබට 'su -' අවශ්‍යයි (බලන්න man su)
Matteo

1
ඔබ suමුලින්ම සිටියේ ඇයි ? ඔබ .profileපරිශීලකයාට භාවිතා කළ නොහැකි මූල හිමිකමක් නිර්මාණය කළේ නැද්ද ?
rozciorzewiacz

1
මෙම දේ වන්නේ @acid යුතු සිදු කර ඇත. ප්රශ්නය ඔබ විසින් ළහිළහියේ ප්රවිෂ්ට විට මූලාශ්ර දේ වේ. පිවිස, බව පරීක්ෂා කිරීම සඳහා සිදු පළමු.
rozciorzewiacz

8
.profileසියලුම බෝර්න් අනුකූල ෂෙල් වෙඩි කියවන බැවින් , ඔබ එම ගොනුවේ Bash syntax ලිවිය යුතු නොවේ. විශේෂයෙන්, export VARIABLE=valueනැවත ප්‍රතිනිර්මාණය කළ යුතුය VARIABLE=value; export VARIABLE.
ත්‍රිත්ව

50

/etc/environmentපරිසර විචල්යයන් සැකසීම සඳහා ගොනුව භාවිතා කරන්න . ඉන්පසු /etc/environmentගොනුව තුළ පහත පේළිය එක් කරන්න .

ABC="123"

දැන් ABC විචල්‍යය සියලු පරිශීලක සැසි වලින් ප්‍රවේශ විය හැකිය. විචල්ය ප්‍රතිදානය පරීක්ෂා කිරීම සඳහා පළමුව විධාන භාවිතා කරමින් පරිසර විචල්‍යය නැවුම් කරන්න

source /etc/environment

දුවන්න echo $ABC.


4
ප්‍රභව විධානය සඳහා +1. සියලු පිළිතුරු වල එය අස්ථානගත වී ඇත
නර්ව්

5
/etc/environmentසම්පුර්ණ බාෂ් වාක්‍ය ඛණ්ඩයට සහය නොදක්වන ප්‍රවේශම් වන්න , මම අමාරුවෙන් හදුනාගත් දෙයක්. උදාහරණයක් ලෙස, පහත දැක්වෙන පේළියක් තැබීම PATH="/usr/bin:/usr/sbin"හා පසුව ක්‍රියා PATH="$PATH:/foo/bar"කිරීම සාර්ථක නොවේ
පරිශීලක 2428118

මෙය පුද්ගලික ප්‍රශ්නයක්ද නැතිනම් කුමක් දැයි සැක නැත, නමුත් මම මෙය ආරම්භ කිරීමෙන් පසු මගේ මෙහෙයුම් පද්ධතිය /etc/environmentනැවත ආරම්භ කිරීමට සිදුවිය source /etc/environment. එබැවින් ඔබට පරිසර විචල්‍යය නොපවතින ගැටළු තිබේ නම්, නැවත ආරම්භ කිරීමට උත්සාහ කරන්න.
බ්ලෙයාර්ග් 23

ප්‍රශ්නය වන්නේ එය තනි පරිශීලකයෙකු සඳහා සැකසීමයි. මම හිතන්නේ /etc/environmentයන්ත්‍රයක සිටින සියලුම පරිශීලකයින් සඳහා ය.
කැරොලස්

9

මෙය ඔබට ඕනෑම කවචයක් සඳහා භාවිතා කළ හැකි සාමාන්‍ය ක්‍රියා පටිපාටියකි. ඕනෑම අවස්ථාවක, පරිශීලකයා සාමාන්‍යයෙන් ලොග් වන්නේ කුමන කවචයෙන්දැයි ඔබ දැනගත යුතුය:

path="$(grep $USER /etc/passwd | cut -d ':' -f 7)"
shell="$(basename -- "$path")"

මෙම කවචය සාමාන්‍යයෙන් කියවන්නේ කුමන තිත් ගොනුදැයි ඔබ සොයාගත යුතුය:

man $shell

වැඩ කළ හැකි කෙටිමඟක් නම් ෂෙල් නම අඩංගු තිත් ගොනු ලැයිස්තුගත කිරීමයි:

ls ~/.*${shell}*

පුරනය වීමේදී එක් ගොනුවක් සත්‍ය වශයෙන්ම කියවා ඇත්දැයි පරීක්ෂා කිරීමට ඔබට අවශ්‍ය නම්, ඔබට ඒවායින් එකක ගොනු නාමය මුද්‍රණය කළ හැකිය, උදාහරණයක් ලෙස:

echo .bashrc

පුරනය වන විට, කුමන ලිපිගොනු කියවනවාදැයි ඔබ දැකගත යුතු අතර, කුමන වෙනස් කළ යුතුද යන්න ඔබට තීරණය කළ හැකිය. ඔබ භාවිතා කිරීමට උත්සාහ කිරීම echo "$0"හෝ ඒ හා සමාන නොවිය යුතු බවට පරිස්සම් වන්න , මන්ද එහි වටිනාකම $0රඳා පවතින්නේ කවචය තිත්-ගොනු සකසන ආකාරය මත වන අතර එය නොමඟ යවන සුළු විය හැකිය.

විචල්යය "ස්ථිරවම" ප්රකාශයට පත් කිරීමේදී, මෙය සැසිය දක්වා පමණක් විහිදෙන බව සලකන්න. සැසියකින් තොරව විචල්‍යයක වටිනාකමට ප්‍රවේශ වීමට ක්‍රමයක් නොමැත, එබැවින් එයට පිටතින් කිසිදු අර්ථයක් නොමැත. ඔබ අදහස් කරන්නේ "කියවීමට පමණි", එය ෂෙල් මත රඳා පවතින අතර, Bash හි ඔබට භාවිතා කළ හැකිය:

declare -r VAR

එයට දැනටමත් වටිනාකමක් තිබේ නම්, හෝ

declare -r VAR=value

එය එකවර පැවරීමට. සෑම කවචයකම මෙම ලක්ෂණය නොමැත.

බොහෝ කවච වල විචල්‍යයක් ප්‍රකාශ කිරීම සඳහා, ඔබ විචල්ය නාමයක් ( [A-Za-z_][A-Za-z0-9_]*) භාවිතා කළ යුතු අතර , ඊට පසුව සමාන ලකුණක් (හා සමාන ලකුණ වටා අවකාශයක් නොමැත ), පසුව අගයක් (අගය සරල නොවේ නම් උපුටා දැක්වීම [A-Za-z0-9_]+). උදාහරණයක් වශයෙන්:

name="John Doe"
ip=127.0.0.1
HORRIBLE=1

5

අපනයනය භාවිතා කරන්න.

export ABC="123"

එය සකසා තිබේදැයි පරීක්ෂා කිරීමට, භාවිතා කරන්න

env

සහ / හෝ

env | grep ABC

එය ස්ථිරවම එකතු කිරීමට, මෙය ඔබගේ ~/.bashrcගොනුවට එක් කරන්න .

export ABC="123"

6
ඔහුට එය ස්ථිරවම අර්ථ දැක්වීම සඳහා උණුසුම් දැන ගැනීමට අවශ්‍යය , එනම් අර්ථ දැක්වීම තැබිය යුත්තේ කුමන ගොනුවේද යන්නයි.
මැටියෝ

1
වැඩ කරන්නේ නැහැ. මම ලොග් වූ පසු විචල්‍යය නැති වී යයි. සැසි හරහා මට එය අවශ්‍යයි

1
ඔබ අදහස් කළේ permenateසහ නොවේ permenently: D
whoami

සංස්කරණය සඳහා බලන්නbashrc
whoami

5
මොනවද වෙන්නේ permenate? ඔබ අදහස් කළේ permanent?
එස්එස්එච් මේ


1

මා වෙනුවෙන් වැඩ කළ හොඳම ක්‍රමය නම් BASH කවචයේ .bashrc ගොනුව වෙනස් කිරීමයි.

උදාහරණයක් ලෙස මෙය භාවිතා කරන්න:

  1. ඔබේ .bashrc ගොනුව විවෘත කරන්න
  2. මෙම පේළිය එක් කරන්න:

    export <VARIABLE> = "<ANY PATH/VALUE you want>"
    

    උදා: export HOME = "/home/user/"

    භාවිතා කිරීම ""ක්‍රියා ' 'නොකරනු ඇති බැවින් භාවිතා කිරීමට මතක තබා ගන්න .

  3. වත්මන් සැසියේදී එය මූලාශ්‍ර කරන්න.

මම / etc / environment ගොනුව වෙනස් කිරීමට ද උත්සාහ කළ නමුත් එය නව පරිසර විචල්‍යයක් නිර්මාණය කිරීමට මට ඉඩ නොදුන් අතර මම එය උපුටා ගත් විට, එය අර්ථ දක්වා ඇති විචල්‍යය සොයාගත නොහැකි බවට දෝෂයක් ඇති කළේය.

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.