പ്രായോഗിക ഉദാഹരണങ്ങളോടെ ലിനക്സിലെ 10 ഉപയോഗപ്രദമായ ചെയിനിംഗ് ഓപ്പറേറ്റർമാർ


Linux കമാൻഡുകളുടെ ശൃംഖല എന്നതിനർത്ഥം, നിരവധി കമാൻഡുകൾ സംയോജിപ്പിച്ച് അവയ്ക്കിടയിൽ ഉപയോഗിക്കുന്ന ഓപ്പറേറ്ററുടെ പെരുമാറ്റത്തെ അടിസ്ഥാനമാക്കി അവയെ എക്സിക്യൂട്ട് ചെയ്യുക എന്നതാണ്. ലിനക്സിലെ കമാൻഡുകളുടെ ശൃംഖല, നിങ്ങൾ ഷെല്ലിൽ തന്നെ ചെറിയ ഷെൽ സ്ക്രിപ്റ്റുകൾ എഴുതുന്നതും ടെർമിനലിൽ നിന്ന് നേരിട്ട് നടപ്പിലാക്കുന്നതും പോലെയാണ്. ചെയിൻ ചെയ്യുന്നത് പ്രക്രിയ ഓട്ടോമേറ്റ് ചെയ്യുന്നത് സാധ്യമാക്കുന്നു. കൂടാതെ, ശ്രദ്ധിക്കപ്പെടാത്ത ഒരു യന്ത്രത്തിന് ചെയിനിംഗ് ഓപ്പറേറ്റർമാരുടെ സഹായത്തോടെ വളരെ ചിട്ടയായ രീതിയിൽ പ്രവർത്തിക്കാൻ കഴിയും.

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

1. ആമ്പർസാൻഡ് ഓപ്പറേറ്റർ (&)

പശ്ചാത്തലത്തിൽ കമാൻഡ് പ്രവർത്തിപ്പിക്കുക എന്നതാണ് '&' യുടെ പ്രവർത്തനം. ഒരു വൈറ്റ് സ്uപെയ്uസിനൊപ്പം '&' എന്ന കമാൻഡ് ടൈപ്പ് ചെയ്യുക. നിങ്ങൾക്ക് പശ്ചാത്തലത്തിൽ, ഒറ്റയടിക്ക് ഒന്നിലധികം കമാൻഡുകൾ എക്സിക്യൂട്ട് ചെയ്യാൻ കഴിയും.

പശ്ചാത്തലത്തിൽ ഒരു കമാൻഡ് പ്രവർത്തിപ്പിക്കുക:

[email :~$ ping ­c5 linux-console.net &

പശ്ചാത്തലത്തിൽ ഒരേസമയം രണ്ട് കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കുക:

[email :/home/tecmint# apt-get update & apt-get upgrade &

2. സെമി കോളൺ ഓപ്പറേറ്റർ (;)

സെമി-കോളൺ ഓപ്പറേറ്റർ പ്രവർത്തിപ്പിക്കുന്നത് സാധ്യമാക്കുന്നു, ഒറ്റയടിക്ക് നിരവധി കമാൻഡുകൾ, കമാൻഡ് എക്സിക്യൂഷൻ തുടർച്ചയായി സംഭവിക്കുന്നു.

[email :/home/tecmint# apt-get update ; apt-get upgrade ; mkdir test

മുകളിലുള്ള കമാൻഡ് കോമ്പിനേഷൻ ആദ്യം അപ്uഡേറ്റ് നിർദ്ദേശം നടപ്പിലാക്കും, തുടർന്ന് നിർദ്ദേശം അപ്uഗ്രേഡ് ചെയ്യുകയും ഒടുവിൽ നിലവിലെ വർക്കിംഗ് ഡയറക്ടറിക്ക് കീഴിൽ ഒരു 'ടെസ്റ്റ്' ഡയറക്uടറി സൃഷ്ടിക്കുകയും ചെയ്യും.

3. കൂടാതെ ഓപ്പറേറ്റർ (&&)

ആദ്യ കമാൻഡിന്റെ എക്സിറ്റ്യൂട്ട് വിജയകരമാണെങ്കിൽ, AND ഓപ്പറേറ്റർ (&&) രണ്ടാമത്തെ കമാൻഡ് മാത്രമേ എക്സിക്യൂട്ട് ചെയ്യൂ, അതായത്, ആദ്യത്തെ കമാൻഡിന്റെ എക്സിറ്റ് സ്റ്റാറ്റസ് 0 ആണ്. അവസാന കമാൻഡിന്റെ എക്സിക്യൂഷൻ നില പരിശോധിക്കാൻ ഈ കമാൻഡ് വളരെ ഉപയോഗപ്രദമാണ്.

ഉദാഹരണത്തിന്, ടെർമിനലിൽ ലിങ്ക് കമാൻഡ് ഉപയോഗിച്ച് linux-console.net എന്ന വെബ്uസൈറ്റ് സന്ദർശിക്കാൻ ഞാൻ ആഗ്രഹിക്കുന്നു, എന്നാൽ അതിന് മുമ്പ് ഹോസ്റ്റ് ലൈവാണോ അല്ലയോ എന്ന് പരിശോധിക്കേണ്ടതുണ്ട്.

[email :/home/tecmint# ping -c3 linux-console.net && links linux-console.net

4. അല്ലെങ്കിൽ ഓപ്പറേറ്റർ (||)

OR ഓപ്പറേറ്റർ (||) പ്രോഗ്രാമിംഗിലെ ഒരു 'മറ്റുള്ള' പ്രസ്താവന പോലെയാണ്. ആദ്യത്തെ കമാൻഡിന്റെ എക്സിക്യൂഷൻ പരാജയപ്പെടുകയാണെങ്കിൽ മാത്രമേ രണ്ടാമത്തെ കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യാൻ മുകളിലുള്ള ഓപ്പറേറ്റർ നിങ്ങളെ അനുവദിക്കുന്നു, അതായത്, ആദ്യ കമാൻഡിന്റെ എക്സിറ്റ് സ്റ്റാറ്റസ് '1' ആണ്.

ഉദാഹരണത്തിന്, റൂട്ട് ഇതര അക്കൗണ്ടിൽ നിന്ന് 'apt-get update' എക്സിക്യൂട്ട് ചെയ്യാൻ ഞാൻ ആഗ്രഹിക്കുന്നു, ആദ്യ കമാൻഡ് പരാജയപ്പെടുകയാണെങ്കിൽ, രണ്ടാമത്തെ 'links linux-console.net' കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യും.

[email :~$ apt-get update || links linux-console.net

മുകളിലുള്ള കമാൻഡിൽ, സിസ്റ്റം അപ്uഡേറ്റ് ചെയ്യാൻ ഉപയോക്താവിനെ അനുവദിക്കാത്തതിനാൽ, ആദ്യത്തെ കമാൻഡിന്റെ എക്സിറ്റ് സ്റ്റാറ്റസ് '1' ആണെന്നും അതിനാൽ അവസാന കമാൻഡ് 'links linux-console.net' എക്സിക്യൂട്ട് ചെയ്യപ്പെടുന്നുവെന്നും അർത്ഥമാക്കുന്നു.

എക്സിറ്റ് സ്റ്റാറ്റസ് '0' ഉപയോഗിച്ച് ആദ്യത്തെ കമാൻഡ് വിജയകരമായി നടപ്പിലാക്കിയാലോ? സ്പഷ്ടമായി! രണ്ടാമത്തെ കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യില്ല.

[email :~$ mkdir test || links linux-console.net

ഇവിടെ, ഉപയോക്താവ് തന്റെ ഹോം ഡയറക്uടറിയിൽ 'ടെസ്റ്റ്' എന്ന ഫോൾഡർ സൃഷ്uടിക്കുന്നു, അതിനായി ഉപയോക്താവിന് അനുമതിയുണ്ട്. '0' എന്ന എക്സിറ്റ് സ്റ്റാറ്റസ് നൽകിക്കൊണ്ട് കമാൻഡ് വിജയകരമായി എക്സിക്യൂട്ട് ചെയ്തു, അതിനാൽ കമാൻഡിന്റെ അവസാന ഭാഗം എക്സിക്യൂട്ട് ചെയ്യുന്നില്ല.

5. ഓപ്പറേറ്റർ അല്ല (!)

NOT ഓപ്പറേറ്റർ (!) ഒരു 'ഒഴികെ' പ്രസ്താവന പോലെയാണ്. ഈ കമാൻഡ് നൽകിയിരിക്കുന്ന വ്യവസ്ഥ ഒഴികെ എല്ലാം നടപ്പിലാക്കും. ഇത് മനസിലാക്കാൻ, നിങ്ങളുടെ ഹോം ഡയറക്uടറിയിൽ 'tecmint' എന്ന ഡയറക്ടറിയും അതിലേക്ക് 'cd' എന്നതും സൃഷ്ടിക്കുക.

[email :~$ mkdir tecmint 
[email :~$ cd tecmint

അടുത്തതായി, 'tecmint' എന്ന ഫോൾഡറിൽ നിരവധി തരം ഫയലുകൾ സൃഷ്ടിക്കുക.

[email :~/tecmint$ touch a.doc b.doc a.pdf b.pdf a.xml b.xml a.html b.html

'tecmint' എന്ന ഫോൾഡറിൽ ഞങ്ങൾ എല്ലാ പുതിയ ഫയലുകളും സൃഷ്ടിച്ചുവെന്ന് കാണുക.

[email :~/tecmint$ ls 

a.doc  a.html  a.pdf  a.xml  b.doc  b.html  b.pdf  b.xml

ഇപ്പോൾ 'html' ഫയൽ ഒഴികെയുള്ള എല്ലാ ഫയലുകളും ഒരു സമർത്ഥമായ രീതിയിൽ ഇല്ലാതാക്കുക.

[email :~/tecmint$ rm -r !(*.html)

സ്ഥിരീകരിക്കാൻ, അവസാന നിർവ്വഹണം. ls കമാൻഡ് ഉപയോഗിച്ച് ലഭ്യമായ എല്ലാ ഫയലുകളും ലിസ്റ്റ് ചെയ്യുക.

[email :~/tecmint$ ls 

a.html  b.html

6. കൂടാതെ – അല്ലെങ്കിൽ ഓപ്പറേറ്റർ (&& – ||)

മുകളിലുള്ള ഓപ്പറേറ്റർ യഥാർത്ഥത്തിൽ 'AND', 'OR' ഓപ്പറേറ്റർ എന്നിവയുടെ സംയോജനമാണ്. ഇത് ഒരു 'ഇൽ-ഇല്ലെങ്കിൽ' പ്രസ്താവന പോലെയാണ്.

ഉദാഹരണത്തിന്, നമുക്ക് linux-console.net-ലേക്ക് പിംഗ് ചെയ്യാം, വിജയം 'വെരിഫൈഡ്' പ്രതിധ്വനിക്കുകയാണെങ്കിൽ, 'ഹോസ്റ്റ് ഡൗൺ' പ്രതിധ്വനിപ്പിക്കുക.

[email :~/tecmint$ ping -c3 linux-console.net && echo "Verified" || echo "Host Down"
PING linux-console.net (212.71.234.61) 56(84) bytes of data. 
64 bytes from linux-console.net (212.71.234.61): icmp_req=1 ttl=55 time=216 ms 
64 bytes from linux-console.net (212.71.234.61): icmp_req=2 ttl=55 time=224 ms 
64 bytes from linux-console.net (212.71.234.61): icmp_req=3 ttl=55 time=226 ms 

--- linux-console.net ping statistics --- 
3 packets transmitted, 3 received, 0% packet loss, time 2001ms 
rtt min/avg/max/mdev = 216.960/222.789/226.423/4.199 ms 
Verified

ഇപ്പോൾ, നിങ്ങളുടെ ഇന്റർനെറ്റ് കണക്ഷൻ വിച്ഛേദിക്കുക, അതേ കമാൻഡ് വീണ്ടും ശ്രമിക്കുക.

[email :~/tecmint$ ping -c3 linux-console.net && echo "verified" || echo "Host Down"
ping: unknown host linux-console.net 
Host Down

7. പൈപ്പ് ഓപ്പറേറ്റർ (|)

ആദ്യത്തെ കമാൻഡിന്റെ ഔട്ട്പുട്ട് രണ്ടാമത്തെ കമാൻഡിലേക്കുള്ള ഇൻപുട്ടായി പ്രവർത്തിക്കുന്നിടത്ത് ഈ PIPE ഓപ്പറേറ്റർ വളരെ ഉപയോഗപ്രദമാണ്. ഉദാഹരണത്തിന്, 'ls -l' ന്റെ ഔട്ട്പുട്ട് 'ലെസ്സ്' ലേക്ക് പൈപ്പ്ലൈൻ ചെയ്യുക, കമാൻഡിന്റെ ഔട്ട്പുട്ട് കാണുക.

[email :~$ ls -l | less

8. കമാൻഡ് കോമ്പിനേഷൻ ഓപ്പറേറ്റർ {}

രണ്ടോ അതിലധികമോ കമാൻഡുകൾ സംയോജിപ്പിക്കുക, രണ്ടാമത്തെ കമാൻഡ് ആദ്യ കമാൻഡിന്റെ നിർവ്വഹണത്തെ ആശ്രയിച്ചിരിക്കുന്നു.

ഉദാഹരണത്തിന്, ഒരു ഡയറക്uടറി 'ബിൻ' ലഭ്യമാണോ ഇല്ലയോ എന്ന് പരിശോധിച്ച്, അതിനനുസരിച്ചുള്ള ഔട്ട്uപുട്ട് ഔട്ട്പുട്ട് ചെയ്യുക.

[email :~$ [ -d bin ] || { echo Directory does not exist, creating directory now.; mkdir bin; } && echo Directory exists.

9. പ്രീസിഡൻസ് ഓപ്പറേറ്റർ()

മുൻuഗണന ക്രമത്തിൽ കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യുന്നത് ഓപ്പറേറ്റർ സാധ്യമാക്കുന്നു.

Command_x1 &&Command_x2 || Command_x3 && Command_x4.

മുകളിലുള്ള വ്യാജ കമാൻഡിൽ, Command_x1 പരാജയപ്പെടുകയാണെങ്കിൽ? Command_x2, Command_x3, Command_x4 എന്നിവയൊന്നും എക്സിക്യൂട്ട് ചെയ്യില്ല, ഇതിനായി ഞങ്ങൾ പ്രിസിഡൻസ് ഓപ്പറേറ്റർ ഉപയോഗിക്കുന്നു:

(Command_x1 &&Command_x2) || (Command_x3 && Command_x4)

മുകളിലുള്ള വ്യാജ കമാൻഡിൽ, Command_x1 പരാജയപ്പെടുകയാണെങ്കിൽ, Command_x2 പരാജയപ്പെടും, പക്ഷേ ഇപ്പോഴും Command_x3, Command_x4 എന്നിവ നടപ്പിലാക്കുന്നത് Command_x3-ന്റെ എക്സിറ്റ് നിലയെ ആശ്രയിച്ചിരിക്കുന്നു.

10. കോൺകാറ്റനേഷൻ ഓപ്പറേറ്റർ (\)

കോൺകാറ്റനേഷൻ ഓപ്പറേറ്റർ (\) പേര് വ്യക്തമാക്കുന്നത് പോലെ, ഷെല്ലിലെ നിരവധി ലൈനുകളിൽ വലിയ കമാൻഡുകൾ സംയോജിപ്പിക്കാൻ ഉപയോഗിക്കുന്നു. ഉദാഹരണത്തിന്, താഴെയുള്ള കമാൻഡ് ടെക്സ്റ്റ് ഫയൽ ടെസ്റ്റ് (1).txt തുറക്കും.

[email :~/Downloads$ nano test\(1\).txt

ഇപ്പോഴത്തേക്ക് ഇത്രമാത്രം. രസകരമായ മറ്റൊരു ലേഖനവുമായി ഞാൻ ഉടൻ വരുന്നു. അതുവരെ തുടരുക, ആരോഗ്യത്തോടെ, Tecmint-മായി കണക്റ്റുചെയ്uതിരിക്കുക. ഞങ്ങളുടെ അഭിപ്രായ വിഭാഗത്തിൽ നിങ്ങളുടെ വിലയേറിയ ഫീഡ്uബാക്ക് നൽകാൻ മറക്കരുത്.