முன்நிபந்தனைகள்:
இந்த டுடோரியலில் காட்டப்பட்டுள்ள படிகளைச் செய்ய, உங்களுக்கு பின்வரும் கூறுகள் தேவை:
- ஒழுங்காக கட்டமைக்கப்பட்ட லினக்ஸ் அமைப்பு. சரிபார் VirtualBox இல் Ubuntu VM ஐ எவ்வாறு அமைப்பது .
- கட்டளை வரி இடைமுகத்துடன் அடிப்படை பரிச்சயம்.
பேஷ் வரலாறு
பெரும்பாலான நவீன லினக்ஸ் கணினிகளில் பாஷ் என்பது இயல்புநிலை ஷெல் ஆகும். அசல் UNIX ஷெல் 'sh' இன் வாரிசாக, இது கோப்பக கையாளுதல், வேலை கட்டுப்பாடு, மாற்றுப்பெயர்கள், கட்டளை வரலாறு மற்றும் பல போன்ற பல அம்சங்கள் மற்றும் மேம்பாடுகளுடன் வருகிறது.
டெர்மினலில் இருந்து முன்பு செயல்படுத்தப்பட்ட அனைத்து கட்டளைகளையும் பாஷ் கண்காணிக்கிறது. பிழைத்திருத்தம் போன்ற பல சூழ்நிலைகளில் இது நம்பமுடியாத அளவிற்கு பயனுள்ளதாக இருக்கும். ஒரே மாதிரியான கட்டளைகளை மீண்டும் மீண்டும் தட்டச்சு செய்யும் தேவையையும் இது குறைக்கலாம்.
வரலாற்று நிர்வாகத்திற்கு, பாஷ் இரண்டு உள்ளமைக்கப்பட்ட கட்டளைகளுடன் வருகிறது:
$ வகை வரலாறு
$ வகை fc
வரலாற்றைச் சேமிக்க, பாஷ் இரண்டு வெவ்வேறு நுட்பங்களைப் பயன்படுத்துகிறது:
- ஷெல் அமர்வுடன் பணிபுரியும் போதெல்லாம், அதன் வரலாறு நினைவகத்தில் சேமிக்கப்படும்.
- மூடப்படும் போது, நினைவகத்தில் சேமிக்கப்பட்ட வரலாறு ஒரு வரலாற்றுக் கோப்பில் கொட்டப்படும்.
Bash பயன்படுத்தும் இயல்புநிலை வரலாற்று கோப்பு இங்கு உள்ளது:
$ பூனை ~ / .பாஷ்_வரலாறு
பாஷ் வரலாற்றைக் கையாளும் விதத்தை மாற்றும் சில சூழல் மாறிகள் மற்றும் விசைப்பலகை குறுக்குவழிகளும் உள்ளன.
பாஷ் வரலாற்றில் பணிபுரிதல்
அடிப்படை பயன்பாடு
சமீபத்தில் இயக்கப்பட்ட கட்டளைகளின் பட்டியலைப் பெற, பின்வரும் கட்டளையைப் பயன்படுத்தவும்:
$ வரலாறு
இங்கே, பஃபரில் சேமிக்கப்பட்டுள்ள அனைத்து கட்டளைகளும் பட்டியலிடப்பட்டுள்ளன. ஒவ்வொரு கட்டளைக்கும் எண் மதிப்பு ஒதுக்கப்பட்டுள்ளது. பழமையான கட்டளை 1 உடன் ஒதுக்கப்பட்டுள்ளது.
பின்வரும் கட்டளையைப் பயன்படுத்தி அச்சிடுவதற்கான கட்டளைகளின் எண்ணிக்கையை நாம் கட்டுப்படுத்தலாம்:
$ வரலாறு என்
இங்கே, N என்பது ஒரு முழு எண், இதில் N >= 0. வெளியீடு வரலாற்றில் இருந்து கடைசி N கட்டளைகளைக் கொண்டுள்ளது.
வடிகட்டுவதற்கு grep உடன் இணைந்து வெளியீட்டையும் பயன்படுத்தலாம்:
$ வரலாறு | பிடியில் < லேசான கயிறு >
நீண்ட வரலாற்றை உலாவ, 'குறைவு' கட்டளையைப் பயன்படுத்தலாம்:
$ வரலாறு | குறைவாக
வரலாற்றிலிருந்து கட்டளைகளை நீக்குதல்
வரலாற்றிலிருந்து ஒரு குறிப்பிட்ட கட்டளையை நீங்கள் அகற்ற வேண்டும் என்றால், பின்வரும் கட்டளைகளைப் பயன்படுத்தவும்:
$ வரலாறு$ வரலாறு -d < கட்டளை_எண் >
$ வரலாறு
இதேபோல், வரலாற்றிலிருந்து M முதல் N வரையிலான கட்டளைகளை அகற்ற, பின்வரும் கட்டளைகளைப் பயன்படுத்தலாம்:
$ வரலாறு$ வரலாறு -d எம்-என்
$ வரலாறு
தற்போதைய டெர்மினல் அமர்வுக்கான ரேம் இடையகத்திலிருந்து வரலாற்றை அழிக்க, அதற்குப் பதிலாக பின்வரும் கட்டளைகளைப் பயன்படுத்தவும்:
$ வரலாறு -சி$ வரலாறு
வட்டில் சேமிக்கப்பட்டுள்ள வரலாற்றுக் கோப்பிலிருந்து வரலாற்றை அழிக்க, அதை முழுவதுமாக NULL உடன் மேலெழுதலாம்:
$ பூனை / dev / ஏதுமில்லை > $HISTFILE
பாஷ் வரலாறு அமைப்புகள்
பாஷ் வரலாற்றைக் கையாளும் விதத்தை மாற்றுவதற்கு பல வழிகள் உள்ளன. இந்த விருப்பங்களில் பல சூழல் மாறிகளால் நிர்வகிக்கப்படுகின்றன.
அவற்றின் மதிப்பை மாற்ற, 'bashrc' கோப்பைத் திருத்துகிறோம்:
$ நானோ ~ / .bashrc
திருத்திய பின், கோப்பைச் சேமித்து, பாஷில் மீண்டும் ஏற்றவும்.
$ ஆதாரம் ~ / .bashrc
கணினி முழுவதும் மாற்றங்களைச் செய்ய, பின்வரும் இடங்களில் அமைந்துள்ள “bashrc” ஐத் திருத்தவும்:
$ நானோ / முதலியன / bash.bashrc$ நானோ / முதலியன / bashrc
தாங்கல் அளவு
முன்பு குறிப்பிட்டபடி, கட்டளை வரலாற்றை RAM இல் (தற்போதைய அமர்வுக்கு) மற்றும் ஒரு வட்டு கோப்பில் (முந்தைய அனைத்து அமர்வுகளுக்கும்) சேமிக்க பாஷ் இரண்டு இடையகங்களைப் பயன்படுத்துகிறது.
இந்த இடையகங்களின் அளவுகள் இரண்டு சூழல் மாறிகளால் கட்டுப்படுத்தப்படுகின்றன:
- HISTSIZE : இது ரேம் பஃபரில் சேமிக்க வேண்டிய உள்ளீடுகளின் எண்ணிக்கையை வரையறுக்கிறது.
- ஹிஸ்ட்ஃபைலேசைஸ் : இது வட்டு கோப்பில் சேமிக்க வேண்டிய உள்ளீடுகளின் எண்ணிக்கையை வரையறுக்கிறது.
நமது தேவைகளுக்கு ஏற்ப 'bashrc' இல் அவற்றின் மதிப்பை மாற்றலாம்:
$ நானோ ~ / .bashrcஎடுத்துக்காட்டாக, இரண்டு இடையகங்களிலும் 5000 உள்ளீடுகளைச் சேமிக்க, பின்வரும் குறியீட்டைக் கொண்டு “bashrc” ஐப் புதுப்பிக்கவும்:
$ HISTSIZE = 5000$ ஹிஸ்ட்ஃபைலேசைஸ் = 5000
கட்டளை விலக்கு
முன்னிருப்பாக, வரலாறு இடையகங்களில் இயங்கும் ஒவ்வொரு கட்டளையையும் பாஷ் சேமிக்கிறது. இருப்பினும், பாஷ் சில கட்டளைகளை புறக்கணிக்கும் வகையில் அதை நாம் கட்டமைக்க முடியும். ஸ்பேம் மூலம் இடையகத்தை நிரப்பி, ஒரே கட்டளைகளை பல முறை இயக்க வேண்டிய சூழ்நிலைகளில் இது பயனுள்ளதாக இருக்கும்.
- ஹிஸ்ட்கண்ட்ரோல்
பின்வரும் கட்டளை உதாரணத்துடன் ஆரம்பிக்கலாம்:
$ எதிரொலி 'துறவி' && வரலாறு 5$ எதிரொலி 'பாங்க்' && வரலாறு 5
வரலாறு கட்டளையின் வெளியீடு நிரூபிக்கிறது, முதல் எதிரொலி கட்டளை மட்டுமே பதிவு செய்யப்பட்டுள்ளது, ஆனால் இரண்டாவது கட்டளை அல்ல.
இது HISTIGNORE சூழல் மாறியின் செயல்பாடாகும். சில பேட்டர்ன்களின் அடிப்படையில் ஹிஸ்டரி பஃபரில் உள்ள கட்டளைகளை லாக் செய்ய வேண்டாம் என்று பாஷிடம் கூறுகிறது. பின்வரும் மதிப்புகள் கிடைக்கின்றன:
- புறக்கணிப்புகள் : முந்தைய வரலாற்று உள்ளீட்டுடன் கட்டளை பொருந்தினால் அது உள்நுழையப்படவில்லை.
- புறக்கணிப்பு : ஒரு கட்டளை தொடக்கத்தில் ஒரு இடைவெளியுடன் தொடங்கினால் அது பதிவு செய்யப்படாது.
- இரண்டையும் புறக்கணிக்கவும் : இது புறக்கணிப்பு மற்றும் புறக்கணிப்பு ஆகிய இரண்டின் விதியையும் பயன்படுத்துகிறது.
- அழிக்கப்பட்டவை : தற்போதைய கட்டளையுடன் பொருந்தக்கூடிய அனைத்து முந்தைய வரிகளும் வரலாற்றில் இருந்து அழிக்கப்படும்.
முதல் எடுத்துக்காட்டில், புறக்கணிப்பு இடத்தைப் பயன்படுத்துவதை நாங்கள் நிரூபித்தோம். இருப்பினும், அனைத்து டிஸ்ட்ரோக்களும் இந்த உள்ளமைவுடன் பாஷை அனுப்ப முடியாது. எப்பொழுதும் போல், அவற்றை 'bashrc' இல் சேர்க்கலாம்:
$ ஹிஸ்ட்கண்ட்ரோல் =இரண்டையும் புறக்கணிக்கவும்
பின்வரும் கட்டளையைப் பயன்படுத்தி பல விருப்பங்களை இயக்கவும் முடியும்:
$ ஹிஸ்ட்கண்ட்ரோல் = புறக்கணிப்பு: புறக்கணிப்புஇங்கே, புறக்கணிப்பு: புறக்கணிப்பு என்பது புறக்கணிப்பு இரண்டிற்கும் சமமானதாகும்.
- ஹிஸ்டிக்னோர்
இந்த சூழல் மாறி ஒன்று அல்லது அதற்கு மேற்பட்ட வடிவங்களைக் கொண்டிருக்கலாம். HISTIGNORE ஆல் விவரிக்கப்பட்டுள்ள எந்தவொரு வடிவத்திற்கும் பொருந்தும் எந்த கட்டளையும் வரலாற்று இடையகத்திற்கு பதிவு செய்யப்படாது. வழக்கமான வெளிப்பாடுகளைப் பயன்படுத்தி வடிவங்கள் வரையறுக்கப்படுகின்றன.
கட்டமைப்பு பின்வருமாறு:
$ ஹிஸ்டிக்னோர் = 'எடுத்துக்காட்டாக, Bash வரலாற்றிலிருந்து வரலாறு மற்றும் எதிரொலி கட்டளைகளை விலக்க, HISTIGNORE ஐ பின்வருமாறு புதுப்பிக்கவும்:
$ ஹிஸ்டிக்னோர் = 'வரலாறு' : 'எதிரொலி*'
அதை சோதிக்க பின்வரும் கட்டளைகளின் சங்கிலியைப் பயன்படுத்தலாம்:
$ ls -எல் / இருந்தது / மடல் &> / dev / ஏதுமில்லை$ வரலாறு
$ எதிரொலி வணக்கம் உலகம்
$ வரலாறு
டைம்ஸ்டாம்பிங்
கட்டளை இயக்கப்பட்ட நேரத்தை பதிவு செய்ய பாஷ் கட்டமைக்கப்படலாம். பிழைத்திருத்தம் போன்ற பல்வேறு சூழ்நிலைகளில் இது பயனுள்ளதாக இருக்கும்.
பாஷ் வரலாற்றில் நேர முத்திரைகளை இயக்க, HISTTIMEFORMAT இன் மதிப்பைப் புதுப்பிக்கவும்:
$ அவரது நேர வடிவம் = 'கிடைக்கக்கூடிய அனைத்து நேர வடிவமைப்பு கட்டுப்பாட்டு எழுத்துகளும் தேதி கட்டளையின் மேன் பக்கத்தில் கிடைக்கும்.
$ ஆண் தேதி
பின்வரும் பட்டியல் சில எளியவற்றை உள்ளடக்கியது:
- %T: நேரம்
- %d: நாள்
- %m: மாதம்
- %y:ஆண்டு
வரலாறு நிலைத்தன்மை
CLI உடன் பணிபுரியும் போது, பல சந்தர்ப்பங்களில், நீங்கள் பல டெர்மினல்களுடன் பணிபுரிவீர்கள். இங்குதான் பாஷின் வரலாற்று மேலாண்மை வலிக்கு ஆதாரமாக முடியும்.
இயல்பாக, அமர்வு முடிந்ததும் வரலாற்றுக் கோப்பு புதுப்பிக்கப்படும். ஒரு அமர்வுக்கு இது நன்றாக இருந்தாலும், ஒரே நேரத்தில் பல அமர்வுகளுக்கு இது போதுமானதாக இல்லை. ஒரு கட்டளையை இயக்கும் ஒவ்வொரு முறையும் வரலாற்றுக் கோப்பைப் புதுப்பிக்க பாஷை கட்டாயப்படுத்துவதன் மூலம் இந்த சிக்கலை தீர்க்க முடியும்.
அவ்வாறு செய்ய, PROMPT_COMMAND இன் மதிப்பைப் புதுப்பிக்கவும்:
$ PROMPT_COMMAND = 'வரலாறு -a'இங்கே, PROMPT_COMMAND மாறியில் சரியான கட்டளைகள் இருக்கலாம். PROMPT_COMMAND இன் உள்ளடக்கங்கள் Bash பயனர் உள்ளீட்டை எடுக்கத் தொடங்கும் முன் இயக்கப்படும். “history –a” கட்டளையானது வரலாற்றை வரலாற்றுக் கோப்பில் உள்ளடக்கங்களைச் சேர்க்கும்படி கட்டாயப்படுத்துகிறது.
வரலாறு விரிவாக்கம் மற்றும் வடிவமைப்பாளர்கள்
பாஷ் அதன் வரலாற்று அம்சத்தைப் பயன்படுத்திக் கொள்ள இரண்டு உள்ளமைக்கப்பட்ட குறுக்குவழிகளுடன் வருகிறது. வடிவமைப்பாளர்களின் பட்டியல் இங்கே:
- !! : வரலாற்றிலிருந்து கடைசி கட்டளையை இயக்குகிறது.
- !என் : வரலாற்றில் இருந்து Nth கட்டளையை இயக்குகிறது.
- !-என் : வரலாற்றில் இருந்து மிக சமீபத்திய கட்டளைக்கு முன் Nth கட்டளையை இயக்குகிறது.
- !<கட்டளை> : சமீபத்திய
கட்டளையை இயக்குகிறது.
பின்வரும் கட்டளைகளின் சங்கிலி அவற்றின் பயன்பாட்டை நிரூபிக்கிறது:
$ எதிரொலி 1$ எதிரொலி 2
$ எதிரொலி 3
$ வரலாறு
$ ! எதிரொலி
$ ! - 3
$ ! 1
$ !!
சில வடிவமைப்பாளர்கள் வரலாற்றிலிருந்து கட்டளை வாதங்களுடன் வேலை செய்கிறார்கள்:
- !:* : சமீபத்திய கட்டளையின் அனைத்து வாதங்களையும் பயன்படுத்தவும்.
- !:^ : மிகச் சமீபத்திய கட்டளையின் முதல் வாதத்தைப் பயன்படுத்தவும்.
- !:என் : மிக சமீபத்திய கட்டளையின் Nth வாதத்தைப் பயன்படுத்தவும்.
- !:எம்-என் : மிக சமீபத்திய கட்டளையின் M முதல் N வரையிலான வாதங்களைப் பயன்படுத்தவும்.
- !:$ : சமீபத்திய கட்டளையின் கடைசி வாதத்தைப் பயன்படுத்தவும்.
பின்வரும் கட்டளைகளின் சங்கிலி அவற்றின் பயன்பாட்டை நிரூபிக்கிறது:
$ எதிரொலி 1 2 3 4 5 6 7$ எதிரொலி ! : *
$ எதிரொலி 1 2 3 4 5 6 7
$ எதிரொலி ! :^
$ எதிரொலி 1 2 3 4 5 6 7
$ எதிரொலி ! : 5
$ எதிரொலி 1 2 3 4 5 6 7
$ எதிரொலி ! : 1 - 5
$ எதிரொலி 1 2 3 4 5 6 7
$ எதிரொலி ! :$
வேறு கட்டளையின் அளவுருக்களுடன் நீங்கள் வேலை செய்ய வேண்டும் என்றால், வடிவமைப்பாளர்கள் இப்படி இருக்கும்:
- !<கட்டளை>^ :
கட்டளையின் முதல் வாதத்தைப் பயன்படுத்துகிறது. - !<கட்டளை>$ :
கட்டளையின் கடைசி வாதத்தைப் பயன்படுத்துகிறது.
பின்வரும் கட்டளைச் சங்கிலி அவற்றின் பயன்பாடுகளை நிரூபிக்கிறது:
$ ls -lh / இருந்தது / பதிவு &> / dev / ஏதுமில்லை$ தொடுதல் 1 .txt 2 .txt 3 .txt 4 .txt 5 .txt
$ எதிரொலி ! தொடுதல் ^
$ எதிரொலி ! தொடுதல் $
வரலாறு விசைப்பலகை குறுக்குவழிகள்
அனைத்து கட்டளைகள் மற்றும் சூழல் மாறிகள் தவிர, எளிதாக வரலாற்று வழிசெலுத்தலுக்கான சில விசைப்பலகை குறுக்குவழிகளையும் பாஷ் ஆதரிக்கிறது:
- மேலே அம்புக்குறி விசை: பின்னோக்கி உருட்டவும்
- கீழ் அம்புக்குறி விசை: முன்னோக்கி உருட்டவும்
ஊடாடும் வரலாற்றுத் தேடலுக்கான விசைப்பலகை குறுக்குவழிகளும் உள்ளன:
- Ctrl + R : வரலாற்றில் கட்டளைகளைத் தேடுங்கள்.
- Ctrl + O : தேர்ந்தெடுக்கப்பட்ட கட்டளையை இயக்கவும்.
- Ctrl + G : ஊடாடும் தேடலில் இருந்து வெளியேறவும்.
முடிவுரை
பாஷ் வரலாறு பற்றி விரிவாக விவாதித்தோம். கட்டளை வரலாற்றை பாஷ் எவ்வாறு சேமித்து வைக்கிறது மற்றும் வெவ்வேறு வழிகளில் அதை எவ்வாறு பயன்படுத்திக் கொள்வது என்பதை நாங்கள் கற்றுக்கொண்டோம். பல்வேறு எடுத்துக்காட்டுகளைப் பயன்படுத்தி பாஷ் வரலாற்றில் எவ்வாறு செயல்படுவது என்பதை நாங்கள் நிரூபித்தோம்.
பாஷ் பற்றி மேலும் அறிய ஆர்வமா? தி பாஷ் நிரலாக்க துணை வகை பாஷின் பல்வேறு அம்சங்களைப் பற்றிய நூற்றுக்கணக்கான வழிகாட்டிகளைக் கொண்டுள்ளது.
மகிழ்ச்சியான கணினி!