ലിനക്സിൽ Tee, Xargs എന്നിവ ഉപയോഗിച്ച് സ്റ്റാൻഡേർഡ് ഇൻപുട്ടിൽ നിന്ന് കമാൻഡുകൾ എങ്ങനെ പ്രവർത്തിപ്പിക്കാം


കമാൻഡ് ലൈൻ ഉപയോഗിക്കുമ്പോൾ, ഒരു പൈപ്പ്ലൈൻ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഒരു പ്രോഗ്രാമിന്റെ ഔട്ട്പുട്ട് നേരിട്ട് കൈമാറാൻ കഴിയും (ഉദാഹരണത്തിന്, കൂടുതൽ പ്രോസസ്സിംഗിനായി കുറച്ച് awk സൃഷ്ടിക്കുന്ന ഒരു ഉപകരണം).

കമാൻഡ് ലൈനുകൾ നിർമ്മിക്കുന്നതിന് പൈപ്പ്ലൈനുകൾക്കൊപ്പം ഉപയോഗിക്കാവുന്ന ഏറ്റവും പ്രധാനപ്പെട്ട രണ്ട് കമാൻഡ് ലൈൻ യൂട്ടിലിറ്റികൾ ഇവയാണ്:

  • xargs - സ്റ്റാൻഡേർഡ് ഇൻപുട്ടിൽ നിന്ന് ഡാറ്റയുടെ സ്ട്രീമുകൾ വായിക്കുന്നു, തുടർന്ന് കമാൻഡ് ലൈനുകൾ സൃഷ്ടിക്കുകയും നടപ്പിലാക്കുകയും ചെയ്യുന്നു.
  • tee – സ്റ്റാൻഡേർഡ് ഇൻപുട്ടിൽ നിന്ന് വായിക്കുകയും സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടിലേക്കും ഒന്നോ അതിലധികമോ ഫയലുകളിലേക്കും ഒരേസമയം എഴുതുകയും ചെയ്യുന്നു. ഇതൊരു റീഡയറക്ഷൻ കമാൻഡാണ്.

ഈ ലളിതമായ ലേഖനത്തിൽ, ലിനക്സിലെ പൈപ്പുകൾ, ടീ, xargs കമാൻഡുകൾ എന്നിവ ഉപയോഗിച്ച് സ്റ്റാൻഡേർഡ് ഇൻപുട്ടിൽ നിന്ന് ഒന്നിലധികം കമാൻഡുകൾ എങ്ങനെ നിർമ്മിക്കാമെന്നും എക്സിക്യൂട്ട് ചെയ്യാമെന്നും ഞങ്ങൾ വിവരിക്കും.

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

$ command1 args | command2 args 
OR
# command1 args | command2 args | command3 args ...

ഹെഡ് കമാൻഡിന്റെ ഔട്ട്പുട്ട് കൈമാറാൻ പൈപ്പ്ലൈൻ ഉപയോഗിക്കുന്നതിന്റെ ഒരു ഉദാഹരണം ചുവടെയുണ്ട്.

$ dmesg | head

കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കുന്നതിന് xargs എങ്ങനെ ഉപയോഗിക്കാം

ഈ ഉദാഹരണത്തിൽ, രണ്ടാമത്തെ കമാൻഡ് xargs ഉപയോഗിച്ച് muti-line ഔട്ട്പുട്ടിനെ സിംഗിൾ ലൈനാക്കി മാറ്റുന്നു.

$ ls -1 *.sh
$ ls -1 *.sh | xargs

ഒരു ലിസ്റ്റിലെ ഓരോ ഫയലിലെയും വരികൾ/പദങ്ങൾ/അക്ഷരങ്ങളുടെ എണ്ണം കണക്കാക്കാൻ, താഴെയുള്ള കമാൻഡുകൾ ഉപയോഗിക്കുക.

$ ls *.sh | xargs wc -l	    #count number of lines in each file
$ ls *.sh | xargs wc -w	    #count number of words in each file
$ ls *.sh | xargs wc -c	    #count number of characters in each file
$ ls *.sh | xargs wc	    #count lines, words and characters in each file

ചുവടെയുള്ള കമാൻഡ് നിലവിലെ ഡയറക്uടറിയിൽ All എന്ന പേരിലുള്ള ഡയറക്uടറി കണ്ടെത്തുകയും ആവർത്തിച്ച് ഇല്ലാതാക്കുകയും ചെയ്യുന്നു.

$ find . -name "All" -type d -print0 | xargs  -0 /bin/rm -rf "{}"

-print0 എന്ന ഓപ്uഷൻ ഉള്ള ഫൈൻഡ് കമാൻഡ് സ്റ്റാൻഡേർഡ് ഔട്ട്uപുട്ടിൽ പൂർണ്ണ ഡയറക്uടറി പാഥിന്റെ പ്രിന്റിംഗ് പ്രാപ്uതമാക്കുന്നു, തുടർന്ന് ഒരു ശൂന്യ പ്രതീകവും -0 xargs ഫ്ലാഗ് ഫയലിന്റെ പേരിലുള്ള സ്ഥലവുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു.

ഈ ലേഖനങ്ങളിൽ നിങ്ങൾക്ക് മറ്റ് പ്രായോഗിക xargs കമാൻഡ് ഉപയോഗ ഉദാഹരണങ്ങൾ കണ്ടെത്താം:

  1. ലിനക്സിലെ ഒന്നിലധികം ഡയറക്ടറികളിലേക്ക് ഒരു ഫയൽ എങ്ങനെ പകർത്താം
  2. എല്ലാ ഫയലുകളുടെയും ഡയറക്uടറി പേരുകളുടെയും പേര് Linux-ൽ ചെറിയക്ഷരത്തിലേക്ക് മാറ്റുക
  3. നിങ്ങളുടെ PNG-യെ JPG ആയും തിരിച്ചും പരിവർത്തനം ചെയ്യാനുള്ള 4 വഴികൾ
  4. വിപുലീകരണങ്ങളുള്ള ഒന്നോ അതിലധികമോ ഫയലുകൾ ഒഴികെ ഒരു ഡയറക്uടറിയിലെ എല്ലാ ഫയലുകളും ഇല്ലാതാക്കാനുള്ള 3 വഴികൾ

Linux-ൽ കമാൻഡുകൾ ഉപയോഗിച്ച് Tee എങ്ങനെ ഉപയോഗിക്കാം

സ്റ്റാൻഡേർഡ് ഔട്ട്uപുട്ടിലേക്ക് കമാൻഡ് ഔട്ട്uപുട്ട് എങ്ങനെ അയയ്uക്കാമെന്നും ഒരു ഫയലിലേക്ക് എങ്ങനെ സേവ് ചെയ്യാമെന്നും ഈ ഉദാഹരണം കാണിക്കുന്നു; ലിനക്സിലെ ഉയർന്ന മെമ്മറിയും സിപിയു ഉപയോഗവും ഉപയോഗിച്ച് ടോപ്പ് റണ്ണിംഗ് പ്രോസസുകൾ കാണാൻ താഴെയുള്ള കമാൻഡ് നിങ്ങളെ അനുവദിക്കുന്നു.

$ ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head | tee topprocs.txt
$ cat  topprocs.txt

നിലവിലുള്ള ഒരു ഫയലിൽ(കളിൽ) ഡാറ്റ കൂട്ടിച്ചേർക്കാൻ, -a ഫ്ലാഗ് കടക്കുക.

$ ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head | tee -a topprocs.txt 

tee, xargs man പേജുകളിൽ നിങ്ങൾക്ക് കൂടുതൽ വിവരങ്ങൾ കണ്ടെത്താം.

$ man xargs
$ man tee

അത്രയേയുള്ളൂ! ഞങ്ങളുടെ പ്രത്യേക ലേഖനം പരിശോധിക്കാൻ മറക്കരുത്: A - Z Linux കമാൻഡുകൾ - ഉദാഹരണങ്ങളുള്ള അവലോകനം.

ഈ ലേഖനത്തിൽ, പൈപ്പ് ലൈനുകൾ ഉപയോഗിച്ച് കമാൻഡ് ലൈനുകൾ എങ്ങനെ സൃഷ്ടിക്കാമെന്ന് ഞങ്ങൾ വിവരിച്ചു; xargs, tee കമാൻഡുകൾ. ചുവടെയുള്ള ഫീഡ്uബാക്ക് ഫോം വഴി നിങ്ങൾക്ക് എന്തെങ്കിലും ചോദ്യങ്ങൾ ചോദിക്കാം അല്ലെങ്കിൽ എന്തെങ്കിലും ചിന്തകൾ പങ്കിടാം.