Shell Scripting Complete 1: Shebang, chmod, PATH आणि Exit Codes सह तुमची पहिली Bash Script
Shell script म्हणजे commands नी भरलेली text file, जी Linux एकामागून एक चालवतो. Prompt वर तुम्ही पुन्हा पुन्हा type करता ते सगळं script मधे ठेवता येतं. Shell Scripting Complete च्या या पहिल्या chapter मधे तुम्ही पहिला script लिहाल, shebang line काय करते ते शिकाल, chmod +x ने file executable कराल, चार प्रकारे चालवाल, comments, exit codes आणि bash -x ने debug शिकाल. प्रत्येक step मधे command, output आणि अर्थ आहे.
या chapter मध्ये तुम्ही काय शिकाल
- पहिला script लिहा आणि save करा
- Shebang line समजून घ्या
- chmod +x ने script executable करा
- Script वेगवेगळ्या प्रकारे चालवा आणि फरक समजा
- Comments, exit codes आणि set -e वापरा
- bash -n आणि bash -x ने debug करा
1. रोजचं उदाहरण: recipe card
हे का लागतं?
आई poha ची recipe card वर लिहिते: poha धुवा, तेल गरम करा, मोहरी टाका, कांदा टाका, poha टाका, मीठ टाका. कोणीही card त्याच क्रमाने follow करून तसेच poha बनवू शकतो. Shell script म्हणजे computer साठी तीच card. Card ची पहिली line सांगते ती कोणत्या भाषेत आहे, म्हणजे cook ला कळतं कसं वाचायचं.
हे काय आहे?
Recipe card = script file. क्रमाने steps = line by line commands. वरची भाषेची note = shebang (#!/bin/bash). Card वापरायची परवानगी = chmod +x. शेवटी 'झालं' किंवा 'जळलं' = exit code 0 किंवा 0 नाही.
कसं करायचं (step by step)
2. Shell script काय आणि का वापरायचा
हे का लागतं?
रोज सकाळी तेच दहा commands type करणं हळू आणि चुका होतात. Script प्रत्येक वेळी त्याच प्रकारे करतो.
हे काय आहे?
Shell script म्हणजे साधी text file. Shell (बहुतेक bash) ती line by line वाचतो आणि प्रत्येक line तुम्ही type केल्यासारखी चालवतो. Scripts मधे variables, if, loops आणि functions वापरता येतात, जे पुढच्या chapters मधे शिकाल. Files बहुतेक .sh ने संपतात, पण Linux ला extension लागत नाही.
कसं करायचं (step by step)
- तुम्ही कोणता shell वापरता?
echo $SHELL
Output:
/bin/bash
याचा अर्थ: तुमचा login shell bash आहे.
- bash कुठे आहे?
command -v bash
Output:
/usr/bin/bash
याचा अर्थ: bash /usr/bin मधे (आणि /bin तिकडेच point करतं).
- Bash version.
bash --version | head -1
Output:
GNU bash, version 5.2.15(1)-release (x86_64-redhat-linux-gnu)
याचा अर्थ: Bash 5 या series मधलं सगळं support करतो.
3. तुमचा पहिला script: hello.sh
हे का लागतं?
शिकायचा सगळ्यात जलद मार्ग म्हणजे एक छोटा script लिहून चालवणं.
हे काय आहे?
Shebang line, एक echo आणि date command असलेली file बनवा. Save करा. मग bash ने चालवा. bash name.sh ने चालवायला chmod लागत नाही, कारण bash फक्त file वाचतो.
कसं करायचं (step by step)
- File बनवा.
nano hello.sh
Output:
(editor opens)
याचा अर्थ: खालच्या तीन lines type करा, मग Ctrl+O, Enter, Ctrl+X.
- Content.
#!/bin/bash
# my first script
echo "Namaskar from $(hostname)"
date
याचा अर्थ: Line 1 shebang, line 2 comment, lines 3-4 commands.
- bash ने चालवा.
bash hello.sh
Output:
Namaskar from web01
Sun Oct 25 10:05:11 IST 2026
याचा अर्थ: दोन्ही commands क्रमाने चालल्या.
4. Shebang line: #!
हे का लागतं?
./script चालवला की Linux ला कळायला हवं कोणता program तो वाचेल. Shebang नसेल तर अंदाज लावतो, आणि तो चुकू शकतो.
हे काय आहे?
पहिले दोन characters #! ला shebang म्हणतात. त्यानंतर interpreter चा पूर्ण path. #!/bin/bash म्हणजे bash. #!/usr/bin/env bash PATH मधे bash शोधतो, bash वेगवेगळ्या जागी असेल (Mac, BSD) तेव्हा चांगलं. #!/bin/sh म्हणजे basic POSIX shell (Ubuntu वर dash), तिथे [[ ]] आणि arrays सारखे bash features चालणार नाहीत. ते line 1 वरच हवं, आधी space नको.
| Shebang | कशाने चालतो | कधी वापरायचं |
|---|---|---|
| #!/bin/bash | Fixed path वरचा bash | Linux servers |
| #!/usr/bin/env bash | PATH मधला पहिला bash | Portable scripts |
| #!/bin/sh | POSIX sh (Ubuntu वर dash) | खूप छोटे, portable |
| #!/usr/bin/env python3 | python3 | Python scripts |
कसं करायचं (step by step)
- पहिली line बघा.
head -1 hello.sh
Output:
#!/bin/bash
याचा अर्थ: ./hello.sh चालवल्यावर kernel हे वाचतो.
- इथे /bin/sh काय?
ls -l /bin/sh
Output:
lrwxrwxrwx 1 root root 4 Jan 10 /bin/sh -> dash
याचा अर्थ: Ubuntu वर sh म्हणजे dash, bash नाही.
- sh खाली bash-only feature fail.
sh -c '[[ 1 == 1 ]] && echo yes'
Output:
sh: 1: [[: not found
याचा अर्थ: bash features वापरता तेव्हा #!/bin/bash.
5. chmod +x: script executable करा
हे का लागतं?
Script normal command सारखा (./hello.sh) चालवायला Linux ला execute permission लागते. नव्या files ला ती नसते.
हे काय आहे?
chmod +x file owner, group आणि others ला execute देतो (umask नुसार). chmod u+x फक्त तुम्हाला. chmod 755 तुम्हाला rwx आणि इतरांना r-x. chmod 700 private ठेवतो. ls -l ने तपासा: x अक्षरं दिसतात आणि बरेच terminals नाव green दाखवतात.
कसं करायचं (step by step)
- आधी.
ls -l hello.sh
Output:
-rw-r--r-- 1 asha asha 72 Oct 25 10:04 hello.sh
याचा अर्थ: x नाही, म्हणून ./hello.sh fail होईल.
- चालवून बघा.
./hello.sh
Output:
bash: ./hello.sh: Permission denied
याचा अर्थ: Execute permission नाही.
- x द्या आणि चालवा.
chmod +x hello.sh && ls -l hello.sh && ./hello.sh
Output:
-rwxr-xr-x 1 asha asha 72 Oct 25 10:04 hello.sh
Namaskar from web01
Sun Oct 25 10:06:40 IST 2026
याचा अर्थ: आता command सारखा चालतो.
- Private script.
chmod 700 db-backup.sh && ls -l db-backup.sh
Output:
-rwx------ 1 asha asha 410 Oct 25 10:07 db-backup.sh
याचा अर्थ: फक्त तुम्ही वाचू किंवा चालवू शकता. Passwords असलेल्या scripts साठी चांगलं.
6. Script चालवायचे चार मार्ग
हे का लागतं?
प्रत्येक मार्ग थोडा वेगळा वागतो. फरक माहीत असला की cd किंवा variable कधी कधी 'टिकत नाही' ते का, ते कळतं.
हे काय आहे?
1) ./name.sh: x लागतो, shebang वापरतो, नव्या child shell मधे. 2) bash name.sh: x नको, shebang ignore, child shell. 3) source name.sh किंवा . name.sh: तुमच्या current shell मधेच, म्हणून cd आणि variables नंतरही राहतात. 4) ~/bin किंवा /usr/local/bin सारख्या PATH folder मधे ठेवा आणि फक्त नावाने चालवा.
| मार्ग | x लागतो? | नवा shell? |
|---|---|---|
| ./name.sh | हो | हो |
| bash name.sh | नाही | हो |
| source name.sh | नाही | नाही, current shell |
| name.sh in PATH | हो | हो |
कसं करायचं (step by step)
- Folder बदलणारा script.
cat gologs.sh
Output:
#!/bin/bash
cd /var/log
pwd
याचा अर्थ: /var/log ला जातो.
- Normally चालवा.
./gologs.sh; pwd
Output:
/var/log
/home/asha
याचा अर्थ: cd child shell मधे झाला आणि गेला.
- Source करा.
source gologs.sh; pwd
Output:
/var/log
/var/log
याचा अर्थ: आता तुमचाच shell हलला.
- PATH मधे ठेवा.
mkdir -p ~/bin && cp hello.sh ~/bin/hello && hello
Output:
Namaskar from web01
Sun Oct 25 10:09:02 IST 2026
याचा अर्थ: बहुतेक systems वर ~/bin PATH मधे असतं (नसेल तर परत login).
7. Comments आणि चांगला script header
हे का लागतं?
सहा महिन्यांनी line का आहे ते विसराल. Comments तुम्हाला आणि team ला समजावतात.
हे काय आहे?
Line वर # नंतरचं सगळं comment (line 1 चा shebang आणि quotes मधला # सोडून). प्रत्येक script header ने सुरू करा: काय करतो, कसा चालवायचा, author आणि date. भागांमधे blank lines. मोठ्या comment block साठी : <<'END' ... END वापरता येतं.
कसं करायचं (step by step)
- Header.
head -6 rotate-logs.sh
Output:
#!/bin/bash
# rotate-logs.sh - zip yesterday's app logs
# Usage: ./rotate-logs.sh
# Author: Ravindra Bagale, 2026-10-25
set -euo pipefail
याचा अर्थ: Code वाचण्याआधीच समजतं.
- Inline comment.
echo "start" # tell the user
Output:
start
याचा अर्थ: चालवताना comment ignore होतो.
- Quotes मधला # text.
echo "Ticket #42 closed"
Output:
Ticket #42 closed
याचा अर्थ: Quotes मधे # comment नाही.
8. Exit codes आणि $?
हे का लागतं?
इतर scripts, cron आणि CI tools success किंवा failure फक्त exit code ने ठरवतात, print झालेल्या text ने नाही.
हे काय आहे?
प्रत्येक command 0 ते 255 मधला number परत देते. 0 म्हणजे success. बाकी काहीही failure (1 general error, 2 misuse, 126 executable नाही, 127 command सापडली नाही, 130 Ctrl+C ने थांबवलं). $? मधे शेवटच्या command चा code. Script मधे exit N ने स्वतःचा code. && फक्त success वर पुढची command, || फक्त failure वर.
| Code | अर्थ | उदाहरण |
|---|---|---|
| 0 | Success | ls /tmp |
| 1 | General error | grep ला काही सापडत नाही |
| 2 | चुकीचा वापर | ls --bad |
| 126 | सापडली पण executable नाही | x शिवाय ./file |
| 127 | Command सापडली नाही | sl सारखा typo |
कसं करायचं (step by step)
- Success.
ls /etc/hosts; echo $?
Output:
/etc/hosts
0
याचा अर्थ: 0 = चाललं.
- Failure.
ls /nope; echo $?
Output:
ls: cannot access '/nope': No such file or directory
2
याचा अर्थ: 0 नाही = fail.
- स्वतःचा code.
bash -c 'echo checking; exit 3'; echo "code=$?"
Output:
checking
code=3
याचा अर्थ: Scripts स्वतःचा status सांगू शकतात.
- && आणि || ने chain.
ping -c1 -W1 10.0.0.9 && echo up || echo down
Output:
down
याचा अर्थ: Ping fail झाला, म्हणून फक्त || भाग चालला.
9. सुरक्षित scripts: set -e, -u, -o pipefail
हे का लागतं?
Default ला bash error नंतरही पुढे जातो. Fail झालेला cd आणि नंतर rm चुकीच्या files delete करू शकतो.
हे काय आहे?
set -e command fail झाली की script थांबवतो. set -u कधीच set न केलेला variable वापरला की थांबवतो (typos पकडतो). set -o pipefail pipe मधला कोणताही भाग fail झाला तरी pipe fail करतो, फक्त शेवटचा नाही. बहुतेक teams shebang नंतर लगेच set -euo pipefail लिहितात. set +e ने option बंद.
कसं करायचं (step by step)
- -e शिवाय.
bash -c 'cd /nowhere; echo still running'
Output:
bash: line 1: cd: /nowhere: No such file or directory
still running
याचा अर्थ: धोकादायक: script पुढे गेला.
- -e सह.
bash -ec 'cd /nowhere; echo still running'; echo $?
Output:
bash: line 1: cd: /nowhere: No such file or directory
1
याचा अर्थ: Fail झालेल्या cd वर थांबला.
- -u typos पकडतो.
bash -uc 'name=asha; echo $nmae'
Output:
bash: line 1: nmae: unbound variable
याचा अर्थ: Typo लगेच सापडतो.
- pipefail.
bash -c 'set -o pipefail; false | true; echo $?'
Output:
1
याचा अर्थ: pipefail नसता तर 0 आलं असतं.
10. Debug: bash -n, bash -x आणि set -x
हे का लागतं?
Script काहीतरी विचित्र करतो तेव्हा प्रत्येक line चालताना बघायला हवी.
हे काय आहे?
bash -n file काहीही न चालवता syntax तपासतो. bash -x file प्रत्येक command variables expand झाल्यावर + सह print करतो. Script मधे set -x tracing चालू, set +x बंद, म्हणजे एकच भाग trace करता येतो. shellcheck (free tool) चालवण्याआधीच नेहमीच्या चुका शोधतो.
कसं करायचं (step by step)
- Syntax check.
bash -n broken.sh
Output:
broken.sh: line 9: syntax error: unexpected end of file
याचा अर्थ: fi किंवा done नाही. काहीच चाललं नाही.
- Trace.
bash -x hello.sh
Output:
+ hostname
+ echo 'Namaskar from web01'
Namaskar from web01
+ date
Sun Oct 25 10:12:30 IST 2026
याचा अर्थ: + असलेल्या lines म्हणजे bash ने खरं चालवलं.
- Lint.
shellcheck rotate-logs.sh
Output:
In rotate-logs.sh line 12:
rm $dir/*.log
^--^ SC2086: Double quote to prevent globbing and word splitting.
याचा अर्थ: Variable quote करा. का ते chapter 2 मधे.
11. Scripts कुठे ठेवायचे आणि schedule कसे करायचे
हे का लागतं?
Downloads मधला script हरवतो. रोज चालायचे scripts तुमच्या लक्षात राहण्यावर अवलंबून नकोत.
हे काय आहे?
Personal scripts: ~/bin. सगळ्या users साठी shared: /usr/local/bin (sudo लागतो). Git मधे ठेवा. Cron आणि systemd timers मधे PATH खूप छोटा आणि terminal नाही, म्हणून full paths, set -euo pipefail आणि output log file ला. Cron chapter मधे details.
कसं करायचं (step by step)
- सगळ्यांसाठी install.
sudo install -m 755 hello.sh /usr/local/bin/hello && which hello
Output:
/usr/local/bin/hello
याचा अर्थ: install एका step मधे copy आणि mode set करतो.
- Cron ने रोज 6 ला.
crontab -l
Output:
0 6 * * * /home/asha/bin/rotate-logs.sh >> /home/asha/rotate.log 2>&1
याचा अर्थ: Full path आणि log file.
- दुसऱ्या दिवशी log.
tail -3 ~/rotate.log
Output:
zipped 4 files
done
याचा अर्थ: तुमच्याशिवाय चालला.
12. अनेक industries मधली खरी उदाहरणं
हे का लागतं?
तेच Linux skill प्रत्येक प्रकारच्या company मध्ये लागतं. वेगवेगळ्या ठिकाणी पाहिलं की लक्षात राहतं.
हे काय आहे?
प्रत्येक row म्हणजे एक काल्पनिक team. कोण हे वापरतं आणि कसं ते दाखवते.
कसं करायचं (step by step)
| Team आणि शहर | ते कसं वापरतात | Command |
|---|---|---|
| Sneha, kirana chain, Pune | रोज stock export script | ./export-stock.sh |
| Tom, bank, London | chmod 700 सह private scripts | chmod 700 recon.sh |
| Yuki, gaming, Tokyo | Mac आणि Linux वर portable shebang | #!/usr/bin/env bash |
| Fatima, hospital, Dubai | Backup jobs मधे set -euo pipefail | set -euo pipefail |
| Carlos, logistics, Mexico City | bash -x ने cron job debug | bash -x /opt/jobs/sync.sh |
| Arjun, ed-tech, Bengaluru | /usr/local/bin मधे shared tools | sudo install -m 755 t.sh /usr/local/bin/t |
13. नेहमीच्या errors आणि त्यांचे fixes
हे का लागतं?
हे errors सगळ्यांना येतात. कारण माहीत असलं की तास वाचतात.
हे काय आहे?
आधी नेमका message वाचा. मग खालच्या row शी जुळवा.
कसं करायचं (step by step)
| दिसणारा error | का होतं | Fix कसा करायचा |
|---|---|---|
bash: ./hello.sh: Permission denied | Execute permission नाही | द्या किंवा bash ने चालवा.chmod +x hello.sh |
bash: hello.sh: command not found | Current folder PATH मधे नाही | नावाआधी ./ वापरा../hello.sh |
/bin/bash^M: bad interpreter: No such file or directory | Windows line endings (CRLF) | Unix endings ला convert.dos2unix hello.sh |
bad interpreter: No such file or directory | Shebang मधे चुकीचा path | Path दुरुस्त करा किंवा env.head -1 hello.sh |
[[: not found | bash नाही, sh ने चालवलं | bash किंवा bash shebang.bash script.sh |
syntax error: unexpected end of file | fi, done, } किंवा quote नाही | bash -n ने जोड्या तपासा.bash -n script.sh |
unbound variable | set -u आणि variable set नाही किंवा spelling चुकीचं | नाव दुरुस्त किंवा default द्या.echo "${name:-none}" |
cd changes are lost after the script | Script child shell मधे चालला | तुमच्या shell मधे हवं तर source.source gologs.sh |
Works in terminal, fails in cron | Cron मधे छोटा PATH आणि environment नाही | Full paths आणि output log.command -v rsync |
14. Troubleshooting step by step
हे का लागतं?
पहिल्या script चे बहुतेक problems permission, path, shebang किंवा line endings.
हे काय आहे?
वरून खाली जा. ज्या step ला problem दिसतो तिथे थांबा.
कसं करायचं (step by step)
- Executable आहे?
ls -l script.sh
- Shebang बरोबर?
head -1 script.sh | cat -A
- Windows endings?
file script.sh
- Syntax ok?
bash -n script.sh
- Trace.
bash -x script.sh
- Exit code?
./script.sh; echo $?
- Lint.
shellcheck script.sh
15. Lab 1: Server info script लिहा, chmod करा, चालवा
हे का लागतं?
sysinfo.sh बनवा जो host, user, uptime आणि disk use दाखवतो, executable करा आणि ~/bin मधे install करा.
हे काय आहे?
पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).
कसं करायचं (step by step)
- Folder बनवा.
mkdir -p ~/lab37 && cd ~/lab37
- Script लिहा.
printf '#!/bin/bash\nset -euo pipefail\necho "Host: $(hostname)"\necho "User: $USER"\nuptime -p\ndf -h / | tail -1\n' | tee sysinfo.sh
Output:
#!/bin/bash ... (6 lines)
- Syntax तपासा.
bash -n sysinfo.sh && echo OK
Output:
OK
- chmod आधी.
./sysinfo.sh
Output:
Permission denied
- Executable करा.
chmod +x sysinfo.sh && ls -l sysinfo.sh
Output:
-rwxr-xr-x ... sysinfo.sh
- चालवा.
./sysinfo.sh
Output:
Host: web01
User: asha
up 3 days, 2 hours
/dev/xvda1 20G 6.1G 14G 31% /
- Exit code.
echo $?
Output:
0
- Install.
mkdir -p ~/bin && cp sysinfo.sh ~/bin/sysinfo && sysinfo | head -1
Output:
Host: web01
16. Lab 2: Exit codes, set -e आणि bash -x
हे का लागतं?
Error आल्यावर set -e सह आणि शिवाय script कसा वागतो ते बघा, आणि trace करा.
हे काय आहे?
पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).
कसं करायचं (step by step)
- चुकीचा cd असलेला script.
printf '#!/bin/bash\ncd /no/such/dir\necho "I am in $(pwd)"\n' | tee risky.sh && chmod +x risky.sh
- चालवा.
./risky.sh; echo "code=$?"
Output:
cd: /no/such/dir: No such file or directory
I am in /home/asha/lab37
code=0
- Line 2 वर set -e.
sed -i '2i set -e' risky.sh && head -3 risky.sh
Output:
#!/bin/bash
set -e
cd /no/such/dir
- परत चालवा.
./risky.sh; echo "code=$?"
Output:
cd: /no/such/dir: No such file or directory
code=1
- Trace.
bash -x risky.sh
Output:
+ set -e
+ cd /no/such/dir
- स्वतःचा code.
printf '#!/bin/bash\n[ -d /var/log ] || exit 4\necho ok\n' | tee chk.sh && bash chk.sh; echo $?
Output:
ok
0
Ravindra Bagale's Tip
Start every script with the same two lines: #!/bin/bash and set -euo pipefail. Then run bash -n before the first real run. These two habits catch most beginner mistakes before they damage anything.
Ravindra Bagale's Tip – मराठी
प्रत्येक script त्याच दोन lines ने सुरू करा: #!/bin/bash आणि set -euo pipefail. आणि पहिल्या खऱ्या run आधी bash -n. या दोन सवयी बहुतेक beginner चुका काही बिघडण्याआधीच पकडतात.
Ravindra Bagale's Tip – हिंदी
हर script उन्हीं दो lines से शुरू कीजिए: #!/bin/bash और set -euo pipefail. और पहली असली run से पहले bash -n. ये दो आदतें ज़्यादातर beginner गलतियाँ कुछ बिगड़ने से पहले ही पकड़ लेती हैं.
17. नेहमी विचारले जाणारे प्रश्न
प्र. .sh extension लागतं का?
नाही. फक्त माणसांसाठी मदत.
प्र. bash vs sh?
sh basic POSIX; bash arrays, [[ ]] वगैरे देतो.
प्र. नावाआधी ./ का?
Safety साठी current folder PATH मधे नसतो.
प्र. chmod +x की 755?
दोन्ही execute देतात; 755 सगळ्यांना read नेमकं set करतो.
प्र. source काय करतो?
File तुमच्या current shell मधे चालवतो.
प्र. Script sudo मागू शकतो?
हो, पण गरज असेल तर आख्खा script sudo ने चालवणं चांगलं.
प्र. exit 0 काय?
संपवा आणि success सांगा.
प्र. चालू script कसा थांबवायचा?
Ctrl+C, किंवा त्याचा PID kill.
18. मुलाखत प्रश्न आणि उत्तरं
Beginner level
प्र. Shebang काय?
Interpreter सांगणारी #! पहिली line.
प्र. Script executable कसा?
chmod +x file.
प्र. $? मधे काय?
शेवटच्या command चा exit code.
प्र. Exit code 0 म्हणजे?
Success.
Mid level level
प्र. ./s.sh vs source s.sh?
Child shell vs current shell.
प्र. #!/usr/bin/env bash का?
PATH मधे bash शोधतो, portable.
प्र. set -u काय करतो?
Unset variables वर error.
प्र. Code 126 vs 127?
Executable नाही vs सापडली नाही.
Senior level
प्र. set -o pipefail का?
नाहीतर pipes आधीच्या commands चे failures लपवतात.
प्र. Hand ने चालतो पण cron मधे नाही. का?
वेगळा PATH, TTY नाही, env वेगळं; full paths आणि logs.
प्र. Production script safely debug कसा?
bash -n, shellcheck, त्या भागाभोवती set -x, test copy.
प्र. ^M सह bad interpreter?
CRLF endings; dos2unix किंवा sed -i 's/\r$//'.
घरी करून बघा
- today.sh लिहा जो date, तुमचा user आणि home folder मधल्या files ची संख्या दाखवतो. Executable करून चालवा.
- मुद्दाम बिघडवा (एक quote काढा) आणि bash -n ने error शोधा.
सराव Tasks
Maple Leaf Books हा टोरांटो मधला पुस्तक विक्री व्यवसाय आहे. Emily Tremblay त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे CAD मध्ये मोजले जातात आणि AWS resources ca-central-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.
0 / 21
सोपं Runnable करा
का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.
काय करायचं: Emily Tremblay ने Maple Leaf Books मधे invoice-mail.sh लिहिला. फक्त owner ला execute permission जोडा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Mode 755
का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.
काय करायचं: nightly-sync.sh numbers ने rwxr-xr-x करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं इथून चालवा
का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.
काय करायचं: Current folder मधला stock-alert.sh script चालवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं bash ने चालवा
का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.
काय करायचं: Execute permission शिवाय cleanup-tmp.sh bash ने चालवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं सगळे bash paths
का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.
काय करायचं: type ला दिसतो तसा bash सापडतो ती प्रत्येक जागा दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Shebang बघा
का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.
काय करायचं: deploy-web.sh ची फक्त पहिली line दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Exit code label
का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.
काय करायचं: शेवटचा exit code rc= label सह double quotes मधे.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं काय प्रकार
का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.
काय करायचं: ship-orders.sh कोणत्या प्रकारची file आहे.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Permissions तपासा
का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.
काय करायचं: audit-users.sh चे permissions बघायला long list.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Scripts bin
का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.
काय करायचं: Parents सह ~/scripts/bin folder बनवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं PATH बघा
का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.
काय करायचं: PATH variable print करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Cron edit
का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.
काय करायचं: Crontab edit साठी उघडा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Source करा
का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.
काय करायचं: env-setup.sh current shell मधे load करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम फक्त syntax
का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.
काय करायचं: payroll.sh न चालवता syntax errors तपासा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Trace
का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.
काय करायचं: report-gen.sh प्रत्येक command चालण्याआधी print करत चालवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Windows line ends fix
का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.
काय करायचं: price-update.sh Windows line endings मधून बदला.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम bin मधे install
का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.
काय करायचं: install ने backup-photos.sh /usr/local/bin मधे mode 0755 सह.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Lint
का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.
काय करायचं: fees-calc.sh shell च्या popular linter ने तपासा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम दुसऱ्या user चा cron
का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.
काय करायचं: sudo ने deploy user चा crontab list.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड Strict trace
का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.
काय करायचं: sms-batch.sh bash ने exit-on-error आणि trace दोन्ही modes मधे.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड सगळे run, फक्त owner write
का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.
काय करायचं: tally.sh मधून group आणि others चे write काढा पण सगळ्यांना execute, एका symbolic chmod ने.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
19. संबंधित chapters
- DevOps साठी Linux Ops Refresh
- Automation साठी Bash Scripting
- Linux grep आणि find Commands Examples सह
- Linux Servers मध्ये Passwordless SSH
थोडक्यात सांगायचं तर
- Script म्हणजे क्रमाने चालणाऱ्या commands ची text file.
- Line 1 shebang, उदा. #!/bin/bash.
- chmod +x मुळे ./name.sh चालतो.
- source current shell मधे चालवतो.
- 0 म्हणजे success; $? तपासा.
- set -euo pipefail आणि bash -x scripts safe आणि debug ला सोपे करतात.
उजळणी, तुलना आणि मुलाखत cards
हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.


![sh vs bash. POSIX, लहान, बहुतेक dash. / Arrays, [[ ]], जास्त features.](../../../aws/ravi-sirs-cards/cards/mr/cmp-lx7-sh-vs-bash.webp)





अजून cards: Ravi Sir's Cards.