Ravindra BagaleCourses & study guides English

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)

कल्पनेपासून चालणाऱ्या script पर्यंतnano किंवा vim मधे file उघडाLine 1 वर #!/bin/bashCommands, एका line ला एकFile save कराFile ला chmod +x./name.sh ने चालवा$? ने success तपासा
लिहा, executable करा, चालवा, तपासा.

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)

  1. तुम्ही कोणता shell वापरता?
echo $SHELL

Output:

/bin/bash

याचा अर्थ: तुमचा login shell bash आहे.

  1. bash कुठे आहे?
command -v bash

Output:

/usr/bin/bash

याचा अर्थ: bash /usr/bin मधे (आणि /bin तिकडेच point करतं).

  1. 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)

  1. File बनवा.
nano hello.sh

Output:

(editor opens)

याचा अर्थ: खालच्या तीन lines type करा, मग Ctrl+O, Enter, Ctrl+X.

  1. Content.
#!/bin/bash
# my first script
echo "Namaskar from $(hostname)"
date

याचा अर्थ: Line 1 shebang, line 2 comment, lines 3-4 commands.

  1. 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/bashFixed path वरचा bashLinux servers
#!/usr/bin/env bashPATH मधला पहिला bashPortable scripts
#!/bin/shPOSIX sh (Ubuntu वर dash)खूप छोटे, portable
#!/usr/bin/env python3python3Python scripts

कसं करायचं (step by step)

  1. पहिली line बघा.
head -1 hello.sh

Output:

#!/bin/bash

याचा अर्थ: ./hello.sh चालवल्यावर kernel हे वाचतो.

  1. इथे /bin/sh काय?
ls -l /bin/sh

Output:

lrwxrwxrwx 1 root root 4 Jan 10 /bin/sh -> dash

याचा अर्थ: Ubuntu वर sh म्हणजे dash, bash नाही.

  1. 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)

  1. आधी.
ls -l hello.sh

Output:

-rw-r--r-- 1 asha asha 72 Oct 25 10:04 hello.sh

याचा अर्थ: x नाही, म्हणून ./hello.sh fail होईल.

  1. चालवून बघा.
./hello.sh

Output:

bash: ./hello.sh: Permission denied

याचा अर्थ: Execute permission नाही.

  1. 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 सारखा चालतो.

  1. 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)

  1. Folder बदलणारा script.
cat gologs.sh

Output:

#!/bin/bash
cd /var/log
pwd

याचा अर्थ: /var/log ला जातो.

  1. Normally चालवा.
./gologs.sh; pwd

Output:

/var/log
/home/asha

याचा अर्थ: cd child shell मधे झाला आणि गेला.

  1. Source करा.
source gologs.sh; pwd

Output:

/var/log
/var/log

याचा अर्थ: आता तुमचाच shell हलला.

  1. 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)

  1. 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 वाचण्याआधीच समजतं.

  1. Inline comment.
echo "start"   # tell the user

Output:

start

याचा अर्थ: चालवताना comment ignore होतो.

  1. 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अर्थउदाहरण
0Successls /tmp
1General errorgrep ला काही सापडत नाही
2चुकीचा वापरls --bad
126सापडली पण executable नाहीx शिवाय ./file
127Command सापडली नाहीsl सारखा typo

कसं करायचं (step by step)

  1. Success.
ls /etc/hosts; echo $?

Output:

/etc/hosts
0

याचा अर्थ: 0 = चाललं.

  1. Failure.
ls /nope; echo $?

Output:

ls: cannot access '/nope': No such file or directory
2

याचा अर्थ: 0 नाही = fail.

  1. स्वतःचा code.
bash -c 'echo checking; exit 3'; echo "code=$?"

Output:

checking
code=3

याचा अर्थ: Scripts स्वतःचा status सांगू शकतात.

  1. && आणि || ने 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)

  1. -e शिवाय.
bash -c 'cd /nowhere; echo still running'

Output:

bash: line 1: cd: /nowhere: No such file or directory
still running

याचा अर्थ: धोकादायक: script पुढे गेला.

  1. -e सह.
bash -ec 'cd /nowhere; echo still running'; echo $?

Output:

bash: line 1: cd: /nowhere: No such file or directory
1

याचा अर्थ: Fail झालेल्या cd वर थांबला.

  1. -u typos पकडतो.
bash -uc 'name=asha; echo $nmae'

Output:

bash: line 1: nmae: unbound variable

याचा अर्थ: Typo लगेच सापडतो.

  1. 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)

  1. Syntax check.
bash -n broken.sh

Output:

broken.sh: line 9: syntax error: unexpected end of file

याचा अर्थ: fi किंवा done नाही. काहीच चाललं नाही.

  1. 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 ने खरं चालवलं.

  1. 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)

  1. सगळ्यांसाठी install.
sudo install -m 755 hello.sh /usr/local/bin/hello && which hello

Output:

/usr/local/bin/hello

याचा अर्थ: install एका step मधे copy आणि mode set करतो.

  1. Cron ने रोज 6 ला.
crontab -l

Output:

0 6 * * * /home/asha/bin/rotate-logs.sh >> /home/asha/rotate.log 2>&1

याचा अर्थ: Full path आणि log file.

  1. दुसऱ्या दिवशी 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, Londonchmod 700 सह private scriptschmod 700 recon.sh
Yuki, gaming, TokyoMac आणि Linux वर portable shebang#!/usr/bin/env bash
Fatima, hospital, DubaiBackup jobs मधे set -euo pipefailset -euo pipefail
Carlos, logistics, Mexico Citybash -x ने cron job debugbash -x /opt/jobs/sync.sh
Arjun, ed-tech, Bengaluru/usr/local/bin मधे shared toolssudo install -m 755 t.sh /usr/local/bin/t

13. नेहमीच्या errors आणि त्यांचे fixes

हे का लागतं?

हे errors सगळ्यांना येतात. कारण माहीत असलं की तास वाचतात.

हे काय आहे?

आधी नेमका message वाचा. मग खालच्या row शी जुळवा.

कसं करायचं (step by step)

दिसणारा errorका होतंFix कसा करायचा
bash: ./hello.sh: Permission deniedExecute permission नाहीद्या किंवा bash ने चालवा.
chmod +x hello.sh
bash: hello.sh: command not foundCurrent folder PATH मधे नाहीनावाआधी ./ वापरा.
./hello.sh
/bin/bash^M: bad interpreter: No such file or directoryWindows line endings (CRLF)Unix endings ला convert.
dos2unix hello.sh
bad interpreter: No such file or directoryShebang मधे चुकीचा pathPath दुरुस्त करा किंवा env.
head -1 hello.sh
[[: not foundbash नाही, sh ने चालवलंbash किंवा bash shebang.
bash script.sh
syntax error: unexpected end of filefi, done, } किंवा quote नाहीbash -n ने जोड्या तपासा.
bash -n script.sh
unbound variableset -u आणि variable set नाही किंवा spelling चुकीचंनाव दुरुस्त किंवा default द्या.
echo "${name:-none}"
cd changes are lost after the scriptScript child shell मधे चाललातुमच्या shell मधे हवं तर source.
source gologs.sh
Works in terminal, fails in cronCron मधे छोटा 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)

  1. Executable आहे?
ls -l script.sh
  1. Shebang बरोबर?
head -1 script.sh | cat -A
  1. Windows endings?
file script.sh
  1. Syntax ok?
bash -n script.sh
  1. Trace.
bash -x script.sh
  1. Exit code?
./script.sh; echo $?
  1. 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)

  1. Folder बनवा.
mkdir -p ~/lab37 && cd ~/lab37
  1. 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)
  1. Syntax तपासा.
bash -n sysinfo.sh && echo OK

Output:

OK
  1. chmod आधी.
./sysinfo.sh

Output:

Permission denied
  1. Executable करा.
chmod +x sysinfo.sh && ls -l sysinfo.sh

Output:

-rwxr-xr-x ... sysinfo.sh
  1. चालवा.
./sysinfo.sh

Output:

Host: web01
User: asha
up 3 days, 2 hours
/dev/xvda1 20G 6.1G 14G 31% /
  1. Exit code.
echo $?

Output:

0
  1. 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)

  1. चुकीचा cd असलेला script.
printf '#!/bin/bash\ncd /no/such/dir\necho "I am in $(pwd)"\n' | tee risky.sh && chmod +x risky.sh
  1. चालवा.
./risky.sh; echo "code=$?"

Output:

cd: /no/such/dir: No such file or directory
I am in /home/asha/lab37
code=0
  1. Line 2 वर set -e.
sed -i '2i set -e' risky.sh && head -3 risky.sh

Output:

#!/bin/bash
set -e
cd /no/such/dir
  1. परत चालवा.
./risky.sh; echo "code=$?"

Output:

cd: /no/such/dir: No such file or directory
code=1
  1. Trace.
bash -x risky.sh

Output:

+ set -e
+ cd /no/such/dir
  1. स्वतःचा 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.

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$//'.

घरी करून बघा

  1. today.sh लिहा जो date, तुमचा user आणि home folder मधल्या files ची संख्या दाखवतो. Executable करून चालवा.
  2. मुद्दाम बिघडवा (एक quote काढा) आणि bash -n ने error शोधा.

सराव Tasks

या scenario बद्दल

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 जोडा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं Mode 755

का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.

काय करायचं: nightly-sync.sh numbers ने rwxr-xr-x करा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं इथून चालवा

का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.

काय करायचं: Current folder मधला stock-alert.sh script चालवा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं bash ने चालवा

का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.

काय करायचं: Execute permission शिवाय cleanup-tmp.sh bash ने चालवा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं सगळे bash paths

का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.

काय करायचं: type ला दिसतो तसा bash सापडतो ती प्रत्येक जागा दाखवा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं Shebang बघा

का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.

काय करायचं: deploy-web.sh ची फक्त पहिली line दाखवा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं Exit code label

का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.

काय करायचं: शेवटचा exit code rc= label सह double quotes मधे.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं काय प्रकार

का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.

काय करायचं: ship-orders.sh कोणत्या प्रकारची file आहे.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं Permissions तपासा

का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.

काय करायचं: audit-users.sh चे permissions बघायला long list.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं Scripts bin

का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.

काय करायचं: Parents सह ~/scripts/bin folder बनवा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं PATH बघा

का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.

काय करायचं: PATH variable print करा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं Cron edit

का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.

काय करायचं: Crontab edit साठी उघडा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Source करा

का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.

काय करायचं: env-setup.sh current shell मधे load करा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम फक्त syntax

का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.

काय करायचं: payroll.sh न चालवता syntax errors तपासा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Trace

का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.

काय करायचं: report-gen.sh प्रत्येक command चालण्याआधी print करत चालवा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Windows line ends fix

का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.

काय करायचं: price-update.sh Windows line endings मधून बदला.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम bin मधे install

का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.

काय करायचं: install ने backup-photos.sh /usr/local/bin मधे mode 0755 सह.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Lint

का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.

काय करायचं: fees-calc.sh shell च्या popular linter ने तपासा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम दुसऱ्या user चा cron

का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.

काय करायचं: sudo ने deploy user चा crontab list.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

अवघड Strict trace

का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.

काय करायचं: sms-batch.sh bash ने exit-on-error आणि trace दोन्ही modes मधे.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

अवघड सगळे run, फक्त owner write

का: छोटे scripts BIZ मधे दर आठवड्याला तास वाचवतात.

काय करायचं: tally.sh मधून group आणि others चे write काढा पण सगळ्यांना execute, एका symbolic chmod ने.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

थोडक्यात सांगायचं तर

  1. Script म्हणजे क्रमाने चालणाऱ्या commands ची text file.
  2. Line 1 shebang, उदा. #!/bin/bash.
  3. chmod +x मुळे ./name.sh चालतो.
  4. source current shell मधे चालवतो.
  5. 0 म्हणजे success; $? तपासा.
  6. set -euo pipefail आणि bash -x scripts safe आणि debug ला सोपे करतात.

उजळणी, तुलना आणि मुलाखत cards

हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.

4 steps मधे पहिली script. Line 1: shebang. खाली commands लिहा. Executable करा. चालवा.
उजळणी card: 4 steps मधे पहिली script · PNG download करा · Card page उघडा
Safe script header. Error वर थांबा. Unset variable वर fail. Pipes मधेही fail. प्रत्येक script च्या top ला.
उजळणी card: Safe script header · PNG download करा · Card page उघडा
sh vs bash. POSIX, लहान, बहुतेक dash. / Arrays, [[ ]], जास्त features.
तुलना: sh vs bash · PNG download करा · Card page उघडा
./run.sh vs bash run.sh. Shebang वापरतो. / Shebang ignore.
तुलना: ./run.sh vs bash run.sh · PNG download करा · Card page उघडा
Shebang line का?. Interpreter निवडतो. नसेल तर caller shell चालवतो. Portable form.
मुलाखत card: Shebang line का? · PNG download करा · Card page उघडा
./x.sh वर Permission denied?. File executable नाही. किंवा disk noexec mount. Fix.
मुलाखत card: ./x.sh वर Permission denied? · PNG download करा · Card page उघडा
Exit code काय?. 0 म्हणजे success. 1 ते 255 failure. शेवटचा बघा.
मुलाखत card: Exit code काय? · PNG download करा · Card page उघडा
चालवण्याआधी script तपासायची?. bash -n syntax तपासतो. shellcheck bugs शोधतो. चालवा.
मुलाखत card: चालवण्याआधी script तपासायची? · PNG download करा · Card page उघडा

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