Linux शून्य से कैसे सीखें: पहली कमांड से सर्वर के प्रशासन तक की योजना
Linux परतों में सीखना सबसे आसान है: पहले टर्मिनल और फ़ाइल सिस्टम, फिर यूज़र और अधिकार, Bash स्क्रिप्ट, पैकेज, प्रोसेस और systemd, उसके बाद डिस्क, लॉग, नेटवर्क, SSH और सर्वर सुरक्षा। हर चरण पर अपनी वर्चुअल मशीन या सस्ते VPS पर अभ्यास ज़रूरी है, और अंतिम परिणाम ख़ुद से खड़ा और सुरक्षित किया गया सर्वर है जिस पर सर्विस चल रही हो।
Linux शून्य से सीखना उतना मुश्किल नहीं, जितना लगता है, अगर सही क्रम में चलें और तुरंत अभ्यास करें। नए लोगों की मुख्य गलती है कमांड टाइप किए बिना उनके बारे में पढ़ते रहना, या प्रक्रिया और अधिकार समझे बिना Docker और Kubernetes पर कूद जाना। नीचे नौ चरणों की योजना है: क्या सीखें, क्या अभ्यास करें, और यह कैसे पता चले कि चरण पूरा हुआ।
समय का अनुमान: रोज़ एक घंटे पढ़ाई के हिसाब से दो से चार महीने, पर गति हर किसी की अलग होती है। ज़्यादा ज़रूरी गति नहीं, यह है कि हर चरण के बाद आप कुछ अपने हाथ से कर सकें।
चरण 0. अभ्यास के लिए माहौल तैयार करें
Linux Linux पर ही सीखा जाता है। विकल्प सरल से असली तक:
- Windows में WSL2 — कुछ मिनटों में Ubuntu टर्मिनल। कमांड और स्क्रिप्ट के लिए अच्छा है, पर systemd और नेटवर्क वहाँ सर्वर जैसा व्यवहार नहीं करते।
- वर्चुअल मशीन (VirtualBox, VMware, Mac पर UTM) में सर्वर Ubuntu या Debian। बिना नुकसान के तोड़ सकते हैं और स्नैपशॉट से वापस ला सकते हैं।
- सस्ता VPS किसी क्लाउड प्रदाता से। सार्वजनिक IP वाला असली सर्वर नेटवर्क और सुरक्षा के चरणों के लिए सबसे अच्छा मैदान है।
शुरुआत के लिए डिस्ट्रीब्यूशन Ubuntu Server या Debian है: इनके लिए सबसे ज़्यादा दस्तावेज़ और उत्तर मिलते हैं। ग्राफ़िकल इंटरफ़ेस की ज़रूरत नहीं: सर्वर टर्मिनल से संभाले जाते हैं, इसलिए पहले दिन से इसकी आदत डालें।
चरण 1. टर्मिनल और फ़ाइल सिस्टम
लक्ष्य: सिस्टम में बिना माउस के आत्मविश्वास से घूमना और फ़ाइलों पर काम करना।
- नेविगेशन:
pwd,ls -la,cd, एब्सोल्यूट और रिलेटिव पाथ,~,.और..। - फ़ाइलें:
cp,mv,rm,mkdir -p,touch, देखने के लिएcat,less,head,tail -f। - खोज:
find,which,locate। - सहायता:
man,--help। man पढ़ना सीखना ऐसा कौशल है जो पूरे करियर काम आता है। - डायरेक्टरी की संरचना:
/etc,/var/log,/home,/usr,/proc,/devमें क्या है; माउंटिंग और inode क्या हैं। - टर्मिनल एडिटर: शुरुआत में
nano, फिरvimकी बुनियादी कमांड, क्योंकि वह लगभग हर सर्वर पर मिलता है।
अभ्यास: /etc में पिछले एक हफ़्ते में बदली गई सभी .conf फ़ाइलें खोजें (find /etc -name "*.conf" -mtime -7)। /etc/os-release खोलकर सिस्टम का वर्शन पता करें। /var/log में देखें कि सिस्टम क्या लिखता है।
चरण 2. यूज़र, ग्रुप और अधिकार
अधिकार Linux की सुरक्षा की नींव हैं, और «Permission denied» की आधी गलतियों का स्रोत।
ls -lका आउटपुट पढ़ना: प्रकार, अधिकार, मालिक, ग्रुप।chmodप्रतीकात्मक और संख्यात्मक रूप में,chown,umask।- विशेष बिट: SUID, SGID, sticky bit — और
/tmpसबके लिए लिखने योग्य क्यों है, पर वहाँ दूसरों की फ़ाइलें हटाई नहीं जा सकतीं। - यूज़र और ग्रुप:
useradd,usermod -aG,passwd, फ़ाइलें/etc/passwd,/etc/shadow,/etc/group। sudo, sudoers के नियम औरvisudoसे संपादन।
अभ्यास: दो यूज़र और एक साझा प्रोजेक्ट डायरेक्टरी बनाएँ, जिसमें दोनों फ़ाइलें बना सकें और बाक़ी कोई कुछ न देख सके। संकेत: एक ग्रुप, chmod 2770 और ग्रुप विरासत के लिए SGID।
चरण 3. Bash और टेक्स्ट यूटिलिटी
एडमिनिस्ट्रेशन काफ़ी हद तक टेक्स्ट का काम है: लॉग, कॉन्फ़िग और कमांड के आउटपुट। इस चरण पर टर्मिनल कमांड का ढेर नहीं, एक औज़ार बन जाता है।
- रीडायरेक्शन और पाइप:
>,>>,2>&1,|,xargs। - फ़िल्टर:
grep(रेगुलर एक्सप्रेशन के साथ),sort,uniq -c,wc,cut,sed,awk। - कंसोल से JSON और HTTP:
curlऔरjq। - स्क्रिप्ट: shebang, वेरिएबल, उद्धरण चिह्न,
ifऔर[[ ]], लूप, फ़ंक्शन, एग्ज़िट कोड,set -euo pipefail।
अभ्यास: एक लाइन में वेब सर्वर के लॉग में सबसे ज़्यादा अनुरोध भेजने वाले दस IP पते गिनें:
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head
फिर एक बैकअप स्क्रिप्ट लिखें, जो डायरेक्टरी को तारीख वाले नाम के आर्काइव में बदले, सात दिन से पुराने आर्काइव हटाए, और त्रुटि पर शून्य से अलग कोड दे।
चरण 4. पैकेज, माहौल और शेड्यूलर
- पैकेज मैनेजर:
apt update,apt install,apt remove,apt search,dpkg -l। RHEL जैसे सिस्टम में —dnf। समझें कि रिपॉज़िटरी क्या है और पैकेज के हस्ताक्षर की कुंजियाँ क्यों चाहिए। - एनवायरनमेंट वेरिएबल:
env,export,PATH, फ़ाइलें~/.bashrc,~/.profile,/etc/environment— और कौन-सी कब पढ़ी जाती है। - शेड्यूल:
crontab -e, पाँच फ़ील्ड का सिंटैक्स, और यह कि cron में वह कमांड क्यों «काम नहीं करती» जो टर्मिनल में चलती है (अलग माहौल औरPATH)।
अभ्यास: रिपॉज़िटरी से nginx इंस्टॉल करें, अपनी स्क्रिप्ट वाली डायरेक्टरी को PATH में जोड़ें, और चरण 3 का बैकअप स्क्रिप्ट हर रात cron से चलाएँ, आउटपुट लॉग में लिखकर।
चरण 5. प्रोसेस और systemd
यहाँ से आप समझने लगते हैं कि सिस्टम में असल में क्या हो रहा है।
- प्रोसेस:
ps aux,top/htop, PID और PPID, स्थितियाँ, प्राथमिकता (nice), सिग्नल औरkill। - लोड: load average, मेमोरी और swap (
free -h), «D स्थिति वाला प्रोसेस» का मतलब। - डीबगिंग:
lsof— प्रोसेस ने कौन-सी फ़ाइलें और पोर्ट खोले;strace— वह कौन-से सिस्टम कॉल करता है और कहाँ अटका है। - systemd: यूनिट,
systemctl status/start/enable, अपनी unit फ़ाइलRestart=on-failureके साथ, cron की जगह टाइमर। - लॉग:
journalctl -u,-f,-b,-p err, रोटेशन, rsyslog; sysstat से प्रदर्शन आँकड़े (sar,iostat)।
अभ्यास: कोई छोटा एप्लिकेशन (कम से कम python3 -m http.server) अलग यूज़र की systemd सर्विस बनाएँ, उसे kill -9 से मारें, और देखें कि systemd उसे दोबारा उठाता है। जर्नल में रीस्टार्ट की प्रविष्टि ढूँढें।
चरण 6. डिस्क, LVM और RAID
- डिवाइस और पार्टिशन:
lsblk,blkid,fdiskयाparted, फ़ाइल सिस्टम ext4 और XFS,mkfs। - माउंटिंग:
mount,/etc/fstabमें UUID से, जाँचmount -aसे। - जगह:
df -h,df -i,du -sh, और वह खोजना जो डिस्क भर रहा है। - LVM: फ़िज़िकल वॉल्यूम, वॉल्यूम ग्रुप, लॉजिकल वॉल्यूम, और बिना रुके पार्टिशन का विस्तार।
mdadmपर सॉफ़्टवेयर RAID — स्तर 0, 1, 5, 10 की समझ, और यह कि RAID बैकअप नहीं है।
अभ्यास: वर्चुअल मशीन में दो डिस्क जोड़ें, उन पर LVM बनाएँ, एक वॉल्यूम बनाएँ, उसे fstab से माउंट करें, और फिर lvextend -r से बढ़ाएँ।
चरण 7. नेटवर्क
- TCP/IP मॉडल इतना, जितना डायग्नोस्टिक्स के लिए चाहिए: IP, मास्क, गेटवे, पोर्ट, TCP और UDP।
- कमांड:
ip a,ip r,ss -tlnp,ping,traceroute/mtr,curl -v,nc। - DNS: रिज़ॉल्यूशन कैसे काम करता है,
/etc/hosts,/etc/resolv.conf,dig,resolvectl। - आपके डिस्ट्रीब्यूशन में नेटवर्क सेटिंग (Ubuntu में netplan, बाक़ी में NetworkManager)।
- ट्रैफ़िक कैप्चर: जब बाक़ी सब नाकाम हो, तब
tcpdump।
अभ्यास: पता करें कि आपके सर्वर के हर खुले पोर्ट को कौन-सा प्रोसेस सुन रहा है। समझें कि 127.0.0.1 पर सुनने वाली सर्विस बाहर से क्यों नहीं पहुँचती, और उसे ठीक करें।
चरण 8. दूर से काम: SSH और फ़ाइल ट्रांसफ़र
- SSH: कुंजियाँ (
ssh-keygen -t ed25519,ssh-copy-id), फ़ाइल~/.ssh/config,ssh-agent, पोर्ट फ़ॉरवर्डिंग (ssh -L),ProxyJumpसे बैस्टियन। - कॉपी:
scpऔरrsync -avz --delete— और सिंक के लिए rsync क्यों बेहतर है। - नेटवर्क फ़ाइल सिस्टम: Linux सर्वरों के बीच NFS, Windows के साथ आदान-प्रदान के लिए SMB (Samba)।
अभ्यास: VPS पर केवल कुंजी से लॉगिन सेट करें, उसे ~/.ssh/config में छोटे नाम से लिखें, और rsync से किसी डायरेक्टरी का हर दिन का सिंक सेट करें।
चरण 9. सर्वर की सुरक्षा
- फ़ायरवॉल: सिद्धांत «जो अनुमत नहीं, वह मना है»; सरल मामलों के लिए
ufw, और अंदर का तंत्र समझने के लिएnftables। fail2ban: कई विफल लॉगिन के बाद IP का ब्लॉक, जाँचfail2ban-client status sshdसे।- sshd की सेटिंग: पासवर्ड और root से लॉगिन बंद करना।
- सुरक्षा अपडेट और उनका अपने-आप इंस्टॉल होना (Debian और Ubuntu में unattended-upgrades)।
- GPG: पैकेज और फ़ाइलों के हस्ताक्षर जाँचना, बैकअप का एन्क्रिप्शन।
अभ्यास: फ़ायरवॉल में केवल 22, 80 और 443 खोलें, fail2ban चालू करें, और एक दिन बाद उसकी स्थिति में देखें कि कितने पते पहले ही ब्लॉक हो चुके हैं।
अंतिम प्रोजेक्ट: पूरा सर्वर ख़ुद बनाएँ
यह जाँचने का सबसे अच्छा तरीक़ा है कि आपने Linux सच में सीखा है या नहीं: बिना किसी सुझाव के शून्य से सर्वर बनाएँ।
- नया VPS, अपना यूज़र sudo के साथ, SSH कुंजी से लॉगिन, पासवर्ड और root बंद।
- फ़ायरवॉल और fail2ban, अपने-आप सुरक्षा अपडेट।
- वेब सर्वर और एप्लिकेशन systemd सर्विस के रूप में, ऑटो-रीस्टार्ट के साथ।
- डेटा के लिए अलग डिस्क या वॉल्यूम, fstab से माउंटेड।
- शेड्यूल पर बैकअप (cron या systemd टाइमर) rsync से दूसरी मशीन पर, लॉग और रिस्टोर की जाँच के साथ।
- एक छोटा निर्देश: यह सब दोबारा कैसे खड़ा करें।
अगर आप इस सूची को पूरा कर सकें और हर कदम समझा सकें, तो सिस्टम एडमिनिस्ट्रेटर या DevOps इंजीनियर के काम की नींव आपके पास है। उसके आगे का रास्ता कंटेनर, कॉन्फ़िगरेशन ऑटोमेशन और मॉनिटरिंग है।
ज़्यादा असरदार तरीक़े से कैसे सीखें
- कमांड ख़ुद टाइप करें। लेख से कॉपी किया हुआ याद नहीं रहता, टाइप करना और गलतियाँ करना याद रहता है।
- तोड़ें और ठीक करें। वर्चुअल मशीन में fstab या
~/.sshके अधिकार बिगाड़ें और सिस्टम को वापस लाएँ। ऐसा अनुभव इंटरव्यू में बहुत कीमती है। - अपने नोट रखें। अपनी कमांड और उदाहरणों की डायरी किसी की भी शीट से ज़्यादा काम आती है।
- लॉग पढ़ें। Linux की लगभग हर समस्या लॉग समझा देता है; पहली जगह वहीं देखने की आदत डालें।
निष्कर्ष
Linux शून्य से कैसे सीखें, इसका जवाब है: परतों में आगे बढ़ें — टर्मिनल और फ़ाइलें, अधिकार, Bash, पैकेज, प्रोसेस और systemd, डिस्क, नेटवर्क, SSH, सुरक्षा — और हर चरण पर अपने माहौल में एक व्यावहारिक काम हल करें। अंतिम लक्ष्य है ख़ुद से एक सर्वर खड़ा करना और सुरक्षित करना, जिस पर सर्विस चल रही हो। इसी रास्ते पर हमारा Linux कोर्स बना है, पहले परिचय से लेकर अंतिम प्रोजेक्ट तक।
अक्सर पूछे जाने वाले प्रश्न
Linux शून्य से सीखने में कितना समय लगता है?
रोज़ करीब एक घंटे के अभ्यास से सर्वर के साथ काम करने की बुनियाद आमतौर पर कुछ महीनों में बन जाती है। आत्मविश्वास असली कामों से आता है, इसलिए कुल घंटों से ज़्यादा नियमितता मायने रखती है।
Linux सीखने के लिए प्रोग्रामिंग आनी चाहिए?
नहीं, इसके बिना भी शुरू किया जा सकता है। पर Bash स्क्रिप्ट के चरण तक पहुँचते-पहुँचते आप असल में प्रोग्रामिंग करने लगते हैं, और ये कौशल ऑटोमेशन में काम आते हैं।
क्या Windows पर Linux सीखा जा सकता है?
हाँ, WSL2 या वर्चुअल मशीन से। systemd, डिस्क और नेटवर्क के विषयों के लिए पूरी वर्चुअल मशीन या VPS बेहतर है।
क्या कंप्यूटर पर Linux को मुख्य सिस्टम बनाना चाहिए?
यह उपयोगी है, पर ज़रूरी नहीं। एडमिनिस्ट्रेशन के लिए ज़्यादा मायने रखता है कि आप सर्वर के Linux को टर्मिनल से चला सकें, ग्राफ़िकल डेस्कटॉप से नहीं।
शुरुआती के लिए कौन-सा डिस्ट्रीब्यूशन चुनें?
Ubuntu Server या Debian: इनके दस्तावेज़ बहुत हैं, और कौशल दूसरे डिस्ट्रीब्यूशन पर आसानी से चलता है। RHEL जैसे सिस्टम का मुख्य अंतर पैकेज मैनेजर dnf है।
यह विषय “Linux: с нуля до уверенного администрирования” कोर्स में अभ्यास के साथ विस्तार से समझाया गया है।
- Linux: с нуля до уверенного администрирования
- Финал: собираем защищённый и автоматизированный сервер целиком