ചരിത്രത്തിൽ സംരക്ഷിക്കാതെ ഒരു ലിനക്സ് കമാൻഡ് എങ്ങനെ പ്രവർത്തിപ്പിക്കാം


സ്ഥിരസ്ഥിതിയായി, നിങ്ങളുടെ ടെർമിനലിൽ നിങ്ങൾ എക്സിക്യൂട്ട് ചെയ്യുന്ന ഓരോ കമാൻഡും ഹിസ്റ്ററി ഫയൽ അല്ലെങ്കിൽ ഷെൽ കമാൻഡ് ഹിസ്റ്ററി എന്ന് വിളിക്കുന്ന ഒരു നിശ്ചിത ഫയലിൽ ഷെൽ (കമാൻഡ് ഇന്റർപ്രെറ്റർ) സംഭരിക്കുന്നു. ബാഷിൽ (ലിനക്സ് വിതരണങ്ങളിൽ 500 ഉണ്ട്.

ബാഷിൽ നിങ്ങളുടെ ചരിത്ര വലുപ്പം പരിശോധിക്കാൻ, ഈ കമാൻഡ് പ്രവർത്തിപ്പിക്കുക:

$ echo $HISTSIZE

നിങ്ങൾ പ്രവർത്തിപ്പിച്ച പഴയ കമാൻഡുകൾ കാണുന്നതിന്, ഷെൽ കമാൻഡ് ചരിത്രം പ്രദർശിപ്പിക്കുന്നതിന് നിങ്ങൾക്ക് ഹിസ്റ്ററി കമാൻഡ് ഉപയോഗിക്കാം:

$ history

ചിലപ്പോൾ, കമാൻഡുകൾ ലോഗ് ചെയ്യുന്നതിൽ നിന്നും അതിന്റെ കമാൻഡ് ചരിത്രത്തിലേക്ക് ഷെല്ലിനെ പ്രവർത്തനരഹിതമാക്കാൻ നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം. നിങ്ങൾക്ക് ഇത് ഇനിപ്പറയുന്ന രീതിയിൽ ചെയ്യാൻ കഴിയും.

പ്രവർത്തിപ്പിച്ചതിന് ശേഷം ചരിത്രത്തിൽ നിന്ന് ഒരു ലിനക്സ് കമാൻഡ് ഇല്ലാതാക്കുക

history -d $ (history 1) കമാൻഡ് ചേർത്ത് കമാൻഡ് ലൈനിൽ പ്രവർത്തിപ്പിച്ചതിന് ശേഷം നിങ്ങൾക്ക് ഷെൽ ചരിത്രത്തിൽ നിന്ന് ഉടൻ തന്നെ ഒരു കമാൻഡ് ഇല്ലാതാക്കാം.

നിലവിലെ ടെർമിനൽ സെഷനിൽ $ (ചരിത്രം 1) ഉപ-കമാൻഡ് ചരിത്രത്തിലെ ഏറ്റവും പുതിയ എൻട്രി വീണ്ടെടുക്കുന്നു, ഇവിടെ 1 ഓഫ്uസെറ്റും -d ഓപ്ഷൻ സഹായിക്കുന്നു അത് ഇല്ലാതാക്കുക.

ഏത് കമാൻഡ് റണ്ണും സാധാരണയായി ഷെൽ ചരിത്രത്തിൽ സംരക്ഷിക്കപ്പെടും.

$ echo "This command is saved in history"
$ history | tail

എന്നിരുന്നാലും, നിങ്ങൾ ഒരു കമാൻഡ് ലൈനിലേക്ക് history -d $ (history 1) കമാൻഡ് കൂട്ടിച്ചേർക്കുമ്പോൾ, താഴെ പറയുന്ന സ്ക്രീൻഷോട്ടിൽ കാണിച്ചിരിക്കുന്നതുപോലെ ഷെൽ ചരിത്രത്തിൽ നിന്ന് അത് ഉടൻ തന്നെ ഇല്ലാതാക്കപ്പെടും:

$ echo "This command is not saved in history";history -d $(history 1)
$ history | tail

ചരിത്രത്തിൽ ഒരു കമാൻഡ് സംരക്ഷിക്കുന്നതിൽ നിന്ന് ഷെല്ലിനെ തടയുന്നതിനുള്ള മറ്റൊരു മാർഗ്ഗം, ഒരു സ്uപെയ്uസ് ഉപയോഗിച്ച് കമാൻഡ് പ്രിഫിക്uസ് ചെയ്യുക എന്നതാണ്. എന്നാൽ ഇത് ~/.bashrc ബാഷ് സ്റ്റാർട്ടപ്പ് ഫയലിൽ നിർവചിച്ചിരിക്കുന്ന $HISTCONTROL ഷെൽ വേരിയബിളിന്റെ മൂല്യത്തെ പൂർണമായും ആശ്രയിച്ചിരിക്കുന്നു. ഈ രീതി പ്രവർത്തിക്കുന്നതിന്, ഈ മൂല്യങ്ങളിൽ ഒന്ന് ഉണ്ടായിരിക്കണം: ഇഗ്uനോസ്uപെയ്uസ് അല്ലെങ്കിൽ രണ്ട് അവഗണിക്കുക.

കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങൾക്ക് $HISTCONTROL വേരിയബിളിന്റെ മൂല്യം പരിശോധിക്കാം.

$ echo $HISTCONTROL
OR
$ cat ~/.bashrc | grep $HISTCONTROL

മുകളിൽ പറഞ്ഞ ഷെൽ വേരിയബിൾ സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ, ഒരു സ്uപെയ്uസ് പ്രിഫിക്uസ് ചെയ്uതിരിക്കുന്ന ഏതെങ്കിലും കമാൻഡ് ചരിത്രത്തിൽ സംരക്ഷിക്കപ്പെടുന്നില്ല:

$ echo "This command is not prefixed with space, it will be saved in history!"
$ echo "This command is prefixed with space, it will not be saved in history!"

ബാഷ് ചരിത്രത്തെയും ചരിത്ര കമാൻഡുകളെയും കുറിച്ചുള്ള മറ്റ് ചില രസകരമായ ലേഖനങ്ങൾ ഇതാ:

  • Linux-ൽ അവസാനം എക്സിക്യൂട്ട് ചെയ്ത കമാൻഡുകൾ വീണ്ടും പ്രവർത്തിപ്പിക്കാനുള്ള 2 വഴികൾ
  • ലിനക്സിൽ ബാഷ് കമാൻഡ് ലൈൻ ചരിത്രം എങ്ങനെ മായ്ക്കാം
  • ബാഷ് ചരിത്രത്തിൽ നിങ്ങൾ നടപ്പിലാക്കുന്ന ഓരോ കമാൻഡിനും തീയതിയും സമയവും സജ്ജീകരിക്കുക

തൽക്കാലം അത്രമാത്രം! ഈ വിഷയത്തെക്കുറിച്ചുള്ള നിങ്ങളുടെ ചിന്തകൾ ഞങ്ങളുമായി പങ്കിടുന്നതിന് ചുവടെയുള്ള അഭിപ്രായ ഫോം ഉപയോഗിക്കുക. അടുത്ത തവണ വരെ ഞങ്ങളോടൊപ്പം നിൽക്കൂ.