Ravindra BagaleCourses & study guides English

Linux Commands A-Z Part 3: echo, find, grep, firewall-cmd, free, fsck आणि अजून, Examples सह

हा Linux Commands A-Z reference चा Part 3 आहे: echo ते host. Scripts मधे values print आणि pass करायला, files शोधायला, firewall ports उघडायला, memory तपासायला, filesystems दुरुस्त करायला, file कोण धरून आहे ते बघायला, users आणि ACLs वाचायला, logs compress करायला, files ची सुरुवात वाचायला, history परत वापरायला आणि DNS test करायला या commands वापरतात. grep ला वीस options आणि चौदा worked steps सह पूर्ण deep dive आहे, कारण खऱ्या support कामात तुम्ही तीच सगळ्यात जास्त type कराल. प्रत्येक command ला why, what, options table आणि खऱ्या output आणि अर्थासह step-by-step examples आहेत.

या chapter मध्ये तुम्ही काय शिकाल

  • echo, env, export, expr आणि exit ने scripts मधे values print, export आणि calculate करा
  • find ने नाव, size, वेळ आणि owner ने files शोधा, आणि file ने ओळखा
  • grep ने pro सारखं text search करा: regex, context, counts, recursion आणि exit codes
  • firewall-cmd ने ports उघडा आणि free ने memory वाचा
  • fdisk ने partition आणि fsck ने safely repair करा
  • getent, groups, getfacl आणि groupadd ने users, groups आणि ACLs वाचा
  • gzip आणि gunzip ने logs compress करा, आणि head ने files वाचा
  • history ने commands परत वापरा, fg ने jobs manage करा, fuser ने file holders बघा आणि host ने DNS test करा

1. रोजचं उदाहरण: Pune Metro station control room

हे का लागतं?

Civil Court station वर controller speakers वर announcements करतो, एका platform साठी CCTV log search करतो, कोणती gates उघडी आहेत ते तपासतो, parking किती भरलंय ते बघतो, fault दाखवलेली lift तपासतो, staff room कोण वापरतंय ते बघतो, आणि पुढची train confirm करायला central office ला call करतो.

हे काय आहे?

echo म्हणजे announcement. grep म्हणजे CCTV log search. firewall-cmd म्हणजे gates. free म्हणजे parking level. fsck म्हणजे lift check. fuser म्हणजे staff room मधे कोण. host म्हणजे central office ला call.

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

आजारी server वर पहिली नजरMemory OK?Logs मधे errors?Port उघडा?Files कोण धरतंय?DNS बरोबर?मोठ्या files सापडल्या
सहा checks, प्रत्येक या part मधल्या command ने.

2. Part 3 commands वापरून पाच minute चं triage

हे का लागतं?

Deep dives आधी, app slow किंवा fail होत असताना या commands एकत्र कशा चालतात ते बघा.

हे काय आहे?

आधी memory, मग errors, मग port, मग DNS, मग मोठ्या files.

प्रश्नCommand
Memory कमी आहे का?free -h
आज errors?grep -c ERROR app.log
Firewall मधे port उघडा?firewall-cmd --list-ports
DB नाव resolve होतं?host db.internal
मोठ्या files?find / -xdev -size +1G

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

  1. Triage एकदम चालवा.
free -h | grep Mem; grep -c ERROR /var/log/app/app.log; sudo firewall-cmd --list-ports; host db.internal

Output:

Mem:  7.6Gi  6.9Gi  210Mi  12Mi  520Mi  410Mi
37
80/tcp 443/tcp
db.internal has address 10.0.2.15

याचा अर्थ: फक्त 410 MB available, 37 errors, ports ठीक, DNS ठीक. Memory हा पहिला संशयित.

  1. Context सह नवे errors बघा.
grep -B1 -A2 ERROR /var/log/app/app.log | tail -4

Output:

2026-10-26 00:41:11 INFO cache size 1.9G
2026-10-26 00:41:12 ERROR java.lang.OutOfMemoryError: Java heap space
	at com.shop.Cart.load(Cart.java:88)
--

याचा अर्थ: आधीची line वाढता cache दाखवते; error memory confirm करतो.

3. echo: Text print

echo सविस्तर: text, variables आणि escape codes print

हे का लागतं?

Scripts ने user ला काय चाललंय ते सांगायला हवं, files मधे lines लिहायला हव्यात आणि debug करताना variables च्या values दाखवायला हव्यात. echo हा काहीही print करण्याचा सगळ्यात सोपा मार्ग.

हे काय आहे?

echo हा shell builtin आहे जो arguments print करून शेवटी new line देतो. echo पर्यंत पोहोचण्याआधी shell variables आणि wildcards expand करतो, म्हणून quoting ठरवतं काय मिळेल. Exact formatting साठी printf जास्त safe.

नेहमीचे options

Optionकाय करतो
echo textText आणि new line print.
echo -n textशेवटी new line नाही.
echo -e "a\tb"\t आणि \n सारखे escapes समजतो.
echo "$VAR"Variable safe print.
echo '$VAR'Single quotes: जसंच्या तसं.
echo $?मागच्या command चा exit code.

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

  1. Message print करा.
echo "Backup started"

Output:

Backup started

याचा अर्थ: Text आणि new line.

  1. Variable दाखवा.
echo "User is $USER on $HOSTNAME"

Output:

User is ec2-user on web01

याचा अर्थ: Double quotes variables expand करतात.

  1. Expansion थांबवा.
echo 'Cost is $5'

Output:

Cost is $5

याचा अर्थ: Single quotes $ जसाच्या तसा ठेवतात.

  1. Tab वापरा.
echo -e "name\tcity\nRavi\tPune"

Output:

name	city
Ravi	Pune

याचा अर्थ: -e \t ला tab आणि \n ला new line करतो.

  1. File मधे लिहा.
echo "server=10.0.1.5" | sudo tee -a /etc/app.conf

Output:

server=10.0.1.5

याचा अर्थ: tee -a root म्हणून append करतो; साधं sudo echo >> fail होतं.

  1. मागचा command चालला का ते तपासा.
ls /nope; echo $?

Output:

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

याचा अर्थ: 0 म्हणजे success; बाकी काहीही म्हणजे error.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Kothrud मधल्या school चा IT admin प्रत्येक computer setup झाल्यावर script मधे echo ने "Lab PC 12 ready" print करतो.

4. env: Command साठी environment दाखवा/set

env सविस्तर: command चं environment बघा आणि बदला

हे का लागतं?

Program PATH, LANG, TZ किंवा JAVA_HOME सारख्या variables वर वेगळा वागतो. तुमच्यासाठी चालतं पण cron मधे किंवा दुसऱ्या user साठी नाही, तेव्हा बहुतेक environment कारण असतं.

हे काय आहे?

env सगळे exported variables print करतो, किंवा तुमचा shell न बदलता एक command जास्त किंवा कमी variables सह चालवतो. Script च्या पहिल्या line मधे #!/usr/bin/env python3 असं PATH मधे program शोधायला पण वापरतात.

नेहमीचे options

Optionकाय करतो
envExported variables list.
env VAR=v cmdVAR set करून cmd चालवा.
env -i cmdरिकाम्या environment सह चालवा.
env -u VAR cmdVAR शिवाय चालवा.
#!/usr/bin/env bashScript साठी PATH मधे bash शोधा.

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

  1. सगळं list करा.
env | sort | head -4

Output:

HISTSIZE=1000
HOME=/home/ec2-user
LANG=C.UTF-8
LOGNAME=ec2-user

याचा अर्थ: प्रत्येक line NAME=value.

  1. एक variable शोधा.
env | grep ^PATH=

Output:

PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

याचा अर्थ: Commands शोधण्याचे folders, क्रमाने.

  1. एक command दुसऱ्या time zone मधे.
env TZ=Asia/Kolkata date

Output:

Mon Oct 26 01:30:00 IST 2026

याचा अर्थ: फक्त या command ला TZ दिसतो; shell बदलत नाही.

  1. Cron सारखं test करा.
env -i /bin/bash -c 'echo "PATH=$PATH"'

Output:

PATH=/usr/local/bin:/usr/bin

याचा अर्थ: रिकाम्या environment मधे bash छोटा default PATH वापरतो, cron सारखा.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Magarpatta मधली analytics team reports वर env LANG=C sort चालवते म्हणजे प्रत्येक server वर sorting सारखं येतं.

5. exit: Status code सह shell सोडा

exit सविस्तर: shell सोडा आणि status परत द्या

हे का लागतं?

Scripts ने cron, CI pipelines आणि इतर scripts ना ते चालले का ते सांगायला हवं. तो message म्हणजे exit code, आणि exit तो set करतो.

हे काय आहे?

exit हा builtin current shell किंवा script ला 0 ते 255 मधल्या number सह संपवतो. 0 म्हणजे success. Login session मधे तो logout करतो. Function मधे return वापरा.

नेहमीचे options

Optionकाय करतो
exitमागच्या command च्या status ने exit.
exit 0Success.
exit 1General error.
exit 2चुकीच्या usage साठी common.
echo $?Script नंतर code वाचा.

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

  1. Check script लिहा.
printf '#!/bin/bash\n[ -f /etc/app.conf ] || { echo missing; exit 1; }\necho ok\n' > chk.sh; chmod +x chk.sh

याचा अर्थ: File नसेल तर script 1 ने थांबते.

  1. चालवा आणि code वाचा.
./chk.sh; echo "code=$?"

Output:

missing
code=1

याचा अर्थ: Callers ना 1 दिसतो आणि fail झालं कळतं.

  1. Chain मधे वापरा.
./chk.sh && echo "deploy"

Output:

missing

याचा अर्थ: && फक्त exit 0 वर पुढचा भाग चालवतो.

  1. SSH session सोडा.
exit

Output:

logout
Connection to 10.0.1.5 closed.

याचा अर्थ: तुम्ही परत स्वतःच्या machine वर.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Chakan auto plant चा CI job test script non-zero exit देतो तेव्हा build fail करतो, म्हणून बिघडलेलं firmware line वर पोहोचत नाही.

6. export: Variable child programs ना दिसेल असं

export सविस्तर: child programs ना variables द्या

हे का लागतं?

तुम्ही shell मधे JAVA_HOME किंवा AWS_PROFILE set करता, पण सुरू केलेल्या program ला ते दिसत नाही. साधा variable shell मधेच राहतो; export तो पुढे देतो.

हे काय आहे?

export shell variable ला mark करतो म्हणजे या shell मधून सुरू होणाऱ्या प्रत्येक command च्या environment मधे तो copy होतो. Parent shell किंवा इतर terminals वर परिणाम नाही. टिकवायला ~/.bashrc किंवा /etc/profile.d/ मधे ठेवा.

नेहमीचे options

Optionकाय करतो
export VAR=valueSet आणि export.
export VARअसलेला variable export.
export -pExported variables list.
export -n VARExport थांबवा.
export PATH="$PATH:/opt/bin"PATH मधे folder जोडा.

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

  1. साधा variable पुढे जात नाही.
APP_ENV=prod; bash -c 'echo "[$APP_ENV]"'

Output:

[]

याचा अर्थ: Child shell ला दिसत नाही.

  1. Export करा.
export APP_ENV=prod; bash -c 'echo "[$APP_ENV]"'

Output:

[prod]

याचा अर्थ: आता प्रत्येक child ला दिसतो.

  1. Tool folder PATH मधे जोडा.
export PATH="$PATH:/opt/tools/bin"; command -v mytool

Output:

/opt/tools/bin/mytool

याचा अर्थ: आता shell ला tool सापडतो.

  1. सगळ्या users साठी ठेवा.
echo 'export JAVA_HOME=/usr/lib/jvm/java-17' | sudo tee /etc/profile.d/java.sh

Output:

export JAVA_HOME=/usr/lib/jvm/java-17

याचा अर्थ: नवे login shells /etc/profile.d/ मधल्या files load करतात.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Baner मधली SaaS team Terraform चालवण्याआधी AWS_PROFILE=staging export करते म्हणजे चुकून production ला हात लागत नाही.

7. expr: साधं maths आणि string checks

expr सविस्तर: साधं गणित आणि string checks

हे का लागतं?

जुन्या scripts आणि खूप छोट्या systems (BusyBox असलेले routers) गणित आणि string length साठी expr वापरतात. Legacy scripts वाचताना तो भेटेल.

हे काय आहे?

expr वेगवेगळ्या words चं expression evaluate करून result print करतो. प्रत्येक number आणि operator वेगळा argument हवा, आणि * escape करावा लागतो. bash मधे $(( )) जलद आणि स्वच्छ.

नेहमीचे options

Optionकाय करतो
expr 5 + 3बेरीज.
expr 6 \* 4गुणाकार (* escape).
expr 17 % 5बाकी.
expr length "$s"String length.
expr "$s" : "ab*"सुरुवातीपासून match, length print.

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

  1. दोन numbers add.
expr 40 + 2

Output:

42

याचा अर्थ: + च्या आजूबाजूला spaces हवेत.

  1. गुणाकार.
expr 7 \* 6

Output:

42

याचा अर्थ: Backslash शिवाय shell * ला wildcard म्हणून expand करतो.

  1. String length.
expr length "PuneCity"

Output:

8

याचा अर्थ: Characters मोजतो.

  1. Modern bash मधे तेच.
echo $(( 7 * 6 )); s=PuneCity; echo ${#s}

Output:

42
8

याचा अर्थ: bash scripts मधे हेच वापरा.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Bhosari factory चे जुने BusyBox gateways retries expr ने मोजतात कारण bash install नाही.

8. fdisk: Disk partitions बनवा आणि list

fdisk सविस्तर: disk partitions list आणि create

हे का लागतं?

नवी data disk रिकामी येते. Filesystem बनवून mount करण्याआधी बऱ्याचदा partition लागतो. fdisk हे classic tool, आणि fdisk -l सगळ्या disks बघण्याचा सगळ्यात जलद मार्ग.

हे काय आहे?

fdisk हे MBR आणि GPT partition tables साठी interactive menu tool आहे. w दाबेपर्यंत बदल memory मधेच राहतात. Scripts साठी parted किंवा sfdisk. Partition बनवल्यावर kernel ला दिसायला partprobe किंवा reboot.

नेहमीचे options

Optionकाय करतो
fdisk -lसगळ्या disks आणि partitions list.
fdisk /dev/sdbMenu मधे disk उघडा.
nनवा partition (menu मधे).
pTable print.
wWrite करून exit.
qSave न करता बाहेर.

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

  1. नवी disk शोधा.
sudo fdisk -l | grep "^Disk /dev"

Output:

Disk /dev/nvme0n1: 20 GiB, 21474836480 bytes
Disk /dev/nvme1n1: 50 GiB, 53687091200 bytes

याचा अर्थ: nvme1n1 ही नवी 50 GiB disk.

  1. उघडा.
sudo fdisk /dev/nvme1n1

Output:

Command (m for help):

याचा अर्थ: तुम्ही menu मधे. अजून काही बदललं नाही.

  1. पूर्ण disk चा एक partition.
n, p, 1, Enter, Enter, w

Output:

Created a new partition 1 of type 'Linux' and of size 50 GiB.
The partition table has been altered.

याचा अर्थ: Default start आणि end पूर्ण disk वापरतात; w save करतो.

  1. Confirm.
lsblk /dev/nvme1n1

Output:

NAME        SIZE TYPE
nvme1n1      50G disk
└─nvme1n1p1  50G part

याचा अर्थ: नवा partition p1 mkfs साठी तयार.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Hadapsar hospital चा admin X-ray images साठी 500 GB disk जोडतो: fdisk, मग mkfs.xfs, मग /etc/fstab मधे line.

9. fg: Job foreground ला आणा

fg सविस्तर: background job परत समोर आणा

हे का लागतं?

vim मधे चुकून Ctrl+Z दाबलं, किंवा लांब copy background ला पाठवली आणि आता तिच्या प्रश्नाला उत्तर द्यायचंय. fg job परत समोर आणतो.

हे काय आहे?

fg हा shell builtin. तो या shell चा stopped किंवा background job foreground ला आणतो म्हणजे keyboard परत त्याचा. Jobs ना numbers असतात; jobs ने बघा. bg background मधेच resume करतो.

नेहमीचे options

Optionकाय करतो
fgसगळ्यात नवा job.
fg %2Job 2.
fg %vimvim ने सुरू होणारा job.
Ctrl+Zचालू job थांबवा.
jobs -lPIDs सह jobs list.

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

  1. Edit सुरू करून थांबवा.
vim notes.txt  (then Ctrl+Z)

Output:

[1]+  Stopped                 vim notes.txt

याचा अर्थ: Job 1 paused आहे, बंद नाही.

  1. लांब job background ला.
sleep 600 &

Output:

[2] 4821

याचा अर्थ: Job 2, PID 4821.

  1. List करा.
jobs

Output:

[1]+  Stopped                 vim notes.txt
[2]-  Running                 sleep 600 &

याचा अर्थ: + म्हणजे current job, - त्याच्या आधीचा.

  1. vim कडे परत.
fg %1

Output:

(vim opens again with your text)

याचा अर्थ: Save न केलेलं काम अजून तिथेच.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Viman Nagar मधला support engineer configs edit करताना tail -f background ला ठेवतो, आणि fg आणि Ctrl+Z ने switch करतो.

10. file: File कोणत्या प्रकारची ते ओळखा

file सविस्तर: ही file कोणत्या प्रकारची?

हे का लागतं?

report.pdf नावाची file खरं तर zip, script किंवा virus असू शकते. Uploads, downloads आणि जुन्या backups ना बऱ्याचदा चुकीचं किंवा extension नसतं. file नाव नाही, content तपासतो.

हे काय आहे?

file file चे पहिले bytes ("magic number") वाचून database शी compare करतो आणि type सांगतो. Text encoding, line endings आणि program 32 की 64 bit ते पण सांगतो.

नेहमीचे options

Optionकाय करतो
file nameType दाखवा.
file -i nameMIME type दाखवा.
file -b nameBrief: file name नाही.
file -s /dev/sdb1Device वाचा (filesystem शोधा).
file -L linkSymlinks follow.

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

  1. संशयास्पद upload तपासा.
file invoice.pdf

Output:

invoice.pdf: Zip archive data, at least v2.0 to extract

याचा अर्थ: ही zip आहे, PDF नाही. डोळे झाकून उघडू नका.

  1. Windows मधून आलेली script तपासा.
file deploy.sh

Output:

deploy.sh: Bourne-Again shell script, ASCII text executable, with CRLF line terminators

याचा अर्थ: CRLF bash तोडतं; dos2unix किंवा sed ने fix.

  1. Binary तपासा.
file /usr/bin/ls

Output:

/usr/bin/ls: ELF 64-bit LSB pie executable, x86-64, dynamically linked

याचा अर्थ: 64-bit Intel किंवा AMD program.

  1. नवी disk format आहे का?
sudo file -s /dev/nvme1n1p1

Output:

/dev/nvme1n1p1: data

याचा अर्थ: "data" म्हणजे अजून filesystem नाही.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Shivajinagar मधल्या law firm चा mail gateway attachments वर file -i चालवतो आणि documents नावाने आलेले executables block करतो.

11. find: Name, size, time ने files शोधा

find सविस्तर: नाव, size, वेळ आणि owner ने files शोधा

हे का लागतं?

Disks जुन्या logs ने भरतात, कोणी विचारतं config कुठे आहे, किंवा security ला सगळ्या world-writable files हव्यात. find या सगळ्यांची उत्तरं देतो, आणि सापडलेल्यावर action पण करतो.

हे काय आहे?

find folder tree फिरतो आणि प्रत्येक file -name, -type, -size, -mtime, -user आणि -perm सारख्या conditions ने तपासतो. जुळलेल्या files print होतात, किंवा -delete किंवा -exec सारख्या action ला जातात. locate सारखं नाही, find disk live वाचतो.

नेहमीचे options

Optionकाय करतो
-name "*.log"नावाने (pattern quote).
-inameनाव, case ignore.
-type f / d / lFile, folder, link.
-size +100M100 MB पेक्षा मोठी.
-mtime +77 दिवसांपेक्षा आधी बदललेली.
-user / -permOwner किंवा permission.
-maxdepth 1खोल जाऊ नका.
-exec cmd {} +Matches वर command.
-deleteMatches delete.

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

  1. Config file शोधा.
sudo find /etc -name "nginx.conf"

Output:

/etc/nginx/nginx.conf

याचा अर्थ: Patterns नेहमी quote करा म्हणजे shell expand करत नाही.

  1. Root disk वरच्या मोठ्या files.
sudo find / -xdev -type f -size +500M 2>/dev/null

Output:

/var/log/app/debug.log
/home/ravi/old.iso

याचा अर्थ: -xdev एकाच filesystem वर राहतो.

  1. जुने logs.
find /var/log/app -name "*.log" -mtime +30

Output:

/var/log/app/app-2026-09-01.log

याचा अर्थ: 30 दिवसांपेक्षा आधी बदललेले.

  1. Safe delete: आधी list, मग delete.
find /var/log/app -name "*.log" -mtime +30 -delete

याचा अर्थ: तीच test, आता -delete सह. -delete शेवटी ठेवा.

  1. Matches वर command.
find /srv/app -name "*.sh" -exec chmod 750 {} +

याचा अर्थ: {} म्हणजे file list; + एकदम अनेक files देतो.

  1. Security check: world-writable files.
sudo find /srv -type f -perm -o+w

Output:

/srv/upload/tmp.txt

याचा अर्थ: हे कोणीही बदलू शकतं; fix करा.

  1. मागच्या तासात बदललेल्या files.
sudo find /etc -mmin -60 -type f

Output:

/etc/resolv.conf

याचा अर्थ: आत्ताच config ला कोणी हात लावला?

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Hinjewadi मधली bank रोज रात्री report folders वर -mtime +90 -delete सह find चालवते, म्हणून month end ला disks भरत नाहीत.

12. firewall-cmd: firewalld rules manage

firewall-cmd सविस्तर: RHEL वर ports safe उघडा

हे का लागतं?

Web server install केला पण कोणीच पोहोचू शकत नाही. RHEL, Rocky आणि Fedora वर firewalld default ने ports block करतो, आणि SSH न तोडता ते उघडायचा मार्ग म्हणजे firewall-cmd.

हे काय आहे?

firewall-cmd firewalld service शी बोलतो. Rules zones मधे (public, internal, trusted) असतात. --permanent शिवायचा rule reload वर जातो; --permanent सह save होतो पण apply व्हायला --reload लागतो. दोन्ही वापरा, किंवा --runtime-to-permanent.

नेहमीचे options

Optionकाय करतो
--statefirewalld चालू आहे का?
--get-active-zonesवापरातले zones.
--list-allDefault zone चे rules.
--add-service=httpKnown service allow.
--add-port=8080/tcpPort allow.
--remove-port=8080/tcpPort बंद.
--permanentRule save.
--reloadSaved rules load.

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

  1. चालू आहे का.
sudo firewall-cmd --state

Output:

running

याचा अर्थ: firewalld active.

  1. Rules बघा.
sudo firewall-cmd --list-all

Output:

public (active)
  interfaces: eth0
  services: cockpit dhcpv6-client ssh
  ports:

याचा अर्थ: फक्त ssh, cockpit आणि dhcpv6 उघडे.

  1. HTTP आणि HTTPS कायमचे उघडा.
sudo firewall-cmd --permanent --add-service={http,https}

Output:

success

याचा अर्थ: Save झालं, अजून live नाही.

  1. Apply.
sudo firewall-cmd --reload

Output:

success

याचा अर्थ: Saved rules आता live.

  1. Confirm.
sudo firewall-cmd --list-services

Output:

cockpit dhcpv6-client http https ssh

याचा अर्थ: http आणि https उघडे.

  1. एका network मधूनच port allow.
sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=10.0.0.0/16 port port=5432 protocol=tcp accept'

Output:

success

याचा अर्थ: PostgreSQL फक्त internal network मधून.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Yerawada मधली insurance company auditors च्या मागणीप्रमाणे rich rule ने port 5432 फक्त app subnet मधून allow करते.

13. free: Memory आणि swap वापर

free सविस्तर: खरंच किती memory मोकळी?

हे का लागतं?

App slow आहे किंवा killed झालं, आणि server ची RAM संपली का ते जाणायचंय. योग्य column वाचलात तर free एका line मधे उत्तर देतो.

हे काय आहे?

free /proc/meminfo वाचून total, used, free, shared, buff/cache आणि available memory, आणि swap दाखवतो. Linux मोकळी RAM cache साठी वापरतो, म्हणून "free" कमी दिसतं; "available" म्हणजे नव्या programs ना खरं मिळू शकणारी.

नेहमीचे options

Optionकाय करतो
free -hHuman sizes.
free -mMiB मधे.
free -s 2दर 2 seconds ला.
free -tTotal line जोडा.
free -wWide: buffers आणि cache वेगळे.

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

  1. Memory वाचा.
free -h

Output:

               total        used        free      shared  buff/cache   available
Mem:           7.6Gi       2.1Gi       320Mi        12Mi       5.2Gi       5.3Gi
Swap:          2.0Gi          0B       2.0Gi

याचा अर्थ: Free 320 Mi, पण 5.3 Gi available कारण cache सोडता येतो.

  1. फक्त available number.
free -m | awk '/^Mem:/{print $7}'

Output:

5427

याचा अर्थ: Monitoring scripts साठी चांगलं.

  1. Load test दरम्यान बघा.
free -h -s 5

Output:

(prints every 5 seconds)

याचा अर्थ: Available सतत कमी होतंय का बघा.

  1. काही killed झालं का?
sudo dmesg -T | grep -i "out of memory"

Output:

[Mon Oct 26 00:12:03 2026] Out of memory: Killed process 3120 (java)

याचा अर्थ: Kernel च्या OOM killer ने java थांबवलं.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Wakad मधली e-learning site live exams दरम्यान available memory 10% खाली गेली की alert देते.

14. fsck: Filesystem check आणि repair

fsck सविस्तर: filesystem check आणि repair

हे का लागतं?

Power cut किंवा crash नंतर filesystem मधे तुटलेल्या links असू शकतात, आणि server boot वर emergency mode मधे जाऊ शकतो. fsck तपासतो आणि repair करतो.

हे काय आहे?

fsck हा front end आहे जो योग्य checker बोलावतो, जसं ext4 साठी e2fsck. फक्त unmounted filesystem वर चालवा, नाहीतर नुकसान होऊ शकतं. XFS साठी xfs_repair; XFS वर fsck काही करत नाही.

नेहमीचे options

Optionकाय करतो
fsck /dev/sdb1Check (प्रत्येक fix आधी विचारतो).
fsck -n /dev/sdb1फक्त check, काही बदलत नाही.
fsck -y /dev/sdb1न विचारता सगळं fix.
fsck -fClean असलं तरी force check.
xfs_repair /dev/sdb1XFS repair tool.

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

  1. Filesystem type शोधा.
lsblk -f /dev/nvme1n1

Output:

NAME      FSTYPE MOUNTPOINT
nvme1n1p1 ext4   /data

याचा अर्थ: ext4, /data वर mounted.

  1. आधी unmount.
sudo umount /data

याचा अर्थ: Mounted filesystem वर fsck चालवू नका.

  1. Dry run.
sudo fsck -n /dev/nvme1n1p1

Output:

e2fsck 1.46.5
/dev/nvme1n1p1: clean, 11/3276800 files, 251161/13107200 blocks

याचा अर्थ: -n फक्त report करतो. Clean म्हणजे नुकसान नाही.

  1. Full check आणि repair force.
sudo fsck -fy /dev/nvme1n1p1

Output:

Pass 1: Checking inodes, blocks, and sizes
...
Pass 5: Checking group summary information

याचा अर्थ: पाच passes; -y सापडलेलं fix करतो.

  1. परत mount.
sudo mount /data && df -h /data

Output:

/dev/nvme1n1p1   49G   24K   47G   1% /data

याचा अर्थ: परत service मधे.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Pimpri factory चा server power cut नंतर emergency mode मधे गेला; admin ने /data वर fsck -y चालवला आणि तो boot झाला.

15. fuser: File किंवा port कोणती process वापरते

fuser सविस्तर: ही file किंवा port कोण वापरतंय?

हे का लागतं?

umount "target is busy" म्हणतो, किंवा port आधीच वापरात आहे आणि नवी service सुरू होत नाही. कोणता process तो धरून आहे ते जाणायचंय. fuser एका line मधे सांगतो.

हे काय आहे?

fuser file, folder, mount किंवा network port वापरणाऱ्या processes चे PIDs print करतो. PID नंतरची अक्षरं वापर दाखवतात: c current folder, f open file, e running program, m mapped file. तो ते processes kill पण करू शकतो.

नेहमीचे options

Optionकाय करतो
fuser -v fileVerbose: user, PID, access, command.
fuser -m /mntत्या mount वापरणारं सगळं.
fuser 80/tcpTCP port 80 कोण वापरतो.
fuser -kते processes kill.
fuser -kiप्रत्येक kill आधी विचारा.

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

  1. Unmount fail.
sudo umount /data

Output:

umount: /data: target is busy.

याचा अर्थ: अजून काहीतरी /data वापरतंय.

  1. कोण ते शोधा.
sudo fuser -vm /data

Output:

                     USER        PID ACCESS COMMAND
/data:               ravi       2210 ..c.. bash

याचा अर्थ: ravi user चा shell /data मधे बसलाय.

  1. Port 80 कोण धरतो?
sudo fuser -v 80/tcp

Output:

                     USER        PID ACCESS COMMAND
80/tcp:              root       1043 F.... nginx

याचा अर्थ: nginx आधीच 80 वर ऐकतो.

  1. विचारा, मग kill.
sudo fuser -kim /data

Output:

/data: 2210c
Kill process 2210 ? (y/N) y

याचा अर्थ: त्यानंतर umount चालतो.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Bavdhan मधली media firm edit storage unmount करण्याआधी fuser -vm वापरते म्हणजे editors ना warning मिळते, अचानक कट होत नाहीत.

16. getent: Users, groups, hosts शोधा

getent सविस्तर: users, groups आणि hosts system च्या पद्धतीने शोधा

हे का लागतं?

LDAP किंवा Active Directory ला जोडलेल्या servers वर users /etc/passwd मधे नसतात, म्हणून grep ला काहीच सापडत नाही. Logins आणि name lookups साठी system जे sources वापरते, getent तेच विचारतो.

हे काय आहे?

getent /etc/nsswitch.conf प्रमाणे NSS मधून databases वाचतो: passwd, group, hosts, services आणि अजून. Files, SSSD, LDAP किंवा DNS मधून classic file format मधे lines देतो.

नेहमीचे options

Optionकाय करतो
getent passwd raviएक user.
getent group wheelएक group आणि members.
getent hosts nameApps सारखं resolve.
getent services 443Port name.
getent ahosts nameसगळे addresses, IPv4 आणि IPv6.

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

  1. User तपासा.
getent passwd ravi

Output:

ravi:x:1001:1001:Ravi:/home/ravi:/bin/bash

याचा अर्थ: Name, UID, GID, comment, home, shell.

  1. grep ला न दिसणारा domain user.
getent passwd priya@corp.example.in

Output:

priya@corp.example.in:*:1855001104:1855000513:Priya:/home/priya:/bin/bash

याचा अर्थ: SSSD मधून आला, /etc/passwd मधून नाही.

  1. Group members.
getent group wheel

Output:

wheel:x:10:ravi,priya

याचा अर्थ: ravi आणि priya sudo वापरू शकतात.

  1. Apps सारखं resolve.
getent hosts db.internal

Output:

10.0.2.15       db.internal

याचा अर्थ: nsswitch क्रमाने /etc/hosts आणि DNS वापरतो.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Kalyani Nagar मधली IT team SSH ला दोष देण्याआधी getent passwd ने AD logins तपासते.

17. getfacl: ACL permissions दाखवा

getfacl सविस्तर: जास्तीच्या permissions (ACLs) वाचा

हे का लागतं?

साध्या permissions मधे फक्त एक owner आणि एक group. Auditor किंवा दुसऱ्या team ला access लागतो तेव्हा admins ACLs जोडतात. फक्त ls -l बघितलं तर ते दिसणार नाहीत.

हे काय आहे?

getfacl file किंवा folder ची access control list print करतो: owner, group, named users, named groups, mask आणि नव्या files साठी default ACLs. ls -l mode च्या शेवटी + म्हणजे ACL आहे. ACLs setfacl ने बदला.

नेहमीचे options

Optionकाय करतो
getfacl fileACL दाखवा.
getfacl -R dirपूर्ण folder tree.
getfacl -R dir > acl.bakACLs backup.
setfacl --restore=acl.bakRestore करा.
setfacl -m u:name:rx dirएका user ला read आणि enter.

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

  1. Plus चिन्ह बघा.
ls -ld /srv/reports

Output:

drwxrwx---+ 2 app finance 4096 Oct 26 01:00 /srv/reports

याचा अर्थ: + म्हणजे जास्तीच्या ACL entries.

  1. वाचा.
getfacl /srv/reports

Output:

# file: srv/reports
# owner: app
# group: finance
user::rwx
user:auditor:r-x
group::rwx
mask::rwx
other::---

याचा अर्थ: auditor user read आणि enter करू शकतो.

  1. अजून एका user ला access.
sudo setfacl -m u:priya:rx /srv/reports

याचा अर्थ: priya ला आता read आणि enter.

  1. बदलांआधी backup.
getfacl -R /srv/reports > /root/reports.acl

याचा अर्थ: काही चुकलं तर setfacl --restore ने restore.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Camp भागातली CA firm audit season मधे auditors ना client folders वर read-only ACL access देते.

18. grep: Text मधे patterns शोधा

grep deep dive: pro सारखा text शोधा

हे का लागतं?

Admin चं बहुतेक काम म्हणजे एक line शोधणं: log मधला error, config मधली setting, access logs मधला IP, list मधला user. grep हे इतर कोणत्याही tool पेक्षा जास्त वापरलं जाणारं, आणि ls नंतर Linux interview मधला सगळ्यात common command.

हे काय आहे?

grep files किंवा input line by line वाचतो आणि pattern जुळणाऱ्या lines print करतो. Pattern म्हणजे regular expression: default basic, -E ने extended, -F ने fixed text, -P ने Perl style. Options case, counting, context lines, file names आणि recursion control करतात. Exit code 0 म्हणजे सापडलं, 1 नाही, 2 error, म्हणून scripts साठी grep perfect.

नेहमीचे options

Optionकाय करतो
-iCase ignore.
-vन जुळणाऱ्या lines.
-nLine numbers.
-cजुळणाऱ्या lines मोजा.
-l / -Lजुळणाऱ्या / न जुळणाऱ्या files ची नावं.
-r / -RFolders शोधा (R links follow).
-wफक्त पूर्ण शब्द.
-xपूर्ण line जुळली पाहिजे.
-EExtended regex: | + ? {}.
-FFixed text, regex नाही.
-oफक्त जुळलेला भाग.
-A / -B / -C nनंतरच्या / आधीच्या / आजूबाजूच्या lines.
-qQuiet: फक्त exit code.
--include="*.conf"Recursive मधे फक्त या files.
--color=autoMatches highlight.

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

  1. Log मधे errors शोधा.
grep ERROR /var/log/app/app.log

Output:

2026-10-26 00:41:10 ERROR payment timeout id=7781
2026-10-26 00:52:33 ERROR db connection refused

याचा अर्थ: ERROR असलेली प्रत्येक line, लिहिल्याप्रमाणे.

  1. Case ignore आणि line numbers.
grep -in "timeout" /var/log/app/app.log

Output:

118:2026-10-26 00:41:10 ERROR payment timeout id=7781
240:2026-10-26 01:02:09 WARN Timeout retry 2

याचा अर्थ: Timeout आणि timeout दोन्ही जुळतात; number म्हणजे file मधली line.

  1. मोजा.
grep -c ERROR /var/log/app/app.log

Output:

37

याचा अर्थ: 37 lines मधे ERROR.

  1. Error च्या आजूबाजूचं बघा.
grep -B2 -A3 "db connection refused" /var/log/app/app.log

Output:

(2 lines before, the match, 3 lines after)

याचा अर्थ: Context failure च्या आधी काय झालं ते दाखवतो.

  1. Config मधल्या comments आणि blank lines लपवा.
grep -Ev "^\s*(#|$)" /etc/ssh/sshd_config

Output:

Include /etc/ssh/sshd_config.d/*.conf
PermitRootLogin no
PasswordAuthentication no

याचा अर्थ: -v उलटं करतो, -E (a|b) चालू करतो; ^ सुरुवात, $ शेवट.

  1. एकदम दोन patterns.
grep -E "ERROR|FATAL" app.log | tail -2

Output:

2026-10-26 01:10:00 FATAL out of memory
2026-10-26 01:12:41 ERROR worker crashed

याचा अर्थ: Extended regex मधे | म्हणजे OR.

  1. फक्त पूर्ण शब्द.
grep -w "root" /etc/passwd

Output:

root:x:0:0:root:/root:/bin/bash

याचा अर्थ: chroot किंवा rootless जुळत नाही.

  1. फक्त IPs काढा.
grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}" access.log | sort | uniq -c | sort -rn | head -3

Output:

  942 49.36.12.8
  311 103.21.5.90
   87 10.0.1.5

याचा अर्थ: -o फक्त जुळलेला भाग print करतो; मग प्रत्येक IP मोजा.

  1. पूर्ण folder, फक्त config files.
grep -rn --include="*.conf" "listen" /etc/nginx/

Output:

/etc/nginx/conf.d/shop.conf:3:    listen 443 ssl;

याचा अर्थ: -r folders फिरतो; --include files मर्यादित करतो.

  1. कोणत्या files मधे hostname?
grep -rl "db-old.internal" /srv/app/config

Output:

/srv/app/config/prod.yml
/srv/app/config/batch.yml

याचा अर्थ: फक्त file names: migration आधी update करायची list.

  1. Dots किंवा brackets असलेला text जसाच्या तसा.
grep -F "[10.0.1.5]" haproxy.log | head -1

Output:

Oct 26 01:01:02 lb1 haproxy[812]: [10.0.1.5] backend up

याचा अर्थ: -F regex बंद करतो, म्हणून [ आणि . साधी अक्षरं.

  1. Script मधे grep.
if grep -q "^PermitRootLogin no" /etc/ssh/sshd_config; then echo SAFE; else echo FIX; fi

Output:

SAFE

याचा अर्थ: -q काही print करत नाही; exit code if चालवतो.

  1. Command output filter.
ps aux | grep "[n]ginx"

Output:

root  1043  0.0  0.1 nginx: master process
nginx 1044  0.0  0.2 nginx: worker process

याचा अर्थ: [n] trick: grep ची स्वतःची line जुळत नाही.

  1. Compressed logs शोधा.
zgrep -c "ERROR" /var/log/app/app.log.1.gz

Output:

52

याचा अर्थ: zgrep .gz files unpack न करता वाचतो.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Kharadi मधली payments team प्रत्येक RBI audit दरम्यान zgrep ने 30 दिवसांच्या zipped logs मधे "declined" शोधते आणि bank प्रमाणे seconds मधे मोजते.

19. groupadd: Group बनवा

groupadd सविस्तर: team group बनवा

हे का लागतं?

Permissions व्यक्तीप्रमाणे पेक्षा team प्रमाणे manage करणं सोपं. devs किंवा finance सारखा group बनवा, लोकांना त्यात जोडा, आणि group ला folders चा access द्या.

हे काय आहे?

groupadd /etc/group (आणि /etc/gshadow) मधे नव्या group name आणि GID ची line जोडतो. Members नंतर usermod -aG किंवा gpasswd -a ने जोडतात. groupdel group काढतो; groupmod rename करतो.

नेहमीचे options

Optionकाय करतो
groupadd devsGroup बनवा.
groupadd -g 3000 devsGID निवडा.
groupadd -r svcSystem group (कमी GID).
gpasswd -a ravi devsMember जोडा.
groupdel devsGroup delete.

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

  1. Group बनवा.
sudo groupadd -g 3000 devs

याचा अर्थ: Output नाही म्हणजे success.

  1. तपासा.
getent group devs

Output:

devs:x:3000:

याचा अर्थ: GID 3000, अजून members नाहीत.

  1. दोन लोक जोडा.
sudo usermod -aG devs ravi; sudo usermod -aG devs priya; getent group devs

Output:

devs:x:3000:ravi,priya

याचा अर्थ: -a त्यांचे इतर groups ठेवतो. कधी विसरू नका.

  1. Group ला shared folder.
sudo mkdir /srv/devs && sudo chgrp devs /srv/devs && sudo chmod 2770 /srv/devs

याचा अर्थ: 2 (setgid) मुळे नव्या files devs च्या.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Model Colony मधल्या architecture firm चे design, accounts आणि print groups आहेत, प्रत्येकाचा स्वतःचा shared folder.

20. groups: User चे groups

groups सविस्तर: मी कोणत्या groups मधे आहे?

हे का लागतं?

तुम्हाला docker किंवा wheel group मधे जोडलं पण अजून permission denied येतं. पहिला check: या session ला खरंच कोणते groups आहेत?

हे काय आहे?

groups current user चे, किंवा दिलेल्या user चे groups print करतो. स्वतःच्या shell साठी session सुरू झाली तेव्हाचे groups दाखवतो; नंतर जोडलेल्या groups साठी नवा login किंवा newgrp लागतो. id तेच numbers सह दाखवतो.

नेहमीचे options

Optionकाय करतो
groupsमाझे groups.
groups raviदुसरा user.
id -nGतेच, id मधून.
newgrp dockerनव्या group सह shell.
su - $USERGroups load करायला fresh login.

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

  1. स्वतःला तपासा.
groups

Output:

ravi wheel devs

याचा अर्थ: तुम्ही ravi, wheel आणि devs मधे.

  1. docker मधे जोडल्यावर.
groups ravi

Output:

ravi : ravi wheel devs docker

याचा अर्थ: Account ला docker आहे...

  1. ...पण या shell ला नाही.
groups

Output:

ravi wheel devs

याचा अर्थ: बदलाआधी session सुरू झाली.

  1. Load करा.
newgrp docker; docker ps

Output:

CONTAINER ID   IMAGE   COMMAND   STATUS

याचा अर्थ: आता docker sudo शिवाय चालतो.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Sangvi मधल्या startup च्या onboarding doc मधे लिहिलंय: docker मधे जोडल्यावर logout-login करा, मग groups ने तपासा.

21. gunzip: .gz files uncompress

gunzip सविस्तर: .gz files unpack

हे का लागतं?

Logs .gz म्हणून rotate होतात, database dumps .sql.gz म्हणून पाठवले जातात, आणि downloads .gz येतात. ते परत साध्या files म्हणून हवेत, किंवा unpack न करता वाचायचेत.

हे काय आहे?

gunzip म्हणजे gzip -d. तो file.gz ला file ने replace करतो आणि time stamp ठेवतो. -k .gz पण ठेवतो, -c screen वर लिहितो म्हणजे pipe करता येतं. zcat, zless आणि zgrep .gz files थेट वाचतात.

नेहमीचे options

Optionकाय करतो
gunzip f.gzUnpack करून .gz काढा.
gunzip -k f.gz.gz ठेवा.
gunzip -c f.gzStandard output ला.
gunzip -t f.gzArchive test.
zcat f.gzUnpack न करता वाचा.

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

  1. आधी test.
gunzip -t dump.sql.gz && echo OK

Output:

OK

याचा अर्थ: Archive खराब नाही.

  1. Unpack करा आणि original ठेवा.
gunzip -k dump.sql.gz; ls -lh dump.sql*

Output:

-rw-r--r-- 1 ravi ravi 1.9G Oct 26 01:00 dump.sql
-rw-r--r-- 1 ravi ravi 210M Oct 26 01:00 dump.sql.gz

याचा अर्थ: Pack असताना सुमारे 9 पट छोटं.

  1. मोठी file न लिहिता DB restore.
gunzip -c dump.sql.gz | mysql shopdb

याचा अर्थ: 1.9 GB disk वाचते.

  1. जुना log वाचा.
zcat /var/log/nginx/access.log.2.gz | tail -1

Output:

49.36.12.8 - - [24/Oct/2026:23:59:58 +0530] "GET / HTTP/1.1" 200

याचा अर्थ: कोणतीही file बनत नाही.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Hadapsar मधला e-commerce DBA nightly .sql.gz dumps gunzip -c pipe करून mysql मधे test server वर restore करतो.

22. gzip: gzip ने files compress

gzip सविस्तर: जागा वाचवायला files compress

हे का लागतं?

Text logs आणि CSV exports compress केल्यावर 5 ते 10 पट छोटे होतात. त्याने disk, backup वेळ आणि transfer cost वाचते. gzip सगळीकडे आहे आणि जलद.

हे काय आहे?

gzip एका वेळी एक file compress करतो आणि तिला file.gz ने replace करतो. Folders bundle करत नाही; त्यासाठी tar -czf. Levels -1 (जलद) ते -9 (छोटं). JPG किंवा MP4 सारख्या आधीच compressed files फारशा छोट्या होत नाहीत.

नेहमीचे options

Optionकाय करतो
gzip fCompress, f replace.
gzip -k fOriginal ठेवा.
gzip -9 fBest compression.
gzip -l f.gzRatio दाखवा.
gzip -r dirFolder मधली प्रत्येक file.
gzip -d f.gzUnpack (gunzip सारखं).

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

  1. मोठा log compress.
ls -lh app.log; gzip app.log; ls -lh app.log.gz

Output:

-rw-r--r-- 1 app app 820M app.log
-rw-r--r-- 1 app app  61M app.log.gz

याचा अर्थ: 820 MB वरून 61 MB.

  1. Ratio बघा.
gzip -l app.log.gz

Output:

  compressed        uncompressed  ratio uncompressed_name
    63963136           859832320  92.6% app.log

याचा अर्थ: 92.6% छोटं.

  1. सध्या original ठेवा.
gzip -k -9 export.csv; ls export.csv*

Output:

export.csv  export.csv.gz

याचा अर्थ: दोन्ही files राहतात.

  1. चालता चालता compress.
mysqldump shopdb | gzip > shopdb-$(date +%F).sql.gz

याचा अर्थ: Dump कधीच uncompressed disk वर बसत नाही.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Baner मधली analytics company S3 ला upload करण्याआधी daily CSV exports gzip करते आणि transfer bill 85% ने कमी करते.

23. halt: System थांबवा

halt सविस्तर: system थांबवा (आणि poweroff पेक्षा वेगळं कसं)

हे का लागतं?

Physical server हलवण्याआधी किंवा disk fail झाल्यावर filesystems खराब होऊ नयेत म्हणून तो नीट थांबवावा लागतो. halt, poweroff आणि shutdown माहीत असलं की "off" पण वीज खाणारा server, किंवा परत start न करता येणारा remote box टाळता येतो.

हे काय आहे?

systemd systems वर halt सगळ्या services आणि kernel थांबवतो पण power कदाचित कापत नाही; poweroff machine पण बंद करतो. Cloud VM वर दोन्ही instance stop करतात. shutdown delay आणि logged-in users ना warning जोडतो.

नेहमीचे options

Optionकाय करतो
haltSystem थांबवा.
halt -pHalt आणि power off.
poweroffथांबवा आणि power कापा.
shutdown -h +10 "msg"Warning सह 10 minutes मधे halt.
shutdown -cPlanned shutdown cancel.

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

  1. Users ना warning आणि schedule.
sudo shutdown -h +10 "Disk swap in 10 min, save work"

Output:

Shutdown scheduled for Mon 2026-10-26 01:50:00 IST, use 'shutdown -c' to cancel.

याचा अर्थ: Logged-in users ना message दिसतो.

  1. विचार बदलला.
sudo shutdown -c

याचा अर्थ: Plan cancel.

  1. आत्ता बंद.
sudo poweroff

Output:

Connection to 10.0.1.5 closed by remote host.

याचा अर्थ: Services थांबतात, disks sync, power off.

  1. नंतर शेवटचे shutdowns तपासा.
last -x shutdown | head -2

Output:

shutdown system down  5.14.0-427 Mon Oct 26 01:51 - 02:30 (00:39)

याचा अर्थ: कोणी आणि केव्हा याची नोंद.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Bhosari data room चा supervisor UPS maintenance आधी message सह shutdown -h +15 वापरतो म्हणजे engineers काम save करू शकतात.

24. head: पहिल्या lines

head सविस्तर: file च्या पहिल्या lines बघा

हे का लागतं?

3 GB CSV किंवा log उघडायला खूप मोठा. फक्त columns, पहिले records किंवा output ची सुरुवात बघायचीय. head फक्त तेच दाखवतो.

हे काय आहे?

head default ला पहिल्या 10 lines print करतो, किंवा -n ने निवडलेला number, किंवा -c ने bytes. Minus number दिल्यावर शेवटच्या N lines सोडून सगळं. तो लवकर वाचणं थांबवतो, म्हणून मोठ्या files वर instant.

नेहमीचे options

Optionकाय करतो
head fपहिल्या 10 lines.
head -n 3 fपहिल्या 3 lines.
head -n -5 fशेवटच्या 5 सोडून सगळं.
head -c 100 fपहिले 100 bytes.
head -q a bअनेक files, name headers नाहीत.

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

  1. CSV columns बघा.
head -n 1 sales.csv

Output:

date,region,store,amount

याचा अर्थ: फक्त header row.

  1. Columns आणि दोन records.
head -n 3 sales.csv

Output:

date,region,store,amount
2026-10-01,West,Pune-FC,48210
2026-10-01,West,Nashik,22050

याचा अर्थ: Format समजायला पुरेसं.

  1. Top 5 memory users.
ps aux --sort=-%mem | head -n 6

Output:

USER  PID %CPU %MEM COMMAND
mysql 811  3.1 41.0 /usr/sbin/mysqld
...

याचा अर्थ: Header आणि पाच processes.

  1. Binary file चं type बघा.
head -c 4 backup.img | od -c

Output:

0000000 177   E   L   F

याचा अर्थ: \177ELF म्हणजे Linux program चं magic.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Pune retail chain चा data analyst load करण्याआधी column order तपासायला प्रत्येक store file वर head -n 5 चालवतो.

25. history: आधीच्या commands

history सविस्तर: जुने commands शोधा आणि पुन्हा वापरा

हे का लागतं?

मागच्या आठवड्यात चाललेला लांब command परत हवाय, किंवा server वर काय बदललं ते सांगायचंय. history तुम्ही type केलेल्या commands ची list ठेवतो.

हे काय आहे?

history हा bash builtin. Commands memory मधे ठेवले जातात आणि shell बंद झाल्यावर ~/.bash_history मधे save होतात. HISTSIZE आणि HISTFILESIZE किती ते ठरवतात; HISTTIMEFORMAT dates जोडतो. हे per user आणि edit करता येतं, म्हणून audit log नाही.

नेहमीचे options

Optionकाय करतो
historyList दाखवा.
history 20शेवटचे 20.
!123Command number 123 चालवा.
!!शेवटचा command परत.
Ctrl+RType करताना मागे search.
history -d 123एक entry delete.
history -aआत्ता file मधे लिहा.

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

  1. Dates जोडा.
export HISTTIMEFORMAT='%F %T '; history 3

Output:

  981  2026-10-26 01:20:11 df -h
  982  2026-10-26 01:21:40 sudo systemctl restart nginx
  983  2026-10-26 01:22:02 history 3

याचा अर्थ: आता प्रत्येक कधी चालला ते कळतं.

  1. जुना command शोधा.
history | grep rsync

Output:

  640  rsync -avz /srv/app/ backup01:/backup/app/

याचा अर्थ: Number 640 हवा तो.

  1. परत चालवा.
!640

Output:

rsync -avz /srv/app/ backup01:/backup/app/
sending incremental file list

याचा अर्थ: Bash आधी command print करतो, मग चालवतो.

  1. sudo विसरलात?
sudo !!

Output:

sudo systemctl restart nginx

याचा अर्थ: !! म्हणजे शेवटचा command.

  1. Type केलेला password काढा.
history -d 981; history -w

याचा अर्थ: Command line वर secrets कधी type करू नका; केले तर delete करा.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Kondhwa मधला MSP सगळ्या client servers वर HISTTIMEFORMAT आणि मोठा HISTSIZE set करतो म्हणजे night shift handovers स्पष्ट होतात.

26. host: साधा DNS lookup

host सविस्तर: जलद DNS lookups

हे का लागतं?

DNS बदलानंतर पटकन हो किंवा नाही हवं: हे नाव नव्या IP ला point करतं का? dig चा लांब output न देता host छोटं, वाचायला सोपं उत्तर देतो.

हे काय आहे?

host हे bind-utils (RHEL) किंवा bind9-host (Ubuntu) package मधलं साधं DNS lookup tool. Default ला A, AAAA आणि MX records, IPs साठी reverse lookups, -t ने कोणताही record type, आणि निवडलेल्या server ला विचारू शकतो.

नेहमीचे options

Optionकाय करतो
host nameA, AAAA आणि MX.
host IPReverse lookup.
host -t mx nameएक record type.
host name 8.8.8.8निवडलेल्या server ला विचारा.
host -a nameसगळं, verbose.

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

  1. साधा lookup.
host example.com

Output:

example.com has address 93.184.215.14
example.com has IPv6 address 2606:2800:21f:cb07:6820:80da:af6b:8b2c

याचा अर्थ: IPv4 आणि IPv6 addresses.

  1. Mail servers.
host -t mx gmail.com

Output:

gmail.com mail is handled by 5 gmail-smtp-in.l.google.com.

याचा अर्थ: कमी number म्हणजे preferred.

  1. Reverse lookup.
host 8.8.8.8

Output:

8.8.8.8.in-addr.arpa domain name pointer dns.google.

याचा अर्थ: IP चं PTR नाव.

  1. बदलानंतर public server ला विचारा.
host shop.example.in 1.1.1.1

Output:

Using domain server:
Address: 1.1.1.1#53

shop.example.in has address 13.235.10.20

याचा अर्थ: नवा IP बाहेरून आधीच दिसतोय.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Shivajinagar मधली web agency client ला live सांगण्याआधी प्रत्येक DNS cutover host name 8.8.8.8 आणि host name 1.1.1.1 ने तपासते.

27. अनेक industries मधली खरी उदाहरणं

हे का लागतं?

तेच Linux skill प्रत्येक प्रकारच्या company मध्ये लागतं. वेगवेगळ्या ठिकाणी पाहिलं की लक्षात राहतं.

हे काय आहे?

प्रत्येक row म्हणजे एक काल्पनिक team. कोण हे वापरतं आणि कसं ते दाखवते.

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

Team आणि शहरते कसं वापरतातCommand
Pooja, e-commerce, HinjewadiDeploy pipeline मधे प्रत्येक minute ला payment errors मोजतेgrep -c "PAYMENT FAILED" app.log
Rahul, hosting, Kharadiनव्या client sites साठी ports उघडतोfirewall-cmd --permanent --add-service=https
Meera, hospital IT, Shivajinagarवयानुसार जुने scans साफ करतेfind /scans -mtime +90 -name "*.dcm"
Sagar, logistics, Chakanरोज रात्री depot logs compress करतोgzip -9 /var/log/depot/*.log.1
Neha, bank, CampAudit folders वर ACLs तपासतेgetfacl /audit
Vikram, SaaS, BanerScaling आधी memory तपासतोfree -m

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

हे का लागतं?

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

हे काय आहे?

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

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

दिसणारा errorका होतंFix कसा करायचा
echo $PATH prints nothing in a scriptVariable दुसऱ्या shell मधे set किंवा export नाहीexport करा किंवा file source करा.
export APP_ENV=prod
expr: syntax errorSpaces नाहीत किंवा * escape नाहीOperators भोवती spaces आणि * escape.
expr 6 \* 7
find: paths must precede expressionQuote न केलेला wildcard shell ने expand केलाPattern quote करा.
find . -name "*.log"
Error: INVALID_PORT/tcp किंवा /udp शिवाय portProtocol जोडा.
firewall-cmd --add-port=8080/tcp
Port open with firewall-cmd but gone after reboot--permanent शिवाय rule--permanent जोडा आणि reload.
firewall-cmd --permanent --add-port=8080/tcp; firewall-cmd --reload
fsck: /dev/sda1 is mounted.Mounted filesystem वर fsckआधी unmount करा, किंवा rescue mode.
umount /data; fsck -n /dev/sdb1
grep: warning: recursive search of stdinfolder शिवाय -rFolder द्या.
grep -rn ERROR /var/log/app
grep: Unmatched [, [^, [:, [., or [=Special character regex समजलाFixed text साठी -F.
grep -F "[ERROR]" app.log
gzip: app.log: unexpected end of fileCopy करताना file कापली किंवा अजून लिहिली जात होतीपरत copy करा; gzip -t ने test.
gzip -t app.log.gz
groupadd: group 'developers' already existsGroup आधीच आहेआधी getent ने तपासा.
getent group developers
fuser: command not foundpsmisc install नाहीpsmisc install करा.
dnf install -y psmisc
Host db.internal not found: 3(NXDOMAIN)नाव DNS मधे नाही किंवा चुकीचा search domainRecord आणि resolv.conf तपासा.
cat /etc/resolv.conf

29. Troubleshooting step by step

हे का लागतं?

Part 3 ची command अपेक्षेप्रमाणे वागत नसेल तर या steps.

हे काय आहे?

वरून खाली जा. ज्या step ला problem दिसतो तिथे थांबा.

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

  1. Command install आहे का?
command -v fuser htop || echo missing
  1. Variable set आणि export आहे का?
env | grep APP_
  1. Pattern quote आहे का?
grep -n "a b" file
  1. Firewall rule permanent की runtime?
firewall-cmd --list-all --permanent
  1. fsck आधी disk mount आहे का?
findmnt /dev/sdb1
  1. कोणत्या DNS server ने उत्तर दिलं?
host -v db.internal | grep -i server

30. Lab 1: Support engineer सारखे logs search करा

हे का लागतं?

Sample log बनवा आणि grep, head आणि gzip ने खरे प्रश्न सोडवा.

हे काय आहे?

पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).

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

  1. Sample log बनवा.
printf "INFO start\nERROR db timeout\nINFO retry\nERROR db timeout\nWARN slow\n" > /tmp/lab.log
  1. Errors मोजा.
grep -c ERROR /tmp/lab.log

Output:

2
  1. Line numbers सह.
grep -n ERROR /tmp/lab.log

Output:

2:ERROR db timeout
4:ERROR db timeout
  1. ERROR किंवा WARN.
grep -E "ERROR|WARN" /tmp/lab.log | wc -l

Output:

3
  1. Compress करून आत search.
gzip /tmp/lab.log && zgrep -c ERROR /tmp/lab.log.gz

Output:

2

31. Lab 2: Port उघडा आणि तो कोण वापरतं ते शोधा

हे का लागतं?

छोटा web server सुरू करा, firewalld मधे त्याचा port उघडा, आणि memory आणि process तपासा.

हे काय आहे?

पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).

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

  1. Background ला server सुरू.
python3 -m http.server 8099 &

Output:

[1] 6120
  1. आत्तापुरता port उघडा.
sudo firewall-cmd --add-port=8099/tcp

Output:

success
  1. Port कोणाकडे?
sudo fuser -v 8099/tcp

Output:

8099/tcp: ravi 6120 F.... python3
  1. उरलेली memory.
free -h | grep Mem

Output:

Mem: 1.8Gi 610Mi 900Mi
  1. साफ करा.
kill %1; sudo firewall-cmd --remove-port=8099/tcp

Output:

success

Ravindra Bagale's Tip

Learn grep options one at a time: today -n and -i, tomorrow -r and -l, then -E and -w, then -A and -B. In two weeks you will search logs faster than anyone on your team.

32. नेहमी विचारले जाणारे प्रश्न

प्र. grep की find?

grep files च्या आत search करतो; find file names आणि properties search करतो.

प्र. free कमी free memory का दाखवतो?

Linux उरलेली memory cache साठी वापरतो. available column बघा.

प्र. fsck safe आहे का?

फक्त unmounted filesystem वर. आधी फक्त check साठी -n.

प्र. export करायचं की नाही?

Child programs ना हवं तेवढंच export करा.

प्र. firewall-cmd vs iptables?

RHEL वर firewall-cmd वापरा; iptables lower level आहे आणि Part 4 मधे covered.

प्र. gzip माझी file delete करतो?

हो, ती .gz ने replace होते. ठेवायला -k.

33. मुलाखत प्रश्न आणि उत्तरं

Beginner level

प्र. Case ignore करून शब्द कसा search कराल?

grep -i word file.

प्र. Free memory कशी बघाल?

free -h, आणि available column वाचा.

प्र. पहिल्या 10 lines कशा print कराल?

head file, किंवा 20 साठी head -n 20.

प्र. echo $? काय दाखवतो?

शेवटच्या command चा exit code.

Mid level level

प्र. फक्त root वर 1 GB पेक्षा मोठ्या files शोधा.

find / -xdev -size +1G.

प्र. प्रत्येक match नंतर 3 lines दाखवा.

grep -A3 pattern file.

प्र. HTTPS कायमचं उघडा.

firewall-cmd --permanent --add-service=https मग --reload.

प्र. /data कोण वापरतंय म्हणून unmount होत नाही?

fuser -vm /data.

Senior level

प्र. Log मधे 2 million lines. Top 5 error messages शोधा.

grep ERROR app.log | sort | uniq -c | sort -rn | head -5.

प्र. Crash नंतर filesystem mount होत नाही. Steps?

Rescue boot, check साठी fsck -n, backup, मग fsck -y, मग mount.

प्र. User LDAP आणि local files मधे आहे का कसं तपासाल?

getent passwd user.

प्र. Script तुमच्या shell मधे चालते पण cron मधे नाही. का?

Variables export नाहीत किंवा PATH वेगळा; env ने तपासा.

घरी करून बघा

  1. 100 lines चा test log बनवा आणि table मधला प्रत्येक grep option practise करा.
  2. तुमच्या home मधल्या 50 MB पेक्षा मोठ्या सगळ्या files शोधा.
  3. gzip -k ने log compress करा आणि ls -lh ने sizes compare करा.
  4. तीन websites वर host चालवा आणि त्यांचे IPs लिहा.

सराव Tasks

या scenario बद्दल

Maple Leaf Books हा टोरांटो मधला पुस्तक विक्री व्यवसाय आहे. Emily Tremblay त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे CAD मध्ये मोजले जातात आणि AWS resources ca-central-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.

0 / 23

सोपं Newline शिवाय print

का: BIZ Linux servers चालवतो आणि echo ते host commands रोज वापरतो.

काय करायचं: शेवटच्या newline शिवाय ready शब्द print करा.

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

सोपं Variable export

का: BIZ Linux servers चालवतो आणि echo ते host commands रोज वापरतो.

काय करायचं: REGION ला ap-south-1 value सह export करा.

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

सोपं Calculate

का: BIZ Linux servers चालवतो आणि echo ते host commands रोज वापरतो.

काय करायचं: expr ने 17 आणि 25 add करा.

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

सोपं नावाने शोधा

का: BIZ Linux servers चालवतो आणि echo ते host commands रोज वापरतो.

काय करायचं: /opt खाली config.yaml नावाच्या files शोधा.

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

सोपं File चा प्रकार

का: BIZ Linux servers चालवतो आणि echo ते host commands रोज वापरतो.

काय करायचं: /bin/ls file चा type दाखवा.

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

सोपं MB मधे memory

का: BIZ Linux servers चालवतो आणि echo ते host commands रोज वापरतो.

काय करायचं: दर 3 seconds ला refresh करत memory megabytes मधे दाखवा.

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

सोपं Case ignore

का: BIZ Linux servers चालवतो आणि echo ते host commands रोज वापरतो.

काय करायचं: server.log मधे case ignore करून timeout शब्द search करा.

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

सोपं Matches मोजा

का: BIZ Linux servers चालवतो आणि echo ते host commands रोज वापरतो.

काय करायचं: server.log मधे WARN असलेल्या lines मोजा.

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

सोपं पहिल्या lines

का: BIZ Linux servers चालवतो आणि echo ते host commands रोज वापरतो.

काय करायचं: orders.csv च्या पहिल्या 3 lines दाखवा.

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

सोपं DNS lookup

का: BIZ Linux servers चालवतो आणि echo ते host commands रोज वापरतो.

काय करायचं: host ने example.net चे mail servers शोधा.

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

मध्यम Variable शिवाय चालवा

का: BIZ Linux servers चालवतो आणि echo ते host commands रोज वापरतो.

काय करायचं: LANG variable काढून printenv command चालवा.

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

मध्यम Size ने शोधा

का: BIZ Linux servers चालवतो आणि echo ते host commands रोज वापरतो.

काय करायचं: /srv खाली 500 MB पेक्षा मोठ्या files शोधा.

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

मध्यम वयाने शोधा

का: BIZ Linux servers चालवतो आणि echo ते host commands रोज वापरतो.

काय करायचं: /backup खाली 30 दिवसांपूर्वी बदललेल्या files शोधा.

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

मध्यम Service उघडा

का: BIZ Linux servers चालवतो आणि echo ते host commands रोज वापरतो.

काय करायचं: firewalld मधे mysql service कायमची allow करा.

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

मध्यम Folder search

का: BIZ Linux servers चालवतो आणि echo ते host commands रोज वापरतो.

काय करायचं: /etc/myapp मधे line numbers सह password recursively search करा.

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

मध्यम फक्त file names

का: BIZ Linux servers चालवतो आणि echo ते host commands रोज वापरतो.

काय करायचं: /var/www खाली eval असलेल्या files ची फक्त नावं list करा.

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

मध्यम Comments लपवा

का: BIZ Linux servers चालवतो आणि echo ते host commands रोज वापरतो.

काय करायचं: nginx.conf च्या hash sign ने सुरू न होणाऱ्या lines दाखवा.

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

मध्यम Compress करा आणि ठेवा

का: BIZ Linux servers चालवतो आणि echo ते host commands रोज वापरतो.

काय करायचं: access.log compress करा पण original file ठेवा.

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

मध्यम Group look up

का: BIZ Linux servers चालवतो आणि echo ते host commands रोज वापरतो.

काय करायचं: सगळ्या sources मधून docker group ची entry दाखवा.

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

अवघड Owner ने शोधा

का: BIZ Linux servers चालवतो आणि echo ते host commands रोज वापरतो.

काय करायचं: /home खाली sneha user च्या मालकीच्या files शोधा.

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

अवघड फक्त check

का: BIZ Linux servers चालवतो आणि echo ते host commands रोज वापरतो.

काय करायचं: काही न बदलता /dev/sdc1 check करा.

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

अवघड Whole word आणि context

का: BIZ Linux servers चालवतो आणि echo ते host commands रोज वापरतो.

काय करायचं: job.log मधे fail whole word matches प्रत्येकानंतर 2 lines सह दाखवा.

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

अवघड दोन शब्द

का: BIZ Linux servers चालवतो आणि echo ते host commands रोज वापरतो.

काय करायचं: Extended regex ने job.log मधे OOM किंवा panic असलेल्या lines दाखवा.

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

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

  1. echo, env, export, expr, exit: script basics.
  2. find: names, sizes, times; patterns quote करा.
  3. grep: -i -n -r -l -c -v -w -E -F -A -B -o -q.
  4. firewall-cmd: --permanent मग --reload.
  5. free: available वाचा.
  6. fsck फक्त unmounted disks वर.

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

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

grep 4 steps मधे. Case ignore, line numbers. Folder search. दोन patterns. Hit भोवती context.
उजळणी card: grep 4 steps मधे · PNG download करा · Card page उघडा
मोठ्या आणि जुन्या files शोधा. नावाने. Size ने. वयाने. Memory पण तपासा.
उजळणी card: मोठ्या आणि जुन्या files शोधा · PNG download करा · Card page उघडा
grep vs find. Files च्या आत search. / Names आणि properties search.
तुलना: grep vs find · PNG download करा · Card page उघडा
gzip vs tar. एक file compress. / अनेक files bundle.
तुलना: gzip vs tar · PNG download करा · Card page उघडा
Scripts मधे grep exit codes?. 0 सापडलं, 1 नाही, 2 error. Quiet check. Brackets सह fixed text.
मुलाखत card: Scripts मधे grep exit codes? · PNG download करा · Card page उघडा
Port उघडा पण reboot नंतर गेला?. Rule फक्त runtime होता. कायमचा जोडा. Reload.
मुलाखत card: Port उघडा पण reboot नंतर गेला? · PNG download करा · Card page उघडा
free कमी free memory दाखवतो?. Linux उरलेली RAM cache ला वापरतो. available वाचा. Swap use तपासा.
मुलाखत card: free कमी free memory दाखवतो? · PNG download करा · Card page उघडा
fsck कधी safe?. फक्त unmounted disk वर. आधी check, बदल नाही. मग repair.
मुलाखत card: fsck कधी safe? · PNG download करा · Card page उघडा

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