Linux cat, less, head, tail, wc आणि tee Commands उदाहरणांसह (Files बघा आणि Follow करा)
Linux मधला बहुतेक दिवस text वाचण्यात जातो: logs, configs, CSV files आणि command output. cat, less, head, tail, wc आणि tee ही सहा tools text बघायला, live follow करायला, मोजायला आणि बघता बघता save करायला वापरतात. ही नीट शिकलात की पुढची tools (grep, sed, awk) सोपी होतात.
या chapter मध्ये तुम्ही काय शिकाल
- cat, tac आणि nl ने files print आणि जोडा
- less ने मोठ्या files safely वाचा
- head आणि tail ने सुरुवात किंवा शेवट घ्या
- tail -f आणि -F ने live logs follow करा
- wc ने lines, words आणि bytes मोजा
- tee ने output save आणि दाखवा एकत्र
1. रोजचं उदाहरण: लांब WhatsApp chat वाचणं
हे का लागतं?
सुनीता society चा WhatsApp group chat text file मधे export करते. त्यात 40,000 lines आहेत. ती सगळं वाचत नाही. Group कधी सुरू झाला ते बघायला पहिले काही messages बघते, आजची बातमी बघायला शेवटचे messages, मधला भाग हळू scroll करते, एकूण messages किती ते मोजते, आणि नवीन messages साठी लक्ष ठेवते. वाचता वाचताच बातमी नवऱ्याला forward करते.
हे काय आहे?
पहिले messages = head. शेवटचे = tail. हळू scroll = less. मोजणं = wc. नव्यासाठी लक्ष = tail -f. वाचणं आणि forward एकाच वेळी = tee. पूर्ण chat print = cat.
कसं करायचं (step by step)
2. cat: files print, join आणि create
हे का लागतं?
अनेकदा छोटी file पूर्ण बघायची किंवा तुकडे एका file मधे जोडायचे असतात.
हे काय आहे?
cat (concatenate) files एकामागून एक print करतो. cat a b > c files जोडतो, >> append. Options: -n सगळ्या lines ना number, -b non-empty lines ना number, -A tabs (^I), line ends ($) आणि Windows CR (^M), -s रिकाम्या lines दाबतो. cat > file <<'END' पटकन file लिहितो. cat फक्त छोट्या files साठी; मोठ्यांसाठी less.
कसं करायचं (step by step)
- छोटी file print करा.
cat /etc/hostname
Output:
web-pune-01
याचा अर्थ: Machine चं नाव या file मधे आहे.
- Lines ना number द्या.
cat -n shopping.txt
Output:
1 milk
2 bread
3
4 eggs
याचा अर्थ: Line 3 रिकामी पण number मिळाला.
- Hidden characters दाखवा.
cat -A config.yml
Output:
name: shop$
port:^I8080$
mode: prod ^M$
याचा अर्थ: ^I म्हणजे tab, ^M म्हणजे Windows line end. दोन्हीमुळे YAML आणि scripts तुटतात.
- तुकडे एका file मधे जोडा.
cat part1.csv part2.csv > all.csv && wc -l all.csv
Output:
2000 all.csv
याचा अर्थ: > all.csv बनवतो किंवा overwrite. शेवटी जोडायला >>.
- Here-doc ने लगेच file लिहा.
cat > note.txt <<'END'
Server: web-01
Owner: Aditi
END
cat note.txt
Output:
Server: web-01
Owner: Aditi
याचा अर्थ: END पर्यंतचं सगळं file मधे.
cat सोबत > आणि >>: overwrite vs append
हे का लागतं?
Output file मधे save करणं रोजचं काम. एका जास्त > मुळे line add होणं आणि file पुसली जाणं यात फरक पडतो.
हे काय आहे?
> output file मधे पाठवतो आणि आधी file रिकामी करतो (overwrite). >> शेवटी जोडतो (append). दोन्ही file नसेल तर बनवतात. cat > file तुम्ही type केलेलं Ctrl+D पर्यंत वाचतो.
नेहमीचे options
| Option | काय करतो |
|---|---|
cat a > b | a ला b मधे; जुनं b content जातं. |
cat a >> b | a ला b च्या शेवटी जोडा. |
cat > f | f मधे text type; Ctrl+D ने save. |
cat >> f | Text type करून f मधे जोडा. |
set -o noclobber | > ला overwrite करू देत नाही. |
कसं करायचं (step by step)
- Type करून नवी file.
cat > guests.txt
Rohan
Meera
(press Ctrl+D)
याचा अर्थ: guests.txt मधे दोन lines save.
- >> ने आणखी एक नाव.
cat >> guests.txt
Kabir
(press Ctrl+D)
cat guests.txt
Output:
Rohan
Meera
Kabir
याचा अर्थ: >> ने जुन्या lines ठेवून Kabir जोडला.
- > काय करतो ते बघा.
cat > guests.txt
Zoya
(press Ctrl+D)
cat guests.txt
Output:
Zoya
याचा अर्थ: > ने आधी file रिकामी केली. बाकी नावं गेली.
- > पासून files वाचवा.
set -o noclobber
cat menu.txt > guests.txt
Output:
bash: guests.txt: cannot overwrite existing file
याचा अर्थ: आता > नकार देतो. खरंच हवं असेल तर >|.
खालच्या tasks मधे सराव करा: सराव tasks
3. tac: lines उलट्या क्रमाने
हे का लागतं?
Logs मधे नव्या lines खाली. कधी नव्या आधी हव्यात.
हे काय आहे?
tac शेवटची line आधी आणि पहिली शेवटी print करतो. cat उलटं लिहिलं. rev शी गोंधळू नका, rev प्रत्येक line मधले characters उलटे करतो.
कसं करायचं (step by step)
- tac ने नव्या lines आधी.
tac app.log | head -3
Output:
10:05 order 1003 paid
10:04 order 1002 paid
10:03 order 1001 created
याचा अर्थ: tac = उलटा cat.
- rev शी तुलना.
echo 'Pune' | rev
Output:
enuP
याचा अर्थ: rev characters उलटे, tac lines उलट्या.
4. nl: lines ना number
हे का लागतं?
Reviews आणि tickets मधे 'line 14 बघा' म्हणतो. Numbers ने सोपं.
हे काय आहे?
nl default non-empty lines ना number देतो (cat -b सारखं). -ba सगळ्या lines, -w3 width, -s': ' separator.
कसं करायचं (step by step)
- nl रिकाम्या lines skip करतो.
nl shopping.txt
Output:
1 milk
2 bread
3 eggs
याचा अर्थ: Code review साठी उपयोगी.
- Custom separator सह प्रत्येक line.
nl -ba -w2 -s': ' shopping.txt
Output:
1: milk
2: bread
3:
4: eggs
याचा अर्थ: -ba रिकामी line 3 पण घेतो.
5. less: मोठ्या files बिनधास्त वाचा
हे का लागतं?
2 GB log cat ने print केला तर screen भरून जातो आणि slow SSH session अडकू शकतो. Scroll, search आणि jump करता यायला हवं.
हे काय आहे?
less file एका वेळी एक screen उघडतो आणि सगळी memory मधे load करत नाही. Keys: Space किंवा f पुढचं page, b मागे, g वर, G खाली, /word पुढे search, ?word मागे search, n पुढचा match, N मागचा, q बाहेर, F tail -f सारखं follow (थांबायला Ctrl+C). Options: -N line numbers, -S लांब lines wrap नाही, +G शेवटी उघडा, -R colours ठेवा. more हा जुना, साधा pager.
| Key | काय करते |
|---|---|
| Space / b | पुढचं / मागचं page |
| g / G | वर / खाली |
| /text | पुढे search |
| n / N | पुढचा / मागचा match |
| F | नव्या lines follow |
| &text | फक्त text असलेल्या lines |
| q | बाहेर |
कसं करायचं (step by step)
- मोठा log उघडा.
less /var/log/syslog
Output:
Oct 25 09:00:01 web-01 CRON[1201]: (root) CMD (backup.sh)
:
याचा अर्थ: खाली : म्हणजे less key ची वाट बघतोय.
- Line numbers सह शेवटी उघडा.
less -N +G /var/log/nginx/access.log
Output:
48211 10.0.0.7 - - [25/Oct/2026:10:15:02] "GET /cart HTTP/1.1" 200
याचा अर्थ: शेवटच्या line वर, number 48211.
- less मधे error search.
/ERROR
Output:
10:12:44 ERROR payment timeout order=8812
याचा अर्थ: पुढच्या ERROR ला n.
- Command output page by page.
ps aux | less -S
Output:
USER PID %CPU %MEM COMMAND
root 1 0.0 0.1 /sbin/init
याचा अर्थ: -S लांब lines wrap होऊ देत नाही. डावी उजवी arrow keys.
- Unzip न करता compressed log.
zless /var/log/syslog.2.gz
Output:
Oct 23 00:00:01 web-01 systemd[1]: Started Daily apt upgrade
याचा अर्थ: zless, zcat, zgrep थेट .gz वर चालतात.
6. more: साधा pager
हे का लागतं?
छोट्या systems वर (rescue mode, BusyBox) less नसू शकतो, पण more नेहमी असतो.
हे काय आहे?
more एका वेळी एक screen. Space पुढचं page, Enter पुढची line, /text search, q बाहेर. मागे नीट जाता येत नाही. less असेल तर तो वापरा.
कसं करायचं (step by step)
- File page by page.
more /etc/services
Output:
# /etc/services
tcpmux 1/tcp
--More--(2%)
याचा अर्थ: --More-- किती पुढे आलात ते.
- Command output page by page.
dmesg | more
Output:
[ 0.000000] Linux version 6.1.0
--More--
याचा अर्थ: Pipe मधे पण चालतं.
7. head आणि tail: सुरुवात आणि शेवट
हे का लागतं?
बहुतेक वेळा CSV चा header किंवा log च्या शेवटच्या काही lines पुरतात.
हे काय आहे?
head पहिल्या 10 lines, tail शेवटच्या 10. -n N म्हणजे N lines. head -c N म्हणजे N bytes. head -n -5 म्हणजे शेवटच्या 5 सोडून सगळ्या. tail -n +2 line 2 पासून (header skip). मधला भाग: head -n 30 | tail -n 11 म्हणजे lines 20 ते 30.
कसं करायचं (step by step)
- CSV च्या पहिल्या 3 lines.
head -n 3 sales.csv
Output:
date,city,amount
2026-10-01,Pune,4500
2026-10-01,Nashik,3200
याचा अर्थ: Line 1 header आहे.
- Log च्या शेवटच्या 5 lines.
tail -n 5 /var/log/auth.log
Output:
Oct 25 10:20:11 web-01 sshd[2231]: Accepted publickey for ravi from 10.0.0.5
याचा अर्थ: नव्या घटना शेवटी.
- Header skip करा.
tail -n +2 sales.csv | head -n 2
Output:
2026-10-01,Pune,4500
2026-10-01,Nashik,3200
याचा अर्थ: +2 म्हणजे line 2 पासून.
- Lines 20 ते 30.
head -n 30 app.log | tail -n 11
Output:
(11 lines: 20..30)
याचा अर्थ: किंवा sed -n '20,30p' app.log (पुढच्या chapters मधे).
- अनेक files एकदम.
head -n 1 *.csv
Output:
==> jan.csv <==
date,city,amount
==> feb.csv <==
date,city,amount
याचा अर्थ: प्रत्येक file साठी ==> name <== banner. -q लपवतो.
- 5 सगळ्यात मोठे folders.
du -sh /var/* 2>/dev/null | sort -rh | head -5
Output:
2.1G /var/log
800M /var/lib
120M /var/cache
याचा अर्थ: अनेक 'top N' pipelines चा शेवटचा step head.
8. tail -f आणि tail -F: logs live बघा
हे का लागतं?
Deploy किंवा debug करताना नवीन log lines लिहिल्याबरोबर दिसाव्यात.
हे काय आहे?
tail -f file open ठेवतो आणि नव्या lines print करतो. Log rotate झाला (rename होऊन नवी file) तर -f जुनीच file बघत राहतो आणि शांत होतो. tail -F (म्हणजे --follow=name --retry) नावाने नवी file परत उघडतो, म्हणून servers वर -F. Ctrl+C ने थांबवा. --pid=PID process संपला की थांबतो. systemd services साठी journalctl -u name -f.
कसं करायचं (step by step)
- Web log follow करा.
tail -f /var/log/nginx/access.log
Output:
10.0.0.9 - - [25/Oct/2026:10:30:01] "GET / HTTP/1.1" 200 612
(waits for new lines...)
याचा अर्थ: Cursor थांबतो. नवे requests live दिसतात.
- Log rotation मधेही safe follow.
tail -F /var/log/app/app.log
Output:
tail: '/var/log/app/app.log' has been replaced; following new file
10:31:00 INFO started
याचा अर्थ: -F ने नवी file ओळखली आणि चालू राहिला.
- दोन logs एकत्र follow.
tail -F app.log worker.log
Output:
==> app.log <==
10:32 GET /api/orders
==> worker.log <==
10:32 job 77 done
याचा अर्थ: कोणत्या file ची line ते banners दाखवतात.
- फक्त errors follow.
tail -F app.log | grep --line-buffered ERROR
Output:
10:33:12 ERROR db timeout
याचा अर्थ: --line-buffered मुळे pipe मधे grep लगेच print करतो.
- systemd service follow.
journalctl -u nginx -f
Output:
Oct 25 10:34:01 web-01 nginx[880]: reload done
याचा अर्थ: Journal ला log करणाऱ्या services साठी journalctl हाच tail -f.
9. wc: lines, words आणि bytes मोजा
हे का लागतं?
किती users? आज किती errors? File रिकामी आहे का? मोजणी अनेक ops प्रश्नांना पटकन उत्तर देते.
हे काय आहे?
wc lines, words आणि bytes print करतो. -l lines, -w words, -c bytes, -m characters (Unicode साठी), -L सगळ्यात लांब line. Pipe सोबत फक्त number (file नाव नाही), scripts साठी उत्तम. लक्षात ठेवा: wc -l newline characters मोजतो, म्हणून newline नसलेली शेवटची line मोजली जात नाही.
कसं करायचं (step by step)
- सगळं मोजा.
wc notes.txt
Output:
12 85 512 notes.txt
याचा अर्थ: 12 lines, 85 words, 512 bytes.
- फक्त lines.
wc -l /etc/passwd
Output:
38 /etc/passwd
याचा अर्थ: 38 user accounts.
- Scripts साठी फक्त number.
wc -l < /etc/passwd
Output:
38
याचा अर्थ: < ने file नाव लपतं.
- Log मधले errors मोजा.
grep ERROR app.log | wc -l
Output:
27
याचा अर्थ: grep -c ERROR app.log सारखंच.
- Marathi text मधे bytes vs characters.
echo -n 'पुणे' | wc -c; echo -n 'पुणे' | wc -m
Output:
12
4
याचा अर्थ: UTF-8 मधे प्रत्येक देवनागरी character ला 3 bytes.
- Folder मधल्या files मोजा.
ls /etc/nginx/conf.d | wc -l
Output:
4
याचा अर्थ: पटकन count. विचित्र नावांसाठी find (chapter 12).
10. tee: output save करा आणि बघा पण
हे का लागतं?
Upgrade करताना output बघायचं आणि नंतरसाठी log file पण ठेवायची. किंवा normal shell मधून root च्या file मधे लिहायचं.
हे काय आहे?
tee input वाचून screen वर आणि एक किंवा अधिक files मधे लिहितो, T आकाराच्या pipe जोडासारखा. -a overwrite न करता append. Protected files मधे लिहायचा योग्य मार्ग sudo tee file, कारण sudo echo x > file मधे > तुमच्या नावाने चालतं, root म्हणून नाही. Screen copy लपवायला > /dev/null.
कसं करायचं (step by step)
- Upgrade बघा आणि save करा.
sudo dnf -y upgrade 2>&1 | tee upgrade-$(date +%F).log
Output:
Upgrading: openssl 3.0.7 ...
Complete!
याचा अर्थ: 2>&1 errors पण पकडतो. Log चं नाव date ने.
- Log ला append.
echo "$(date +%T) deploy v42 by Neha" | tee -a deploy.log
Output:
10:40:02 deploy v42 by Neha
याचा अर्थ: -a जुन्या lines ठेवतो.
- Root file योग्य प्रकारे लिहा.
echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-swap.conf
Output:
vm.swappiness=10
याचा अर्थ: चालतं. sudo echo ... > file Permission denied देईल.
- दोन files मधे save.
df -h | tee disk-now.txt disk-$(hostname).txt > /dev/null && ls disk-*
Output:
disk-now.txt disk-web-01.txt
याचा अर्थ: > /dev/null screen copy लपवतो.
- Pipe चा मधला भाग save.
cat access.log | tee raw.txt | grep ' 500 ' | wc -l
Output:
14
याचा अर्थ: raw.txt मधे सगळ्या lines, count फक्त 500 errors चा.
11. अनेक industries मधली खरी उदाहरणं
हे का लागतं?
तेच Linux skill प्रत्येक प्रकारच्या company मध्ये लागतं. वेगवेगळ्या ठिकाणी पाहिलं की लक्षात राहतं.
हे काय आहे?
प्रत्येक row म्हणजे एक काल्पनिक team. कोण हे वापरतं आणि कसं ते दाखवते.
कसं करायचं (step by step)
| Team आणि शहर | ते कसं वापरतात | Command |
|---|---|---|
| Priya, e-commerce SRE, Bengaluru | Sale वेळी checkout logs live follow | tail -F /var/log/shop/checkout.log |
| Lukas, bank ops, Frankfurt | प्रत्येक patch run चा log ठेवतो | sudo apt upgrade 2>&1 | tee -a patch.log |
| Fatima, telecom NOC, Dubai | दर तासाचे dropped calls मोजते | grep DROP cdr.log | wc -l |
| Arjun, hospital IT, Nagpur | Patient data import आधी CSV header बघतो | head -n 1 patients.csv |
| Chen, game studio, Taipei | Search सह crash logs page by page | less -N crash.log |
| Olivia, media, London | Daily view files एका monthly file मधे | cat views-2026-10-*.csv > views-oct.csv |
12. नेहमीच्या errors आणि त्यांचे fixes
हे का लागतं?
हे errors सगळ्यांना येतात. कारण माहीत असलं की तास वाचतात.
हे काय आहे?
आधी नेमका message वाचा. मग खालच्या row शी जुळवा.
कसं करायचं (step by step)
| दिसणारा error | का होतं | Fix कसा करायचा |
|---|---|---|
cat: app.log: No such file or directory | चुकीचा path किंवा नाव (Linux case sensitive) | ls ने बघा, Tab completion वापरा.ls -l /var/log/app/ |
cat: /var/log/secure: Permission denied | File फक्त root किंवा group ला वाचता येते | sudo वापरा, किंवा Ubuntu वर adm group.sudo less /var/log/secure |
bash: /etc/sysctl.d/x.conf: Permission denied (with sudo echo >) | > redirect तुमच्या user म्हणून चालतो, root नाही | sudo tee मधे pipe करा.echo 'x=1' | sudo tee /etc/sysctl.d/x.conf |
tail -f shows nothing after midnight | logrotate ने file बदलली; -f जुनीच बघतो | tail -F वापरा.tail -F /var/log/app.log |
Screen full of strange symbols after cat | Binary file print केली | आधी file ने तपासा, terminal साठी reset.file data.bin; reset |
cat: big.log: input file is output file | File स्वतःमधेच redirect केली | नव्या file मधे लिहा, मग move.cat a big.log > new.log && mv new.log big.log |
wc -l shows one less than expected | शेवटच्या line ला newline नाही | Newline जोडा किंवा grep -c '' ने मोजा.grep -c '' file.txt |
head: invalid number of lines: '5x' | -n नंतर चुकीचा number | साधा number द्या.head -n 5 file.txt |
less: WARNING: terminal is not fully functional | TERM set नाही (cron किंवा विचित्र SSH) | TERM set करा.export TERM=xterm-256color |
Pipe output appears late with tail -f | grep | Pipe मधे grep output buffer करतो | --line-buffered जोडा.tail -F app.log | grep --line-buffered ERROR |
13. Troubleshooting step by step
हे का लागतं?
Log चुकीचा किंवा रिकामा वाटला तर file, size, permissions आणि अजून लिहिली जातेय का ते तपासा.
हे काय आहे?
वरून खाली जा. ज्या step ला problem दिसतो तिथे थांबा.
कसं करायचं (step by step)
- File आहे का, किती मोठी?
ls -lh /var/log/app/app.log
- Text आहे की binary?
file /var/log/app/app.log
- वाचता येते का?
head -n 2 /var/log/app/app.log || sudo head -n 2 /var/log/app/app.log
- आत्ता कोणी लिहितंय का?
sudo lsof /var/log/app/app.log
- Rotate झाली का? .1 किंवा .gz files.
ls -lt /var/log/app/ | head
- App journal मधे log करतंय का?
journalctl -u app --since '10 min ago'
- Windows line ends किंवा tabs तपासा.
cat -A /var/log/app/app.log | head -3
14. Lab 1: Web server log तपासा आणि follow करा
हे का लागतं?
Fake access log बनवा, head, tail, less ने वाचा, live follow करा आणि errors मोजा.
हे काय आहे?
पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).
कसं करायचं (step by step)
- Folder आणि sample log बनवा.
mkdir -p ~/lab7 && cd ~/lab7 && for i in $(seq 1 200); do echo "10.0.0.$((i%9)) GET /p$i $([ $((i%10)) -eq 0 ] && echo 500 || echo 200)"; done > access.log
Output:
(no output)
- Lines मोजा.
wc -l access.log
Output:
200 access.log
- सुरुवात आणि शेवट बघा.
head -n 3 access.log; tail -n 2 access.log
Output:
10.0.0.1 GET /p1 200
10.0.0.2 GET /p2 200
10.0.0.3 GET /p3 200
10.0.0.1 GET /p199 200
10.0.0.2 GET /p200 500
- 500 errors मोजा.
grep -c ' 500$' access.log
Output:
20
- एका terminal मधे live follow.
tail -F access.log
Output:
(waits)
- दुसऱ्या terminal मधे line जोडा.
echo '10.0.0.7 GET /new 200' >> ~/lab7/access.log
Output:
(first terminal shows the new line)
- Ctrl+C ने थांबा आणि less मधे शेवटी उघडा.
less -N +G access.log
Output:
201 10.0.0.7 GET /new 200
15. Lab 2: tee ने patch run save करा
हे का लागतं?
Command चालवा, बघा आणि dated log ठेवा. Root file safely लिहा.
हे काय आहे?
पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).
कसं करायचं (step by step)
- चालवा आणि log एकाच वेळी.
uname -a 2>&1 | tee -a ~/lab7/run-$(date +%F).log
Output:
Linux web-01 6.1.0 x86_64 GNU/Linux
- परत चालवा, log वाढला का.
uptime | tee -a ~/lab7/run-$(date +%F).log >/dev/null; wc -l ~/lab7/run-*.log
Output:
2 /home/ravi/lab7/run-2026-10-25.log
- Root file लिहायचा चुकीचा मार्ग.
sudo echo 'hello' > /etc/lab7.conf
Output:
bash: /etc/lab7.conf: Permission denied
- योग्य मार्ग.
echo 'hello' | sudo tee /etc/lab7.conf
Output:
hello
- Clean up.
sudo rm /etc/lab7.conf
Output:
(no output)
Ravindra Bagale's Tip
On servers always use tail -F, not tail -f. Logs get rotated at night, and -F keeps following the new file so you do not miss the error you are waiting for.
Ravindra Bagale's Tip – मराठी
Servers वर नेहमी tail -F वापरा, tail -f नाही. रात्री logs rotate होतात, आणि -F नवी file follow करत राहतो, त्यामुळे ज्या error ची वाट बघताय तो चुकत नाही.
Ravindra Bagale's Tip – हिंदी
Servers पर हमेशा tail -F इस्तेमाल करें, tail -f नहीं. रात में logs rotate होते हैं, और -F नई file को follow करता रहता है, ताकि जिस error का इंतज़ार है वो छूटे नहीं.
16. नेहमी विचारले जाणारे प्रश्न
प्र. सगळ्यासाठी cat का नाही?
छोट्या files साठी cat ठीक. लांब files मधे screen भरतो. less ने scroll आणि search, head/tail ने हवा तेवढाच भाग.
प्र. 'useless use of cat' म्हणजे काय?
cat file | grep x चालतं पण एक जास्तीचा process. grep x file तेच करतो. फार फरक नाही, पण interviewers ना clean form आवडतो.
प्र. tail -f आणि tail -F मधे फरक?
-f open file follow करतो. -F नाव follow करून retry करतो, म्हणून log rotation मधे टिकतो.
प्र. less पूर्ण file load करतो का?
नाही. लागेल तेवढंच वाचतो, म्हणून मोठ्या files पटकन उघडतो.
प्र. wc -c आणि wc -m वेगळे का?
-c bytes, -m characters मोजतो. English नसलेल्या अक्षरांना UTF-8 मधे एकापेक्षा जास्त bytes.
प्र. Lines 100 ते 120 कशा बघायच्या?
head -n 120 file | tail -n 21, किंवा sed -n '100,120p' file.
प्र. tee अनेक files मधे लिहू शकतो का?
हो, सगळ्या द्या: tee a.txt b.txt.
प्र. .gz logs कसे वाचायचे?
zcat, zless किंवा zgrep. Unzip ची गरज नाही.
17. मुलाखत प्रश्न आणि उत्तरं
Beginner level
प्र. cat काय करतो?
एक किंवा अधिक files screen वर print करतो आणि जोडू शकतो.
प्र. File च्या शेवटच्या 20 lines कशा बघाल?
tail -n 20 file.
प्र. File मधल्या lines कशा मोजाल?
wc -l file, फक्त number साठी wc -l < file.
प्र. less मधून बाहेर कसं पडाल?
q दाबा.
Mid level level
प्र. Production वर tail -F का?
Logs rotate होतात. -F नावाने follow करून नवी file उघडतो; -f जुनी renamed file बघत राहील.
प्र. 'sudo echo x > /etc/file' का fail होतं?
sudo चालायच्या आधी shell तुमच्या user म्हणून > redirect करतो. echo x | sudo tee /etc/file वापरा.
प्र. Lines 50 ते 60 कशा print कराल?
head -n 60 f | tail -n 11, किंवा sed -n '50,60p' f.
प्र. CSV header कसा skip कराल?
tail -n +2 file.csv.
Senior level
प्र. Script wc -l ने lines मोजते आणि एकाने कमी येतं. का?
शेवटच्या line ला newline नाही. wc newline characters मोजतो. Producer fix करा किंवा grep -c ''.
प्र. tail -f | grep उशिरा lines दाखवतो. का आणि fix?
stdout pipe/file असेल तर grep block-buffer करतो. --line-buffered किंवा stdbuf -oL.
प्र. छोट्या server वर 20 GB log safely कसा बघाल?
less (सगळं load करत नाही), किंवा tail/head, gz साठी zless. cat आणि RAM मधे load करणारे editors टाळा.
प्र. मोठा log delete केला तरी disk full. काय झालं?
Process ने file अजून open ठेवली, म्हणून space मोकळी नाही. lsof +L1 ने शोधा आणि restart करा, किंवा पुढच्या वेळी delete आधी : > file ने truncate.
घरी करून बघा
- कोणताही chat किंवा मोठा text file मधे export करा. wc ने lines आणि words मोजा, head/tail ने पहिले आणि शेवटचे messages, less ने नाव search करा.
- 'ping -c 5 google.com | tee ping.txt' चालवा आणि ping.txt मधे तेच output आहे का बघा.
सराव Tasks
Maple Leaf Books हा टोरांटो मधला पुस्तक विक्री व्यवसाय आहे. Emily Tremblay त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे CAD मध्ये मोजले जातात आणि AWS resources ca-central-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.
0 / 21
सोपं Line numbers सह file
का: Reviews मधे line numbers मदत करतात.
काय करायचं: Emily Tremblay ला Maple Leaf Books ची app.conf प्रत्येक line ला number सह cat ने बघायची आहे.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं नव्या log lines आधी
का: नव्या events खाली.
काय करायचं: audit.log उलट्या line क्रमाने print.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Numbers सह मोठा log
का: 2 GB file cat करू नका.
काय करायचं: /var/log/messages less मधे line numbers सह उघडा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं पहिल्या 5 lines
का: CSV header पटकन बघा.
काय करायचं: Maple Leaf Books च्या sales.csv च्या पहिल्या 5 lines.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं शेवटच्या 20 lines
का: अलीकडचे errors शेवटी.
काय करायचं: /var/log/secure च्या शेवटच्या 20 lines.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Lines मोजा
का: किती users आहेत?
काय करायचं: /etc/group मधल्या lines मोजा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Words मोजा
का: Blog posts ना word limit.
काय करायचं: post.md मधले words मोजा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं less मधून बाहेर
का: नवे users अडकतात.
काय करायचं: less मधून कोणती एक key बाहेर काढते?
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
सोपं Append operator
का: Logs वाढावेत, reset नकोत.
काय करायचं: कोणता operator file मधलं न पुसता output शेवटी जोडतो?
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
सोपं Overwrite operator
का: File काय पुसतं ते माहीत हवं.
काय करायचं: कोणता एक operator output file मधे पाठवतो आणि आधी file रिकामी करतो?
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
सोपं cat input संपवा
का: Users cat मधे अडकतात.
काय करायचं: cat ने file मधे lines type केल्या. कोणतं key combo input संपवून save करतं?
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
मध्यम लपलेले characters
का: Windows line ends scripts तोडतात.
काय करायचं: deploy.sh मधे tabs आणि line ends दाखवा म्हणजे ^M दिसेल.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम दोन files जोडा
का: Monthly exports तुकड्यांत येतात.
काय करायचं: jan.csv आणि feb.csv (याच क्रमाने) q1.csv मधे जोडा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम nl ने सगळ्या lines
का: काही reviews मधे blank lines पण मोजतात.
काय करायचं: nl ने notes.txt च्या रिकाम्या lines सकट प्रत्येक line ला number.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Header row skip
का: Totals मधे header नको.
काय करायचं: leads.csv line 2 पासून print.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Rotate होणारा log follow
का: logrotate नंतर -f थांबतो.
काय करायचं: /var/log/api/api.log live follow करा, file rotate झाली तरी चालू राहील.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Error lines मोजा
का: पटकन health number.
काय करायचं: grep आणि wc pipe ने worker.log मधल्या WARN lines मोजा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Output save आणि बघा
का: Upgrades चा record.
काय करायचं: df -h चालवा, output disk.txt मधे save करा आणि screen वर पण दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम tee ने append
का: जुने records जाऊ देऊ नका.
काय करायचं: date चा output tee ने deploy.log मधे append करा, जुन्या lines ठेवून.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Overwrite पासून वाचवा
का: एका typo ने file पुसली जाते.
काय करायचं: कोणतं bash option (set -o सोबत) > ला असलेल्या files overwrite करू देत नाही?
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
अवघड Pipe मधून root file
का: sudo echo > file चालत नाही.
काय करायचं: echo आणि sudo tee ने vm.max_map_count=262144 /etc/sysctl.d/99-maps.conf मधे लिहा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
18. संबंधित chapters
- DevOps साठी Linux Ops Refresh
- Automation साठी Bash Scripting
- Linux grep आणि find Commands Examples सह
- Linux Servers मध्ये Passwordless SSH
थोडक्यात सांगायचं तर
- cat print आणि join; -n numbers, -A hidden characters.
- मोठ्या files साठी less: /search, n, G, q, F.
- head आणि tail सुरुवात/शेवट; tail -n +2 header skip.
- tail -F rotation मधेही logs follow.
- wc -l lines मोजतो; wc -l < file फक्त number.
- tee save आणि दाखवतो; sudo tee root files लिहितो.
उजळणी, तुलना आणि मुलाखत cards
हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.








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