ഇൻപുട്ട് എഡിറ്റുചെയ്യുന്നു. സ്ക്രോൾബാക്ക് ബഫർ എങ്ങനെ വർദ്ധിപ്പിക്കാം? Pr, nl, fmt കമാൻഡുകൾ

നിങ്ങളുടെ കീബോർഡ് ലാറ്റിൻ അല്ലെങ്കിൽ സിറിലിക് ഭാഷയിൽ അടയാളപ്പെടുത്തിയിട്ടുണ്ടെങ്കിൽ, നിങ്ങൾ മറ്റൊരു ഭാഷയിൽ ടെക്‌സ്‌റ്റുകൾ ടൈപ്പുചെയ്യേണ്ടതുണ്ടെങ്കിൽ, പ്രത്യേകിച്ച് സങ്കീർണ്ണവും അക്ഷരമാല അല്ലാത്തതുമായ സ്‌ക്രിപ്റ്റുകൾ ഉപയോഗിച്ച്, ലിനക്‌സിലെ ഇൻപുട്ട് സിസ്റ്റങ്ങളെക്കുറിച്ചുള്ള ഈ കുറിപ്പ് (കേവലം "കീബോർഡ് ലേഔട്ടുകൾ") നിങ്ങൾക്ക് താൽപ്പര്യമുള്ളതായിരിക്കാം. .


വ്യക്തമല്ലാത്ത പദപ്രയോഗങ്ങൾക്ക് ഞാൻ മുൻകൂട്ടി ക്ഷമ ചോദിക്കുന്നു, മാത്രമല്ല സമഗ്രമായി നടിക്കുന്നില്ല. സാങ്കേതിക വിവരണം. ലേഖനത്തിൻ്റെ പ്രധാന ഉദ്ദേശ്യം കഴിവുകൾ വിവരിക്കുക എന്നതാണ്, നടപ്പാക്കലല്ല.

ഇൻപുട്ട് രീതികൾ

ലിനക്സിലെ പ്രധാന ഇൻപുട്ട് രീതി (IM) XKB ആണ്, ഇത് സ്ഥിരസ്ഥിതിയായി ഇൻസ്റ്റാൾ ചെയ്യുകയും ഇൻസ്റ്റാളേഷൻ കഴിഞ്ഞയുടനെ സജീവമാക്കുകയും ചെയ്യുന്നു ഓപ്പറേറ്റിംഗ് സിസ്റ്റം. XKB രൂപകൽപ്പന ചെയ്‌തിരിക്കുന്നത് അക്ഷരമാല സ്‌ക്രിപ്‌റ്റുകളിൽ പ്രവർത്തിക്കുന്നതിനാണ്, കൂടാതെ ചൈനീസ് അക്ഷരങ്ങളോ ഇന്ത്യയുടെയും ആഫ്രിക്കയുടെയും സിലബറികളോ പോലുള്ള സങ്കീർണ്ണമായ സ്‌ക്രിപ്റ്റുകൾ കൈകാര്യം ചെയ്യാൻ കഴിയില്ല. 4 ലേഔട്ടുകളിൽ കൂടുതൽ പ്രവർത്തിക്കാൻ സിസ്റ്റം ക്രമീകരിക്കാൻ കഴിയും. ഓരോ ഭാഷയ്ക്കും ആവശ്യമായ പാരാമീറ്ററുകൾ ഉപയോഗിച്ച് ഒരു കമാൻഡ് വിളിക്കാൻ ഹോട്ട്കീകൾ ഉപയോഗിച്ച് അവസാന പരിമിതി മറികടക്കാൻ കഴിയും.


കൂടുതൽ വഴക്കം ആവശ്യമാണെങ്കിൽ, നിങ്ങൾ ഇൻപുട്ട് രീതി ചട്ടക്കൂടുകളിലേക്ക് നീങ്ങണം. ലിനക്സിലെ അത്തരം സിസ്റ്റങ്ങളുടെ പ്രധാന പ്രതിനിധികൾ: IBus, SCIM, Fcitx. ചട്ടക്കൂടിന് തന്നെ വാചകം നൽകാനാവില്ല, കൂടാതെ വിവിധ സ്ക്രിപ്റ്റുകൾ പ്ലഗിനുകളുടെ രൂപത്തിൽ (എഞ്ചിനുകൾ) ബന്ധിപ്പിച്ചിരിക്കണം. IBus ഉം Fcitx ഉം ഉപയോഗിച്ചുള്ള അനുഭവത്തിൽ നിന്ന്, രണ്ട് സിസ്റ്റങ്ങളും ഏകദേശം ഒരേ എണ്ണം പ്ലഗിനുകളെ പിന്തുണയ്ക്കുന്നുവെന്ന് എനിക്ക് പറയാൻ കഴിയും. പലപ്പോഴും, ഇവ ഏതാണ്ട് ഒരേ പ്ലഗിനുകളായിരിക്കാം. ഉദാഹരണത്തിന്, ചൈനീസ് ഭാഷയ്ക്കുള്ള പിൻയിൻ ഇൻപുട്ട് രീതി ഒരു സ്വതന്ത്ര ലിബ്പിൻ ലൈബ്രറിയായി നടപ്പിലാക്കുകയും IBus അല്ലെങ്കിൽ Fcitx വഴി ബന്ധിപ്പിക്കുമ്പോൾ സമാനമായ കഴിവുകൾ നൽകുകയും ചെയ്യുന്നു.



ഒന്നാമതായി, ഐബസിന് സുതാര്യമായി ഉപയോഗിക്കാൻ കഴിയും xkbഅതിൻ്റെ എല്ലാ സാധ്യതകളും. ഒരേയൊരു പ്രശ്നം IBus-ന് XKB കോൺഫിഗറേഷനുകൾ ഡൈനാമിക്കായി സൃഷ്ടിക്കാൻ കഴിയില്ല എന്നതാണ്. അവയിൽ ഏറ്റവും പ്രചാരമുള്ളവ /usr/share/ibus/component/simple.xml എന്ന ഫയലിൽ മുൻകൂട്ടി രജിസ്റ്റർ ചെയ്തിട്ടുണ്ട്, അവ ആവശ്യാനുസരണം മാറ്റാനും അനുബന്ധമാക്കാനും കഴിയും. (IBus അപ്‌ഡേറ്റ് ചെയ്യുമ്പോൾ, ഫയൽ സ്റ്റാൻഡേർഡ് ഒന്ന് ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കും.)


ഉദാഹരണത്തിന്, റഷ്യൻ ലേഔട്ട് ഇനിപ്പറയുന്ന രീതിയിൽ വിവരിച്ചിരിക്കുന്നു:


xkb:ru::rus ru ജിപിഎൽ പെങ് ഹുവാങ് ru റഷ്യൻ റഷ്യൻ ibus-കീബോർഡ് 99

ലേഔട്ടിന് പുറമേ, നിങ്ങൾക്ക് layout_variant വ്യക്തമാക്കാൻ കഴിയും; മറ്റ് setxkbmap പാരാമീറ്ററുകൾ ലഭ്യമല്ല, ഇല്യ ബിർമൻ്റെ പ്രശസ്തമായ ടൈപ്പോഗ്രാഫിക് ലേഔട്ട് ഉൾപ്പെടെ, ഇത് xkb-ൽ Misc:typo ആർഗ്യുമെൻ്റ് വഴി സജ്ജീകരിച്ചിരിക്കുന്നു. ഈ പരിമിതി മറികടക്കാൻ അല്ലെങ്കിൽ നിങ്ങളുടെ സ്വന്തം ആവശ്യങ്ങൾക്കായി ഒരു ലേഔട്ട് സൃഷ്ടിക്കാൻ, നിങ്ങൾ അത് പൂർണ്ണമായി വിവരിക്കേണ്ടതുണ്ട്. ഇത് ചെയ്യുന്നതിന്, നിങ്ങൾ /usr/share/X11/xkb/symbols ഫോൾഡറിൽ ഒരു ഇഷ്‌ടാനുസൃത ഫയൽ സൃഷ്‌ടിക്കേണ്ടതുണ്ട് (നിലവിലുള്ള ഫയലുകളിലേക്ക് നിങ്ങൾ ചേർക്കുകയാണെങ്കിൽ, സിസ്റ്റം അപ്‌ഡേറ്റ് ചെയ്യുമ്പോൾ അവ തിരുത്തിയെഴുതപ്പെടും) കൂടാതെ ലേഔട്ട് കോൺഫിഗറേഷൻ സജ്ജമാക്കുക. ഉദാഹരണത്തിന്, ഇല്യ ബിർമൻ്റെ കൂട്ടിച്ചേർക്കലുകളുള്ള റഷ്യൻ:


ഭാഗിക ആൽഫാന്യൂമെറിക്_കീകൾ xkb_symbols "ru-typo" ("ru(winkeys)" ഉൾപ്പെടുന്നു "typo(base)" ഉൾപ്പെടുന്നു "level3(ralt_switch)" // ഒന്നാം കീബോർഡ് വരി കീ ([NoSymbol,NoSymbol,U0301,NoSymbol]); // "~" );

ഉൾപ്പെടുന്ന വരികൾ റെഡിമെയ്ഡ് ടെംപ്ലേറ്റുകളിൽ നിന്ന് കോൺഫിഗറേഷൻ ശേഖരിക്കുന്നിടത്ത്. അതനുസരിച്ച്, റഷ്യൻ ലേഔട്ട് "വിൻകീസ്" പതിപ്പ് "ru" ഫയലിൽ നിന്ന് എടുത്തതാണ്. തുടർന്ന് ഇത് "അക്ഷര പിശക്" ഫയലിൽ നിന്നുള്ള "ബേസ്" ലേഔട്ടിനൊപ്പം അനുബന്ധമായി നൽകുകയും മൂന്നാമത്തെ ലെയർ സ്വിച്ച് AltGr സജ്ജമാക്കുകയും ചെയ്യുന്നു (ഫയൽ "ലെവൽ3" കാണുക), ഇത് കമാൻഡിന് സമാനമാണ്:


setxkbmap -layout ru -variant winkeys -option lv3:ralt_switch,misc:typo

വേണമെങ്കിൽ, നിങ്ങൾക്ക് സ്വയം മാറ്റങ്ങൾ വരുത്താം. മുകളിലെ ഉദാഹരണത്തിൽ, AltGr+~ കോമ്പിനേഷനിൽ "U+0301" (അക്യൂട്ട് ആക്‌സൻ്റ് സംയോജിപ്പിക്കുന്നു) ആക്സൻ്റ് മാർക്ക് സ്ഥാപിച്ചിരിക്കുന്നു. NoSymbol വ്യക്തമാക്കിയ സ്ഥാനങ്ങൾ മുമ്പത്തെ പാറ്റേണുകളിൽ നിന്നുള്ള നിർവചനങ്ങൾ ഉപയോഗിക്കുന്നു: "winkeys" ൽ നിന്ന് "ё", "Ё", "ടൈപ്പോ" ൽ നിന്ന് "≈":


താക്കോൽ ( [ Cyrillic_io, Cyrillic_IO, NoSymbol, NoSymbol ] ); // വിങ്കി കീ ( [ NoSymbol, NoSymbol, NoSymbol, approxeq ] ); // അക്ഷരത്തെറ്റ് കീ ([NoSymbol,NoSymbol,U0301,NoSymbol]); // ആചാരം

xkb:ru:typo:rus ru ആചാരം, ഞങ്ങൾ അക്ഷരത്തെറ്റ്, റഷ്യൻ (അക്ഷരത്തെറ്റോടെ) റഷ്യൻ (അക്ഷരത്തെറ്റോടെ) ibus-കീബോർഡ് 1

കസ്റ്റം എന്നത് /usr/share/X11/xkb/symbols ഫോൾഡറിൽ നിന്നുള്ള ഫയലിൻ്റെ പേരാണ്, കൂടാതെ അതിൽ അടങ്ങിയിരിക്കുന്ന ലേഔട്ടിലേക്ക് ru-typo പോയിൻ്റ് ചെയ്യുന്നു. ഹോട്ട് കീകൾ (Ctrl+C, Ctrl+V, മുതലായവ) ശരിയായി പ്രവർത്തിക്കുന്ന തരത്തിൽ അധിക യുഎസ് ലേഔട്ട് വ്യക്തമാക്കിയിരിക്കുന്നു. IBus റീബൂട്ട് ചെയ്ത ശേഷം (ibus restart), ഒരു പുതിയ ലേഔട്ട് "റഷ്യൻ (അക്ഷരത്തെയോ ഉപയോഗിച്ച്)" ക്രമീകരണങ്ങളിൽ ദൃശ്യമാകും.


രണ്ടാമത്തെ ഇൻപുട്ട് രീതി - m17n. വൈവിധ്യമാർന്ന സ്ക്രിപ്റ്റുകൾക്കായുള്ള കീബോർഡ് ലേഔട്ടുകളുടെ സമ്പന്നമായ ലൈബ്രറിയാണിത്. ഐബസിന് അതിൻ്റേതായ സമാനമായ ഇൻപുട്ട് രീതിയുണ്ട് ibus-table, "അൽപ്പം കുറവ് കഴിവ്" എന്ന് വിവരിക്കപ്പെടുന്നു. സങ്കീർണ്ണമായ യുക്തി ഉൾപ്പെടാതെ, ലാറ്റിൻ അക്ഷരങ്ങളും ആവശ്യമായ അക്ഷരമാലയിലെ അക്ഷരങ്ങളും തമ്മിൽ ഒറ്റത്തവണ കത്തിടപാടുകളുള്ള ഒരു ലേഔട്ട് സൃഷ്ടിക്കാൻ എനിക്ക് രണ്ടാമത്തേത് ഉപയോഗിക്കേണ്ടി വന്നു, അതിനാൽ രണ്ട് സിസ്റ്റങ്ങളിൽ ഏതാണ് കൂടുതൽ പ്രവർത്തനപരവും ആവിഷ്‌കൃതവുമാണെന്ന് എനിക്ക് വിലയിരുത്താൻ കഴിയില്ല - ഒരു വിവരണം m17n അല്ലെങ്കിൽ ibus-table ഫോർമാറ്റിലുള്ള ലേഔട്ട്. ibus-table രീതിയിൽ ഉചിതമായ നൊട്ടേഷനിൽ പ്രതീകങ്ങൾ നൽകുന്നതിനുള്ള കൗതുകകരമായ "LaTeX" ലേഔട്ട് ഉൾപ്പെടുന്നു: "Δ" എന്നതിനുള്ള "\Delta", "≥" എന്നതിനുള്ള "\ge" മുതലായവ.


സാർവത്രിക ഇൻപുട്ട് രീതികളിൽ അടുത്തത് കെ.എം.എഫ്.എൽ. ഇതാണ് വിൻഡോസിനുള്ള കീമാൻ ഇൻപുട്ട് രീതി. അപൂർവമായ സ്ക്രിപ്റ്റുകൾ പിന്തുണയ്ക്കുന്ന വളരെ സാധാരണമല്ലാത്ത IM. 1,000-ലധികം സ്ക്രിപ്റ്റുകളിൽ അച്ചടിക്കാൻ കഴിയുമെന്ന് അവകാശപ്പെടുന്ന യഥാർത്ഥ കീമാനിൽ നിന്ന് വ്യത്യസ്തമായി, KMFL അത്ര പുരോഗമിച്ചിട്ടില്ല, പക്ഷേ ഇപ്പോഴും ഉപയോഗപ്രദമാകും. ലേഔട്ടുകൾ വിവരിക്കുന്നതിനുള്ള ഫോർമാറ്റ് ടെക്‌സ്‌റ്റാണ്; മിസ് വിൻഡോസിനായി അവ സൃഷ്‌ടിക്കുന്നതിന് ഒരു പ്രോഗ്രാം ഉണ്ട്. ഞാൻ യൂറോലാറ്റിൻ ലേഔട്ട് ഉപയോഗിക്കുന്നു, അത് "2//3" എന്ന വാചകത്തെ "⅔" എന്ന ഭിന്നസംഖ്യയായും "-a" എന്ന ക്രമം മാക്രോൺ "ā" ആയും പരിവർത്തനം ചെയ്യുന്നു. xkb-യിലെ കമ്പോസ് കീയെ അനുസ്മരിപ്പിക്കുന്നു, പക്ഷേ പ്രത്യേക മോഡിഫയർ ആവശ്യമില്ല - ടൈപ്പിംഗ് സമയത്ത് KMFL തന്നെ സീക്വൻസുകൾ തിരിച്ചറിയുന്നു.


ശേഷിക്കുന്ന ഇൻപുട്ട് രീതികൾ വ്യക്തിഗത സ്ക്രിപ്റ്റുകൾക്കായി പ്രത്യേകം തയ്യാറാക്കിയതാണ്: ചൈനീസ് ഭാഷയ്ക്ക് "ibus-libpinyin", "ibus-unikey" വിയറ്റ്നാമീസ് മുതലായവ. ഈ പ്ലഗിന്നുകൾക്കുള്ള ക്രമീകരണങ്ങൾ /usr/share/ibus/component/ എന്നതിലും സ്ഥിതിചെയ്യുന്നു. അനുബന്ധ ഫയലുകൾക്ക് അടിസ്ഥാന കീബോർഡ് ലേഔട്ട് സജ്ജീകരിക്കേണ്ടി വന്നേക്കാം, അല്ലാത്തപക്ഷം ലാറ്റിൻ ഇതര ലേഔട്ടിൽ നിന്ന് മാറുമ്പോൾ അവ പ്രവർത്തിക്കില്ല. ഉദാഹരണത്തിന്, libpinyin.xml-ൽ നിങ്ങൾ "ലേഔട്ട്" പാരാമീറ്റർ കണ്ടെത്തി ഒരു QWERTY കീബോർഡിനായി "us" അല്ലെങ്കിൽ AZERTY എന്നതിന് "fr" എന്നിങ്ങനെ നൽകേണ്ടതുണ്ട്.


ഞങ്ങളെ

ലേഔട്ടുകൾ മാറ്റുന്നു

മിക്ക സമയത്തും ഞാൻ ഭാഷാ ജോഡികളുമായി പ്രവർത്തിക്കുന്നു: റഷ്യൻ-ഇംഗ്ലീഷ്, ചൈനീസ്-സ്പാനിഷ് മുതലായവ. അതിനാൽ, അവസാനത്തെ രണ്ട് ലേഔട്ടുകൾക്കിടയിൽ (CapsLock) മാറാൻ ഒരു ഹോട്ട്കീ വേണമെന്ന് ഞാൻ ആഗ്രഹിക്കുന്നു, കൂടാതെ ലേഔട്ടുകൾ തന്നെ പ്രത്യേക ഹോട്ട്കീകൾ ഉപയോഗിച്ച് സ്വിച്ചുചെയ്യുന്നു (നമ്പർ പാഡിൽ Win + 1...9). അങ്ങനെ, ആദ്യം ഞാൻ പ്രവർത്തന ലേഔട്ടുകൾ, Win+1 (en), Win+2 (ru) എന്നിവ സജ്ജീകരിച്ചു, തുടർന്ന് CapsLock (en) ഉപയോഗിച്ച് അവയ്ക്കിടയിൽ മാറുക<->ru).


IBus-ൽ നിങ്ങൾക്ക് രണ്ട് ഹോട്ട്കീകൾ സജ്ജീകരിക്കാം: ഒന്ന് ലേഔട്ടുകളുടെ ലിസ്റ്റിലൂടെ സൈക്കിൾ ചവിട്ടുന്നതിന്, രണ്ടാമത്തേത് അവസാനത്തെ രണ്ട് ലേഔട്ടുകൾക്ക്. നിങ്ങൾക്ക് തിരഞ്ഞെടുക്കാനും കഴിയും ആവശ്യമുള്ള ലേഔട്ട്കൺസോൾ വഴി, അതനുസരിച്ച്, ഒരു ഹോട്ട്കീയിലേക്ക് സ്ക്രിപ്റ്റ് അസൈൻ ചെയ്യുക.


IBus അത്തരം ക്രമീകരണങ്ങൾ പുനഃസജ്ജമാക്കുന്നതിനാൽ, xmodmap ഉപയോഗിച്ച് CapsLock വീണ്ടും അസൈൻ ചെയ്യാൻ കഴിയില്ലെന്നത് ശ്രദ്ധിക്കുക. അതിനാൽ, udev (file /etc/udev/hwdb.d/90-custom-keyboard.hwdb) വഴി ആഗോളതലത്തിൽ CapsLock-നെ F14 ആയി അസാധുവാക്കാൻ ഞാൻ ആഗ്രഹിക്കുന്നു:


evdev:input:b0003v1A2Cp0E24* # എൻ്റെ കീബോർഡ് ഐഡി KEYBOARD_KEY_70039=f14 # ക്യാപ്‌സ്‌ലോക്ക് f14-ലേക്ക് ബൈൻഡ് ചെയ്യുക

കൂടാതെ IBus-ൽ ഒരു ഹോട്ട്കീ ആയി F14 ഉപയോഗിക്കുക. എൻ്റെ അനുഭവത്തിൽ ഇത് ഏറ്റവും സ്ഥിരതയുള്ള കോൺഫിഗറേഷൻ നൽകുന്നു.


Udev സജ്ജീകരിക്കുന്നതിനെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്ക്, ലേഖനത്തിൻ്റെ അവസാനം കാണുക.

വെർച്വൽ കീബോർഡ്

കീബോർഡുകൾ വാണിജ്യപരമായി നിർമ്മിക്കപ്പെടുന്നു, ഒരു പ്രത്യേക സ്ക്രിപ്റ്റിനായി അടയാളപ്പെടുത്തിയിരിക്കുന്നു, ധാരാളം ഉപയോക്താക്കളുള്ള ഭാഷകൾക്ക് മാത്രം - ഉദാഹരണത്തിന്, റഷ്യൻ (YTSUKEN). അർമേനിയയിലോ ജോർജിയയിലോ നിങ്ങൾക്ക് ദേശീയ അക്ഷരമാലയിലെ അക്ഷരങ്ങൾ ഉപയോഗിച്ച് കീകളുള്ള ഒരു കീബോർഡ് വാങ്ങാൻ കഴിയില്ല. അതുപോലെ, കസാക്കിസ്ഥാനിലും ഉസ്ബെക്കിസ്ഥാനിലും അവർ റഷ്യൻ-ഇംഗ്ലീഷ് കീബോർഡുകൾ ഉപയോഗിക്കുന്നു, സാധാരണ ലാറ്റിൻ അല്ലെങ്കിൽ സിറിലിക് അക്ഷരമാലയിൽ ഉൾപ്പെടുത്താത്ത അക്ഷരങ്ങൾ എവിടെയാണെന്ന് പഠിക്കാൻ നിർബന്ധിതരാകുന്നു.


നിങ്ങൾ ഒരു പുതിയ ലേഔട്ട് പഠിക്കുകയാണെങ്കിൽ, വെർച്വൽ കീബോർഡ് ഉപയോഗിക്കാൻ ഞാൻ ശുപാർശ ചെയ്യുന്നു. എനിക്ക് ഓൺബോർഡ് ഇഷ്ടമാണ്, കാരണം അത് സജീവമായ ലേഔട്ടിലേക്ക് സ്വയമേവ ക്രമീകരിക്കുകയും നിങ്ങൾ മറ്റൊന്നിലേക്ക് മാറുമ്പോൾ അപ്ഡേറ്റ് ചെയ്യുകയും ചെയ്യുന്നു. എന്നാൽ ഇത് xkb-ൽ മാത്രമേ പ്രവർത്തിക്കൂ (IBus വഴി xkb ഉപയോഗിക്കുമ്പോൾ).


xkb ലേഔട്ടുകൾ പരിശോധിക്കുന്നതിന് ഓൺബോർഡ് വളരെ സൗകര്യപ്രദമാണ് കൂടാതെ എല്ലാ ലെയറുകളിലും നിയുക്ത ചിഹ്നങ്ങൾ കാണാൻ നിങ്ങളെ അനുവദിക്കുന്നു (AltGr, മുതലായവ).

ഉപസംഹാരം

എല്ലാ പ്രോഗ്രാമുകളും ഭാഷാ ചട്ടക്കൂടുകളെ ശരിയായി പിന്തുണയ്ക്കുന്നില്ല. പ്രത്യേകിച്ചും, സബ്‌ലൈം ടെക്‌സ്‌റ്റ് 3 SCIM-ൽ മാത്രമേ പ്രവർത്തിക്കൂ, കൂടാതെ IBus ഉപയോഗിച്ച്, തിരഞ്ഞെടുത്ത ലേഔട്ട് പരിഗണിക്കാതെ തന്നെ, അത് ലാറ്റിൻ അക്ഷരങ്ങൾ മാത്രമായി പ്രിൻ്റ് ചെയ്യും.


ഞാൻ കുറച്ച് കാലമായി IBus ഉപയോഗിക്കുന്നു, മറ്റ് സിസ്റ്റങ്ങളെക്കുറിച്ചുള്ള എൻ്റെ അറിവ് വളരെ ഉപരിപ്ലവമാണ്. ഇൻറർനെറ്റിലെ അവലോകനങ്ങൾ അനുസരിച്ച്, Fctix കൂടുതൽ പ്രവർത്തനക്ഷമവും ചൈനീസ് ടെക്‌സ്‌റ്റ് നൽകുന്നതിന് കൂടുതൽ അനുയോജ്യവുമാണ്. എന്തായാലും, ചൈനീസ് ടെക്‌സ്‌റ്റുകളിൽ പ്രവർത്തിക്കുമ്പോൾ ഞാൻ IBus-ൽ പൂർണ്ണമായും സംതൃപ്തനാണ്, വ്യത്യാസങ്ങൾ അടിസ്ഥാനപരമായിരിക്കരുത്. എനിക്ക് അവസാനമായി Fctix ഉപയോഗിക്കേണ്ടി വന്നപ്പോൾ (2 വർഷം മുമ്പ്), കഴ്‌സർ ഒരു ടെക്‌സ്‌റ്റ് ഫീൽഡിലല്ലെങ്കിൽ ലേഔട്ടുകൾ മാറാൻ ചട്ടക്കൂട് എന്നെ അനുവദിച്ചില്ല. ഈ പ്രശ്നം ഇപ്പോൾ ശരിയാക്കിയിട്ടുണ്ടെന്ന് ഞാൻ പ്രതീക്ഷിക്കുന്നു.


വിവിധ സ്ക്രിപ്റ്റുകൾ ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്നതിനുള്ള മറ്റൊരു സഹായം സിലിക്കൺ കീബോർഡ് കവറുകളാണ്. ചൈനീസ് ഓൺലൈൻ വിപണികൾ ഓവർലേകൾ (保护膜 അല്ലെങ്കിൽ 键盘膜) വാഗ്ദാനം ചെയ്യുന്നു ആപ്പിൾ മാജിക്വൈവിധ്യമാർന്ന സ്ക്രിപ്റ്റുകൾക്കുള്ള കീബോർഡ്. ഒരു ചൈനീസ് ഇതര വിതരണക്കാരൻ്റെ ഉദാഹരണം. എന്നാൽ ആപ്പിൾ മാജിക്കിൻ്റെ മൂന്ന് തലമുറകൾ നിർമ്മിച്ചത് (ഓരോന്നും യുഎസ്എ, യൂറോപ്പ്, ജപ്പാൻ എന്നിവയ്‌ക്കായുള്ള പരിഷ്‌ക്കരണങ്ങളിൽ), ചൈനീസ് പകർപ്പുകൾ ലീനിയർ അളവുകളിലും കീ ലേഔട്ടിലും വ്യത്യാസപ്പെട്ടിരിക്കുന്നുവെന്ന് ഓർമ്മിക്കുക. ചില സമയങ്ങളിൽ, കമ്പ്യൂട്ടർ കീബോർഡുകൾക്ക് ഒരൊറ്റ മാനദണ്ഡം ഇല്ലെന്നതിൽ ഞാൻ ഖേദിക്കുന്നു.


കീപ്രസ് സിഗ്നൽ പരിവർത്തനത്തിലേക്കുള്ള ഒരു ദ്രുത റഫറൻസ്

അമർത്തിയ കീയുടെ ഡിജിറ്റൽ കോഡ് അതിൻ്റെ മൂല്യം നിരവധി തവണ മാറ്റുന്നു.

  1. സ്കാൻകോഡ്:ഒരു കീ അമർത്തുമ്പോൾ, കീബോർഡ് (അല്ലെങ്കിൽ ഡ്രൈവർ?) Linux കേർണലിലേക്ക് അയയ്ക്കുന്നു സ്കാൻകോഡ്.
  2. കീകോഡ്:അടുത്തത് കേർണലിൽ സ്കാൻകോഡ്ആയി പരിവർത്തനം ചെയ്തു കീകോഡ്(ലിനക്സ് ഇൻപുട്ട് API സബ്സിസ്റ്റം). udev, keyfuzz, setkeycodes എന്നീ പ്രോഗ്രാമുകൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് പരിവർത്തനം നിയന്ത്രിക്കാനാകും.
  3. കീസിം:എക്സ് വിൻഡോ സിസ്റ്റം കേർണലിൽ നിന്ന് സ്വീകരിക്കുന്നു കീകോഡ്എന്നതിലേക്ക് അത് പ്രക്ഷേപണം ചെയ്യുന്നു കീസിം- ക്ലയൻ്റ് പ്രോഗ്രാമിന് ഇൻപുട്ടായി ലഭിക്കുന്ന അവസാന പ്രതീകമാണിത്. XKB അല്ലെങ്കിൽ xmodmap (ഒഴിവാക്കിയത്) വഴിയാണ് പരിവർത്തനം ക്രമീകരിച്ചിരിക്കുന്നത്.

മുകളിലെ ശ്രേണിയിൽ നിന്ന്, ഘട്ടത്തിൽ കീകൾ വീണ്ടും അസൈൻ ചെയ്യുന്നത് വ്യക്തമാണ് സ്കാൻകോഡ് > കീകോഡ്കെഎക്സ്ബിയിൽ ഇടപെടാത്തതിനാൽ അഭികാമ്യമാണ്.


udev സജ്ജീകരണ നിർദ്ദേശങ്ങൾ

പ്രക്ഷേപണം സ്കാൻകോഡ്വി കീകോഡ്ഓരോ ഇൻപുട്ട് ഉപകരണത്തിനും സ്വതന്ത്രമായി ചെയ്യപ്പെടുന്നു, അതിനാൽ നിങ്ങൾ ആദ്യം കീബോർഡിൻ്റെ അദ്വിതീയ ഐഡൻ്റിഫയർ കണ്ടെത്തേണ്ടതുണ്ട് (വാസ്തവത്തിൽ, ബട്ടണുകളുള്ള ഒരു വലിയ ക്ലാസ് പെരിഫറൽ ഉപകരണങ്ങളുമായി evdev പ്രവർത്തിക്കുന്നു - എലികൾ മുതൽ പ്രിൻ്ററുകൾ, വെബ്‌ക്യാമുകൾ വരെ). Arch Linux ഉപയോക്താക്കൾക്ക് ഇനിപ്പറയുന്ന സ്ക്രിപ്റ്റ് ഉപയോഗിക്കാം (മറ്റ് വിതരണങ്ങൾക്ക്, പാതകൾ ക്രമീകരിക്കേണ്ടി വന്നേക്കാം):


/dev/input/by-id/* എന്നതിലെ ഉപകരണത്തിനായുള്ള #!/bin/sh; പ്രതിധ്വനിപ്പിക്കുക $(അടിസ്ഥാന നാമം $DEVICE) DEVID=$(അടിസ്ഥാന നാമം $(റീഡ്‌ലിങ്ക് $DEVICE)) printf "evdev:input:b%sv%sp%se%s*\n\n" \`cat /sys/class/input /$DEVID/device/id/bustype` \ `cat /sys/class/input/$DEVID/device/id/vendor` \ `cat /sys/class/input/$DEVID/device/id/product` \ ` cat /sys/class/input/$DEVID/device/id/version` ചെയ്തു

ഒരേ ഉപകരണം വ്യത്യസ്ത പേരുകളിൽ നിരവധി പകർപ്പുകളിൽ സിസ്റ്റത്തിൽ അവതരിപ്പിക്കാൻ കഴിയും, എന്നാൽ ഐഡൻ്റിഫയർ സമാനമായിരിക്കും. ഉദാഹരണത്തിന്, എൻ്റെ കീബോർഡ് രണ്ട് ഉപകരണങ്ങളായി നിർവചിച്ചിരിക്കുന്നു:


usb-SEM_USB_Keyboard-event-if01 evdev:input:b0003v1a2cp0e24e0110* usb-SEM_USB_Keyboard-event-kbd evdev:input:b0003v1a2cp0e24e0110*

ശ്രദ്ധിക്കുക: ഐഡൻ്റിഫയർ ചെറുതാക്കാം (ഉദാഹരണത്തിന്, b0003v1a2cp0e24*), ഒരേ തരത്തിലുള്ള മോഡലുകളുടെ ഒരു ശ്രേണിക്ക് ഏകീകൃത നിയമങ്ങൾ സൃഷ്ടിക്കുമ്പോൾ ഇത് ഉപയോഗപ്രദമാകും. ഇവിടെ "*" എന്ന നക്ഷത്രചിഹ്നം ഒരു വൈൽഡ്കാർഡിൻ്റെ പങ്ക് വഹിക്കുന്നു.


ഇപ്പോൾ നിങ്ങൾ ഇനിപ്പറയുന്ന ഉള്ളടക്കം ഉപയോഗിച്ച് /etc/udev/hwdb.d/ എന്നതിൽ 90-custom-keyboard.hwdb ഫയൽ സൃഷ്‌ടിക്കേണ്ടതുണ്ട് (ഉദാഹരണത്തിന്, /usr/lib/udev/hwdb.d/60-keyboard.hwdb കാണുക) :


evdev:input:b0003v5c0ap0003e0110* # നിങ്ങളുടെ ഐഡി KEYBOARD_KEY_70039=f14 # കീ റീസൈൻമെൻ്റ്

KEYBOARD_KEY ലൈൻ ഒരു സ്‌പെയ്‌സിൽ ആരംഭിക്കുന്നു, ഇത് പ്രധാനമാണ്. കോൺഫിഗറേഷൻ അപ്ഡേറ്റ് ചെയ്യുക:


sudo udevadm hwdb --update && udevadm ട്രിഗർ

തുടർന്ന്, ഉപകരണം റീബൂട്ട് ചെയ്യുമ്പോൾ അല്ലെങ്കിൽ വീണ്ടും കണക്റ്റ് ചെയ്യുമ്പോൾ, കോൺഫിഗറേഷൻ സ്വയമേവ അപ്ഡേറ്റ് ചെയ്യും.


കീ പുനർവിന്യാസം ജോഡികളായി വ്യക്തമാക്കിയിരിക്കുന്നു KEYBOARD_KEY_ =. മൂല്യങ്ങൾ കീകോഡ്(ആവശ്യമാണ് ചെറിയക്ഷരം) സ്ഥിതിചെയ്യുന്നത് /usr/include/linux/input-event-codes.h (ഉബുണ്ടു 14.04-ന് /usr/include/linux/input.h എന്നതിൽ).

ടാഗ് ചേർക്കുക

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

ഓരോ Linux പ്രക്രിയയും ആരംഭത്തിൽ സ്വീകരിക്കുന്നു മൂന്ന്സിസ്റ്റം അതിനായി "ഫയൽ" തുറന്നു. ആദ്യത്തേത് (ഹാൻഡിൽ) തുറന്നിരിക്കുന്നു വായന, ഈ സ്റ്റാൻഡേർഡ് ഇൻപുട്ട് പ്രക്രിയ. ഒരു ഫയൽ ഡിസ്ക്രിപ്റ്റർ വ്യക്തമാക്കുന്നില്ലെങ്കിൽ എല്ലാ റീഡ് ഓപ്പറേഷനുകളും പ്രവർത്തിക്കുന്നത് സ്റ്റാൻഡേർഡ് ഇൻപുട്ടാണ്. രണ്ടാമത്തേത് (ഡിസ്ക്രിപ്റ്റർ 1) എഴുതാൻ തുറന്നിരിക്കുന്നു, ഇത് സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ട്പ്രക്രിയ. ഒരു ഫയൽ ഡിസ്ക്രിപ്റ്റർ അവയിൽ വ്യക്തമായി വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ എല്ലാ റൈറ്റ് ഓപ്പറേഷനുകളും ഇതിനൊപ്പം പ്രവർത്തിക്കും. അവസാനമായി, മൂന്നാമത്തെ ഡാറ്റ സ്ട്രീം (ഡിസ്ക്രിപ്റ്റർ 2) ഡയഗ്നോസ്റ്റിക് സന്ദേശങ്ങൾ ഔട്ട്പുട്ട് ചെയ്യാൻ ഉദ്ദേശിച്ചുള്ളതാണ്, അതിനെ വിളിക്കുന്നു സാധാരണ പിശക് ഔട്ട്പുട്ട്. പ്രോസസ്സ് ആരംഭിക്കുമ്പോൾ ഈ മൂന്ന് ഹാൻഡിലുകളും തുറന്നിരിക്കുന്നതിനാൽ, പ്രോസസ്സ് തന്നെ തുറന്ന ആദ്യത്തെ ഫയലിന് ഹാൻഡിൽ 3 ഉണ്ടായിരിക്കും.

പ്രോസസ്സ് തുറക്കുന്ന ഡാറ്റ സ്ട്രീമിലേക്ക് ഒരു ഹാൻഡിൽ കൈകാര്യം ചെയ്യുക. മുതൽ ആരംഭിക്കുന്ന വിവരണങ്ങൾ അക്കമിട്ടിരിക്കുന്നു. ഒരു പുതിയ ഡാറ്റ സ്ട്രീം തുറക്കുമ്പോൾ, അതിൻ്റെ ഡിസ്ക്രിപ്റ്ററിന് നിലവിൽ ഉപയോഗത്തിലില്ലാത്ത ഏറ്റവും കുറഞ്ഞ നമ്പർ നൽകും. മുൻകൂട്ടി തുറന്ന മൂന്ന് ഹാൻഡിലുകൾ: സ്റ്റാൻഡേർഡ് ഇൻപുട്ട് (), സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ട്(1) ഒപ്പം സാധാരണ പിശക് ഔട്ട്പുട്ട്(2) സ്റ്റാർട്ടപ്പിലെ പ്രക്രിയയ്ക്ക് നൽകിയത്.

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

സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ട്

ചില പ്രോഗ്രാമുകൾക്ക് ടെർമിനലിലേക്ക് മാത്രമല്ല, ഒരു ഫയലിലേക്കും ഔട്ട്പുട്ട് ചെയ്യാൻ കഴിയുമെന്ന വസ്തുത മെത്തോഡിയസ് ഇതിനകം നേരിട്ടിട്ടുണ്ട്, ഉദാഹരണത്തിന്, വ്യക്തമാക്കുമ്പോൾ വിവരങ്ങൾ പാരാമെട്രിക് കീമോണിറ്ററിൽ പ്രദർശിപ്പിക്കുന്നതിനുപകരം ഒരു ഫയലിലേക്ക് മാനുവൽ ടെക്‌സ്‌റ്റ് ഔട്ട്‌പുട്ട് ചെയ്‌തതിന് ശേഷം "-o" ഒരു ഫയൽ നാമം നൽകും. പ്രോഗ്രാം ഡെവലപ്പർമാർ അത്തരമൊരു കീ നൽകുന്നില്ലെങ്കിൽപ്പോലും, മോണിറ്ററിൽ പ്രദർശിപ്പിക്കുന്നതിനുപകരം ഒരു ഫയലിൽ പ്രോഗ്രാം ഔട്ട്പുട്ട് സംരക്ഷിക്കുന്നതിനുള്ള മറ്റൊരു മാർഗം മെത്തോഡിയസിന് അറിയാം: ഒരു ">" ചിഹ്നം ഇടുക, അതിനുശേഷം ഫയലിൻ്റെ പേര് സൂചിപ്പിക്കുക. അങ്ങനെ, മെത്തോഡിയസ് ഇതിനകം ഹ്രസ്വമായി സൃഷ്ടിച്ചു ടെക്സ്റ്റ് ഫയലുകൾ(സ്ക്രിപ്റ്റുകൾ) ക്യാറ്റ് യൂട്ടിലിറ്റി ഉപയോഗിക്കുന്നു (ഫയലുകളിലേക്കും ഡയറക്‌ടറികളിലേക്കും ആക്‌സസ് പ്രോസസ്സ് എന്ന പ്രഭാഷണം കാണുക).

$ cat > textfile ഇതൊരു ഉദാഹരണ ഫയലാണ്. ^D $ ls -l ടെക്സ്റ്റ്ഫയൽ -rw-r--r-- 1 രീതി രീതി 23 നവംബർ 15 16:06 ടെക്സ്റ്റ്ഫയൽ

ഉദാഹരണം 2. ഒരു ഫയലിലേക്ക് സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ട് റീഡയറക്‌ട് ചെയ്യുന്നു

">" ചിഹ്നത്തിൻ്റെ ഉപയോഗം, തീർച്ചയായും, പൂച്ച യൂട്ടിലിറ്റിയുടെ കഴിവുകൾ വികസിപ്പിച്ചില്ല. മാത്രമല്ല, ഈ ഉദാഹരണത്തിലെ പൂച്ചയ്ക്ക് നിന്ന് ലഭിച്ചില്ല ഷെൽപരാമീറ്ററുകളില്ല: “>” ചിഹ്നമില്ല, തുടർന്നുള്ള ഫയലിൻ്റെ പേരില്ല. ഈ സാഹചര്യത്തിൽ, ഔട്ട്പുട്ട് ഡാറ്റ എവിടെ അവസാനിക്കുമെന്ന് അറിയാതെ (താൽപ്പര്യം പോലും ഇല്ല!) പൂച്ച പതിവുപോലെ പ്രവർത്തിച്ചു: മോണിറ്റർ സ്ക്രീനിലോ ഫയലിലോ മറ്റെവിടെയെങ്കിലുമോ. ഔട്ട്‌പുട്ട് തന്നെ അന്തിമ ലക്ഷ്യസ്ഥാനത്ത് എത്തുന്നുവെന്ന് ഉറപ്പാക്കുന്നതിന് പകരം (അത് ഒരു വ്യക്തിയോ ഫയലോ ആകട്ടെ), പൂച്ച എല്ലാ ഡാറ്റയും അയയ്‌ക്കുന്നു സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ട്(stdout എന്ന് ചുരുക്കി).

സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ട് മാറ്റിസ്ഥാപിക്കുന്നത് ഷെല്ലിനുള്ള ഒരു ജോലിയാണ്. ഈ ഉദാഹരണത്തിൽ, ഷെൽ സൃഷ്ടിക്കുന്നു ശൂന്യമായ ഫയൽ, ">" ചിഹ്നത്തിന് ശേഷം ആരുടെ പേര് വ്യക്തമാക്കിയിരിക്കുന്നു, കൂടാതെ ഈ ഫയലിൻ്റെ ഡിസ്ക്രിപ്റ്റർ ക്യാറ്റ് പ്രോഗ്രാമിലേക്ക് നമ്പർ 1 ആയി കൈമാറുന്നു ( സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ട്). ഇത് വളരെ ലളിതമായി ചെയ്യുന്നു. ഫയലുകളിലേക്കും ഡയറക്‌ടറികളിലേക്കും ആക്‌സസ് പ്രോസസ്സ് എന്ന പ്രഭാഷണത്തിൽ, ഷെല്ലിൽ നിന്ന് കമാൻഡുകൾ എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്നതിനെക്കുറിച്ച് ഞങ്ങൾ സംസാരിച്ചു. പ്രത്യേകിച്ചും, ഫോർക്ക് () എക്സിക്യൂട്ട് ചെയ്ത ശേഷം, സമാനമായ രണ്ട് പ്രക്രിയകൾ പ്രത്യക്ഷപ്പെടുന്നു, അതിലൊന്ന് - കുട്ടി - സ്വയം പകരം കമാൻഡ് പ്രവർത്തിപ്പിക്കണം (എക്സിക്യൂട്ട് എക്സിക്യൂട്ട് ()). അതിനാൽ, അതിനുമുമ്പ് അവൻ അടയ്ക്കുന്നുസ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ട് (ഹാൻഡിൽ 1 സ്വതന്ത്രമാണ്) കൂടാതെ തുറക്കുന്നുഫയൽ (ലിങ്ക് ചെയ്‌തിരിക്കുന്നു ആദ്യംഒരു സ്വതന്ത്ര ഡിസ്ക്രിപ്റ്റർ, അതായത് 1), കൂടാതെ സമാരംഭിക്കുന്ന കമാൻഡിന് ഒന്നും അറിയേണ്ടതില്ല: അതിൻ്റെ സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ട് ഇതിനകം മാറ്റിസ്ഥാപിച്ചു. ഈ പ്രവർത്തനത്തെ വിളിക്കുന്നു തിരിച്ചുവിടൽസ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ട്. ഫയൽ ഇതിനകം നിലവിലുണ്ടെങ്കിൽ, ഷെൽ അത് വീണ്ടും എഴുതും, മുമ്പ് അതിൽ ഉണ്ടായിരുന്നതെല്ലാം പൂർണ്ണമായും നശിപ്പിക്കും. അതിനാൽ, ടെക്സ്റ്റ്ഫയലിലേക്ക് ഡാറ്റ എഴുതുന്നത് തുടരുന്നതിന് മെത്തോഡിയസിന് മറ്റൊരു പ്രവർത്തനം ആവശ്യമാണ് - “>>”.

$ cat >> textfile ഉദാഹരണം 1. ^D $ cat textfile ഇതൊരു ഉദാഹരണ ഫയലാണ്. ഉദാഹരണം 1. $

ഉദാഹരണം 3. സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടിൻ്റെ നോൺ-ഡിസ്ട്രക്റ്റീവ് റീഡയറക്ഷൻ

മെത്തോഡിയസിന് ആവശ്യമായ ഫലം കൃത്യമായി ലഭിച്ചു: അടുത്ത കമാൻഡിൻ്റെ സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടിൽ നിന്ന് ഇതിനകം നിലവിലുള്ള ഫയലിൻ്റെ അവസാനം വരെ അദ്ദേഹം ഡാറ്റ ചേർത്തു.

സ്റ്റാൻഡേർഡ് ഔട്ട്‌പുട്ട് ഓരോ പ്രോസസും ആരംഭിക്കുമ്പോൾ സിസ്റ്റം തുറക്കുന്ന ഒരു ഡാറ്റ സ്ട്രീം, പ്രോസസ്സ് വഴി ഡാറ്റ ഔട്ട്പുട്ടിനായി ഉദ്ദേശിച്ചിട്ടുള്ളതാണ്.

സ്റ്റാൻഡേർഡ് ഇൻപുട്ട്

അതുപോലെ, പ്രോഗ്രാമിൻ്റെ ഇൻപുട്ടിലേക്ക് ഡാറ്റ കൈമാറാൻ, നിങ്ങൾക്ക് ഉപയോഗിക്കാം സ്റ്റാൻഡേർഡ് ഇൻപുട്ട്(എസ്ടിഡിൻ എന്ന് ചുരുക്കി). കമാൻഡ് ലൈനിൽ പ്രവർത്തിക്കുമ്പോൾ, കീബോർഡിൽ നിന്ന് ഉപയോക്താവ് നൽകിയ പ്രതീകങ്ങളാണ് സ്റ്റാൻഡേർഡ് ഇൻപുട്ട്. കമാൻഡ് ഷെൽ ഉപയോഗിച്ച് ഒരു ഫയലിൽ നിന്നുള്ള ഡാറ്റ നൽകിക്കൊണ്ട് സ്റ്റാൻഡേർഡ് ഇൻപുട്ട് റീഡയറക്‌ട് ചെയ്യാൻ കഴിയും. ചിഹ്നം "< » служит для перенаправления содержимого файла на стандартный ввод программе. Например, если вызвать утилиту sort без параметра, она будет читать строки со стандартного ввода. Команда « sort < имя_файла» ഫയലിൽ നിന്നുള്ള ഡാറ്റ ഇൻപുട്ടായി ക്രമീകരിക്കും.

$sort< textfile Пример 1. Это файл для примеров. $

ഉദാഹരണം 4. ഒരു ഫയലിൽ നിന്ന് സാധാരണ ഇൻപുട്ട് റീഡയറക്‌ട് ചെയ്യുന്നു

ഈ കമാൻഡിൻ്റെ പ്രഭാവം സോർട്ട് ടെക്‌സ്‌റ്റ്‌ഫയൽ കമാൻഡിന് സമാനമാണ്, വ്യത്യാസം എപ്പോൾ "< », sort получает данные со стандартного ввода, ничего не зная о файле « textfile », откуда они поступают. Механизм работы shell в ഈ സാഹചര്യത്തിൽഔട്ട്പുട്ട് റീഡയറക്ഷൻ പോലെ തന്നെ: ഷെൽ "ടെക്സ്റ്റ്ഫയൽ" ഫയലിൽ നിന്നുള്ള ഡാറ്റ വായിക്കുന്നു, സോർട്ട് യൂട്ടിലിറ്റി പ്രവർത്തിപ്പിക്കുകയും ഫയലിൻ്റെ ഉള്ളടക്കങ്ങൾ അതിൻ്റെ സ്റ്റാൻഡേർഡ് ഇൻപുട്ടിലേക്ക് കൈമാറുകയും ചെയ്യുന്നു.

ഓപ്പറേഷൻ ">" എന്നത് ഓർമിക്കേണ്ടതാണ്. വിനാശകരമായ: ഇത് എല്ലായ്പ്പോഴും പൂജ്യം നീളമുള്ള ഒരു ഫയൽ സൃഷ്ടിക്കുന്നു. അതിനാൽ, ഡാറ്റ അടുക്കുന്നതിന് വേണ്ടി ഫയലിൽഅടുക്കൽ തുടർച്ചയായി പ്രയോഗിക്കണം < файл >new_fileകൂടാതെ എം.വി new_file ഫയൽ. കമാൻഡ് കാണുക ടീം< файл >അതേ_ഫയൽഅത് പൂജ്യം നീളത്തിലേക്ക് ചുരുക്കും!

സ്റ്റാൻഡേർഡ് ഇൻപുട്ട് ഒരു ഡാറ്റ സ്ട്രീം ആരംഭിക്കുന്ന സമയത്ത് ഓരോ പ്രോസസിനും വേണ്ടി സിസ്റ്റം തുറക്കുകയും ഡാറ്റ എൻട്രിക്കായി ഉദ്ദേശിച്ചിട്ടുള്ളതുമാണ്.

സാധാരണ പിശക് ഔട്ട്പുട്ട്

ആദ്യ ഉദാഹരണവും വഴിതിരിച്ചുവിടൽ വ്യായാമവും എന്ന നിലയിൽ, തൻ്റെ cat.info ഫയലിൽ പൂച്ചയ്ക്ക് ഒരു ഗൈഡ് എഴുതാൻ മെത്തോഡിയസ് തീരുമാനിച്ചു:

$ വിവരം പൂച്ച > cat.info വിവരം: നോഡ് എഴുതുക (coreutils.info.bz2)cat invocation... വിവരം: പൂർത്തിയായി. $ head -1 cat.info ഫയൽ: coreutils.info, നോഡ്: പൂച്ച ഇൻവോക്കേഷൻ, അടുത്തത്: ടാക് ഇൻവോക്കേഷൻ, മുകളിൽ: മുഴുവൻ ഫയലുകളുടെയും ഔട്ട്പുട്ട് $

ഉദാഹരണം 5. സാധാരണ പിശക് ഔട്ട്പുട്ട്

ആശ്ചര്യപ്പെട്ട മെത്തോഡിയസ്, ഒരു ഫയലിലേക്ക് പോകാനുള്ള നിർദ്ദേശങ്ങൾ ഉണ്ടായിരുന്നിട്ടും, ഇൻഫോ കമാൻഡിൻ്റെ രണ്ട് വരികൾ ടെർമിനലിലെത്തി. വ്യക്തമായും, ഈ വരികൾ ഉൾപ്പെടുത്തിയിട്ടില്ല സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ട്പ്രോഗ്രാം ഔട്ട്പുട്ട് ചെയ്യേണ്ട മാനുവലുമായി അവ നേരിട്ട് ബന്ധപ്പെടാത്തതിനാൽ, ജോലിയുടെ പുരോഗതിയെക്കുറിച്ച് ഉപയോക്താവിനെ അറിയിക്കുന്നു: ഒരു ഫയലിലേക്ക് മാനുവൽ എഴുതുക. ഇത്തരത്തിലുള്ളതിന് ഡയഗ്നോസ്റ്റിക് സന്ദേശങ്ങൾ, അതുപോലെ പ്രോഗ്രാം എക്സിക്യൂഷൻ സമയത്ത് സംഭവിച്ച പിശക് സന്ദേശങ്ങൾ, Linux നൽകുന്നു സാധാരണ പിശക് ഔട്ട്പുട്ട്(stderr എന്ന് ചുരുക്കി).

സ്റ്റാൻഡേർഡ് എറർ ഔട്ട്‌പുട്ട് ഓരോ പ്രോസസ്സ് ആരംഭിക്കുമ്പോൾ സിസ്റ്റം തുറക്കുന്ന ഡാറ്റ സ്ട്രീം ഡയഗ്നോസ്റ്റിക് സന്ദേശങ്ങൾ, പ്രക്രിയ വഴി ഔട്ട്പുട്ട്.

സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടിനൊപ്പം സ്റ്റാൻഡേർഡ് പിശക് ഔട്ട്പുട്ട് ഉപയോഗിക്കുന്നത്, പ്രോഗ്രാമിൻ്റെ യഥാർത്ഥ ഔട്ട്പുട്ടിനെ വിവിധ അനുബന്ധ വിവരങ്ങളിൽ നിന്ന് വേർതിരിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു, ഉദാഹരണത്തിന്, അവയെ വ്യത്യസ്ത ഫയലുകളിലേക്ക് നയിക്കുക. "2" എന്ന ക്യാരക്ടർ കോമ്പിനേഷൻ ഉപയോഗിച്ച് സ്റ്റാൻഡേർഡ് എറർ ഔട്ട്പുട്ട് സ്റ്റാൻഡേർഡ് I/O പോലെ റീഡയറക്‌ട് ചെയ്യാവുന്നതാണ്.

$ info cat > cat.info 2> cat.stderr $ cat cat.stderr വിവരം: നോഡ് (coreutils.info.bz2)കാറ്റ് ഇൻവോക്കേഷൻ എഴുതുക... വിവരം: പൂർത്തിയായി. $

ഉദാഹരണം 6. സാധാരണ പിശക് ഔട്ട്പുട്ട് വഴിതിരിച്ചുവിടുക

ഇത്തവണ ടെർമിനലിലേക്ക് ഒന്നും എത്തിയില്ല, സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ട് cat.info ഫയലിലേക്ക് പോയി, സ്റ്റാൻഡേർഡ് പിശക് ഔട്ട്പുട്ട് cat.stderr-ലേക്ക് പോയി. “>”, “2” എന്നിവയ്‌ക്ക് പകരം, മെത്തോഡിയസിന് “1>”, “2>” എന്നിവ എഴുതാമായിരുന്നു. ഈ കേസിലെ അക്കങ്ങൾ ഡിസ്ക്രിപ്റ്റർ നമ്പറുകളെ സൂചിപ്പിക്കുന്നു തുറക്കാവുന്നഫയലുകൾ. ചില യൂട്ടിലിറ്റി ലഭിക്കുമെന്ന് പ്രതീക്ഷിക്കുന്നുവെങ്കിൽ തുറക്കുകഒരു സംഖ്യയുള്ള ഒരു ഡിസ്ക്രിപ്റ്റർ, പറയുക, 4, തുടർന്ന് അത് സമാരംഭിക്കാൻ നിർബന്ധമായുംനിങ്ങൾ "4>" കോമ്പിനേഷൻ ഉപയോഗിക്കേണ്ടതുണ്ട്.

എന്നിരുന്നാലും, ചിലപ്പോൾ, സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടും സ്റ്റാൻഡേർഡ് പിശക് ഔട്ട്പുട്ടും വേർതിരിക്കുന്നതിന് പകരം ഒരൊറ്റ ഫയലിലേക്ക് സംയോജിപ്പിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നു. IN കമാൻഡ് ഷെൽഇതിനായി ബാഷിന് ഒരു പ്രത്യേക ക്രമമുണ്ട്, "2>&1". ഇതിനർത്ഥം "സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടിൻ്റെ അതേ സ്ഥലത്തേക്ക് നേരിട്ടുള്ള സ്റ്റാൻഡേർഡ് പിശക് ഔട്ട്പുട്ട്":

$ വിവരം പൂച്ച > cat.info 2>&1 $ തല -3 cat.info വിവരം: നോഡ് എഴുതുക (coreutils.info.bz2)കാറ്റ് ഇൻവോക്കേഷൻ... വിവരം: പൂർത്തിയായി. ഫയൽ: coreutils.info, നോഡ്: പൂച്ചയെ ക്ഷണിക്കൽ, അടുത്തത്: ടാക് ഇൻവോക്കേഷൻ, മുകളിൽ: മുഴുവൻ ഫയലുകളുടെയും ഔട്ട്പുട്ട് $

ഉദാഹരണം 7. സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടും സ്റ്റാൻഡേർഡ് എറർ ഔട്ട്പുട്ടും സംയോജിപ്പിക്കുന്നു

ഈ ഉദാഹരണത്തിൽ, റീഡയറക്‌ടുകളുടെ ക്രമം പ്രധാനമാണ്: കമാൻഡ് ലൈനിൽ, സ്റ്റാൻഡേർഡ് ഔട്ട്‌പുട്ട് (“> cat.info”) എവിടെയാണ് റീഡയറക്‌ട് ചെയ്യേണ്ടതെന്ന് മെത്തോഡിയസ് ആദ്യം സൂചിപ്പിച്ചു, അതിനുശേഷം മാത്രമേ സ്റ്റാൻഡേർഡ് പിശക് ഔട്ട്‌പുട്ട് അവിടെ റീഡയറക്‌ട് ചെയ്യാൻ ഉത്തരവിടൂ. അയാൾ അത് മറ്റൊരു രീതിയിൽ ചെയ്തിരുന്നെങ്കിൽ (“2>&1 > cat.info”), ഫലം അപ്രതീക്ഷിതമായേനെ: സാധാരണ ഔട്ട്‌പുട്ട് മാത്രമേ ഫയലിലേക്ക് പോകൂ, കൂടാതെ ടെർമിനലിൽ ഡയഗ്നോസ്റ്റിക് സന്ദേശങ്ങൾ പ്രത്യക്ഷപ്പെടുമായിരുന്നു. എന്നിരുന്നാലും, ഇവിടെയുള്ള ലോജിക് അയൺക്ലാഡ് ആണ്: ഓപ്പറേഷൻ "2>&1" എക്സിക്യൂട്ട് ചെയ്ത സമയത്ത്, സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ട് ടെർമിനലുമായി ബന്ധപ്പെട്ടിരുന്നു, അതായത് ശേഷംഎക്സിക്യൂട്ട് ചെയ്യുമ്പോൾ, സാധാരണ പിശക് ഔട്ട്പുട്ടും ടെർമിനലുമായി ബന്ധപ്പെടുത്തും. ഒരു ഫയലിലേക്ക് സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടിൻ്റെ തുടർന്നുള്ള റീഡയറക്‌ട്, തീർച്ചയായും, സ്റ്റാൻഡേർഡ് എറർ ഔട്ട്‌പുട്ടിനെ ഒരു തരത്തിലും ബാധിക്കില്ല. "&നമ്പർ" എന്ന നിർമ്മാണത്തിലെ നമ്പർ സംഖ്യയാണ് തുറക്കുകവിവരണക്കാരൻ. നാലാമത്തെ ഡിസ്ക്രിപ്റ്ററിലേക്ക് എഴുതുന്ന മുകളിലുള്ള യൂട്ടിലിറ്റി ഷെല്ലിൽ എഴുതിയിട്ടുണ്ടെങ്കിൽ, അത് " >&4" പോലെയുള്ള റീഡയറക്‌ഷനുകൾ ഉപയോഗിക്കും. ബുദ്ധിമുട്ടുള്ള നിർമ്മാണം "> ഫയൽ 2>&1" ടൈപ്പുചെയ്യുന്നത് ഒഴിവാക്കാൻ, ബാഷ് ചുരുക്കെഴുത്തുകൾ ഉപയോഗിക്കുന്നു: " &> ഫയൽ" അല്ലെങ്കിൽ, അതേ, " >& ഫയൽ".

എവിടെയും റീഡയറക്‌ട് ചെയ്യുക

പ്രോഗ്രാമിൻ്റെ ചില ഡാറ്റ ഔട്ട്പുട്ട് ആവശ്യമില്ലെന്ന് ചിലപ്പോൾ അറിയാം. ഉദാഹരണത്തിന്, സാധാരണ പിശക് ഔട്ട്പുട്ടിൽ നിന്നുള്ള മുന്നറിയിപ്പുകൾ. ഈ സാഹചര്യത്തിൽ, നിങ്ങൾക്ക് സ്റ്റാൻഡേർഡ് പിശക് ഔട്ട്പുട്ടിലേക്ക് റീഡയറക്ട് ചെയ്യാൻ കഴിയും ഫയൽ-ഹോൾ, ഡാറ്റ നശിപ്പിക്കാൻ പ്രത്യേകം രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത് - /dev/null . ഈ ഫയലിൽ എഴുതിയതെന്തും വെറുതെ വലിച്ചെറിയപ്പെടും എവിടെയും സംരക്ഷിക്കപ്പെടുകയില്ല.

$ വിവരം പൂച്ച > cat.info 2 > /dev/null $

ഉദാഹരണം 8. /dev/null-ലേക്ക് റീഡയറക്‌ട് ചെയ്യുക

അതേ രീതിയിൽ തന്നെ, /dev/null ലേക്ക് അയച്ചുകൊണ്ട് നിങ്ങൾക്ക് സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടിൽ നിന്ന് മുക്തി നേടാനാകും.

കമാൻഡ് ലൈനിൽ കമാൻഡുകൾ ടൈപ്പ് ചെയ്തുകൊണ്ട് ലിനക്സിൽ കുറച്ചുകാലം പ്രവർത്തിച്ചിരുന്ന മെത്തോഡിയസ്, ഷെല്ലുമായി ആശയവിനിമയം നടത്തുമ്പോൾ ചില സൗകര്യങ്ങൾ ഉപദ്രവിക്കില്ല എന്ന നിഗമനത്തിലെത്തി. കീ ഉപയോഗിച്ച് നൽകിയ സ്ട്രിംഗ് എഡിറ്റുചെയ്യാനുള്ള കഴിവാണ് ഈ സൗകര്യങ്ങളിൽ ഒന്ന് ബാക്ക്സ്പേസ്(അവസാന പ്രതീകം നീക്കം ചെയ്യുന്നു), "^W" (ഒരു വാക്ക് നീക്കം ചെയ്യുന്നു) "^U" (മുഴുവൻ വരിയും നീക്കം ചെയ്യുന്നു) - സ്വയം നൽകിയിരിക്കുന്നു. ലിനക്സ് ടെർമിനൽ. ഈ കമാൻഡുകൾ ഏതെങ്കിലും ലൈൻ-ബൈ-ലൈൻ ഇൻപുട്ടിനായി പ്രവർത്തിക്കുന്നു: ഉദാഹരണത്തിന്, പാരാമീറ്ററുകളില്ലാതെ ക്യാറ്റ് പ്രോഗ്രാം പ്രവർത്തിപ്പിക്കുന്നത് ടെർമിനലിൽ നിന്ന് നൽകിയ ലൈനുകൾ ഉടനടി പ്രദർശിപ്പിക്കും. ചില കാരണങ്ങളാൽ സ്ക്രീനിൽ ഒരു വരിയിൽ മാലിന്യം ഉണ്ടെങ്കിൽ, നിങ്ങൾക്ക് "^R" അമർത്താം ( ആർ edraw) - സിസ്റ്റം ഒരു പുതിയ വരിയിൽ ഇൻപുട്ട് ബഫറിൻ്റെ ഉള്ളടക്കം പ്രദർശിപ്പിക്കും.

പാരാമീറ്ററുകളില്ലാത്ത പൂച്ച "^D" (ഇൻപുട്ടിൻ്റെ അവസാനം) കമാൻഡ് ഉപയോഗിച്ച് പൂർത്തിയാക്കണമെന്ന് മെത്തോഡിയസ് മറന്നില്ല. ടെർമിനലിൽ നിന്ന് പ്രവേശിക്കുമ്പോൾ ഈ കമാൻഡ്, മുമ്പത്തേത് പോലെ, സിസ്റ്റം വ്യാഖ്യാനിക്കുന്നു. സിസ്റ്റം മറ്റ് ചില നിയന്ത്രണ പ്രതീകങ്ങൾ (ഉദാഹരണത്തിന്, "^C" അല്ലെങ്കിൽ "^Z") ആയി മാറ്റുന്നു സിഗ്നലുകൾ. വാസ്തവത്തിൽ, സിസ്റ്റം വ്യാഖ്യാനിക്കുന്ന എല്ലാ നിയന്ത്രണ പ്രതീകങ്ങളും stty കമാൻഡ് ഉപയോഗിച്ച് പുനഃക്രമീകരിക്കാൻ കഴിയും. കോൺഫിഗർ ചെയ്യാനാകുന്നവയുടെ പൂർണ്ണമായ ലിസ്റ്റ് stty -a കമാൻഡ് നൽകുന്നു:

$ stty -a localhost 38400 baud; വരികൾ 30; നിരകൾ 80; ലൈൻ = 0; intr = ^C; പുറത്തുകടക്കുക = ^\; മായ്ക്കുക = ^?; കൊല്ലുക = ^U; eof = ^D; eol = ; eol2 = ; ആരംഭിക്കുക = ^ Q; നിർത്തുക = ^S; susp = ^Z; rprnt = ^R; വെരസെ = ^W; അടുത്തത് = ^V; ഫ്ലഷ് = ^ O; മിനിറ്റ് = 1; സമയം = 0; -parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8 opostrnocrolclc - on onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

ഉദാഹരണം 1. ടെർമിനൽ ലൈൻ ക്രമീകരണങ്ങൾ

അത്തരം വിപുലമായ സാധ്യതകൾ കണ്ടപ്പോൾ, മെത്തോഡിയസ് ഉടൻ തന്നെ മാന്വൽ (man stty) വായിക്കാൻ തുടങ്ങി, പക്ഷേ അതിൽ കാര്യമായ പ്രയോജനം കണ്ടെത്തിയില്ല. നിയന്ത്രണ പ്രതീകങ്ങളിൽ (രണ്ടാമത്തേത് മുതൽ നാലാമത്തേത് വരെയുള്ള വരികൾ) രസകരമാണ്, “^S”, “^Q” എന്നിവ നിങ്ങൾക്ക് യഥാക്രമം താൽക്കാലികമായി നിർത്താനും ടെർമിനലിലേക്ക് ഔട്ട്പുട്ട് പുനരാരംഭിക്കാനും കഴിയും (ഒരുപാട് ടെക്‌സ്‌റ്റ് ഇതിനകം ഔട്ട്‌പുട്ട് ചെയ്‌തിട്ടുണ്ടെങ്കിൽ ഒപ്പം നിങ്ങൾക്ക് അത് വായിക്കാൻ സമയമില്ല). മായ്ക്കൽ ക്രമീകരണം (ഒരു പ്രതീകം ഇല്ലാതാക്കുന്നു) കീ നൽകുന്ന നിയന്ത്രണ പ്രതീകവുമായി പൊരുത്തപ്പെടുന്നത് നിങ്ങൾ ശ്രദ്ധിക്കും. ബാക്ക്സ്പേസ്അതായത് Linux വെർച്വൽ കൺസോൾ - “^? " പല ടെർമിനലുകളിലും കീ ബാക്ക്സ്പേസ്മറ്റൊരു പ്രതീകം നൽകുന്നു - "^H". അത് ആവശ്യമെങ്കിൽ പുനർ നിർവചിക്കുകക്രമീകരണം മായ്‌ക്കുക, നിങ്ങൾക്ക് “stty erase ^H” എന്ന കമാൻഡ് ഉപയോഗിക്കാം, കൂടാതെ “^H” (സൗകര്യാർത്ഥം) രണ്ട് പ്രതീകങ്ങളായി നൽകാൻ അനുവദിച്ചിരിക്കുന്നു: “^”, “H”.

ഒടുവിൽ, വരെ നഷ്ടപ്പെടുത്തുകഅതിൻ്റെ നിയന്ത്രണ പ്രവർത്തനങ്ങളുടെ പ്രക്ഷേപണം ചെയ്ത ചിഹ്നം (ഉദാഹരണത്തിന്, ഇൻപുട്ടിനായി പ്രോഗ്രാം കൈമാറേണ്ടത് ആവശ്യമാണെങ്കിൽ ചിഹ്നംകോഡ് 3 ഉപയോഗിച്ച്, അതായത് “^C”), ഈ പ്രതീകം നൽകുന്നതിന് തൊട്ടുമുമ്പ് നിങ്ങൾ “^V” (lnext) കമാൻഡ് നൽകേണ്ടതുണ്ട്:

$ പൂച്ച | hexdump -C ഇപ്പോൾ Ctrl+C $ cat | അമർത്തുക hexdump -C ഇപ്പോൾ Ctrl+V, Ctrl+C, നൽകുക, Ctrl+D^C 00000000 f4 c5 d0 c5 d2 d8 20 43 74 72 6c 2b 56 2c 20 43 |ഇപ്പോൾ Ctrl+V, C| 00000010 74 72 6c 2b 43 2c 20 45 6e 74 65 72 20 c9 20 43 |trl+C, എൻ്റർ ചെയ്ത് സി| 00000020 74 72 6c 2b 44 03 0a |trl+D..| 00000027

ഉദാഹരണം 2. നിയന്ത്രണ പ്രതീകങ്ങൾ രക്ഷപ്പെടുന്നു

ഇവിടെ മെത്തോഡിയസ് താൻ ഉദ്ദേശിച്ചതുപോലെ പൂച്ചയുടെ ആദ്യ ജോലി തടസ്സപ്പെടുത്തി. അതേസമയം, ഇൻപുട്ട് സ്ട്രീമിനെ ഹെക്സാഡെസിമൽ പ്രാതിനിധ്യമാക്കി മാറ്റുന്ന ഫിൽട്ടറായ ഹെക്‌സ്ഡംപിലേക്ക് പോലും ഇത് എത്തിയില്ല, കാരണം പൂച്ചയ്ക്ക് ഒരു വരി പോലും പ്രോസസ്സ് ചെയ്യാൻ സമയമില്ല. രണ്ടാമത്തെ കേസിൽ, "^V" ന് ശേഷമുള്ള "^C" അതിൻ്റെ നിയന്ത്രണ അർത്ഥം നഷ്‌ടപ്പെടുകയും പ്രവേശിക്കുമ്പോൾ പ്രദർശിപ്പിക്കുകയും ചെയ്യുന്നു. -C സ്വിച്ച് ഉപയോഗിച്ച്, ഹെക്‌സ്‌ഡംപ് ഇൻപുട്ട് സ്ട്രീമിൻ്റെ ഒരു ടെക്‌സ്‌റ്റ് പ്രാതിനിധ്യവും ഔട്ട്‌പുട്ട് ചെയ്യുന്നു, പ്രിൻ്റ് ചെയ്യാനാകാത്ത പ്രതീകങ്ങളെ ഡോട്ടുകൾ ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നു. അതിനാൽ “^C” (ASCII കോഡ് 03) ഉം മടങ്ങിയതും നൽകുകഎൻഡ്-ഓഫ്-ലൈൻ പ്രതീകം (ASCII കോഡ് 0a, ദശാംശം - 12). ഹെക്‌സ്‌ഡംപ് ഇൻപുട്ടിൽ “^V” അല്ലെങ്കിൽ “^D” എന്നിവ നൽകിയിട്ടില്ല: അവ സിസ്റ്റം നിയന്ത്രണങ്ങളായി പ്രോസസ്സ് ചെയ്തു.

ടെർമിനലിലേക്കും പുറത്തേക്കും ഔട്ട്‌പുട്ട് ചെയ്യുമ്പോൾ ടെക്‌സ്‌റ്റ് എങ്ങനെ പ്രോസസ്സ് ചെയ്യുന്നു എന്നതുമായി ബന്ധപ്പെട്ട മറ്റ് stty ക്രമീകരണങ്ങൾ. അവ മാറുമ്പോൾ, കമാൻഡ് ഷെല്ലിനൊപ്പം പ്രവർത്തിക്കുന്നത് അസൗകര്യമാകും എന്ന അർത്ഥത്തിൽ മാത്രമാണ് അവ രസകരം. ഉദാഹരണത്തിന്, സ്‌ക്രീനിൽ ഉപയോക്താവ് ടൈപ്പ് ചെയ്യുന്നതെന്തും സിസ്റ്റം പ്രദർശിപ്പിക്കുന്നുണ്ടോ എന്ന് എക്കോ ക്രമീകരണം നിർണ്ണയിക്കുന്നു. എക്കോ പ്രവർത്തനക്ഷമമാക്കി, ഏതെങ്കിലും ആൽഫാന്യൂമെറിക് കീ അമർത്തുന്നത് (പ്രതീക എൻട്രി) സിസ്റ്റം (tty ഉപകരണം) കാരണമാകുന്നു ഔട്ട്പുട്ട് ചെയ്യുംഈ പ്രതീകം ടെർമിനലിലേക്ക്. കീബോർഡിൽ നിന്ന് പാസ്‌വേഡ് നൽകുമ്പോൾ ക്രമീകരണം പ്രവർത്തനരഹിതമാകും. അതേസമയം, കീബോർഡിൽ നിന്നുള്ള ഇൻപുട്ട് നടക്കുന്നില്ല എന്ന തോന്നലിൽ നിന്ന് രക്ഷപ്പെടാൻ പ്രയാസമാണ്. "i", "o", "cr", "nl" എന്നീ ഫോമുകളുടെ ഭാഗങ്ങൾ അടങ്ങുന്ന ക്രമീകരണങ്ങളിൽ സ്ഥിതി കൂടുതൽ മോശമാണ്. ചരിത്രപരമായ രണ്ട് പ്രതീകങ്ങളുള്ള എൻഡ്-ഓഫ്-ലൈൻ ചിഹ്നത്തിൻ്റെ ഇൻപുട്ടും ഔട്ട്‌പുട്ടും എങ്ങനെ പരിവർത്തനം ചെയ്യപ്പെടുന്നുവെന്ന് ഈ ക്രമീകരണങ്ങൾ നിയന്ത്രിക്കുന്നു ഒന്ന്, Linux-ൽ സ്വീകരിച്ചു. താക്കോൽ സംഭവിക്കാം നൽകുകടെർമിനൽ തെറ്റായ എൻഡ്-ഓഫ്-ലൈൻ പ്രതീകം നൽകുന്നു, പരിവർത്തനം അപ്രാപ്‌തമാക്കി. അപ്പോൾ പകരം നൽകുകനിങ്ങൾ "^ജെ" ഉപയോഗിക്കണം - യഥാർത്ഥത്തിൽ വരിയുടെ അവസാനവുമായി പൊരുത്തപ്പെടുന്ന പ്രതീകം.

എല്ലാ സാഹചര്യങ്ങളിലും, ടെർമിനൽ മനസ്സിലാക്കാൻ കഴിയാത്ത അവസ്ഥയിലായിരിക്കുമ്പോൾ, അത് പ്രതികരിക്കുന്നില്ല നൽകുക, ഇൻപുട്ട് കാണിക്കുന്നില്ല, പ്രതീകങ്ങൾ ഇല്ലാതാക്കുന്നില്ല, "ഘട്ടങ്ങളിൽ" വാചകം പ്രദർശിപ്പിക്കുന്നു, മുതലായവ, stty sane ഉപയോഗിച്ച് ടെർമിനൽ ക്രമീകരണങ്ങൾ "ചികിത്സിക്കാൻ" ശുപാർശ ചെയ്യുന്നു - stty യുടെ ഒരു പ്രത്യേക രൂപം ടെർമിനൽ ക്രമീകരണങ്ങൾ കുറച്ച് ഉപയോഗയോഗ്യമായ അവസ്ഥയിലേക്ക് പുനഃസജ്ജമാക്കുന്നു. . മനസ്സിലാക്കാൻ കഴിയാത്ത ഒരു ടെർമിനൽ അവസ്ഥ ഒരിക്കൽ സംഭവിക്കുകയാണെങ്കിൽ, ഉദാഹരണത്തിന്, അസാധാരണമായ ഒരു ടെർമിനലിന് ശേഷം സ്ക്രീൻ പ്രോഗ്രാം(vim എഡിറ്റർ അല്ലെങ്കിൽ mc ഷെൽ), നിങ്ങൾക്ക് റീസെറ്റ് കമാൻഡ് ഉപയോഗിക്കാം. അവൾ ടെർമിനൽ വീണ്ടും ക്രമീകരിക്കുന്നു പൂർണ്ണമായ അനുസരണംസിസ്റ്റം കോൺഫിഗറേഷനോടൊപ്പം (/etc/inittab ഫയലിൽ വ്യക്തമാക്കിയിരിക്കുന്നു, സിസ്റ്റം ബൂട്ട് സ്റ്റേജുകൾ ലെക്ചർ കാണുക) കൂടാതെ terminfo.

ടെർമിനൽ വിചിത്രമായി പെരുമാറുന്നുണ്ടെങ്കിൽ, "^J stty sane^J" എന്ന ക്രമത്തിന് അത് സുഖപ്പെടുത്താൻ കഴിയും!

കമാൻഡ് ലൈൻ എഡിറ്റുചെയ്യുന്നു

കമാൻഡ് ഷെല്ലിൻ്റെ കഴിവുകൾ പ്രത്യേകമായി പഠിക്കാതെ തന്നെ, ടെക്സ്റ്റ് നൽകുമ്പോൾ ലഭ്യമല്ലാത്ത ചിലത് മെത്തോഡിയസ് സജീവമായി ഉപയോഗിച്ചു. ഭൂരിപക്ഷത്തിന്യൂട്ടിലിറ്റികൾ (പ്രത്യേകിച്ച്, പൂച്ചയോ ഹെക്‌സ്ഡമ്പോ അല്ല). ഇത് കീകളെക്കുറിച്ചാണ് ഇടത് അമ്പടയാളംഒപ്പം വലത് അമ്പടയാളം, കമാൻഡ് ലൈനിൽ നിങ്ങൾക്ക് കഴ്‌സർ നീക്കാൻ കഴിയുന്നതും കീയും ഡെൽ, ഒരു പ്രതീകം ഇല്ലാതാക്കുന്നു കീഴിൽകഴ്‌സർ, അതിൻ്റെ പിന്നിലല്ല. പ്രഭാഷണ ടെർമിനലിലും കമാൻഡ് ലൈനിലും, ഈ കമാൻഡുകൾ ബാഷിൽ പ്രവർത്തിക്കുന്നുണ്ടെങ്കിലും പൂച്ചയ്ക്ക് വേണ്ടി പ്രവർത്തിക്കില്ലെന്ന് അദ്ദേഹം നേരത്തെ കണ്ടിരുന്നു. മാത്രമല്ല, ലളിതത്തിന് കമാൻഡ് ഇൻ്റർപ്രെറ്റർ- sh - അവയും പ്രവർത്തിക്കുന്നില്ല.

അതിനാൽ, കമാൻഡ് ലൈൻ എഡിറ്ററിൻ്റെ കഴിവുകൾ വ്യത്യസ്ത കമാൻഡ് ഷെല്ലുകൾക്ക് പ്രത്യേകമാണ്. എന്നിരുന്നാലും, ഏറ്റവും അത്യാവശ്യമായ എഡിറ്റിംഗ് കമാൻഡുകൾ എല്ലാ ഷെൽ ഫ്ലേവറുകളിലും സമാനമായ രീതിയിൽ പിന്തുണയ്ക്കുന്നു. ഗുരേവിച്ച് പറയുന്നതനുസരിച്ച്, “എല്ലാത്തിലും Linux തരങ്ങൾബാഷ് നിർബന്ധമായും ഉണ്ടായിരിക്കണം, പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യാനും കോൺഫിഗർ ചെയ്യാനും നിങ്ങൾക്ക് അനുഭവപരിചയമുണ്ടെങ്കിൽ, നിങ്ങൾക്ക് zsh ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയും, ഒരാൾക്ക് ആവശ്യമുള്ളതിനേക്കാൾ കൂടുതൽ കഴിവുകൾ ഇതിന് ഉണ്ട്. അതിനാൽ, മെത്തോഡിയസ് ബാഷ് ഡോക്യുമെൻ്റേഷൻ പഠിക്കാൻ തുടങ്ങി, അത് എളുപ്പമുള്ള കാര്യമായിരുന്നില്ല, കാരണം അദ്ദേഹം bash.info- ൽ എട്ടര ആയിരത്തിലധികം വരികൾ എണ്ണി. കമാൻഡ് ലൈൻ എഡിറ്റുചെയ്യുന്നതിനെക്കുറിച്ച് പോലും, ഒറ്റയടിക്ക് വായിക്കാൻ ബുദ്ധിമുട്ടുള്ള ഒരുപാട് എഴുതിയിട്ടുണ്ട്.

കമാൻഡ് ലൈനിൽ ജോലി ചെയ്യുന്നതിനെക്കുറിച്ച് എല്ലാം വേഗത്തിൽ പഠിക്കാനുള്ള ശ്രമം ചില പ്രയോജനങ്ങൾ നൽകി. ഒന്നാമതായി, നിങ്ങൾക്ക് കമാൻഡ് ലൈനിൽ ഒരു പ്രതീകം മുന്നോട്ടും പിന്നോട്ടും മാത്രമല്ല, വാക്കുകളിലൂടെയും നീങ്ങാൻ കഴിയും: കമാൻഡുകൾ ESCF/ESCBഅഥവാ Alt+F/Alt+Bഅതനുസരിച്ച് (നിന്ന് എഫ് orward ഒപ്പം ബി ckward), കീകളും പ്രവർത്തിക്കുന്നു &വീട്&ഒപ്പം &അവസാനിക്കുന്നു&, അല്ലെങ്കിൽ, അതേ കാര്യം, "^A", "^E" എന്നിവ. രണ്ടാമതായി, ഒരു കമാൻഡ് ലൈനിൽ പ്രവർത്തിക്കുന്നതിനു പുറമേ, മറ്റ് നിരവധി സൗകര്യങ്ങളുണ്ട്, അവ ഈ പ്രഭാഷണത്തിൽ ചർച്ചചെയ്യും.

ടീം ചരിത്രം

മെത്തോഡിയസ് മറ്റ് രണ്ട് അമ്പടയാള കീകളും സജീവമായി ഉപയോഗിച്ചു - മുകളിലേക്കും താഴേക്കും, ഇത് വളരെ ശക്തമായ ഒരു ബാഷ് മെക്കാനിസമാണ് ഉപയോഗിക്കുന്നതെന്ന് സംശയിക്കാതെ - പ്രവർത്തിക്കുന്നു ടീം ചരിത്രം. ഉപയോക്താവ് ടൈപ്പ് ചെയ്ത എല്ലാ കമാൻഡുകളും ബാഷ് ഓർമ്മിക്കുകയും പിന്നീട് അവ ആക്സസ് ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുകയും ചെയ്യുന്നു. മുകളിലെ അമ്പടയാളം (നിങ്ങൾക്ക് "^P" ഉപയോഗിക്കാനും കഴിയും, പി revious), സമർപ്പിച്ച കമാൻഡുകളുടെ ലിസ്റ്റ് "സ്ക്രോളുകൾ" അവസാനം മുതൽ ആദ്യം വരെ, കൂടാതെ താഴേക്കുള്ള അമ്പടയാളം ("^N", എൻ ext) - തിരികെ. കമാൻഡ് ലൈനിൽ ഇപ്പോൾ ടൈപ്പ് ചെയ്തതുപോലെ അനുബന്ധ കമാൻഡ് പ്രദർശിപ്പിക്കും; അത് എഡിറ്റ് ചെയ്ത് ഷെല്ലിലേക്ക് സമർപ്പിക്കാം (ലൈനിൻ്റെ അവസാനത്തിലേക്ക് കഴ്സർ നീക്കേണ്ട ആവശ്യമില്ല).

നിങ്ങൾക്ക് ചരിത്രത്തിൽ നിന്ന് കുറച്ച് പഴയ കമാൻഡ് ലഭിക്കണമെങ്കിൽ, ചരിത്ര ലിസ്റ്റ് അമ്പടയാളങ്ങൾ ഉപയോഗിച്ച് നീക്കാതിരിക്കുന്നത് എളുപ്പമാണ്, പക്ഷേ തിരയുകഅതിൽ “^R” കമാൻഡ് ഉപയോഗിക്കുന്നു ( ആർഎപ്പോഴെങ്കിലും തിരയുക). ഇത് ഒരു പ്രത്യേക തരം സൂചനയും (“(റിവേഴ്സ്-ഐ-സെർച്ച്)”), തിരയൽ സബ്‌സ്‌ട്രിംഗും (ചുറ്റും `, " എന്നിവയാൽ ചുറ്റപ്പെട്ടിരിക്കുന്നു), ഈ സബ്‌സ്‌ട്രിംഗ് ഉള്ള ചരിത്രത്തിലെ അവസാന കമാൻഡും പ്രദർശിപ്പിക്കുന്നു:

$^R | (reverse-i-search)`": i | (reverse-i-search)`i": ls i n | (reverse-i-search)`in": info f | (reverse-i-search)`inf": info o | (reverse-i-search)`info": info ^R | (reverse-i-search)`info": man info ^R | (reverse-i-search)`info": info "(bash.info.bz2)ചരിത്രത്തിനായുള്ള കമാൻഡുകൾ"

ഉദാഹരണം 3. ടീം ചരിത്രം അനുസരിച്ച് തിരയുക

ഉദാഹരണം മെത്തോഡിയസ് നൽകിയ പ്രതീകങ്ങളെയും (“|” ന് മുമ്പ് ഇടതുവശത്ത്) ടെർമിനലിൻ്റെ അവസാന വരിയിലെ ഉള്ളടക്കങ്ങളെയും പ്രതിനിധീകരിക്കുന്നു. ഒരേ വരിയിൽ പ്രവർത്തിക്കുന്ന "ഫ്രെയിമുകൾ" ഇവയാണ്, അത് ടൈപ്പ് ചെയ്യുമ്പോൾ അത് എങ്ങനെ മാറുന്നുവെന്ന് കാണിക്കുന്നു. “വിവരം” എന്ന് ടൈപ്പ് ചെയ്‌ത ശേഷം, മെത്തോഡിയസ് ഈ സബ്‌സ്‌ട്രിംഗിനായി തിരയുന്നത് തുടർന്നു, “ഇൻഫോ” എന്ന ഉപസ്‌ട്രിംഗ് അടങ്ങിയ തനിക്ക് ആവശ്യമായ കമാൻഡ് ലഭിക്കുന്നതുവരെ “^R” ആവർത്തിച്ചു. ബാഷ് ഉപയോഗിച്ച് അത് കൈമാറുക മാത്രമാണ് അവശേഷിക്കുന്നത് നൽകുക .

അങ്ങനെ ആ കമാൻഡ് ഹിസ്റ്ററി സേവ് ചെയ്യാം ഇടയിൽഉപയോക്തൃ സെഷനുകൾ, ഉപയോക്താവിൻ്റെ ഹോം ഡയറക്‌ടറിയിലുള്ള .bash_history ഫയലിലേക്ക് ബാഷ് അത് എഴുതുന്നു. ഈ നിമിഷത്തിലാണ് ഇത് ചെയ്യുന്നത് പൂർത്തീകരണംഷെൽ: പ്രവർത്തന സമയത്ത് ശേഖരിച്ച ചരിത്രം ഈ ഫയലിൻ്റെ അവസാനം ചേർത്തിരിക്കുന്നു. അടുത്ത തവണ നിങ്ങൾ ബാഷ് ആരംഭിക്കുമ്പോൾ, അത് .bash_history മുഴുവനായും വായിക്കുന്നു. ചരിത്രം ശാശ്വതമായി സംഭരിച്ചിട്ടില്ല, .bash_history-ൽ ഓർമ്മിക്കുന്ന കമാൻഡുകളുടെ എണ്ണം പരിമിതമാണ് (സാധാരണയായി 500 കമാൻഡുകൾ, എന്നാൽ ഇത് പുനഃക്രമീകരിക്കാവുന്നതാണ്).

ചുരുക്കെഴുത്തുകൾ

ചരിത്ര തിരയൽ ഒരു സൗകര്യപ്രദമായ ഉപകരണമാണ്: ഒരു നീണ്ട കമാൻഡ് ലൈൻ മുഴുവനായി ടൈപ്പുചെയ്യുന്നതിനുപകരം, നിങ്ങൾക്ക് അത് തിരയാനും ഉപയോഗിക്കാനും കഴിയും. എന്നിരുന്നാലും ദീർഘകാലംനിരവധി "^R" ഉപയോഗിച്ച് ടീമിനെ കണ്ടെത്തേണ്ടതുണ്ട് - അല്ലെങ്കിൽ അത് ഇതിനകം അവിടെ ഉപേക്ഷിച്ചിട്ടുണ്ടെങ്കിൽ നിങ്ങൾക്കത് കണ്ടെത്താനായില്ല. വേഗത്തിൽ മാറ്റിസ്ഥാപിക്കുന്നതിന് ചെറിയ കമാൻഡുകൾദൈർഘ്യമേറിയത്, ഉപയോഗിക്കേണ്ടതാണ് ചുരുക്കെഴുത്തുകൾ(അപരനാമങ്ങൾ). IN കോൺഫിഗറേഷൻ ഫയലുകൾഉപയോക്താവിൻ്റെ കമാൻഡ് ഇൻ്റർപ്രെറ്ററിന് സാധാരണയായി ഇതിനകം തന്നെ നിരവധി ചുരുക്കെഴുത്തുകൾ നിർവചിച്ചിട്ടുണ്ട്, പാരാമീറ്ററുകളില്ലാതെ അപരനാമ കമാൻഡ് ഉപയോഗിച്ച് ഇവയുടെ ഒരു ലിസ്റ്റ് കാണാൻ കഴിയും:

$ അപരനാമം അപരനാമം cd..="cd .." അപരനാമം cp="cp -i" alias l="ls -lapt" അപരനാമം ll="ls -laptc" അപരനാമം ls="ls --color=auto" അപരനാമം md= "mkdir" അപരനാമം mv="mv -i" അപരനാമം rd="rmdir" അപരനാമം rm="rm -i"

ഉദാഹരണം 4. മുൻകൂട്ടി നിശ്ചയിച്ചിട്ടുള്ള ചുരുക്കെഴുത്തുകൾ കാണുക

മെത്തോഡിയസ് ഇതിനകം ആക്സസ് റൈറ്റ്സ് എന്ന പ്രഭാഷണത്തിൽ ചുരുക്കെഴുത്തുകൾ നേരിട്ടു, അവിടെ ls കമാൻഡ് സിദ്ധാന്തത്തിന് അനുസൃതമായി പ്രവർത്തിക്കാൻ വിസമ്മതിച്ചു. ls കമാൻഡ് ഉപയോഗിക്കുമ്പോൾ, /bin/ls യൂട്ടിലിറ്റിക്ക് പകരം, bash അതിൻ്റേതായ കുറുക്കുവഴി കമാൻഡ് പ്രവർത്തിപ്പിക്കുന്നു, അത് ls --color=auto കമാൻഡ് ആയി മാറുന്നു. ആവർത്തിച്ച്ശാശ്വതമായ ഒരു ലൂപ്പ് ഒഴിവാക്കാൻ, കമാൻഡിൽ ദൃശ്യമാകുന്ന "ls" എന്ന സബ്‌സ്ട്രിംഗ് വ്യാഖ്യാതാവ് ഇനി പ്രോസസ്സ് ചെയ്യുന്നില്ല. ഉദാഹരണത്തിന്, ls -al എന്ന കമാൻഡ് ls --color=auto -al ആയി മാറുന്നു. അതുപോലെ, rm-ൽ ആരംഭിക്കുന്ന ഏതൊരു കമാൻഡും rm -i ( ഇൻ്ററാക്റ്റീവ്), ഇത് മെത്തോഡിയസിന് അങ്ങേയറ്റം അരോചകമാണ്, കാരണം “rm: ഒരു സാധാരണ ഫയൽ ഇല്ലാതാക്കുക` എന്ന ശൈലിയിൽ ചോദ്യങ്ങളില്ലാതെ ഒരു ഇല്ലാതാക്കലും പൂർത്തിയാകില്ല. ഫയൽ "?».

$ unalias cp rm mv $ അപരനാമം pd=pushd $ അപരനാമം pp=popd $ pd /bin /bin ~ $ pd /usr/share/doc /usr/share/doc /bin ~ $ cd /var/tmp $ dirs /var/ tmp /bin ~ $ pp /bin ~ $ pp ~ $ pp -bash: popd: ഡയറക്ടറി സ്റ്റാക്ക് ശൂന്യമാണ്

ഉദാഹരണം 5. ചുരുക്കങ്ങളും pushd/popd ഉപയോഗിക്കുന്നു

മെത്തോഡിയസ് unalias കമാൻഡ് ഉപയോഗിച്ച് ശല്യപ്പെടുത്തുന്ന "-i" ഒഴിവാക്കി, അതേ സമയം തൻ്റെ പ്രിയപ്പെട്ടവയുടെ ചുരുക്കെഴുത്തുകൾ അവതരിപ്പിച്ചു. ബാഷ് കമാൻഡുകൾ- പുഷ്ഡ് ആൻഡ് പോപ്പ്ഡ്. cd പോലെയുള്ള ഈ കമാൻഡുകൾ നിലവിലെ ഡയറക്ടറി മാറ്റുന്നു.

സ്റ്റാക്ക് ഓപ്പറേഷനുകളുമായുള്ള സാമ്യം ഉപയോഗിച്ചാണ് അവയ്ക്ക് പേര് നൽകിയിരിക്കുന്നത് - പുഷ്, പോപ്പ്.

ഉപയോക്താവ് നിലവിലുള്ള എല്ലാ ഡയറക്ടറികളും പുഷ്ഡ് ഒരു പ്രത്യേക ലിസ്റ്റിൽ (സ്റ്റാക്ക്) സംഭരിക്കുന്നു എന്നതാണ് വ്യത്യാസം. popd കമാൻഡ് ഈ സ്റ്റാക്കിൻ്റെ അവസാന ഘടകം നീക്കം ചെയ്യുകയും നിലവിലെ ഡയറക്‌ടറിയെ രണ്ടാമത്തേത് മുതൽ അവസാനത്തേത് വരെയാക്കുകയും ചെയ്യുന്നു. രണ്ട് കമാൻഡുകളും ഡയറക്ടറി സ്റ്റാക്കിൻ്റെ ഉള്ളടക്കങ്ങൾ പ്രിൻ്റ് ചെയ്യുന്നു (dirs കമാൻഡ് പോലെ). ബാഷിലെ cd കമാൻഡ് ഒരു ഡയറക്ടറി സ്റ്റാക്കിനൊപ്പം പ്രവർത്തിക്കുന്നു: അത് മാറ്റിസ്ഥാപിക്കുന്നുഅതിൻ്റെ അവസാന ഘടകം പുതിയതാണ്.

കുറുക്കുവഴി കമാൻഡ് ഉപയോക്താവ് വ്യക്തമാക്കിയ ഒരു ആന്തരിക ഷെൽ കമാൻഡ്. കമാൻഡ് ലൈനിൽ പ്രവർത്തിക്കുമ്പോൾ പലപ്പോഴും ഉപയോഗിക്കുന്ന ഒരു ദൈർഘ്യമേറിയ കമാൻഡ് സാധാരണയായി മാറ്റിസ്ഥാപിക്കുന്നു. ചുരുക്കങ്ങൾ പരിസ്ഥിതിയുമായി പാരമ്പര്യമായി ലഭിക്കുന്നില്ല.

നിർമ്മാണത്തിൻ്റെ പൂർത്തീകരണം

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

$ ls -al /bin/base Tab | $ ls -al /bin/basename -rwxr-xr-x 1 റൂട്ട് റൂട്ട് 12520 ജൂൺ 3 18:29 /bin/basename $ ബേസ് ടാബ് | $ അടിസ്ഥാനനാമം ടാബ് | $ അടിസ്ഥാനനാമം എക്സ് ടാബ് | $ അടിസ്ഥാനനാമ ഉദാഹരണങ്ങൾ/ ടാബ് | $ അടിസ്ഥാനനാമ ഉദാഹരണങ്ങൾ/-ഫയൽ നാമം---ഫയൽനാമം-കൂടെ-

ഉദാഹരണം 6. വിപുലീകരണം ഉപയോഗിക്കുന്നു

കൂടുതൽ കൂടുതൽ. നിങ്ങൾക്ക് മുഴുവൻ കമാൻഡ് നാമവും നൽകാൻ കഴിയില്ലെന്ന് ഇത് മാറുന്നു: ഈ വാക്ക് കമാൻഡ് ലൈനിൻ്റെ തുടക്കത്തിലായതിനാൽ നിങ്ങൾ കമാൻഡിലേക്ക് ടൈപ്പുചെയ്യുന്ന വാക്ക് എങ്ങനെ നിർമ്മിക്കാമെന്ന് ഷെൽ കണ്ടെത്തും. അങ്ങനെ, മെത്തോഡിയസ് എട്ട് കീസ്‌ട്രോക്കുകളിൽ അടിസ്ഥാനനാമ ഉദാഹരണങ്ങൾ/-filename-with- എന്ന കമാൻഡ് ടൈപ്പ് ചെയ്തു (“ബേസ്”, നാല് ടാബ്)! ഉദാഹരണ ഡയറക്‌ടറിയിൽ ഫയലിൻ്റെ പേരിൻ്റെ തുടക്കം ടൈപ്പ് ചെയ്യേണ്ടി വന്നില്ല, കാരണം അവിടെ ഒരു ഫയൽ മാത്രമേ ഉണ്ടായിരുന്നുള്ളൂ.

പൂർത്തീകരണം നടത്തുമ്പോൾ, ബാഷ് മുഴുവൻ വരിയും ഔട്ട്പുട്ട് ചെയ്തേക്കില്ല, പക്ഷേ സംശയമില്ലാത്ത ഭാഗം മാത്രം. ഇനിയുള്ള നിർമ്മാണം നടന്നാൽ മതി നിരവധിപാതകൾ, പിന്നെ ഒരിക്കൽ അമർത്തുക ടാബ്ബാഷ് ആശയക്കുഴപ്പത്തിലാകാൻ ഇടയാക്കും, അത് ആവർത്തിക്കുന്നത് ഔട്ട്പുട്ടിൽ കലാശിക്കും കീഴിൽസാധ്യമായ എല്ലാ ഓപ്ഷനുകളുടെയും കമാൻഡ് ലൈൻ ലിസ്റ്റ്.

നിയന്ത്രണ പ്രതീകം "^G" ഔട്ട്‌പുട്ട് ചെയ്യുമ്പോൾ എല്ലാ ടെർമിനലുകൾക്കും ഒരു ബീപ്പ് ഉണ്ടാക്കാൻ കഴിയണം. ഇത് ചെയ്യുന്നതിന്, നിങ്ങൾ ഒന്നും പ്രവർത്തിപ്പിക്കേണ്ടതില്ല അധിക പ്രോഗ്രാമുകൾ: "യഥാർത്ഥ" ടെർമിനലുകൾക്ക് ഒരു ബിൽറ്റ്-ഇൻ സ്പീക്കർ ഉണ്ട്, വെർച്വൽ കൺസോളുകൾ സാധാരണയായി സിസ്റ്റം ഒന്ന് ("ബീപ്പർ") ഉപയോഗിക്കുന്നു. IN അവസാന ആശ്രയമായിമറ്റ് വഴികളിലൂടെ ഉപയോക്താവിൻ്റെ ശ്രദ്ധ ആകർഷിക്കാൻ ഇത് അനുവദിച്ചിരിക്കുന്നു: ഉദാഹരണത്തിന്, സ്ക്രീൻ ടെർമിനൽ എമുലേറ്റർ സേവന ലൈനിൽ "wuff-wuff" ("woof-woof") എഴുതുന്നു.

ഈ സാഹചര്യത്തിൽ, തുടരാൻ നിങ്ങൾ കമാൻഡ് ഷെല്ലിനോട് ആവശ്യപ്പെടേണ്ടതുണ്ട്: പൂർത്തീകരണം ഏത് പാതയിലാണെന്ന് നിർണ്ണയിക്കുന്ന കുറച്ച് പ്രതീകങ്ങൾ ചേർക്കുക, വീണ്ടും അമർത്തുക ടാബ് .

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

കുറിപ്പ്: Kerberos കോൺഫിഗറേഷൻ വിഭാഗം ഒഴിവാക്കാനാകുമെന്ന് പ്രാക്ടീസ് കാണിക്കുന്നു. Kerberos കോൺഫിഗറേഷൻ തന്നെ Samba കോൺഫിഗർ ചെയ്യുമെന്ന് തോന്നുന്നു. പൊതി നിൽക്കാൻ മതി krb5-ഉപയോക്താവ്.

ചുമതലയുള്ളയാള്

നിലവിലുള്ള വിൻഡോസ് ഡൊമെയ്‌നിലേക്ക് ഒരു ലിനക്സ് മെഷീൻ കൊണ്ടുവരേണ്ട ആവശ്യം പലപ്പോഴും ഉണ്ടാകാറുണ്ട്. ഉദാഹരണത്തിന്, സാംബ ഉപയോഗിച്ച് ഒരു ഫയൽ സെർവർ നിർമ്മിക്കാൻ. ഇത് ചെയ്യാൻ വളരെ എളുപ്പമാണ്; നിങ്ങൾക്ക് വേണ്ടത് ഒരു കെർബറോസ് ക്ലയൻ്റ്, സാംബ, വിൻബിൻഡ് എന്നിവ മാത്രമാണ്.

ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനുമുമ്പ്, അപ്ഡേറ്റ് ചെയ്യുന്നത് ഉചിതമാണ്:

sudo aptitude അപ്ഡേറ്റ്

sudo aptitude അപ്ഗ്രേഡ്

കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഇവയെല്ലാം ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയും:

sudo aptitude install krb5-user samba winbind

നിങ്ങൾ ഇനിപ്പറയുന്ന ലൈബ്രറികളും ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതായി വന്നേക്കാം:

sudo aptitude install libpam-krb5 libpam-winbind libns-winbind

അല്ലെങ്കിൽ, നിങ്ങൾ ഉബുണ്ടു ഡെസ്ക്ടോപ്പ് ഉപയോഗിക്കുന്നുണ്ടെങ്കിൽ, അതേ പാക്കേജുകൾ സിനാപ്റ്റിക് പാക്കേജ് മാനേജർ വഴി ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയും.

അടുത്തതായി, നിങ്ങളുടെ ഡൊമെയ്‌നുമായി പ്രവർത്തിക്കുന്നതിന് മുകളിലുള്ള എല്ലാ ഉപകരണങ്ങളും നിങ്ങൾ കോൺഫിഗർ ചെയ്യേണ്ടതുണ്ട്. 192.168.0.1 IP വിലാസമുള്ള dc.domain.com എന്ന സെർവർ ഡൊമെയ്ൻ കൺട്രോളറായ DOMAIN.COM എന്ന ഡൊമെയ്‌നിലേക്ക് നിങ്ങൾ പ്രവേശിക്കാൻ ആഗ്രഹിക്കുന്നുവെന്ന് പറയാം. ഇതേ സെർവർ തന്നെയാണ് ഡൊമെയ്‌നിൻ്റെ പ്രാഥമിക DNS സെർവർ. കൂടാതെ, നിങ്ങൾക്ക് IP 192.168.0.2 ഉള്ള DNS-dc2.domain.com എന്നും അറിയപ്പെടുന്ന രണ്ടാമത്തെ ഡൊമെയ്ൻ കൺട്രോളർ 1 ഉണ്ടെന്ന് പറയാം. നിങ്ങളുടെ കമ്പ്യൂട്ടറിനെ smbsrv01 എന്ന് വിളിക്കും.

DNS ക്രമീകരണങ്ങൾ

ആദ്യം, നിങ്ങളുടെ മെഷീനിലെ DNS ക്രമീകരണങ്ങൾ മാറ്റേണ്ടതുണ്ട്, ഡൊമെയ്ൻ കൺട്രോളർ 2 DNS സെർവറായും ആവശ്യമുള്ള ഡൊമെയ്ൻ തിരയൽ ഡൊമെയ്നായും രജിസ്റ്റർ ചെയ്യുക.

താങ്കളുടെ കയ്യില് ഉണ്ടെങ്കില് സ്റ്റാറ്റിക് ഐപി വിലാസം, പിന്നീട് ഉബുണ്ടു ഡെസ്ക്ടോപ്പിൽ ഇത് നെറ്റ്‌വർക്ക് മാനേജർ വഴി ചെയ്യാവുന്നതാണ്, ഉബുണ്ടു സെർവറിൽ നിങ്ങൾ /etc/resolv.conf ഫയലിൻ്റെ ഉള്ളടക്കം ഇതുപോലുള്ള ഒന്നിലേക്ക് മാറ്റേണ്ടതുണ്ട്:

ഡൊമെയ്ൻ domain.com

searchdomain.com

നെയിംസെർവർ 192.168.0.1

നെയിംസെർവർ 192.168.0.2

ആധുനിക വിതരണങ്ങളിൽ, resolv.conf ഫയൽ സ്വയമേവ സൃഷ്ടിക്കപ്പെടുന്നു, അത് സ്വമേധയാ എഡിറ്റ് ചെയ്യേണ്ട ആവശ്യമില്ല. സ്വീകരിക്കാന് ആഗ്രഹിച്ച ഫലംഫയലിൽ ആവശ്യമായ മാറ്റങ്ങൾ നിങ്ങൾ ചേർക്കേണ്ടതുണ്ട്: /etc/resolvconf/resolv.conf.d/headഇതിലേക്ക് ചേർക്കുന്ന ഡാറ്റ സ്വയമേവ /etc/resolv.conf ഫയലിലേക്ക് ചേർക്കപ്പെടും

ഐപി വിലാസം ചലനാത്മകവും നിയുക്തവുമാണെങ്കിൽ DHCP സെർവർ resolv.conf റീബൂട്ട് ചെയ്തതിന് ശേഷം, "തെറ്റായ" resolv.conf" രൂപീകരിച്ചേക്കാം, ഉദാഹരണത്തിന്, 192.168.0.1 എന്ന ഒരു നെയിംസെർവർ മാത്രമേയുള്ളൂ, ഡൊമെയ്‌നും തിരയലും വ്യക്തമാക്കിയിട്ടില്ല. നിങ്ങൾ /etc/dhcp/dhclient.conf എഡിറ്റുചെയ്യേണ്ടതുണ്ട്. . ഡൊമെയ്‌നും തിരയൽ എൻട്രികളും ദൃശ്യമാകുന്നതിന്, സൂപ്പർസീഡ് ഡൊമെയ്ൻ-നെയിം ലൈനിന് മുമ്പായി നിങ്ങൾ അവരുടെ അഭിപ്രായം നീക്കം ചെയ്യുകയും നിങ്ങളുടെ ഡൊമെയ്ൻ നൽകുകയും വേണം:

സൂപ്പർസീഡ് ഡൊമെയ്ൻ-നാമം "domain.com";

മറ്റൊരു നെയിംസെർവർ ചേർക്കുന്നതിന്, ഡൊമെയ്ൻ-നാം-സെർവറുകൾ പ്രീപെൻഡ് ചെയ്യുന്നതിന് മുമ്പ് നിങ്ങൾ അഭിപ്രായം നീക്കം ചെയ്യുകയും സെർവർ ip വ്യക്തമാക്കുകയും ചെയ്യേണ്ടതുണ്ട്:

പ്രീപെൻഡ് ഡൊമെയ്ൻ-നെയിം-സെർവറുകൾ 192.168.0.2;

മാറ്റങ്ങൾ പ്രയോഗിക്കാൻ, നിങ്ങൾ സേവനം പുനരാരംഭിക്കേണ്ടതുണ്ട്:

/etc/init.d/networking പുനരാരംഭിക്കുക

ഇപ്പോൾ /etc/hostname ഫയലിൽ നിങ്ങൾ ശരിയായ ഹോസ്റ്റ്നാമം സജ്ജീകരിച്ചിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക:

smbsrv01

കൂടാതെ, നിങ്ങൾ /etc/hosts ഫയൽ എഡിറ്റ് ചെയ്യേണ്ടതുണ്ട്, അതിലൂടെ കമ്പ്യൂട്ടറിൻ്റെ മുഴുവൻ ഡൊമെയ്ൻ നാമവും എല്ലായ്‌പ്പോഴും ഒരു ചെറിയ ഹോസ്റ്റ് നാമവും ഉള്ള ഒരു എൻട്രി അടങ്ങിയിരിക്കുന്നു, ആന്തരിക ഐപികളിലൊന്നിനെ പരാമർശിക്കുന്നു:

# ഈ കമ്പ്യൂട്ടറിൻ്റെ പേരുകൾ

127.0.0.1 ലോക്കൽ ഹോസ്റ്റ്

127.0.1.1 smbsrv01.domain.com smbsrv01

ഞങ്ങളുടെ ഡൊമെയ്ൻ കൺട്രോളർ അതിൻ്റെ ഹ്രസ്വവും പൂർണ്ണവുമായ പേര് ഉപയോഗിച്ച് സാധാരണയായി പിംഗ് ചെയ്യുന്നുണ്ടോ എന്ന് ഞങ്ങൾ ഉടൻ പരിശോധിക്കേണ്ടതുണ്ട്, അതുവഴി ഭാവിയിൽ ഡൊമെയ്ൻ കൺട്രോളർ കണ്ടെത്താത്ത പിശകുകൾ ഞങ്ങൾക്ക് ലഭിക്കില്ല:

പിംഗ് ഡിസി

പിംഗ് dc.domain.com

ആവശ്യമില്ല, പക്ഷേ നിങ്ങൾ എന്തെങ്കിലും മാറ്റുകയാണെങ്കിൽ, മാറ്റങ്ങൾ പ്രയോഗിക്കാൻ നിങ്ങളുടെ കമ്പ്യൂട്ടർ പുനരാരംഭിക്കുക.

എൻ സമയ സമന്വയ ക്രമീകരണം

അടുത്തതായി, നിങ്ങൾ ഡൊമെയ്ൻ കൺട്രോളറുമായി സമയ സമന്വയം ക്രമീകരിക്കേണ്ടതുണ്ട്. വ്യത്യാസം 5 മിനിറ്റിൽ കൂടുതലാണെങ്കിൽ, ഞങ്ങൾക്ക് കെർബറോസിൽ നിന്ന് ഒരു ഇല സ്വീകരിക്കാൻ കഴിയില്ല. ഒറ്റത്തവണ സമന്വയത്തിനായി, നിങ്ങൾക്ക് കമാൻഡ് ഉപയോഗിക്കാം:

സുഡോ നെറ്റ് ടൈം സെറ്റ് ഡിസി

നെറ്റ്‌വർക്കിൽ കൃത്യമായ സമയ സെർവർ ഉണ്ടെങ്കിൽ, നിങ്ങൾക്ക് അത് അല്ലെങ്കിൽ ഏതെങ്കിലും പൊതുവായ ഒന്ന് ഉപയോഗിക്കാം:

ntpdate ntp.mobatime.ru

ഓട്ടോമാറ്റിക് സിൻക്രൊണൈസേഷൻ ntpd ഉപയോഗിച്ചാണ് ക്രമീകരിച്ചിരിക്കുന്നത്, ഈ ഡെമൺ ഇടയ്ക്കിടെ സമന്വയം നടത്തും. ആദ്യം നിങ്ങൾ ഇത് ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്:

sudo aptitude ഇൻസ്റ്റാൾ ntp

നിങ്ങളുടെ ടൈം സെർവറിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ ഉൾപ്പെടുത്താൻ ഇപ്പോൾ /etc/ntp.conf ഫയൽ എഡിറ്റ് ചെയ്യുക:

# നിങ്ങൾ ഒരു NTP സെർവറുമായി അല്ലെങ്കിൽ രണ്ടോ രണ്ടോ (അല്ലെങ്കിൽ മൂന്ന്) സംസാരിക്കേണ്ടതുണ്ട്.

സെർവർ dc.domain.com

തുടർന്ന് ntpd ഡെമൺ പുനരാരംഭിക്കുക:

sudo /etc/init.d/ntp പുനരാരംഭിക്കുക

ഡൊമെയ്‌നുമായി നേരിട്ടുള്ള ഇടപെടൽ സജ്ജീകരിക്കാനുള്ള സമയമാണിത്.

Default_realm = DOMAIN.COM

Kdc_timesync = 1

Ccache_type = 4

ഫോർവേഡബിൾ = സത്യം

പ്രോക്സിയബിൾ = സത്യം

V4_instance_resolve = തെറ്റ്

V4_name_convert = (

ഹോസ്റ്റ് = (

Rcmd=ഹോസ്റ്റ്

Ftp = ftp

പ്ലെയിൻ = (

ചിലത് = മറ്റെന്തെങ്കിലും

Fcc-mit-ticketflags = true

DOMAIN.COM = (

കെഡിസി = ഡിസി

Kdc = dc2

അഡ്മിൻ_സെർവർ = ഡിസി

Default_domain = DOMAIN.COM

Domain.com = DOMAIN.COM

Domain.com = DOMAIN.COM

Krb4_convert = തെറ്റ്

Krb4_get_tickets = തെറ്റ്

നിങ്ങൾ തീർച്ചയായും domain.com നിങ്ങളുടെ ഡൊമെയ്‌നിലേക്കും dc, dc2 എന്നിവ നിങ്ങളുടെ ഡൊമെയ്ൻ കൺട്രോളറുകളിലേക്കും മാറ്റേണ്ടതുണ്ട്. വഴിയിൽ, dc.domain.com, dc2.domain.com എന്നീ ഡൊമെയ്ൻ കൺട്രോളറുകളുടെ മുഴുവൻ പേരുകളും നിങ്ങൾ എഴുതേണ്ടി വന്നേക്കാം. എനിക്ക് DNS-ൽ രജിസ്റ്റർ ചെയ്ത ഒരു തിരയൽ ഡൊമെയ്ൻ ഉള്ളതിനാൽ, എനിക്ക് ഇത് ചെയ്യേണ്ടതില്ല.

ഡൊമെയ്ൻ നാമത്തിൻ്റെ കാര്യത്തിൽ പ്രത്യേക ശ്രദ്ധ നൽകുക - ഡൊമെയ്ൻ എവിടെ എഴുതിയാലും വലിയക്ഷരം, അത് വലിയക്ഷരത്തിൽ എഴുതണം. അല്ലെങ്കിൽ, ഒന്നും മാന്ത്രികമായി പ്രവർത്തിക്കില്ല.

ഇവയെല്ലാം സാധ്യമായ Kerberos കോൺഫിഗറേഷൻ ഓപ്ഷനുകളല്ല, അടിസ്ഥാനപരമായവ മാത്രം. എന്നിരുന്നാലും, അവ സാധാരണയായി മതിയാകും.

നമുക്ക് ഡൊമെയ്‌നിലേക്ക് ലോഗിൻ ചെയ്യാൻ കഴിയുമോ എന്ന് പരിശോധിക്കേണ്ട സമയമാണിത്. ഇത് ചെയ്യുന്നതിന്, കമാൻഡ് പ്രവർത്തിപ്പിക്കുക

കിനിറ്റ് [ഇമെയിൽ പരിരക്ഷിതം]

ഉപയോക്തൃനാമത്തിന് പകരം, നിലവിലുള്ള ഒരു ഡൊമെയ്ൻ ഉപയോക്താവിൻ്റെ പേര് നിങ്ങൾ സ്വാഭാവികമായും നൽകണം.

ഡൊമെയ്ൻ നാമം വലിയ അക്ഷരങ്ങളിൽ എഴുതിയിരിക്കണം!

നിങ്ങൾക്ക് പിശകുകളൊന്നും ലഭിച്ചില്ലെങ്കിൽ, നിങ്ങൾ എല്ലാം ശരിയായി കോൺഫിഗർ ചെയ്‌തു, ഡൊമെയ്ൻ നിങ്ങൾക്ക് ഒരു കെർബറോസ് ടിക്കറ്റ് നൽകുന്നു. വഴിയിൽ, ചില സാധാരണ തെറ്റുകൾ ചുവടെ പട്ടികപ്പെടുത്തിയിരിക്കുന്നു.

കമാൻഡ് പ്രവർത്തിപ്പിച്ച് ടിക്കറ്റ് ലഭിച്ചുവെന്ന് നിങ്ങൾക്ക് പരിശോധിക്കാം

klist

കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് എല്ലാ ടിക്കറ്റുകളും (നിങ്ങൾക്ക് അവ ആവശ്യമില്ല) ഇല്ലാതാക്കാം

kdestroy

ആർ സാധാരണ കിനിറ്റ് പിശകുകൾ

kinit(v5): പ്രാരംഭ ക്രെഡൻഷ്യലുകൾ ലഭിക്കുമ്പോൾ ക്ലോക്ക് സ്ക്യൂ വളരെ വലുതാണ്

നിങ്ങളുടെ കമ്പ്യൂട്ടറിൻ്റെ സമയം ഡൊമെയ്ൻ കൺട്രോളറുമായി സമന്വയിപ്പിച്ചിട്ടില്ല എന്നാണ് ഇതിനർത്ഥം (മുകളിൽ കാണുക).

kinit(v5): പ്രാരംഭ യോഗ്യതാപത്രങ്ങൾ ലഭിക്കുമ്പോൾ മുൻകൂർ പ്രാമാണീകരണം പരാജയപ്പെട്ടു

നിങ്ങൾ തെറ്റായ പാസ്‌വേഡ് നൽകി.

kinit(v5): പ്രാരംഭ ക്രെഡൻഷ്യലുകൾ ലഭിക്കുമ്പോൾ KDC മറുപടി പ്രതീക്ഷകൾക്ക് അനുസൃതമായിരുന്നില്ല

ഏറ്റവും വിചിത്രമായ പിശക്. krb5.conf ലെ റിയൽ നാമവും കിനിറ്റ് കമാൻഡിലെ ഡൊമെയ്‌നും വലിയ അക്ഷരങ്ങളിൽ നൽകിയിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക:

DOMAIN.COM = (

# ...

കിനിറ്റ് [ഇമെയിൽ പരിരക്ഷിതം]

kinit(v5): ക്ലയൻ്റ് കണ്ടെത്തിയില്ലപ്രാരംഭ യോഗ്യതാപത്രങ്ങൾ ലഭിക്കുമ്പോൾ Kerberos ഡാറ്റാബേസിൽ

നിർദ്ദിഷ്ട ഉപയോക്താവ് ഡൊമെയ്‌നിൽ നിലവിലില്ല.

എൻ സാംബ സജ്ജീകരണവും ഡൊമെയ്ൻ ലോഗിൻ

ഡൊമെയ്‌നിലേക്ക് ലോഗിൻ ചെയ്യുന്നതിനായി, /etc/samba/smb.conf ഫയലിൽ നിങ്ങൾ ശരിയായ ക്രമീകരണങ്ങൾ വ്യക്തമാക്കേണ്ടതുണ്ട്. ഓൺ ഈ ഘട്ടത്തിൽവിഭാഗത്തിലെ ചില ഓപ്ഷനുകളിൽ മാത്രമേ നിങ്ങൾക്ക് താൽപ്പര്യമുണ്ടാകൂ. പ്രധാനപ്പെട്ട പാരാമീറ്ററുകളുടെ അർത്ഥത്തെക്കുറിച്ചുള്ള അഭിപ്രായങ്ങളുള്ള സാംബ കോൺഫിഗറേഷൻ ഫയലിൻ്റെ ഭാഗത്തിൻ്റെ ഒരു ഉദാഹരണം ചുവടെയുണ്ട്:

# ഈ രണ്ട് ഓപ്‌ഷനുകളും ക്യാപിറ്റൽ കേസിലും വർക്ക്‌ഗ്രൂപ്പ് ഇല്ലാതെയും എഴുതണം

# ഡോട്ടിന് ശേഷമുള്ള അവസാന വിഭാഗത്തിൻ്റെ പൂർണ്ണ ഡൊമെയ്ൻ നാമമാണ് മണ്ഡലം

വർക്ക് ഗ്രൂപ്പ് = DOMAIN

Realm = DOMAIN.COM

# ഈ രണ്ട് ഓപ്‌ഷനുകളും AD വഴിയുള്ള അംഗീകാരത്തിന് ഉത്തരവാദികളാണ്

സുരക്ഷ = ADS

പാസ്‌വേഡുകൾ എൻക്രിപ്റ്റ് ചെയ്യുക = true

# പ്രധാനമാണ്

Dns പ്രോക്സി = ഇല്ല

സോക്കറ്റ് ഓപ്ഷനുകൾ = TCP_NODELAY

# സാംബ ഡൊമെയ്‌നിലെ നേതാവാകാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നില്ലെങ്കിൽ അല്ലെങ്കിൽ വർക്കിംഗ് ഗ്രൂപ്പ്,

# അല്ലെങ്കിൽ ഒരു ഡൊമെയ്ൻ കൺട്രോളർ ആകുക, തുടർന്ന് ഈ അഞ്ച് ഓപ്ഷനുകൾ എപ്പോഴും ഈ ഫോമിൽ എഴുതുക

ഡൊമെയ്ൻ മാസ്റ്റർ = ഇല്ല

ലോക്കൽ മാസ്റ്റർ = ഇല്ല

ഇഷ്ടപ്പെട്ട മാസ്റ്റർ = ഇല്ല

OS ലെവൽ = 0

ഡൊമെയ്ൻ ലോഗണുകൾ = ഇല്ല

# പ്രിൻ്റർ പിന്തുണ പ്രവർത്തനരഹിതമാക്കുക

ലോഡ് പ്രിൻ്ററുകൾ = ഇല്ല

ആഡ് പ്രിൻ്റർ വിസാർഡ് കാണിക്കുക = ഇല്ല

പ്രിൻ്റ്‌ക്യാപ് നാമം = /dev/null

സ്പൂളുകൾ പ്രവർത്തനരഹിതമാക്കുക = അതെ

നിങ്ങൾ smb.conf എഡിറ്റ് ചെയ്ത ശേഷം കമാൻഡ് പ്രവർത്തിപ്പിക്കുക

ടെസ്റ്റ്പാം

പിശകുകൾക്കായി ഇത് നിങ്ങളുടെ കോൺഫിഗറേഷൻ പരിശോധിക്കുകയും അതിൻ്റെ ഒരു സംഗ്രഹം നൽകുകയും ചെയ്യും:

#ടെസ്റ്റ്പാം

/etc/samba/smb.conf എന്നതിൽ നിന്ന് smb കോൺഫിഗറേഷൻ ഫയലുകൾ ലോഡ് ചെയ്യുക

ലോഡുചെയ്ത സേവന ഫയൽ ശരി.

സെർവർ റോൾ: ROLE_DOMAIN_MEMBER

നിങ്ങളുടെ സേവന നിർവചനങ്ങളുടെ ഒരു ഡംപ് കാണുന്നതിന് എൻ്റർ അമർത്തുക

നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ, ഞങ്ങളുടെ കമ്പ്യൂട്ടറിന് ഡൊമെയ്‌നിൽ അംഗമാകുന്നതിന് ഞങ്ങൾ ശരിയായ പാരാമീറ്ററുകൾ സജ്ജമാക്കി. ഇപ്പോൾ ഡൊമെയ്‌നിലേക്ക് നേരിട്ട് ലോഗിൻ ചെയ്യാൻ ശ്രമിക്കേണ്ട സമയമാണ്. ഇത് ചെയ്യുന്നതിന്, കമാൻഡ് നൽകുക:

net ads join -U ഉപയോക്തൃനാമം -D DOMAIN

വിജയകരമാണെങ്കിൽ, ഇതുപോലുള്ള ഒന്ന് നിങ്ങൾ കാണും:

# നെറ്റ് പരസ്യങ്ങൾ ചേരുന്നു -U ഉപയോക്തൃനാമം -D DOMAIN

ഉപയോക്തൃനാമത്തിൻ്റെ പാസ്‌വേഡ് നൽകുക:

ഹ്രസ്വമായി ഉപയോഗിക്കുന്നു ഡൊമെയ്ൻ നാമം-- ഡൊമെയ്ൻ

"domain.com" എന്ന മണ്ഡലത്തിലേക്ക് "SMBSRV01" ൽ ചേർന്നു

ഒപ്പം നെറ്റ് കമാൻഡ് ഓപ്ഷനുകൾ ഉപയോഗിച്ചു

U username%password : ആവശ്യമായ പരാമീറ്റർ; ഉപയോക്തൃനാമത്തിനുപകരം, നിങ്ങൾ ഒരു ഉപയോക്തൃനാമം പകരം ഡൊമെയ്ൻ അഡ്മിനിസ്ട്രേറ്റർ അവകാശങ്ങൾ നൽകുകയും ഒരു പാസ്വേഡ് വ്യക്തമാക്കുകയും വേണം.

ഡി ഡൊമെയ്ൻ: ഡൊമെയ്ൻ - ഡൊമെയ്ൻ തന്നെ, നിങ്ങൾ ഡൊമെയ്ൻ വ്യക്തമാക്കേണ്ടതില്ല, പക്ഷേ എല്ലായ്പ്പോഴും ഇത് ചെയ്യുന്നതാണ് നല്ലത് - ഇത് കൂടുതൽ മോശമാകില്ല.

S win_domain_controller : win_domain_controller വ്യക്തമാക്കിയേക്കില്ല, എന്നാൽ സെർവർ സ്വയമേവ ഒരു ഡൊമെയ്ൻ കൺട്രോളർ കണ്ടെത്താത്ത സമയങ്ങളുണ്ട്.

createcomputer="OU/OU/..." : AD-ൽ, OU (ഓർഗനൈസേഷണൽ യൂണിറ്റ്) പലപ്പോഴും ഉപയോഗിക്കാറുണ്ട്, ഡൊമെയ്‌നിൻ്റെ റൂട്ടിൽ OU = ഓഫീസ് ഉണ്ട്, അതിൽ OU = ക്യാബിനറ്റ്, അതിനാൽ നിങ്ങൾക്കത് ഉടനടി ചേർക്കാം നിങ്ങൾക്ക് ആവശ്യമുള്ള ഒന്ന്, നിങ്ങൾക്ക് ഇത് ഇതുപോലെ വ്യക്തമാക്കാം: sudo net ads join -U username createcomputer="Office/Cabinet".

കൂടുതൽ സന്ദേശങ്ങൾ ഇല്ലെങ്കിൽ, എല്ലാം ശരിയാണ്. ഡൊമെയ്‌നിൽ എല്ലാം രജിസ്റ്റർ ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കാൻ മറ്റൊരു ഡൊമെയ്ൻ അംഗത്തിൽ നിന്ന് നിങ്ങളുടെ കമ്പ്യൂട്ടറിനെ പേര് ഉപയോഗിച്ച് പിംഗ് ചെയ്യാൻ ശ്രമിക്കുക.

നിങ്ങൾക്ക് കമാൻഡ് ടൈപ്പുചെയ്യാനും കഴിയും:

നെറ്റ് പരസ്യങ്ങൾ testjoin

എല്ലാം നല്ലതാണെങ്കിൽ, നിങ്ങൾക്ക് കാണാൻ കഴിയും:

#net ads testjoin

ചേരുന്നത് ശരിയാണ്

എന്നാൽ ചിലപ്പോൾ ഒരു ഡൊമെയ്‌നിൽ ചേരുന്നതിനെക്കുറിച്ചുള്ള സന്ദേശത്തിന് ശേഷം, 3) പോലുള്ള ഒരു പിശക് ദൃശ്യമാകും:

DNS അപ്ഡേറ്റ് പരാജയപ്പെട്ടു!

ഇത് വളരെ നല്ലതല്ല, ഈ സാഹചര്യത്തിൽ ഡിഎൻഎസ് സജ്ജീകരിക്കുന്നതിനെക്കുറിച്ചുള്ള വിഭാഗം വീണ്ടും അൽപ്പം ഉയർന്ന് വായിക്കാനും നിങ്ങൾ എന്താണ് തെറ്റ് ചെയ്തതെന്ന് മനസിലാക്കാനും ശുപാർശ ചെയ്യുന്നു. ഇതിനുശേഷം, നിങ്ങൾ ഡൊമെയ്‌നിൽ നിന്ന് കമ്പ്യൂട്ടർ നീക്കം ചെയ്യുകയും അത് വീണ്ടും നൽകാൻ ശ്രമിക്കുകയും വേണം. നിങ്ങൾ എല്ലാം ശരിയായി ക്രമീകരിച്ചിട്ടുണ്ടെന്ന് നിങ്ങൾക്ക് ഉറപ്പുണ്ടെങ്കിൽ, പക്ഷേ DNS ഇപ്പോഴും അപ്‌ഡേറ്റ് ചെയ്തിട്ടില്ലെങ്കിൽ, നിങ്ങളുടെ കമ്പ്യൂട്ടറിനായി നിങ്ങളുടെ DNS സെർവറിലേക്ക് ഒരു എൻട്രി സ്വമേധയാ ചേർക്കാം, എല്ലാം പ്രവർത്തിക്കും. തീർച്ചയായും, മറ്റ് പിശകുകൾ ഇല്ലെങ്കിൽ നിങ്ങൾ ഡൊമെയ്‌നിൽ വിജയകരമായി ലോഗിൻ ചെയ്‌തു. എന്നിരുന്നാലും, എന്തുകൊണ്ടാണ് ഡിഎൻഎസ് യാന്ത്രികമായി അപ്‌ഡേറ്റ് ചെയ്യാത്തതെന്ന് കണ്ടെത്തുന്നതാണ് നല്ലത്. ഇത് നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ മാത്രമല്ല, തെറ്റായ AD ക്രമീകരണം കാരണവും ആയിരിക്കാം.

എന്തുകൊണ്ടാണ് DNS അപ്‌ഡേറ്റ് ചെയ്യാത്തതെന്ന് കണ്ടെത്തുന്നതിന് മുമ്പ്, ഡൊമെയ്‌നിൽ പ്രവേശിച്ചതിന് ശേഷം നിങ്ങളുടെ കമ്പ്യൂട്ടർ പുനരാരംഭിക്കാൻ മറക്കരുത്! ഇത് പ്രശ്നം പരിഹരിക്കാൻ തികച്ചും സാദ്ധ്യമാണ്.

എല്ലാം പിശകുകളില്ലാതെ നടന്നെങ്കിൽ, അഭിനന്ദനങ്ങൾ, നിങ്ങൾ ഡൊമെയ്‌നിൽ വിജയകരമായി ലോഗിൻ ചെയ്‌തു! നിങ്ങൾക്ക് എഡി നോക്കാനും സ്വയം കാണാനും കഴിയും. ഡൊമെയ്‌നിലെ ഉറവിടങ്ങൾ നിങ്ങൾക്ക് കാണാൻ കഴിയുമോ എന്ന് പരിശോധിക്കുന്നതും നല്ലതാണ്. ഇത് ചെയ്യുന്നതിന്, smbclient ഇൻസ്റ്റാൾ ചെയ്യുക:

sudo aptitude ഇൻസ്റ്റാൾ smbclient

നിങ്ങൾക്ക് ഇപ്പോൾ ഡൊമെയ്ൻ കമ്പ്യൂട്ടറുകളുടെ ഉറവിടങ്ങൾ കാണാൻ കഴിയും. എന്നാൽ ഇതിനായി നിങ്ങൾക്ക് ഒരു kerberos ടിക്കറ്റ് ഉണ്ടായിരിക്കണം, അതായത്. ഞങ്ങൾ അവ ഇല്ലാതാക്കിയാൽ, നമുക്ക് അവ കിനിറ്റ് വഴി വീണ്ടും ലഭിക്കും (മുകളിൽ കാണുക). വർക്ക്‌സ്റ്റേഷൻ കമ്പ്യൂട്ടർ നെറ്റ്‌വർക്കിന് നൽകുന്ന ഉറവിടങ്ങൾ എന്തൊക്കെയാണെന്ന് നോക്കാം:

smbclient -k -L വർക്ക്സ്റ്റേഷൻ

ഈ കമ്പ്യൂട്ടറിൽ പങ്കിട്ട വിഭവങ്ങളുടെ ഒരു ലിസ്റ്റ് നിങ്ങൾ കാണും.

Winbind സജ്ജീകരിക്കുന്നു

നിങ്ങൾക്ക് ഏതെങ്കിലും വിധത്തിൽ ഡൊമെയ്ൻ ഉപയോക്താക്കളുമായി പ്രവർത്തിക്കണമെങ്കിൽ, ഉദാഹരണത്തിന്, ആക്സസ് കൺട്രോൾ ഉപയോഗിച്ച് SMB ഷെയറുകൾ കോൺഫിഗർ ചെയ്യുക, സാംബയ്ക്ക് പുറമേ നിങ്ങൾക്ക് വിൻബിൻഡും ആവശ്യമാണ് - ആശയവിനിമയത്തിനായി ഉപയോഗിക്കുന്ന ഒരു പ്രത്യേക ഡെമൺ പ്രാദേശിക സംവിധാനംഉപയോക്തൃ മാനേജ്മെൻ്റ് കൂടാതെ ലിനക്സ് ഗ്രൂപ്പുകൾസെർവറിനൊപ്പം സജീവ ഡയറക്ടറി. ലളിതമായി പറഞ്ഞാൽ, നിങ്ങളുടെ ഉബുണ്ടു കമ്പ്യൂട്ടറിൽ ഡൊമെയ്ൻ ഉപയോക്താക്കളെ കാണണമെങ്കിൽ Winbind ആവശ്യമാണ്.

എല്ലാ ഉപയോക്താക്കളെയും എല്ലാ എഡി ഗ്രൂപ്പുകളെയും നിങ്ങളിലേക്ക് പ്രൊജക്റ്റ് ചെയ്യാൻ Winbind നിങ്ങളെ അനുവദിക്കുന്നു ലിനക്സ് സിസ്റ്റം, നൽകിയിരിക്കുന്ന ശ്രേണിയിൽ നിന്ന് അവർക്ക് ഒരു ഐഡി നൽകുന്നു. ഇതുവഴി, നിങ്ങളുടെ കമ്പ്യൂട്ടറിലെ ഫോൾഡറുകളുടെയും ഫയലുകളുടെയും ഉടമകളായി ഡൊമെയ്ൻ ഉപയോക്താക്കളെ നിങ്ങൾക്ക് നിയോഗിക്കുകയും ഉപയോക്താക്കളും ഗ്രൂപ്പുകളുമായി ബന്ധപ്പെട്ട മറ്റേതെങ്കിലും പ്രവർത്തനങ്ങൾ നടത്തുകയും ചെയ്യാം.

Winbind കോൺഫിഗർ ചെയ്യുന്നതിന്, /etc/samba/smb.conf എന്ന അതേ ഫയൽ ഉപയോഗിക്കുന്നു. വിഭാഗത്തിലേക്ക് ഇനിപ്പറയുന്ന വരികൾ ചേർക്കുക:

# പൊരുത്തപ്പെടുന്ന ഓപ്ഷനുകൾ ഡൊമെയ്ൻ ഉപയോക്താക്കൾ Winbind വഴി സിസ്റ്റത്തിലെ വെർച്വൽ ഉപയോക്താക്കളും.

വെർച്വൽ ഉപയോക്താക്കൾക്കും ഗ്രൂപ്പുകൾക്കുമായി # ഐഡി ശ്രേണികൾ.

Idmap uid = 10000 - 40000

Idmap gid = 10000 - 40000

# ഈ ഓപ്‌ഷനുകൾ പ്രവർത്തനരഹിതമാക്കാൻ പാടില്ല.

Winbind enum ഗ്രൂപ്പുകൾ = അതെ

Winbind enum ഉപയോക്താക്കൾ = അതെ

# ഉപയോക്തൃനാമങ്ങൾക്കായി ഡിഫോൾട്ട് ഡൊമെയ്ൻ ഉപയോഗിക്കുക. ഈ ഓപ്ഷൻ കൂടാതെ, ഉപയോക്താവിൻ്റെയും ഗ്രൂപ്പിൻ്റെയും പേരുകൾ

# ഒരു ഡൊമെയ്‌നിനൊപ്പം ഉപയോഗിക്കും, അതായത്. ഉപയോക്തൃനാമത്തിന് പകരം - ഡൊമെയ്ൻ\ഉപയോക്തൃനാമം.

# നിങ്ങൾ ആഗ്രഹിക്കുന്നത് ഇതായിരിക്കാം, എന്നാൽ ഈ ഓപ്‌ഷൻ പ്രവർത്തനക്ഷമമാക്കുന്നത് സാധാരണയായി എളുപ്പമാണ്.

Winbind ഡിഫോൾട്ട് ഡൊമെയ്ൻ ഉപയോഗിക്കുന്നു = അതെ

# നിങ്ങൾക്ക് കമാൻഡ് ലൈൻ ഉപയോഗിക്കാൻ ഡൊമെയ്ൻ ഉപയോക്താക്കളെ അനുവദിക്കണമെങ്കിൽ

# ചേർക്കുക അടുത്ത വരി, അല്ലെങ്കിൽ /bin/false ഒരു ഷെൽ എന്ന് വിളിക്കപ്പെടും

ടെംപ്ലേറ്റ് ഷെൽ = /ബിൻ/ബാഷ്

# വേണ്ടി യാന്ത്രിക അപ്ഡേറ്റ് pam_winbind.so മൊഡ്യൂളിനൊപ്പം Kerberos ടിക്കറ്റ് നിങ്ങൾ ലൈൻ ചേർക്കേണ്ടതുണ്ട്

Winbind പുതുക്കിയ ടിക്കറ്റുകൾ = അതെ

ഓപ്ഷനുകൾ:

idmap uid = 10000 - 40000

idmap gid = 10000 - 40000

സാംബയുടെ പുതിയ പതിപ്പുകളിൽ ഇതിനകം കാലഹരണപ്പെട്ടതാണ്, കൂടാതെ testparm ഉപയോഗിച്ച് സാംബ കോൺഫിഗറേഷൻ പരിശോധിക്കുമ്പോൾ ഒരു മുന്നറിയിപ്പ് നൽകും:

മുന്നറിയിപ്പ്: "idmap uid" ഓപ്ഷൻ അവസാനിപ്പിച്ചു

മുന്നറിയിപ്പ്: "idmap gid" ഓപ്ഷൻ അവസാനിപ്പിച്ചു

മുന്നറിയിപ്പുകൾ നീക്കം ചെയ്യാൻ നിങ്ങൾ ഈ വരികൾ പുതിയവ ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കേണ്ടതുണ്ട്:

idmap config * : ശ്രേണി = 10000-20000

idmap config * : ബാക്കെൻഡ് = tdb

ഇപ്പോൾ Winbind, Samba ഡെമൺ എന്നിവ ഇനിപ്പറയുന്ന ക്രമത്തിൽ പുനരാരംഭിക്കുക:

sudo /etc/init.d/winbind stop

sudo smbd പുനരാരംഭിക്കുക

sudo /etc/init.d/winbind ആരംഭം

നമുക്ക് ലോഞ്ച് ചെയ്യാം

sudo testparm

ഇനിപ്പറയുന്നവ ദൃശ്യമാകുകയാണെങ്കിൽ എന്തെങ്കിലും പിശകുകളോ മുന്നറിയിപ്പുകളോ ഉണ്ടോ എന്ന് നോക്കാം:

"rlimit_max: rlimit_max (1024) ഏറ്റവും കുറഞ്ഞ വിൻഡോസ് പരിധിക്ക് താഴെ (16384)"

ഇതുപോലെ റീബൂട്ട് ചെയ്യാതെ നിങ്ങൾക്ക് ഇത് പരിഹരിക്കാനാകും:

ulimit -n 16384

റീബൂട്ടിന് ശേഷം സംരക്ഷിക്കുന്നതിന്, /etc/security/limits.conf ഫയൽ എഡിറ്റ് ചെയ്യുക

# ഫയലിൻ്റെ അവസാനം ഇനിപ്പറയുന്ന വരികൾ ചേർക്കുക:

* - നോഫിൽ 16384

റൂട്ട് - നോഫിൽ 16384

പുനരാരംഭിച്ച ശേഷം, Winbind ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടോയെന്ന് പരിശോധിക്കുക വിശ്വസനീയമായ ബന്ധം AD കമാൻഡ് ഉപയോഗിച്ച്:

# wbinfo -t

RPC കോളുകൾ വഴി DCN എന്ന ഡൊമെയ്‌നിനായുള്ള ട്രസ്റ്റ് രഹസ്യം പരിശോധിക്കുന്നത് വിജയിച്ചു

4 കമാൻഡുകൾ ഉപയോഗിച്ച് എഡിയിൽ നിന്നുള്ള ഉപയോക്താക്കളെയും ഗ്രൂപ്പുകളെയും Winbind കണ്ടു:

wbinfo -u

wbinfo -g

ഈ രണ്ട് കമാൻഡുകൾ ഡൊമെയ്‌നിൽ നിന്നുള്ള ഉപയോക്താക്കളെയും ഗ്രൂപ്പുകളെയും യഥാക്രമം ലിസ്റ്റ് ചെയ്യണം. smb.conf-ലെ "winbind use default domain" എന്ന പാരാമീറ്ററിനായി നിങ്ങൾ വ്യക്തമാക്കിയ മൂല്യത്തെ ആശ്രയിച്ച്, DOMAIN\ പ്രിഫിക്‌സ് ഉപയോഗിച്ചോ അല്ലാതെയോ.

അതിനാൽ, Winbind പ്രവർത്തിക്കുന്നു, പക്ഷേ ഇത് ഇതുവരെ സിസ്റ്റത്തിൽ സംയോജിപ്പിച്ചിട്ടില്ല.

ഡി ഉപയോക്താക്കളുടെയും ഗ്രൂപ്പുകളുടെയും ഉറവിടമായി Winbind ചേർക്കുന്നു

ഡൊമെയ്ൻ ഉപയോക്താക്കളുമായി നിങ്ങളുടെ ഉബുണ്ടു സുതാര്യമായി പ്രവർത്തിക്കുന്നതിന്, പ്രത്യേകിച്ചും നിങ്ങൾക്ക് ഡൊമെയ്ൻ ഉപയോക്താക്കളെ ഫോൾഡറുകളുടെയും ഫയലുകളുടെയും ഉടമകളായി നിയോഗിക്കുന്നതിന്, ഉപയോക്താവിൻ്റെയും ഗ്രൂപ്പ് വിവരങ്ങളുടെയും അധിക ഉറവിടമായി Winbind ഉപയോഗിക്കാൻ നിങ്ങൾ ഉബുണ്ടുവിനോട് പറയേണ്ടതുണ്ട്.

ഇത് ചെയ്യുന്നതിന്, /etc/nsswitch.conf ഫയലിൽ രണ്ട് വരികൾ മാറ്റുക:

passwd:compat

ഗ്രൂപ്പ്: കോമ്പാറ്റ്

അവസാനം വിൻബൈൻഡ് ചേർക്കുന്നു:

passwd: compat winbind

ഗ്രൂപ്പ്: കമ്പാറ്റ് വിൻബൈൻഡ്

ഫയലുകൾ: dns mdns4_minimal mdns4

ubuntu server 14.04, /etc/nsswitch.conf ഫയലിൽ "ഫയലുകൾ: dns mdns4_minimal mdns4" എന്ന ലൈൻ അടങ്ങിയിട്ടില്ല, പകരം അത്: "hosts: ഫയലുകൾ mdns4_minimal dns wins" ഇതിലേക്ക് ഞാൻ പരിവർത്തനം ചെയ്തു: "hosts: dns mdns4_minimal mdns" after എല്ലാം പ്രവർത്തിച്ചത്

ഇപ്പോൾ ഉബുണ്ടു വിൻബൈൻഡിനോട് യൂസർ, ഗ്രൂപ്പ് വിവരങ്ങൾ എന്നിവ റൺ ചെയ്തുകൊണ്ട് ആവശ്യപ്പെടുന്നുണ്ടോയെന്ന് പരിശോധിക്കുക

ഗെറ്റൻ്റ് പാസ്വേഡ്

ഗെറ്റൻ്റ് ഗ്രൂപ്പ്

ആദ്യ കമാൻഡ് നിങ്ങളുടെ /etc/passwd ഫയലിൻ്റെ മുഴുവൻ ഉള്ളടക്കങ്ങളും, അതായത്, നിങ്ങളുടെ പ്രാദേശിക ഉപയോക്താക്കൾ, കൂടാതെ നിങ്ങൾ smb.conf-ൽ വ്യക്തമാക്കിയ ശ്രേണിയിൽ നിന്നുള്ള ഐഡികളുള്ള ഡൊമെയ്ൻ ഉപയോക്താക്കൾക്കും നൽകണം. രണ്ടാമത്തേത് ഗ്രൂപ്പുകൾക്കും ഇത് ചെയ്യണം.

ഇപ്പോൾ നിങ്ങൾക്ക് ഏതെങ്കിലും ഡൊമെയ്ൻ ഉപയോക്താവിനെ എടുത്ത് അവനെ ഒരു ഫയലിൻ്റെ ഉടമയാക്കാം.

ഡൊമെയ്ൻ ഉപയോക്താക്കൾ വഴി ഉബുണ്ടുവിൽ അംഗീകാരം

എല്ലാ ഡൊമെയ്ൻ ഉപയോക്താക്കളും യഥാർത്ഥത്തിൽ സിസ്റ്റത്തിൻ്റെ പൂർണ്ണമായ ഉപയോക്താക്കളായി മാറിയിട്ടുണ്ടെങ്കിലും (മുമ്പത്തെ വിഭാഗത്തിൽ നിന്നുള്ള അവസാന രണ്ട് കമാൻഡുകൾ പ്രവർത്തിപ്പിച്ച് പരിശോധിക്കാൻ കഴിയും), അവയിലേതെങ്കിലും പോലെ സിസ്റ്റത്തിലേക്ക് ലോഗിൻ ചെയ്യുന്നത് ഇപ്പോഴും അസാധ്യമാണ്. ഉബുണ്ടുവിൽ പ്രവർത്തിക്കുന്ന കമ്പ്യൂട്ടറിൽ ഡൊമെയ്ൻ ഉപയോക്താക്കളെ അംഗീകരിക്കാനുള്ള കഴിവ് പ്രവർത്തനക്ഷമമാക്കുന്നതിന്, Winbind-ൽ പ്രവർത്തിക്കാൻ നിങ്ങൾ PAM കോൺഫിഗർ ചെയ്യേണ്ടതുണ്ട്.

ഉബുണ്ടു 10.04-ഉം അതിലും ഉയർന്ന പതിപ്പിനും, /etc/pam.d/common-session ഫയലിൽ ഒരു വരി ചേർക്കുക, കാരണം അംഗീകാരത്തോടെ PAM ഇതിനകം ഒരു നല്ല ജോലി ചെയ്യുന്നു:

ഉബുണ്ടു 13.10-ന്, മാനുവൽ ലോഗിൻ എൻട്രി ഫീൽഡ് ദൃശ്യമാകുന്നതിന്, /etc/lightdm/lightdm.conf/ ഫോൾഡറിൽ നിന്നുള്ള ഏതെങ്കിലും ഫയലിലേക്ക് താഴെയുള്ള വരി ചേർക്കേണ്ടതുണ്ട്:

ഗ്രീറ്റർ-ഷോ-മാനുവൽ-ലോഗിൻ=സത്യം

ഉബുണ്ടു 9.10 നും അതിനു താഴെയുള്ളതിനും, നിങ്ങൾ നിരവധി ഫയലുകൾ എഡിറ്റ് ചെയ്യേണ്ടിവരും (എന്നാൽ 10.04-ൽ ഈ രീതി ഉപയോഗിക്കുന്നത് ആരും വിലക്കുന്നില്ല - ഇത് പ്രവർത്തിക്കുന്നു):

ഫയലുകളിലെ വരികളുടെ ക്രമം പ്രധാനമാണ്!

/etc/pam.d/common-auth

auth ആവശ്യമാണ് pam_env.so

auth പര്യാപ്തമാണ് pam_unix.so likeauth nullok try_first_pass

മതിയായ പ്രാമാണീകരണം pam_winbind.so use_first_pass krb5_auth krb5_ccache_type=FILE

auth ആവശ്യമാണ് pam_deny.so

/etc/pam.d/common-account

അക്കൗണ്ട് മതിയായ pam_winbind.so

അക്കൗണ്ട് ആവശ്യമാണ് pam_unix.so

/etc/pam.d/common-session

സെഷൻ ഓപ്ഷണൽ pam_mkhomedir.so skel=/etc/skel/umask=0077

സെഷൻ ഓപ്ഷണൽ pam_ck_connector.so nox11

സെഷൻ ആവശ്യമാണ് pam_limits.so

സെഷൻ ആവശ്യമാണ് pam_env.so

സെഷൻ ആവശ്യമാണ് pam_unix.so

/etc/pam.d/common-password

പാസ്‌വേഡ് മതി pam_unix.so try_first_pass use_authtok nullok sha512 shadow

പാസ്വേഡ് മതിയായ pam_winbind.so

പാസ്‌വേഡ് ആവശ്യമാണ് pam_deny.so

അവസാനമായി, നിങ്ങൾ മറ്റെല്ലാ സേവനങ്ങൾക്കും ശേഷം സിസ്റ്റം ബൂട്ടിൽ Winbind-ൻ്റെ സമാരംഭം നീക്കേണ്ടതുണ്ട് (സ്ഥിരസ്ഥിതിയായി ഇത് സൂചിക 20 ൽ ആരംഭിക്കുന്നു). ഇത് ചെയ്യുന്നതിന്, ടെർമിനലിൽ ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക:

sudo bash -c "ഞാൻ 2 3 4 5-ൽ; mv /etc/rc$i.d/S20winbind /etc/rc$i.d/S99winbind ചെയ്യുക; ചെയ്തു"

ഓരോ ലെവലിനുമുള്ള കമാൻഡ് പ്രവർത്തിപ്പിക്കുന്നതിന് തുല്യമായത് (ഉദാഹരണത്തിൽ 4):

mv /etc/rc4.d/S20winbind /etc/rc4.d/S99winbind

ചില സന്ദർഭങ്ങളിൽ, വിൻബൈൻഡിന് മറ്റൊരു റൺലെവൽ ഉണ്ടായിരിക്കാം (ഉദാഹരണത്തിന്, S02winbind). അതിനാൽ ആദ്യം “ls /etc/rc(2,3,4,5).d/ | കമാൻഡ് പ്രവർത്തിപ്പിച്ച് ഫയലിൻ്റെ പേരുകൾ പരിശോധിക്കുക grep winbind" (ഉദ്ധരണികൾ ഇല്ലാതെ).

ചെയ്തു, എല്ലാ ക്രമീകരണങ്ങളും പൂർത്തിയായി. റീബൂട്ട് ചെയ്ത് ഒരു ഡൊമെയ്ൻ ഉപയോക്തൃ അക്കൗണ്ട് ഉപയോഗിച്ച് ലോഗിൻ ചെയ്യാൻ ശ്രമിക്കുക.

വിവിധ കാരണങ്ങളാൽ ഒരു ഡൊമെയ്ൻ കൺട്രോളർ ലഭ്യമല്ലാത്ത സാഹചര്യം ഉണ്ടാകാറുണ്ട് - അറ്റകുറ്റപ്പണികൾ, വൈദ്യുതി മുടക്കം, അല്ലെങ്കിൽ നിങ്ങൾ ലാപ്ടോപ്പ് വീട്ടിലേക്ക് കൊണ്ടുവന്ന് പ്രവർത്തിക്കാൻ ആഗ്രഹിക്കുന്നു. ഈ സാഹചര്യത്തിൽ, ഡൊമെയ്ൻ ഉപയോക്തൃ അക്കൗണ്ടുകൾ കാഷെ ചെയ്യുന്നതിനായി Winbind കോൺഫിഗർ ചെയ്യാവുന്നതാണ്. ഇത് ചെയ്യുന്നതിന് നിങ്ങൾ ഇനിപ്പറയുന്നവ ചെയ്യേണ്ടതുണ്ട്. ഫയലിൻ്റെ /etc/samba/smb.conf വിഭാഗത്തിലേക്ക് ഇനിപ്പറയുന്ന വരികൾ ചേർക്കുക:

Winbind ഓഫ്‌ലൈൻ ലോഗിൻ = അതെ

# അക്കൗണ്ട് കാഷിംഗ് കാലയളവ്, ഡിഫോൾട്ട് 300 സെക്കൻഡ് ആണ്

Winbind കാഷെ സമയം = 300

# ഓപ്‌ഷണൽ ക്രമീകരണം, എന്നാൽ മടുപ്പിക്കുന്ന ഇടവേളകൾ ഇല്ലാതാക്കുന്നു, ഡൊമെയ്ൻ കൺട്രോളർ ഡിസി വ്യക്തമാക്കുക,

# നിങ്ങൾക്ക് ഐപിയും വ്യക്തമാക്കാം, പക്ഷേ ഇത് മോശം രൂപമാണ്

പാസ്‌വേഡ് സെർവർ = ഡിസി

സാധാരണയായി ഇത് മതിയാകും. പിശകുകൾ സംഭവിക്കുകയാണെങ്കിൽ, നിങ്ങൾ ഒരു ഫയൽ സൃഷ്ടിക്കേണ്ടതുണ്ട് /etc/security/pam_winbind.confഇനിപ്പറയുന്ന ഉള്ളടക്കത്തോടൊപ്പം 5 ):

ശ്രദ്ധ! ചുവടെയുള്ള നുറുങ്ങുകൾ ഉപയോഗിക്കുമ്പോൾ, പൂർണ്ണമായും ക്രമരഹിതമായ "പ്രാമാണീകരണം പരാജയപ്പെട്ടു" പിശക് സംഭവിക്കാം! അതിനാൽ, നിങ്ങൾ ചെയ്യുന്നതെല്ലാം നിങ്ങളുടെ സ്വന്തം അപകടത്തിലും അപകടത്തിലും ചെയ്യുന്നു!

# pam_winbind കോൺഫിഗറേഷൻ ഫയൽ

# /etc/security/pam_winbind.conf

# ഡീബഗ്ഗിംഗ് ഓണാക്കുക

ഡീബഗ് = ഇല്ല

# സാധ്യമെങ്കിൽ ഒരു കാഷെഡ് ലോഗിൻ അഭ്യർത്ഥിക്കുക

# (smb.conf-ൽ "winbind ഓഫ്‌ലൈൻ ലോഗൺ = അതെ" ആവശ്യമാണ്)

Cached_login = അതെ

# കെർബറോസ് ഉപയോഗിച്ച് പ്രാമാണീകരിക്കുക

Krb5_auth = അതെ

# kerberos ഉപയോഗിക്കുമ്പോൾ, ഒരു "FILE" krb5 ക്രെഡൻഷ്യൽ കാഷെ തരം അഭ്യർത്ഥിക്കുക

# (krb5 പ്രാമാണീകരണം നടത്താൻ ശൂന്യമായി വിടുക, പക്ഷേ ടിക്കറ്റ് ഇല്ല

#ശേഷം)

Krb5_ccache_type = FILE

# വിജയകരമായ പ്രാമാണീകരണം ഒരു SID-യുടെ അംഗത്വത്തെ ആശ്രയിച്ചിരിക്കുന്നു

# (പേരും എടുക്കാം)

;require_membership_of =

നിശബ്ദം = അതെ

ഈ സാഹചര്യത്തിൽ ഫയൽ /etc/pam.d/gnome-screensaver ഫോം എടുക്കുന്നു:

auth മതിയായ pam_unix.so nullok_secure

auth ആവശ്യമാണ് pam_deny.so

ഫയലും /etc/pam.d/common-auth മാറ്റി:

ഓപ്ഷണൽ pam_group.so

auth പര്യാപ്തമായ pam_unix.so nullok_secure use_first_pass

auth പര്യാപ്തമായ pam_winbind.so use_first_pass

auth ആവശ്യമാണ് pam_deny.so

ലിനക്സിലെ I/O സിസ്റ്റം.

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

ഓരോ കണക്റ്റുചെയ്ത ഉപകരണവും (ടെർമിനൽ, ഡിസ്കുകൾ, പ്രിൻ്റർ മുതലായവ) കുറഞ്ഞത് ഒരു പ്രത്യേക ഫയലുമായി യോജിക്കുന്നു. ഇവയിൽ മിക്കതും പ്രത്യേക ഫയലുകൾ/dev ഡയറക്ടറിയിൽ സംഭരിച്ചിരിക്കുന്നു:
$ cd /dev
$ ls -l
ഓൺസോൾ സിസ്റ്റം നിയന്ത്രണ പാനൽ
ഡിസ്കിൽ dsk ഭാഗങ്ങൾ
fd0 ഫ്ലോപ്പി ഡിസ്ക് 1
ഓർമ്മ ഓർമ്മ
lp പ്രിൻ്റർ
lр0 സമാന്തര പോർട്ട് 0
. . .
റൂട്ട് ഫയൽ സിസ്റ്റത്തിനുള്ള ഡിസ്കിൽ റൂട്ട് ഭാഗം
സ്വാപ്പ് സ്വാപ്പ് ഭാഗം
കൺസോളിനുള്ള syscon ഇതര നാമം
സിസ്റ്റം കൺസോളിൻ്റെ മറ്റൊരു പേരാണ് systty
ടെർമിനലുകൾക്കുള്ള ടേം ഡയറക്ടറി
ttyS0 സീരിയൽ പോർട്ട് 0 (COM1)
. . .

അത്തരമൊരു പ്രത്യേക ഫയലിലേക്ക് ഒരു പ്രോഗ്രാം എഴുതുമ്പോൾ, OS സിസ്റ്റം അവയെ തടസ്സപ്പെടുത്തുകയും പ്രിൻ്റർ പോലുള്ള ഒരു ഉപകരണത്തിലേക്ക് അയയ്ക്കുകയും ചെയ്യുന്നു). ഇത്തരത്തിലുള്ള ഫയലിൽ നിന്നുള്ള ഡാറ്റ വായിക്കുമ്പോൾ, അത് യഥാർത്ഥത്തിൽ ഡിസ്ക് പോലുള്ള ഒരു ഉപകരണത്തിൽ നിന്നാണ് ലഭിക്കുന്നത്. ഇൻപുട്ട്/ഔട്ട്പുട്ട് ഉപകരണത്തിൻ്റെ പ്രവർത്തന സവിശേഷതകൾ പ്രോഗ്രാം കണക്കിലെടുക്കരുത്. ഈ ആവശ്യത്തിനായി, പ്രത്യേക ഫയലുകൾ (ഡ്രൈവറുകൾ) ഉപയോഗിക്കുന്നു, ഇത് OS കേർണലിൻ്റെ ഘടകങ്ങളും പൊതു-ഉദ്ദേശ്യ ആപ്ലിക്കേഷൻ പ്രോഗ്രാമുകളും തമ്മിലുള്ള ഒരു ഇൻ്റർഫേസായി പ്രവർത്തിക്കുന്നു.

ഒരു സാധാരണ ഫയലും ഒരു പ്രത്യേക ഫയലും തമ്മിലുള്ള വ്യത്യാസം ബന്ധപ്പെട്ട ഫയൽ വിശകലനം ചെയ്തതിനുശേഷം മാത്രമേ സിസ്റ്റം കണ്ടെത്തൂ. ഇനോഡ്, ഡയറക്‌ടറി എൻട്രിയിൽ പരാമർശിച്ചിരിക്കുന്നത്.
പ്രത്യേക ഫയൽ ഐനോഡിൽ ഉപകരണ ക്ലാസ്, തരം, നമ്പർ എന്നിവയെക്കുറിച്ചുള്ള വിവരങ്ങൾ അടങ്ങിയിരിക്കുന്നു. ഉപകരണ ക്ലാസ് പ്രതീകം അടിസ്ഥാനമാക്കിയുള്ളതും ബ്ലോക്ക് അടിസ്ഥാനമാക്കിയുള്ളതുമായ ഉപകരണങ്ങളെ നിർവചിക്കുന്നു. പ്രതീകങ്ങൾക്കനുസരിച്ച് ഉപകരണത്തിൻ്റെ ഒരു ഉദാഹരണം ഒരു കീബോർഡാണ്. ഈ തരത്തിലുള്ള ഉപകരണങ്ങളുമായി ആശയവിനിമയം നൽകുന്ന പ്രത്യേക ഫയലുകളെ ബൈറ്റ്-ഓറിയൻ്റഡ് എന്ന് വിളിക്കുന്നു. വലിയ ബ്ലോക്കുകളുടെ വിവരങ്ങളുടെ കൈമാറ്റമാണ് ബ്ലോക്ക് ഉപകരണങ്ങളുടെ സവിശേഷത, ഇത് കൈമാറ്റം വേഗത്തിലാക്കുകയും കൂടുതൽ കാര്യക്ഷമമാക്കുകയും ചെയ്യുന്നു. എല്ലാ ഡിസ്ക് ഉപകരണങ്ങളും ബ്ലോക്ക് എക്സ്ചേഞ്ചിനെ പിന്തുണയ്ക്കുന്നു, അവ നൽകുന്ന പ്രത്യേക ഫയലുകളെ ബ്ലോക്ക്-ഓറിയൻ്റഡ് എന്ന് വിളിക്കുന്നു. പ്രത്യേക ഫയലുകളിൽ പ്രതീകാത്മക വിവരങ്ങളൊന്നും അടങ്ങിയിട്ടില്ല, അതിനാൽ അവയുടെ ദൈർഘ്യം ഡയറക്ടറി ലിസ്റ്റിംഗിൽ സൂചിപ്പിച്ചിട്ടില്ല.

ഉപകരണത്തിൻ്റെ തരവും നമ്പറും പ്രത്യേക ഫയലുകളുടെ പ്രധാന സ്വഭാവസവിശേഷതകളാണ് (അനുബന്ധ ഉപകരണത്തിൻ്റെ പ്രധാനവും അധികവുമായ നമ്പറുകൾ നീളം ഫീൽഡിൽ സ്ഥാപിച്ചിരിക്കുന്നു). അവയിൽ ആദ്യത്തേത് ഉപകരണത്തിൻ്റെ തരം നിർണ്ണയിക്കുന്നു, രണ്ടാമത്തേത് സമാന ഉപകരണങ്ങൾക്കിടയിൽ അത് തിരിച്ചറിയുന്നു. OS-ന് ഒരേസമയം നിരവധി ഡസൻ കണക്കിന് നൂറുകണക്കിന് ടെർമിനലുകൾ പോലും സേവിക്കാൻ കഴിയും. അവയിൽ ഓരോന്നിനും അതിൻ്റേതായ പ്രത്യേക ഫയൽ ഉണ്ടായിരിക്കണം, അതിനാൽ ഒരു പ്രധാനവും അധികവുമായ സംഖ്യയുടെ സാന്നിധ്യം ഉപകരണവും അത്തരമൊരു ഫയലും തമ്മിൽ ആവശ്യമായ കത്തിടപാടുകൾ സ്ഥാപിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു.

നിങ്ങൾക്ക് ഒരു ഡിസ്കിൽ ഒന്നിലധികം ഫയൽ സിസ്റ്റങ്ങൾ സൃഷ്ടിക്കാൻ കഴിയും. ചില സിസ്റ്റങ്ങൾ ഓരോ ഡിസ്കിലും ഒരു ഫയൽ സിസ്റ്റം ഉപയോഗിക്കുന്നു, മറ്റുള്ളവ പലതും ഉപയോഗിക്കുന്നു. mkfs കമാൻഡ് ഉപയോഗിച്ച് ഒരു പുതിയ ഫയൽ സിസ്റ്റം ഉണ്ടാക്കാം (make ഫയൽ സിസ്റ്റം). ഉദാഹരണത്തിന്, # /sbin/mkfs /dev/dsk/fl1 512 എന്ന പദപ്രയോഗം അർത്ഥമാക്കുന്നത്: ഒരു ഫ്ലോപ്പി ഡിസ്ക് സൃഷ്ടിക്കുക b: വലിപ്പം 512 ബ്ലോക്കുകൾ.

ഓപ്ഷണലായി, നിങ്ങൾക്ക് ബ്ലോക്കുകളിലെ ഫയൽ സിസ്റ്റത്തിൻ്റെ വലുപ്പവും ഐ-നോഡുകളുടെ എണ്ണവും (അതായത്, ഫയൽ സിസ്റ്റത്തിൽ സൂക്ഷിക്കാൻ കഴിയുന്ന പരമാവധി എണ്ണം ഫയലുകൾ) വ്യക്തമാക്കാം. സ്ഥിരസ്ഥിതിയായി, ഐ-നോഡുകളുടെ എണ്ണം നാലായി ഹരിച്ച ബ്ലോക്കുകളുടെ എണ്ണത്തിന് തുല്യമാണ്. ഒരു ഫയൽ സിസ്റ്റത്തിലെ പരമാവധി ഐ-നോഡുകളുടെ എണ്ണം 65,000 ആണ്. ചില കാരണങ്ങളാൽ നിങ്ങൾക്ക് ഡിസ്കിൽ 65,000-ൽ കൂടുതൽ ഐ-നോഡുകൾ ആവശ്യമുണ്ടെങ്കിൽ, നിങ്ങൾ രണ്ടോ അതിലധികമോ സൃഷ്ടിക്കേണ്ടതുണ്ട്. ഫയൽ സിസ്റ്റങ്ങൾഈ ഡിസ്കിൽ.

ഒരു പങ്കിട്ട ഡയറക്ടറി ട്രീയിൽ ഏത് ഘട്ടത്തിലും ഏത് ഫയൽ സിസ്റ്റവും അറ്റാച്ചുചെയ്യാനാകും (മൌണ്ട് ചെയ്യുക). ഉദാഹരണത്തിന്, / ഡയറക്ടറി സിസ്റ്റത്തിൻ്റെ റൂട്ട് ഡയറക്ടറിയാണ്, കൂടാതെ, ഇത് എല്ലായ്പ്പോഴും മൌണ്ട് ചെയ്തിരിക്കുന്ന ഫയൽ സിസ്റ്റത്തിൻ്റെ അടിസ്ഥാനമാണ്. /usr1 ഡയറക്‌ടറി സ്ഥിതി ചെയ്യുന്നത് / ഡയറക്‌ടറിയിലാണ്, എന്നാൽ ഈ സാഹചര്യത്തിൽ ഇത് റൂട്ട് ഫയൽ സിസ്റ്റത്തിൽ നിന്നുള്ള ഒരു പ്രത്യേക ഫയൽ സിസ്റ്റമാണ്, കാരണം അതിലെ എല്ലാ ഫയലുകളും ഡിസ്കിൻ്റെ ഒരു പ്രത്യേക ഭാഗത്തോ അല്ലെങ്കിൽ ഒരു പ്രത്യേക ഡിസ്കിലോ ആണ്. /usr1 ഫയൽസിസ്റ്റം മൌണ്ട് ചെയ്ത ഫയൽസിസ്റ്റം ആണ് - മൊത്തത്തിലുള്ള ശ്രേണിയിൽ /usr1 ഡയറക്ടറി നിലനിൽക്കുന്ന പോയിൻ്റിലെ റൂട്ട് (ചിത്രങ്ങൾ 1, 2).

അരി. 1. മുമ്പ് ഫയൽ സിസ്റ്റം
മൗണ്ടിംഗ് /dev/dsk/os1

അരി. 2. ഫയൽ സിസ്റ്റം ശേഷം
/dev/dsk/os1 /usr/ ആയി മൌണ്ട് ചെയ്യുക

ഒരു ഫയൽ സിസ്റ്റം മൌണ്ട് ചെയ്യുന്നതിന്, /sbin/mount കമാൻഡ് ഉപയോഗിക്കുക. നൽകിയിരിക്കുന്ന ഫയൽ സിസ്റ്റത്തെ നിലവിലുള്ള ഡയറക്ടറി ഘടനയിൽ എവിടെയും സ്ഥാപിക്കാൻ ഈ കമാൻഡ് അനുവദിക്കുന്നു:
#/sbin/mount/dev/dsk/osl/usr1 മൗണ്ടുകൾ /dev/dsk/osl മുതൽ /usr1 വരെ
#/sbin/mount/dev/dsk/flt/a മൗണ്ടുകൾ /dev/dsk/flt to /a

സിസ്റ്റം റീഡ്-ഓൺലി ആയിരിക്കുന്നതിനായി റൈറ്റ്-പ്രൊട്ടക്റ്റ് ചെയ്യേണ്ട ഡിസ്കുകളിൽ ഒരു ഫയൽ സിസ്റ്റം മൌണ്ട് ചെയ്യണമെങ്കിൽ, /sbin/mount കമാൻഡിലേക്ക് -r ഓപ്ഷൻ ചേർക്കേണ്ടതുണ്ട്.
ഫയൽ സിസ്റ്റം മൌണ്ട് ചെയ്യുന്ന ഡയറക്ടറി നിലവിൽ ശൂന്യമായിരിക്കണം, കാരണം ഫയൽ സിസ്റ്റം മൌണ്ട് ചെയ്യുമ്പോൾ അതിലെ ഉള്ളടക്കങ്ങൾ ആക്സസ് ചെയ്യാൻ കഴിയില്ല.

മൌണ്ട് ചെയ്തിരിക്കുന്ന ഫയൽ സിസ്റ്റങ്ങളെക്കുറിച്ചുള്ള വിവരങ്ങൾ ലഭിക്കുന്നതിന്, ഉദാഹരണത്തിന്, ഒരു ലിനക്സ് സിസ്റ്റത്തിൽ, ആർഗ്യുമെൻ്റുകളില്ലാതെ നിങ്ങൾക്ക് /sbin/mount കമാൻഡ് ഉപയോഗിക്കാം (ചിത്രം 3).

അരി. 3.

ഈ കമാൻഡ് ഫയൽസിസ്റ്റം (ഉദാ: usrl) മൌണ്ട് ചെയ്തിരിക്കുന്ന ഡയറക്ടറി, അത് ഓണാക്കിയിരിക്കുന്ന /dev ഡിവൈസ്, അത് മൌണ്ട് ചെയ്ത മണിക്കൂറും തീയതിയും പ്രിൻ്റ് ചെയ്യുന്നു. ഫയൽ സിസ്റ്റം അൺമൗണ്ട് ചെയ്യുന്നതിന്, /sbin/umount എന്ന കമാൻഡ് ഉപയോഗിക്കുക, ഇതിന് വിപരീത ഫലമുണ്ട് മൗണ്ട് കമാൻഡ്. ഇത് ഫയൽ സിസ്റ്റത്തെ സ്വതന്ത്രമാക്കുകയും ഡയറക്ടറി ഘടനയിൽ നിന്ന് പൂർണ്ണമായും നീക്കം ചെയ്യുകയും ചെയ്യുന്നു, അങ്ങനെ എല്ലാം സ്വന്തം ഫയലുകൾകൂടാതെ ഡയറക്‌ടറികൾ അപ്രാപ്യമാകും:
# /sbin/umount /b
# /sbin/umount /dev/dsk/0s2

റൂട്ട് ഫയൽ സിസ്റ്റം അൺമൗണ്ട് ചെയ്യാൻ കഴിയില്ല. കൂടാതെ, ആരെങ്കിലും അവർ അൺമൗണ്ട് ചെയ്യാൻ ശ്രമിക്കുന്ന ഫയൽസിസ്റ്റത്തിൽ നിന്ന് ഒരു ഫയൽ ഉപയോഗിക്കുകയാണെങ്കിൽ umount കമാൻഡ് പരാജയപ്പെടും (ഇത് ഫയൽസിസ്റ്റത്തിലെ ഡയറക്‌ടറികളിലൊന്നിൽ അൺമൗണ്ട് ചെയ്യുന്നത് പോലെ ലളിതമാണ്).

മൗണ്ട്, umount കമാൻഡുകളിൽ, ഉപയോക്താവ് ഫിസിക്കൽ ഡിസ്ക് ഉപകരണങ്ങളുടെ ചുരുക്കെഴുത്ത് ഉപയോഗിക്കുന്നു.
ലിനക്സിൽ, ഡിസ്ക് ഉപകരണങ്ങൾക്ക് തനതായ പദവികളുണ്ട്. LINUX-ൽ, കൃത്യമായി വ്യക്തമാക്കുന്നതിനുള്ള പ്രശ്നം ഉപയോക്താവിന് ഒരിക്കലും നേരിടേണ്ടിവരില്ല ഭൗതിക ഉപകരണം, വിവരങ്ങൾ സ്ഥിതിചെയ്യുന്നത്. ലിനക്സിൽ, ബാഹ്യ ഉപകരണങ്ങളുടെ അനിയന്ത്രിതമായ എണ്ണം വളരെ വലുതായിരിക്കും, അതിനാൽ, ഉപയോക്താവിന് ആവശ്യമായ ഫയലുകൾ സ്ഥിതിചെയ്യുന്ന ഡയറക്ടറിയുടെ പേര് മാത്രമേ കൈകാര്യം ചെയ്യുകയുള്ളൂ. എല്ലാ ഫയൽ സിസ്റ്റങ്ങളും ഒരിക്കൽ മൌണ്ട് ചെയ്യപ്പെടുന്നു, സാധാരണയായി സിസ്റ്റം ബൂട്ട് ചെയ്യുമ്പോൾ. റിമോട്ട് കമ്പ്യൂട്ടറുകളിൽ നിന്നുള്ള ഫയൽ സിസ്റ്റങ്ങളും ചില ഡയറക്ടറികളിൽ മൌണ്ട് ചെയ്യാവുന്നതാണ്.

ലിനക്സിലെ ഫിസിക്കൽ ഡിവൈസുകൾക്കായി, ഡിസ്ക് ഡിവൈസുകളുമായി ബന്ധപ്പെട്ട ഫയലുകൾ അടങ്ങുന്ന dsk, rdsk എന്നീ ഡയറക്ടറികളുണ്ട്. സാധാരണയായി ഈ ഡയറക്‌ടറികളിലെ ഫയൽ നാമങ്ങൾ ഒന്നുതന്നെയാണ്, അവ തമ്മിലുള്ള ഒരേയൊരു വ്യത്യാസം rdsk ഡയറക്‌ടറിയിൽ പ്രത്യേക ആക്‌സസ് (റോ) ഉള്ള ഡിസ്‌ക് ഉപകരണങ്ങൾ അടങ്ങിയിരിക്കുന്നു എന്നതാണ്, ചില സിസ്റ്റം ഉപകരണങ്ങൾ വേഗത്തിലുള്ള ഡിസ്‌ക് ആക്‌സസ്സിനായി ഉപയോഗിക്കുന്നു. ഒരു സാധാരണ dsk ഡയറക്ടറിയിൽ ഇനിപ്പറയുന്ന ഉപകരണങ്ങൾ അടങ്ങിയിരിക്കുന്നു:
$1s /dev/dsk
0s0 1s0 c0t0d0s0 c0tld0s0 f0 f05q f13dt fld8d
0sl 1sl c0t0d0sl c0tld0sl f03d f05qt f13h fld8dt
0s2 1s2 c0t0d0s2 c0tld0s2 f03dt f0d8d f13ht fld8t
. . .
$

ഒരു LINUX സിസ്റ്റത്തിൽ, പാർട്ടീഷൻ ടേബിൾ MasterBoot MS DOS-ൽ നിർവചിച്ചിരിക്കുന്ന പാർട്ടീഷനുകൾക്ക് സമാനമായി, ഡിസ്ക് ഡിവൈസുകൾ ലോജിക്കലായി വിഭാഗങ്ങളായി തിരിച്ചിരിക്കുന്നു. ഫയലുകൾ 0s1, 0s2, 0s3, മുതലായവ ഡിസ്ക് നമ്പർ 0-ലെ സെക്ഷൻ ഒന്ന്, രണ്ട്, മൂന്ന്, മുതലായവയുമായി യോജിക്കുന്നു. ഫയലുകൾ 1s0, 1sl, 1s2, മുതലായവ വിഭാഗങ്ങൾ ഒന്ന്, രണ്ട്, മൂന്നാമത്, മുതലായവ ഡിസ്ക് നമ്പർ 1. എങ്കിൽ സിസ്റ്റത്തിന് കൂടുതൽ ഡിസ്കുകൾ ഉണ്ട്, പാർട്ടീഷനുകൾ ഓരോ ഡിസ്ക് നമ്പറിനും ns0, nsl എന്നിങ്ങനെ അക്കമിട്ടിരിക്കും.

ധാരാളം ഡിസ്ക് ഉപകരണങ്ങളുള്ള സിസ്റ്റങ്ങൾ ഉപയോഗിക്കുന്നു ഇനിപ്പറയുന്ന സിസ്റ്റംനമ്പറിംഗ്:
കൺട്രോളർ d ഡിസ്ക് സെക്ഷൻ ഉപയോഗിച്ച്

ഇവിടെ കൺട്രോളർ ഡിസ്ക് കൺട്രോളർ നമ്പർ ആണ്; ഡിസ്ക് - ഡിസ്ക് നമ്പർ; വിഭാഗം - ഡിസ്ക് വിഭാഗം നമ്പർ.
അതിനാൽ, 0s0 സാധാരണയായി c0t0d0s0 നും 0sl മുതൽ c0t0d0sl നും തുല്യമാണ്, കൂടാതെ മൂന്ന് പ്രതീക വിഭാഗങ്ങളുടെ പേരുകൾ ചുരുക്കെഴുത്താണ് ഡിസ്ക് കൺട്രോളർനമ്പർ 0 ഉള്ളത്.

f എന്നതിൽ തുടങ്ങുന്ന ഫയലുകൾ വ്യത്യസ്ത തരങ്ങളെ നിർവചിക്കുന്നു ഫ്ലോപ്പി ഡിസ്കുകൾ. rmt ഡയറക്ടറിയിൽ മാഗ്നറ്റിക് ടേപ്പ് ഉപകരണങ്ങളിൽ ഫയലുകൾ അടങ്ങിയിരിക്കുന്നു:
$1s /dev/rmt
c0s0 cls0 c3s0 ntape ntapel ടേപ്പ് ടേപ്പ്

c0s0, cls0, c2s0, c3s0 എന്നീ ഫയലുകൾ നാല് കാസറ്റ് ടേപ്പ് സ്റ്റോറേജ് ഡിവൈസുകളെ നിർവ്വചിക്കുന്നു. ടേപ്പ്, ടേപ്പൽ ഫയലുകൾ രണ്ട്-റീൽ മാഗ്നറ്റിക് സ്റ്റോറേജ് ഡിവൈസുകളെ നിർവ്വചിക്കുന്നു. n-ൽ തുടങ്ങുന്ന ഫയലുകൾ ഒരേ ഉപകരണങ്ങളുടേതാണ്, ടേപ്പ് മാത്രം ഉപയോഗത്തിന് ശേഷം റിവൈൻഡ് ചെയ്യില്ല, അതേസമയം മറ്റ് ഫയലുകൾ ഉപയോഗിക്കുന്നത് ടേപ്പ് അത് ഉപയോഗിക്കുന്ന പ്രോഗ്രാം പ്രവർത്തിക്കുന്നത് പൂർത്തിയാകുമ്പോൾ റിവൈൻഡ് ചെയ്യാൻ കാരണമാകുന്നു.

ചില സിസ്റ്റങ്ങളിൽ ഈ ഫയലുകൾക്ക് വ്യത്യസ്‌ത പേരുകളുണ്ട്, എന്നാൽ അവയെല്ലാം എല്ലായ്‌പ്പോഴും /dev-ൽ സ്ഥിതി ചെയ്യുന്നു, സാധാരണയായി സിസ്റ്റത്തിനൊപ്പം വരുന്ന നിഘണ്ടുവിൽ ഉപകരണങ്ങളുടെയും അവയുമായി ബന്ധപ്പെട്ട ഫയലുകളുടെയും വിശദമായ വിവരണങ്ങൾ അടങ്ങിയിരിക്കുന്നു.

ഫയൽ extX സിസ്റ്റം I/O പ്രവർത്തനങ്ങളിൽ ഡാറ്റ ബഫറിംഗ് ഉപയോഗിക്കുന്നു. വിവരങ്ങളുടെ ഒരു ബ്ലോക്ക് വായിക്കുമ്പോൾ, അടുത്തുള്ള നിരവധി ബ്ലോക്കുകളിലേക്ക് കേർണൽ ഒരു I/O അഭ്യർത്ഥന നൽകുന്നു. ഫയലുകൾ തുടർച്ചയായി വായിക്കുമ്പോൾ അത്തരം പ്രവർത്തനങ്ങൾ ഡാറ്റ വീണ്ടെടുക്കൽ വളരെ വേഗത്തിലാക്കുന്നു. ഒരു ഫയലിലേക്ക് ഡാറ്റ എഴുതുമ്പോൾ, extX ഫയൽ സിസ്റ്റം എഴുതുന്നു പുതിയ ബ്ലോക്ക്, തൊട്ടടുത്തുള്ള 8 ബ്ലോക്കുകൾ വരെ വശങ്ങളിലായി സ്ഥാപിക്കുക. ഈ രീതി ഫയലുകൾ അടുത്തുള്ള ബ്ലോക്കുകളിൽ സ്ഥാപിക്കാൻ അനുവദിക്കുന്നു, അത് അവയുടെ വായനയെ വേഗത്തിലാക്കുകയും ഉയർന്ന സിസ്റ്റം പ്രകടനം സാധ്യമാക്കുകയും ചെയ്യുന്നു.