ലിനക്സിലെ ഷെൽ ഇനീഷ്യലൈസേഷൻ ഫയലുകളും യൂസർ പ്രൊഫൈലുകളും മനസ്സിലാക്കുന്നു


ഒന്നിലധികം ഉപയോക്താക്കൾക്ക് ലോഗിൻ ചെയ്യാനും ഒരു സിസ്റ്റം ഉപയോഗിക്കാനും കഴിയുമെന്ന് സൂചിപ്പിക്കുന്ന ഒരു മൾട്ടി-യൂസർ, സമയം പങ്കിടൽ സംവിധാനമാണ് ലിനക്സ്. സോഫ്uറ്റ്uവെയർ ഇൻസ്റ്റാൾ/അപ്uഡേറ്റ് ചെയ്യൽ/നീക്കം ചെയ്യൽ, അവർക്ക് പ്രവർത്തിപ്പിക്കാൻ കഴിയുന്ന പ്രോഗ്രാമുകൾ, അവർക്ക് കാണാനാകുന്ന/എഡിറ്റ് ചെയ്യാനാകുന്ന ഫയലുകൾ എന്നിങ്ങനെ വിവിധ ഉപയോക്താക്കൾക്ക് ഒരു സിസ്റ്റം എങ്ങനെ പ്രവർത്തിപ്പിക്കാം എന്നതിന്റെ വിവിധ വശങ്ങൾ കൈകാര്യം ചെയ്യാനുള്ള ചുമതല സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്റർമാരുണ്ട്.

രണ്ട് പ്രധാന വഴികളിലൂടെ ഉപയോക്താക്കളുടെ പരിതസ്ഥിതികൾ സൃഷ്ടിക്കാനോ പരിപാലിക്കാനോ ലിനക്സ് അനുവദിക്കുന്നു: സിസ്റ്റം-വൈഡ് (ഗ്ലോബൽ), ഉപയോക്തൃ-നിർദ്ദിഷ്ട (വ്യക്തിഗത) കോൺഫിഗറേഷനുകൾ എന്നിവ ഉപയോഗിച്ച്. സാധാരണയായി, ഒരു ലിനക്സ് സിസ്റ്റത്തിൽ പ്രവർത്തിക്കുന്നതിനുള്ള അടിസ്ഥാന രീതി ഷെൽ ആണ്, വിജയകരമായ ഉപയോക്തൃ ലോഗിൻ കഴിഞ്ഞ് അതിന്റെ പ്രാരംഭ സമയത്ത് വായിക്കുന്ന ചില ഫയലുകളെ ആശ്രയിച്ച് ഷെൽ ഒരു പരിസ്ഥിതി സൃഷ്ടിക്കുന്നു.

ഈ ലേഖനത്തിൽ, ലിനക്സിലെ പ്രാദേശിക ഉപയോക്തൃ മാനേജുമെന്റിനായുള്ള ഉപയോക്തൃ പ്രൊഫൈലുമായി ബന്ധപ്പെട്ട് ഞങ്ങൾ ഷെൽ ഇനീഷ്യലൈസേഷൻ ഫയലുകൾ വിശദീകരിക്കും. ഇഷ്uടാനുസൃത ഷെൽ ഫംഗ്uഷനുകൾ, അപരനാമങ്ങൾ, വേരിയബിളുകൾ, സ്റ്റാർട്ടപ്പ് പ്രോഗ്രാമുകൾ എന്നിവ എവിടെ സൂക്ഷിക്കണമെന്ന് ഞങ്ങൾ നിങ്ങളെ അറിയിക്കും.

പ്രധാനം: ഈ ലേഖനത്തിന്റെ ഉദ്ദേശ്യത്തിനായി, ഞങ്ങൾ ലിനക്സ് സിസ്റ്റങ്ങളിൽ ഏറ്റവും പ്രചാരമുള്ള/ഉപയോഗിക്കുന്ന ഷെല്ലായ bash-ൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കും.

നിങ്ങൾ മറ്റൊരു ഷെൽ (zsh, ash, fish etc..) പ്രോഗ്രാമാണ് ഉപയോഗിക്കുന്നതെങ്കിൽ, ഞങ്ങൾ ഇവിടെ സംസാരിക്കുന്ന ചില അനുബന്ധ ഫയലുകളെക്കുറിച്ച് കൂടുതലറിയാൻ അതിന്റെ ഡോക്യുമെന്റേഷൻ വായിക്കുക.

ലിനക്സിൽ ഷെൽ ഇനിഷ്യലൈസേഷൻ

ഷെൽ അഭ്യർത്ഥിക്കുമ്പോൾ, ചില ഇനീഷ്യലൈസേഷൻ/സ്റ്റാർട്ടപ്പ് ഫയലുകൾ അത് വായിക്കുന്നു, അത് ഷെല്ലിനും സിസ്റ്റം ഉപയോക്താവിനും ഒരു പരിസ്ഥിതി സജ്ജീകരിക്കാൻ സഹായിക്കുന്നു; അത് മുൻകൂട്ടി നിശ്ചയിച്ചിട്ടുള്ള (കസ്റ്റമൈസ് ചെയ്ത) ഫംഗ്ഷനുകൾ, വേരിയബിളുകൾ, അപരനാമങ്ങൾ തുടങ്ങിയവ.

ഷെൽ വായിക്കുന്ന ഇനീഷ്യലൈസേഷൻ ഫയലുകളിൽ രണ്ട് വിഭാഗങ്ങളുണ്ട്:

  • സിസ്റ്റം-വൈഡ് സ്റ്റാർട്ടപ്പ് ഫയലുകൾ - സിസ്റ്റത്തിലെ എല്ലാ ഉപയോക്താക്കൾക്കും ബാധകമായ ആഗോള കോൺഫിഗറേഷനുകൾ തീസിസിൽ അടങ്ങിയിരിക്കുന്നു, അവ സാധാരണയായി /etc ഡയറക്ടറിയിലാണ്. അവയിൽ ഉൾപ്പെടുന്നു: /etc/profiles കൂടാതെ /etc/bashrc അല്ലെങ്കിൽ /etc/bash.bashrc.
  • ഉപയോക്തൃ-നിർദ്ദിഷ്ട സ്റ്റാർട്ടപ്പ് ഫയലുകൾ - ഈ സ്റ്റോർ കോൺഫിഗറേഷനുകൾ സിസ്റ്റത്തിലെ ഒരു ഉപയോക്താവിന് ബാധകമാണ് കൂടാതെ സാധാരണയായി ഉപയോക്താക്കളുടെ ഹോം ഡയറക്ടറിയിൽ ഡോട്ട് ഫയലുകളായി സ്ഥിതി ചെയ്യുന്നു. അവർക്ക് സിസ്റ്റം-വൈഡ് കോൺഫിഗറേഷനുകൾ അസാധുവാക്കാൻ കഴിയും. അവയിൽ ഉൾപ്പെടുന്നു: .profiles, .bash_profile, .bashrc, .bash_login.

വീണ്ടും, ഷെൽ മൂന്ന് സാധ്യമായ മോഡുകളിൽ അഭ്യർത്ഥിക്കാം:

/etc/passwd ഫയലിൽ സംഭരിച്ചിരിക്കുന്ന ക്രെഡൻഷ്യലുകൾ വായിച്ചതിനുശേഷം, /bin/login ഉപയോഗിച്ച്, ഒരു ഉപയോക്താവ് സിസ്റ്റത്തിലേക്ക് വിജയകരമായി ലോഗിൻ ചെയ്തതിന് ശേഷം ഷെൽ അഭ്യർത്ഥിക്കുന്നു.

ഒരു ഇന്ററാക്ടീവ് ലോഗിൻ ഷെല്ലായി ഷെൽ ആരംഭിക്കുമ്പോൾ, അത് /etc/profile ഉം അതിന്റെ ഉപയോക്തൃ-നിർദ്ദിഷ്ട തത്തുല്യമായ ~/.bash_profile ഉം വായിക്കുന്നു.

ഒരു ഷെൽ പ്രോഗ്രാം ഉപയോഗിച്ച് കമാൻഡ് ലൈനിൽ ഷെൽ ആരംഭിക്കുന്നു, ഉദാഹരണത്തിന് $/bin/bash അല്ലെങ്കിൽ $/bin/zsh. /bin/su കമാൻഡ് പ്രവർത്തിപ്പിച്ച് ഇത് ആരംഭിക്കാവുന്നതാണ്.

കൂടാതെ, ഒരു ഗ്രാഫിക്കൽ പരിതസ്ഥിതിയിൽ നിന്ന് കോൺസോൾ, xterm പോലുള്ള ഒരു ടെർമിനൽ പ്രോഗ്രാമിനൊപ്പം ഒരു ഇന്ററാക്ടീവ് നോൺ-ലോഗിൻ ഷെല്ലും ഉപയോഗിക്കാവുന്നതാണ്.

ഈ അവസ്ഥയിൽ ഷെൽ ആരംഭിക്കുമ്പോൾ, അത് പാരന്റ് ഷെല്ലിന്റെ എൻവയോൺമെന്റ് പകർത്തുകയും അധിക സ്റ്റാർട്ടപ്പ് കോൺഫിഗറേഷൻ നിർദ്ദേശങ്ങൾക്കായി ഉപയോക്തൃ-നിർദ്ദിഷ്ട ~/.bashrc ഫയൽ വായിക്കുകയും ചെയ്യുന്നു.

$ su
# ls -la

ഒരു ഷെൽ സ്ക്രിപ്റ്റ് പ്രവർത്തിക്കുമ്പോൾ ഷെൽ വിളിക്കപ്പെടുന്നു. ഈ മോഡിൽ, ഇത് ഒരു സ്ക്രിപ്റ്റ് (ഷെൽ അല്ലെങ്കിൽ ജനറിക് സിസ്റ്റം കമാൻഡുകൾ/ഫംഗ്ഷനുകളുടെ സെറ്റ്) പ്രോസസ്സ് ചെയ്യുന്നു, അല്ലാത്ത പക്ഷം കമാൻഡുകൾക്കിടയിൽ ഉപയോക്തൃ ഇൻപുട്ട് ആവശ്യമില്ല. പാരന്റ് ഷെല്ലിൽ നിന്ന് പാരമ്പര്യമായി ലഭിച്ച പരിസ്ഥിതി ഉപയോഗിച്ചാണ് ഇത് പ്രവർത്തിക്കുന്നത്.

സിസ്റ്റം-വൈഡ് ഷെൽ സ്റ്റാർട്ടപ്പ് ഫയലുകൾ മനസ്സിലാക്കുന്നു

ഈ വിഭാഗത്തിൽ, സിസ്റ്റത്തിലെ എല്ലാ ഉപയോക്താക്കൾക്കുമായി കോൺഫിഗറേഷനുകൾ സംഭരിക്കുന്ന ഷെൽ സ്റ്റാർട്ടപ്പ് ഫയലുകളിൽ ഞങ്ങൾ കൂടുതൽ വെളിച്ചം കാണിക്കും, അവയിൽ ഇവ ഉൾപ്പെടുന്നു:

/etc/profile ഫയൽ - ഇത് സിസ്റ്റം-വൈഡ് എൻവയോൺമെന്റ് കോൺഫിഗറേഷനുകളും ലോഗിൻ സജ്ജീകരണത്തിനായി സ്റ്റാർട്ടപ്പ് പ്രോഗ്രാമുകളും സംഭരിക്കുന്നു. എല്ലാ സിസ്റ്റം ഉപയോക്താക്കളുടെ പരിതസ്ഥിതികളിലും നിങ്ങൾ പ്രയോഗിക്കാൻ ആഗ്രഹിക്കുന്ന എല്ലാ കോൺഫിഗറേഷനുകളും ഈ ഫയലിൽ ചേർക്കേണ്ടതാണ്.

ഉദാഹരണത്തിന്, നിങ്ങളുടെ ആഗോള PATH പരിസ്ഥിതി വേരിയബിൾ ഇവിടെ സജ്ജമാക്കാൻ കഴിയും.

# cat /etc/profile

ശ്രദ്ധിക്കുക: RHEL/CentOS 7 പോലുള്ള ചില സിസ്റ്റങ്ങളിൽ, \നിങ്ങൾ എന്താണ് ചെയ്യുന്നതെന്ന് അറിയില്ലെങ്കിൽ ഈ ഫയൽ മാറ്റാൻ ശുപാർശ ചെയ്യുന്നില്ല. /etc/-ൽ ഒരു ഇഷ്uടാനുസൃത .sh ഷെൽ സ്uക്രിപ്റ്റ് സൃഷ്uടിക്കുന്നതാണ് നല്ലത്. നിങ്ങളുടെ പരിതസ്ഥിതിയിൽ ഇഷ്uടാനുസൃത മാറ്റങ്ങൾ വരുത്തുന്നതിന് profile.d/, ഇത് ഭാവിയിലെ അപ്uഡേറ്റുകളിൽ ലയിപ്പിക്കേണ്ടതിന്റെ ആവശ്യകതയെ തടയും.

/etc/profile.d/ ഡയറക്ടറി – നിങ്ങളുടെ പരിതസ്ഥിതിയിൽ ഇഷ്uടാനുസൃത മാറ്റങ്ങൾ വരുത്താൻ ഉപയോഗിക്കുന്ന ഷെൽ സ്uക്രിപ്റ്റുകൾ സംഭരിക്കുന്നു:

# cd /etc/profile.d/
# ls  -l 

/etc/bashrc അല്ലെങ്കിൽ /etc/bash.bashrc ഫയൽ - എല്ലാ സിസ്റ്റം ഉപയോക്താക്കൾക്കും ബാധകമായ മറ്റ് കോൺഫിഗറേഷനുകൾ ഉൾപ്പെടെയുള്ള സിസ്റ്റം-വൈഡ് ഫംഗ്ഷനുകളും അപരനാമങ്ങളും ഉൾക്കൊള്ളുന്നു.

നിങ്ങളുടെ സിസ്റ്റത്തിന് ഒന്നിലധികം തരം ഷെല്ലുകൾ ഉണ്ടെങ്കിൽ, ഈ ഫയലിൽ ബാഷ്-നിർദ്ദിഷ്ട കോൺഫിഗറേഷനുകൾ ഇടുന്നത് നല്ലതാണ്.

# cat /etc/bashrc

ഉപയോക്തൃ-നിർദ്ദിഷ്ട ഷെൽ സ്റ്റാർട്ടപ്പ് ഫയലുകൾ മനസ്സിലാക്കുന്നു

അടുത്തതായി, ഉപയോക്തൃ-നിർദ്ദിഷ്ട ഷെൽ (ബാഷ്) സ്റ്റാർട്ടപ്പ് ഡോട്ട് ഫയലുകളെക്കുറിച്ച് ഞങ്ങൾ കൂടുതൽ വിശദീകരിക്കും, അത് സിസ്റ്റത്തിൽ ഒരു പ്രത്യേക ഉപയോക്താവിനായി കോൺഫിഗറേഷനുകൾ സംഭരിക്കുന്നു, അവ ഒരു ഉപയോക്താവിന്റെ ഹോം ഡയറക്uടറിയിൽ സ്ഥിതിചെയ്യുന്നു, അവയിൽ ഇവ ഉൾപ്പെടുന്നു:

# ls -la

~/.bash_profile ഫയൽ – ഇത് ഉപയോക്തൃ പ്രത്യേക പരിസ്ഥിതിയും സ്റ്റാർട്ടപ്പ് പ്രോഗ്രാമുകളുടെ കോൺഫിഗറേഷനുകളും സംഭരിക്കുന്നു. ചുവടെയുള്ള സ്ക്രീൻഷോട്ടിൽ കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങളുടെ ഇഷ്uടാനുസൃത PATH എൻവയോൺമെന്റ് വേരിയബിൾ ഇവിടെ സജ്ജീകരിക്കാം:

# cat ~/.bash_profile

~/.bashrc ഫയൽ – ഈ ഫയൽ ഉപയോക്താവിന്റെ പ്രത്യേക അപരനാമങ്ങളും പ്രവർത്തനങ്ങളും സംഭരിക്കുന്നു.

# cat ~/.bashrc

~/.bash_login ഫയൽ – നിങ്ങൾ സിസ്റ്റത്തിലേക്ക് ലോഗിൻ ചെയ്യുമ്പോൾ മാത്രം എക്സിക്യൂട്ട് ചെയ്യുന്ന പ്രത്യേക കോൺഫിഗറേഷനുകൾ ഇതിൽ അടങ്ങിയിരിക്കുന്നു. ~/.bash_profile ഇല്ലെങ്കിൽ, ഈ ഫയൽ ബാഷ് വഴി വായിക്കും.

~/.profile ഫയൽ – ~/.bash_profile, ~/.bash_login എന്നിവയുടെ അഭാവത്തിൽ ഈ ഫയൽ റീഡ് ചെയ്യപ്പെടുന്നു; ഇതിന് സമാന കോൺഫിഗറേഷനുകൾ സംഭരിക്കാൻ കഴിയും, അവ സിസ്റ്റത്തിലെ മറ്റ് ഷെല്ലുകൾക്കും ആക്സസ് ചെയ്യാൻ കഴിയും. നമ്മൾ ഇവിടെ പ്രധാനമായും സംസാരിച്ചത് ബാഷിനെക്കുറിച്ചായതിനാൽ, മറ്റ് ഷെല്ലുകൾക്ക് ബാഷ് വാക്യഘടന മനസ്സിലാകണമെന്നില്ല.

അടുത്തതായി, ബാഷ് ഇനീഷ്യലൈസേഷൻ ഫയലുകളല്ലാത്ത മറ്റ് രണ്ട് പ്രധാനപ്പെട്ട ഉപയോക്തൃ നിർദ്ദിഷ്ട ഫയലുകളും ഞങ്ങൾ വിശദീകരിക്കും:

~/.bash_history ഫയൽ – ബാഷ് സിസ്റ്റത്തിൽ ഒരു ഉപയോക്താവ് നൽകിയ കമാൻഡുകളുടെ ചരിത്രം സൂക്ഷിക്കുന്നു. ഈ കമാൻഡുകളുടെ ലിസ്റ്റ് ~/.bash_history ഫയലിലെ ഒരു ഉപയോക്താവിന്റെ ഹോം ഡയറക്ടറിയിൽ സൂക്ഷിച്ചിരിക്കുന്നു.

ഈ ലിസ്റ്റ് കാണുന്നതിന്, ടൈപ്പ് ചെയ്യുക:

$ history 
or 
$ history | less

~/.bash_logout ഫയൽ - ഇത് ഷെൽ സ്റ്റാർട്ടപ്പിനായി ഉപയോഗിക്കുന്നില്ല, എന്നാൽ ലോഗ്ഔട്ട് നടപടിക്രമത്തിനായി ഉപയോക്തൃ നിർദ്ദിഷ്ട നിർദ്ദേശങ്ങൾ സംഭരിക്കുന്നു. ഒരു ഉപയോക്താവ് ഒരു ഇന്ററാക്ടീവ് ലോഗിൻ ഷെല്ലിൽ നിന്ന് പുറത്തുകടക്കുമ്പോൾ അത് വായിക്കുകയും നടപ്പിലാക്കുകയും ചെയ്യുന്നു.

ലോഗൗട്ട് ചെയ്യുമ്പോൾ ടെർമിനൽ വിൻഡോ ക്ലിയർ ചെയ്യുന്നത് ഒരു പ്രായോഗിക ഉദാഹരണമാണ്. വിദൂര കണക്ഷനുകൾക്ക് ഇത് പ്രധാനമാണ്, അവ അടച്ചതിനുശേഷം വൃത്തിയുള്ള വിൻഡോ അവശേഷിപ്പിക്കും:

# cat bash_logout 

കൂടുതൽ സ്ഥിതിവിവരക്കണക്കുകൾക്കായി, വിവിധ ലിനക്സ് ഡിസ്ട്രോകളിൽ ഈ ഷെൽ ഇനീഷ്യലൈസേഷൻ ഫയലുകളുടെ ഉള്ളടക്കങ്ങൾ പരിശോധിക്കുക, കൂടാതെ ബാഷ് മാൻ പേജിലൂടെയും വായിക്കുക:

ഇപ്പോഴത്തേക്ക് ഇത്രമാത്രം! ഈ ലേഖനത്തിൽ, ലിനക്സിലെ ഷെൽ സ്റ്റാർട്ടപ്പ്/ഇനീഷ്യലൈസേഷൻ ഫയലുകൾ ഞങ്ങൾ വിശദീകരിച്ചു. ഞങ്ങൾക്ക് തിരികെ എഴുതാൻ ചുവടെയുള്ള കമന്റ് ഫോം ഉപയോഗിക്കുക.