லினக்ஸ் கட்டளை வரியை மேம்படுத்த எட்டு அத்தியாவசிய உறைபொதியின்(shell) செயலிகள்

By | January 19, 2026

லினக்ஸைப் பற்றிய உறுதியான புரிதலைப் பெற்று, கிடைக்கக்கூடிய பல்வேறு கட்டளைகளில் தேர்ச்சி பெற்றவுடன், அடுத்த பெரிய வெற்றி உறைபொதியின் (shell) செயலிகளின் வடிவத்தில் வருகிறது. ஒரு செயலியில் மூடப்பட்ட குறிமுறைவரிகளை உறைபொதியின் உரைநிரல்களால் மீண்டும் பயன்படுத்தலாம், ஆனால் எந்த நிரலையும், உள்ளமைக்கப்பட்ட கட்டளையையும் அல்லது மாற்றுப்பெயரையும் பயன்படுத்துவதைப் போன்றே, அதை கட்டளை வரியிலும் கிடைக்கச் செய்யலாம்.
பொதுவான பணிகளைச் செய்யும் குறுகிய செயலிகள் நமக்கு நிறைய நேரத்தை மிச்சப்படுத்தும், மேலும் அவை ஒன்றாகச் சேர்ப்பது திருப்திகரமாக இருக்கும். மிகவும் பயனுள்ளதாகக் கண்டறிந்த சில உறைபொதி செயலிகள்பின்வருமாறு.
1 mkd: ஒரு கோப்பகத்தை உருவாக்கி அதை உள்ளிடுக
ஒரு சிறந்த உறைபொதி செயலியின் எடுத்துக்காட்டுடன் தொடங்கப்படுகிறது: இது பயனுள்ளதாகவும் புரிந்துகொள்ள எளிதாகவும் இருக்கிறது, ஆனால் இது சில முக்கிய கருத்துக்களை விளக்க உதவக்கூடும். அதன் மிக அடிப்படையான நிலையில், ஒரு உறைபொதியின் செயலியானது அடிக்கடி இயக்க விரும்பும் ஒரு கட்டளையை அல்லது இரண்டு கட்டளைகளை மூடுகின்ற புதியவசதியை இதுவழங்குகிறது.
ஒரு கோப்பகத்தை உருவாக்க mkdir எனும் கட்டளையை கடைசியாக எப்போது இயக்கினோம்?,அந்த கோப்பகத்தை உள்ளிட உடனடியாக cd ஐ இயக்கவில்லையா? ஆகிய சந்தேக கேள்விகளுக்கிடைய பின்வருமாறான கட்டளைவரி செயலியின் வாயிலாகmkdir ஐ ஏன் நிரப்பக்கூடாது? :
mkd() {
mkdir -p — “$1” && cd -P — “$1”
}
உதவிக்குறிப்பு:அனைத்து தனிப்பயன் உறைபொதி செயலிகளையும் ஒரு கோப்பில் வைத்து அவற்றை தொடக்கத்தில் மூலகோப்பாக்கலாம். ஒரு மறைக்கப்பட்ட கோப்பகத்தில் வைத்திருக்கும்போது அவற்றை உறைபொதியில் ஏற்ற ~/.zshrc எனும் கோப்பிலிருந்து இந்த கட்டளையை : . ~/.config/shell_funcs.sh. என்றவாறு இயக்கிடலாம்
இந்த செயலியில் && என்பது முதல் கட்டளைக்குப் பிறகு இரண்டாவது கட்டளையை இயக்கும் ஒரு புத்திசாலித்தனமான முனைம தந்திரமாகும், ஆனால் முதல் கட்டளை வெற்றி பெற்றால் மட்டுமே. இந்த செயலிசரியானதாகும், அனுமதி சிக்கல் காரணமாக, அது உருவாக்கப்படாவிட்டால், கோப்பகத்திற்கு மாறுவதில் எந்த அர்த்தமும் இல்லை.
எடுத்துக்காட்டாக mkdir -p எனும் வாய்ப்பு,, ஒன்றுக்கும் மேற்பட்ட கோப்பக நிலைகளை உருவாக்க அனுமதிக்கிறது: mkd docs/letters/urgent. இது ஒரு நல்ல பக்க விளைவைக் கொண்டுள்ளது: இந்த செயலியை இயக்கி, ஏற்கனவே இருக்கும் ஒரு கோப்பகத்தை அதற்கு அனுப்பினால், எந்த பிழைகளையும் காண மாட்டோம், ஆனால் எப்படியும் கோப்பகத்தை மாற்றிடுவோம்.
கவனிக்க வேண்டிய முக்கிய செய்தி அந்த “–” எனும் தருக்கங்களாகும். இது ஒரு சிறப்பு தருக்கமாகும், இது வாய்ப்புகளின் முடிவையும் பிற தருக்கங்களின் தொடக்கத்தையும் குறிக்கிறது: இந்த செயலில் கோப்பக பெயர்கள். “-” எனும் எழுத்தில் தொடங்கும் கோப்பகத்தை உருவாக்க முயற்சித்தால் சிக்கல்களைத் தவிர்ப்பதற்கான தற்காப்பு நிரலாக்கத்திற்கு இது ஒரு எடுத்துக்காட்டுஆகும். அது சாத்தியமில்லை என்று தோன்றலாம், ஆனால் பின்னர்வருந்துவதை விட பாதுகாப்பாக இருப்பது எப்போதும் நல்லதுஅல்லவா.

2 prompt: : நினைவூட்டுதூண்டுதலை பல்வேறு செயல்களுக்கு அமைத்திடுக
எல்லோரும் தங்கள் லினக்ஸின் உறைபொதியைப் பற்றி முதலில் கற்றுக்கொள்வது, நினைவூட்டுதூண்டுதலை எவ்வாறு தனிப்பயனாக்குவது என்பதுதான். ஒவ்வொரு கட்டளை வரியின் தொடக்கத்திலும், உறைபொதியின் உள்ளீட்டிற்குத் தயாராக உள்ளது என்பதை நமக்குத் தெரிவிக்க உரையை அச்சிடும்

மேலே உள்ள நினைவூட்டுதூண்டுதல் தற்போதைய கோப்பகத்தை அடைப்புக்குறிக்குள் காட்டுகிறது, அதைத் தொடர்ந்து ஒரு டாலர் அடையாளம் உள்ளது, ஆனால் நினைவூட்டுதூண்டுதல் விரும்பும் அளவுக்கு குறைவாகவோ அல்லது தகவலறிந்ததாகவோ இருக்கலாம். இதன் மதிப்பு PS1 என்ற சூழல் மாறியால் கட்டுப்படுத்தப்படுகிறது. இதை “$” போன்ற நிலையான சரமாக அமைக்கலாம், உறைபொதிக்கு சிறப்பு அர்த்தம் கொண்ட $ இலிருந்து தப்பிக்கவேண்டும் என்பதைநினைவில் கொள்க:
PS1=”\$ ”
பின்வரும் செயலியானது நினைவூட்டுதூண்டுதலை இன்னும் கொஞ்சம் மாறும் ஒன்றுக்கு அமைக்கிறது. இந்த பதிப்பு bash அல்லது zsh ஐ இயக்குகின்றோமா என்பதைச் சரிபார்க்கிறது, எனவே அதை எந்த உரைபொதியாலும் பயன்படுத்தபடலாம். அவை அவற்றின் திறன்களில் சற்று வேறுபடுகின்றன: ஒவ்வொன்றும் தற்போதைய பாதையின் கடைசி மூன்று பகுதிகளை மட்டுமே காண்பிக்க முயற்சிக்கிறது, ஆனால் bash அதன் சொந்த தருக்கத்தை மேலே சேர்க்கிறது.

Default prompt

prompt() {
NEWLINE=$’\n’

if[ ! “${BASH_VERSINFO}” == “” ] ; then
PROMPT_DIRTRIM=3
PS1=”${NEWLINE}[\w] \$ ”
fi

if[ ! “${ZSH_VERSION}” == “” ] ; then
PS1=”${NEWLINE}[%3~] \$ ”
fi
}
இந்த நினைவூட்டுதூண்டுதலில் ஒரு புதிய வரிக்கான எழுத்தும் உள்ளது, இது முதலில் ஒரு மாறியை வரையறுப்பதன் மூலம் சேர்க்க எளிதானது. இந்த புதிய வரி முந்தைய கட்டளையின் வெளியீட்டிற்கும் அடுத்த நினைவூட்டு தூண்டுதலிற்கும் இடையில் ஒரு வெற்று கோட்டை உருவாக்குகிறது, இது கட்டளைகளையும் அவற்றின் வெளியீட்டையும் ஒரே பார்வையில் காணுமாறு குழுவாக்குவதை எளிதாக்குகிறது.
குறிப்பு:bash , zsh ஆகியவை நினைவூட்டுதூண்டுதலை அதிகமாகவோ அல்லது குறைவாகவோ ஒரே மாதிரியாகக் கையாளுகின்றன என்றாலும், மற்ற உறைபொதிகள் அவ்வளவு சீரானவை அல்ல. fish போன்ற சில நவீன உறைபொதிகள், நினைவூட்டுதூண்டுதலுக்கு செயலியின் அணுகுமுறையை எடுத்து, அதிக நெகிழ்வுத்தன்மையை வழங்குகின்றன. bash அல்லது zsh ஐப் பயன்படுத்தவில்லை என்றால், நினைவூட்டுதூண்டுதலை எவ்வாறு உள்ளமைக்கலாம் என்பதைக் கண்டறிய உறைபொதியின் கையேட்டைச் சரிபார்த்திடுக.
ஆனால் ~/.bashrc அல்லது ~/.zshrc எனும் கோப்பில் ஒரு முறை மட்டும் அமைப்பதற்குப் பதிலாக, இதைச் செய்ய ஏன் ஒரு செயலி வேண்டும்? எளிதாக மாறக்கூடிய வெவ்வேறு நினைவூட்டுதூண்டுதல்களைக் கொண்டிருப்பது மிகவும் பயனுள்ளதாக இருக்கிறதல்லவா:

தற்போதைய பாதையை மறைக்க விரும்பும் போது முனைமத்தினை திரைபடபிடிப்பு செய்வது மிகவும் எளிது. ஆனால் இதை மற்ற சூழ்நிலைகளில் பயன்படுத்தலாம்: எடுத்துக்காட்டாக, இரண்டு முனைமங்களின் அமர்வுகளுக்கு இடையிலான வேறுபாட்டைகூற அல்லது சிறிய சாளரங்களில் திரையின் உண்மைநிலையைச் சேமிக்க.
3 trim: முன்னணியான , பின்தங்கிய காலியான வெற்றிடத்தை அகற்றுக
இந்த செயலியானது ஒவ்வொரு வரியின் தொடக்கத்திலும் முடிவிலும் உள்ள காலியான வெற்றிடத்தை நீக்குகிறது:

trim() {
sed ‘s/^[ \t]//;s/[ \t]$//’
}
லினக்ஸ் கட்டளை வரி என்பது ஒரு கட்டளையிலிருந்து மற்றொரு கட்டளைக்கு, pipes, கோப்புகள் போன்றவற்றின் வழியாக தரவை அனுப்புவது பற்றியது. ஆனால் அதற்கு சுத்தமான, கணிக்கக்கூடிய தரவு தேவைப்படுகிறது, மேலும் கட்டளைகள் அதை உருவாக்குவதில் எப்போதும் சிறந்தவை அல்ல. எடுத்துக்காட்டாக wc ஐ எடுத்துக் கொள்க:

இந்த வெளியீடு ஒரு நல்ல, படிக்கக்கூடிய பட்டியலை உருவாக்க சீரமைப்பைப் பயன்படுத்துகிறது, ஆனால் மற்ற கட்டளைகள் அந்த முன்னணியான காலி இடைவெளியைக் கணக்கிட வேண்டியிருப்பதால், ஒரு pipelineஇல் பயன்படுத்துவதற்கு இது சங்கடமாக இருக்கிறது. அதற்கு பதிலாக, trim செய்ய piping எனும்வெளியீடு கூடுதல் காலியானஇடத்தை அகற்றுகின்றது, மேலும் செயலாக்கத்தை மேலும் எளிமையாக்குகின்றது:

இந்த trim எனும் செயலியானது stream editor எனும்பயன்பாடான sed ஐப் பயன்படுத்துகிறது. இது அரைப்புள்ளியால் பிரிக்கப்பட்ட இரண்டு மாற்றுகளைக் குறிப்பிடுகிறது. முதலாவது ஒவ்வொரு வரியின் தொடக்கத்திலும் space/tab எனும்எழுத்துக்களின் இயக்கத்தைத் தேடுகிறது, மேலும் அதை எதுவும் இல்லாமல் மாற்றுகிறது, அதாவது, அதை நீக்குகிறது. இரண்டாவது மாற்றீடு அதையே செய்கிறது, ஆனால் வரியின் முடிவில் செய்கின்றது.
எந்த கோப்பின் பெயரும் அதற்கு அனுப்பப்படாவிட்டால் sed ஆனதுநிலையான உள்ளீட்டில் இயங்குகிறது, மேலும் இது போன்ற ஒரு செயலியின்வழியாக அதை அழைப்பது அதையே செய்கிறது, நிலையான உள்ளீட்டை கட்டளைக்கு அனுப்புகிறது என்பதை நினைவில் கொள்க.
4 rgrep: சுழல்நிலை grepஇற்கான சுருக்கெழுத்து
சில நேரங்களில், ஒரு செயலியானது குறிப்பிட்ட வாய்ப்புகளுடன் முதன்மைப்படுத்தப்பட்ட ஒற்றை கட்டளையை விட எளிமையானது அன்று. ஒரு rgrep எனும்கட்டளையானது நம்முடைய கணினியில் இருக்கலாம், மேலும் இந்த செயலியைப் போலவே இருந்தாலும், இந்த மாற்றீட்டைப் பயன்படுத்தி கொள்ளப்படுகிறது:
rgrep() {
grep -Id recurse “$@”
}
-I எனும் வாய்ப்பு ஆனது grep எனும் இருமஎண் கோப்புகளில் தேடுவதைத் தடுக்கிறது, இது பொதுவாக பிழைகளை மட்டுமே உருவாக்குகிறது. -d ஆனது grep கோப்பகங்களை எவ்வாறு நடத்த வேண்டும் என்பதைக் குறிப்பிடுகிறது; இந்த செயலில், “recurse” அவற்றை மீண்டும் மீண்டும் படிக்க வைக்கிறது.
grep க்கு ஏதேனும் கூடுதல் தருக்கங்களை அனுப்ப “$@” ஐப் பயன்படுத்துவதைக் கவனித்திடுக. இது முக்கியமானதாகும், ஏனெனில் “grep” ஐ இயக்குவது போன்றே “rgrep” ஐ இயக்க முடியும், இது தனிப்பயன் நடத்தையைக் கொண்டிருக்கும். எடுத்துக்காட்டாக, rgrep -i todo grep -Id recurse -i todo ஆக விரிவடையும்.
கட்டளைகள் இயங்கும் போது அவற்றை அச்சிட செயலியின் தொடக்கத்தில் “set -o xtrace” ஐச் சேர்ப்பதன் மூலம் இது எவ்வாறு செயல்படுகிறது என்பதை உறுதிப்படுத்தலாம். இது உறைபொதியின் உரைநிரல்களை மெருகூட்டுவதற்கான சிறந்த வழிகளில் ஒன்றாகும், ஏனெனில் இது hood.இன் கீழ் என்ன நடக்கிறது என்பதை சரியாக பிழைத்திருத்த உதவுகிறது.
5 ucase/lcase: எழுத்துருக்குகளுக்கு இடையில் மாற்றிடுக
பெரும்பாலான நிரலாக்க மொழிகளில் பெரிய uppercase/lowercaseஎனும் செயலி உள்ளது; LibreOffice போன்ற பயன்பாடுகள் கூட இந்த வசதியை உள்ளமைத்துள்ளன, ஏனெனில் இது பெரும்பாலும் மிகவும் பயனுள்ளதாக இருக்கும். Linux கட்டளை வரியில் சமமானதை எளிதாக வைத்திருக்கலாம், அங்கு அது இன்னும் சக்தி வாய்ந்தது, ஏனெனில் இது அனுப்பும் கோப்பின் ஒவ்வொரு வரியிலும் செயல்பட முடியும்:

ucase() {
tr ‘[:lower:]’ ‘[:upper:]’
}
lcase() {
tr ‘[:upper:]’ ‘[:lower:]’
}
இந்த நிரப்பியின் செயலிகள் இரட்டையான tr எனும் கட்டளையைப் பயன்படுத்துகின்றன, இது உரையின் தொடரோட்டத்தில் எளிய மாற்றங்களைச் செய்கிறது.
tr ஆனதுஇரண்டு தருக்கங்களை கொண்டிருக்கும்: தேட வேண்டிய எழுத்துக்களின் பட்டியல் அவற்றை மாற்ற வேண்டிய எழுத்துக்களின் பட்டியல். ஒவ்வொரு மாற்று எழுத்தும் தேடல் சரத்தில் தொடர்புடைய ஒன்றில் செயல்படுகிறது, எனவே “tr ‘AB’ ‘ab’” “A” ஐ “a” ஆகவும் “B” ஐ “b” ஆகவும் மாற்றுகின்றது. “[:upper:]” , “[:lower:]” சிறப்பு எழுத்து இனங்கள் தற்போதைய மொழியில் பெரிய எழுத்து, சிறிய எழுத்துகளின் முழு தொகுப்பிற்கும் விரிவடைகின்றது.
Rgrep() {
grep -Id recurse”$@”
}
6 இன்று: தற்போதைய தேதியை குறுகிய ISO வடிவத்தில் பெற்றடுக

today() {
date ‘+%Y-%m-%d’
}
தற்போதைக்கு அமெரிக்க தேதிகளுக்கும் உலகின் பிற பகுதிகளுக்கும் உள்ள வேறுபாட்டினை மறந்துவிடுக: இந்த தேதி வடிவம் உண்மையில் யாராலும் பயன்படுத்தப்படுவதில்லை, ஆனால் இது மிகவும் பிடித்தமானது. காரணம் எளிது: இந்த வடிவத்தில் உள்ள தேதிகள் இயற்கையாகவே வரிசைப்படுத்தப்படும், இந்த வடிவமைப்பை கோப்பின் பெயர்கள், ஆவணங்களில் தலைப்புகள், தரவுத்தளங்கள் போன்றபல இடங்களில் பயன்படுத்திகொள்ளப்படுகிறது.
இது மற்றொரு எளிய கட்டளையின் குறுக்குவழியாக இருக்கலாம், ஆனால் இது மிகவும் வசதியானது. சரியான தேதி வடிவம் நினைவில் கொள்வது எரிச்சலூட்டும்: “+” முன்னொட்டு, “%” போன்றசின்னங்கள், ஒவ்வொரு பகுதியின் எழுத்துருவத்தையும் சரியாகப் பெறுதல். அதையெல்லாம் மறந்துவிட்டு இன்று தட்டச்சு செய்ய விரும்பினாலும்: மிகவும் திருப்திகரமாக இருக்கிறது!
7 filesize: தற்போதைய கோப்பகத்தில் கோப்புகளைக் காண்பித்தல், அளவின்படி வரிசைப்படுத்தப்பட்டது
நாம் செய்யும் ஒரு பொதுவான பராமரிப்பு பணி பெரிய கோப்புகளை சுத்தம் செய்வதை உள்ளடக்கியது. பெரிய கோப்புகளைக் கண்டறிய ncdu என்பதுஒரு சிறந்த வழியாக இருந்தாலும், அது சில நேரங்களில் மிகையானது. தற்போதைய கோப்பகத்தில் எந்த கோப்புகள் மிகப்பெரியவை என்பதை அடிக்கடி காண விரும்புவோம்.

filesize() {
du -sk * | sort -n
}
இதில் du என்பது வட்டு பயன்பாட்டு கருவி; ஒவ்வொரு கோப்பும் எவ்வளவு இடத்தை எடுத்துக்கொள்கிறது, கோப்பகங்கள் உட்பட, அதை மீண்டும் மீண்டும் அறிக்கையாக செய்கிறது. எனவே இந்த செயலியானது இருக்கும் எந்த கோப்பகங்களின் மொத்த அளவையும் தெரிவிக்கும், இது கோப்பு முறைமையில் தேவையற்ற கோப்புகளை அகற்றுவதை எளிதாக்குகிறது.
8 paths: PATH எனும்மாறியை நன்றாக அச்சிடுக

paths() {
echo $PATH | tr ‘:’ ‘\n’
}
அவ்வப்போது செய்ய விரும்பும் மற்றொரு பராமரிப்பு பணி PATH ஐ சுத்தம் செய்வது. உண்மையில் இல்லாத சிலவும் அடங்கும்! ஆனால் இந்த மாறி ஒவ்வொரு பாதையையும் பிரிக்க முக்காற்புள்ளிகளை(colons) பயன்படுத்துவதால், இதைப் படிப்பது மிகவும் கடினமாக இருக்கும்:

இந்தச் செயலியானது வெளியீட்டை மிகவும் சுவையாக மாற்றுகிறது:


அந்த அற்புதமான tr எனும்நிரலுக்கு இது மற்றொரு சிறந்த பயன்பாடாகும், மேலும் PATH இல் உள்ள ஒவ்வொரு கோப்பகமும் உள்ளதா என்பதைச் சரிபார்ப்பதன் மூலம் இதை மேலும் நீட்டிக்கலாம்:, எடுத்துக்காட்டாக:

check_paths() {
paths | while read path
do
if [ ! -d “$path” ]; then
echo “bad PATH: dir does not exist: $path” >&2
fi
done
}

 

Leave a Reply