03. Ubuntu Server के लिए Linux कमांड लाइन में महारत हासिल करें

कमांड लाइन Linux सर्वर प्रशासन का हृदय है। चाहे आप शुरुआती हों या अनुभवी सिस्टम एडमिनिस्ट्रेटर, कमांड-लाइन प्रशासन की मूल बातें समझना आपके Ubuntu Server को कुशलता से प्रबंधित करने के लिए महत्वपूर्ण है। यह लेख Linux कमांड लाइन का गहन परिचय देता है, जिसमें फ़ाइलों, डायरेक्ट्रियों और सर्वर वातावरण को प्रबंधित करने के लिए आवश्यक कमांड, टूल और तकनीकें शामिल हैं।


पिछला लेख:

01. Ubuntu Server का परिचय – SysOSX: AI & Cloud

02. अपना पहला Ubuntu Server कैसे सेट अप करें: शुरुआती लोगों के लिए गाइड – SysOSX: AI & Cloud



कमांड लाइन क्यों सीखें?

Linux कमांड लाइन, जिसे टर्मिनल के माध्यम से एक्सेस किया जाता है, ऑपरेटिंग सिस्टम के साथ इंटरैक्ट करने के लिए एक शक्तिशाली उपकरण है। ग्राफ़िकल इंटरफ़ेस के विपरीत, कमांड लाइन प्रदान करती है:

  • गति: GUI इंटरफ़ेस की तुलना में कमांड से कार्य तेज़ी से किए जा सकते हैं।
  • लचीलापन: स्क्रिप्टिंग का उपयोग करके प्रक्रियाओं को स्वचालित करें और जटिल संचालन करें।
  • नियंत्रण: गहरी सिस्टम कार्यक्षमता तक पहुँचें और समस्याओं का प्रभावी ढंग से निवारण करें।

Ubuntu Server पर कमांड लाइन तक पहुँचना

Ubuntu Server इंस्टॉलेशन में डिफ़ॉल्ट रूप से ग्राफ़िकल इंटरफ़ेस शामिल नहीं होता, इसलिए सभी इंटरैक्शन टर्मिनल के माध्यम से होते हैं। कमांड लाइन तक पहुँचने के सामान्य तरीके यहाँ दिए गए हैं:

1. स्थानीय कंसोल के माध्यम से सीधी पहुँच

अपने Ubuntu Server में लॉग इन करने के बाद, आपको टर्मिनल इंटरफ़ेस दिखाया जाएगा।

2. SSH के माध्यम से दूरस्थ पहुँच

अपने सर्वर तक दूरस्थ रूप से पहुँचने के लिए Secure Shell (SSH) का उपयोग करें:

ssh username@server_ip


शुरुआती लोगों के लिए आवश्यक Linux कमांड

1. फ़ाइल सिस्टम में नेविगेट करना

Linux फ़ाइल सिस्टम पदानुक्रम को समझना फ़ाइलों और डायरेक्ट्रियों को प्रबंधित करने के लिए महत्वपूर्ण है।

वर्तमान डायरेक्टरी देखें: pwd

वर्तमान कार्यशील डायरेक्टरी दिखाता है:

pwd

डायरेक्टरी सामग्री सूचीबद्ध करें: ls

वर्तमान स्थान में फ़ाइलें और डायरेक्ट्रियाँ सूचीबद्ध करता है:

ls

विकल्प:

  • ls -l: अनुमतियों, स्वामित्व और आकार के साथ विस्तृत सूची।
  • ls -a: छिपी हुई फ़ाइलें शामिल हैं (. से शुरू होने वाली फ़ाइलें)।

डायरेक्टरी बदलें: cd

किसी भिन्न डायरेक्टरी में जाता है:

cd /path/to/directory

उदाहरण:

  • cd ..: एक स्तर ऊपर जाता है।
  • cd ~: होम डायरेक्टरी में जाता है।

2. फ़ाइलें और डायरेक्ट्रियाँ प्रबंधित करना

डायरेक्टरी बनाएँ: mkdir

नई डायरेक्टरी बनाता है:

mkdir directory_name

उदाहरण: सबडायरेक्टरी संरचना बनाएँ।

mkdir -p /home/user/documents/projects

स्पष्टीकरण:

  • -p विकल्प मूल डायरेक्ट्रियाँ बनाता है यदि वे मौजूद नहीं हैं (जैसे, documents और projects)।

डायरेक्टरी हटाएँ: rmdir

खाली डायरेक्टरी हटाता है:

rmdir directory_name

उदाहरण:

rmdir /home/user/old_directory

फ़ाइलें कॉपी करें: cp

फ़ाइलें या डायरेक्ट्रियाँ कॉपी करता है:

cp source_file destination_file

उदाहरण: किसी फ़ाइल को नई डायरेक्टरी में कॉपी करें।

cp /home/user/file.txt /home/user/backup/file.txt

पूरी डायरेक्ट्रियाँ कॉपी करने के लिए:

cp -r /home/user/documents /home/user/backup/documents

फ़ाइलें स्थानांतरित या नाम बदलें: mv

फ़ाइलों को स्थानांतरित या नाम बदलता है:

mv old_name new_name

उदाहरण: किसी फ़ाइल का नाम बदलें।

mv file.txt renamed_file.txt

फ़ाइलों को दूसरी डायरेक्टरी में ले जाएँ:

mv /home/user/file.txt /home/user/backup/

फ़ाइलें हटाएँ: rm

फ़ाइलें या डायरेक्ट्रियाँ हटाता है:

rm file_name

उदाहरण: कोई फ़ाइल हटाएँ।

rm /home/user/file.txt

डायरेक्ट्रियाँ और उनकी सामग्री हटाने के लिए:

rm -r /home/user/old_directory

चेतावनी: rm का उपयोग करते समय सावधानी बरतें ताकि गलती से हटाने से बचा जा सके।


3. फ़ाइलें देखना और संपादित करना

फ़ाइल सामग्री देखें: cat

किसी फ़ाइल की सामग्री दिखाता है:

cat file_name

उदाहरण:

cat /etc/hostname

पृष्ठांकन के साथ फ़ाइल सामग्री देखें: less

फ़ाइल सामग्री में स्क्रॉल करने देता है:

less file_name

उदाहरण:

less /var/log/syslog

फ़ाइलें बनाएँ या संपादित करें: nano

शुरुआती-अनुकूल टेक्स्ट एडिटर:

nano file_name

उदाहरण: नई फ़ाइल बनाएँ या मौजूदा फ़ाइल संपादित करें।

nano /home/user/new_file.txt

फ़ाइलों में टेक्स्ट खोजें: grep

फ़ाइलों में किसी विशिष्ट स्ट्रिंग को खोजता है:

grep "search_term" file_name

उदाहरण: लॉग फ़ाइल में त्रुटि संदेश खोजें।

grep "error" /var/log/syslog


4. सिस्टम प्रशासन कमांड

डिस्क उपयोग जाँचें: df

डिस्क स्थान का उपयोग दिखाता है:

df -h

विकल्प:

  • -h: मानव-पठनीय प्रारूप।

मेमोरी उपयोग जाँचें: free

मेमोरी उपयोग दिखाता है:

free -h

सिस्टम प्रक्रियाओं की निगरानी करें: top

चल रही प्रक्रियाएँ और सिस्टम संसाधन उपयोग दिखाता है:

top

विकल्प:

  • htop: अधिक उपयोगकर्ता-अनुकूल प्रक्रिया मॉनिटर (sudo apt install htop के माध्यम से इंस्टॉल करें)।

सेवाएँ प्रबंधित करें: systemctl

सिस्टम सेवाओं को नियंत्रित करता है:

sudo systemctl status service_name
sudo systemctl start service_name
sudo systemctl stop service_name
sudo systemctl restart service_name

शटडाउन या रीबूट करें: shutdown

सर्वर बंद करें या पुनरारंभ करें:

sudo shutdown now    # Immediate shutdown
sudo shutdown -r now # Immediate restart

5. फ़ाइल अनुमतियाँ और स्वामित्व

Linux फ़ाइलों और डायरेक्ट्रियों तक पहुँच नियंत्रित करने के लिए अनुमति मॉडल का उपयोग करता है।

फ़ाइल अनुमतियाँ देखें: ls -l

विस्तृत प्रारूप में फ़ाइल अनुमतियाँ दिखाता है:

ls -l

फ़ाइल अनुमतियाँ बदलें: chmod

फ़ाइल अनुमतियाँ संशोधित करता है:

chmod 644 file_name

फ़ाइल स्वामित्व बदलें: chown

फ़ाइल स्वामित्व बदलता है:

sudo chown new_owner:new_group file_name


6. फ़ाइलें खोजना और ढूँढना

फ़ाइलें खोजें: locate

locate कमांड डिफ़ॉल्ट रूप से इंस्टॉल नहीं होता। पहले इसे इंस्टॉल करें:

sudo apt update
sudo apt install mlocate

डेटाबेस अपडेट करें:

sudo updatedb

फ़ाइलें खोजें:

locate file_name

फ़ाइलें ढूँढें: find

मानदंडों के आधार पर फ़ाइलें खोजता है:

find /path -name "file_name"


7. नेटवर्किंग कमांड

नेटवर्क कनेक्टिविटी जाँचें: ping

होस्ट से कनेक्टिविटी का परीक्षण करता है:

ping google.com

खुले पोर्ट जाँचें: ss

netstat कमांड बहिष्कृत है और डिफ़ॉल्ट रूप से इंस्टॉल नहीं होता। इसके बजाय ss का उपयोग करें, जो एक आधुनिक विकल्प है:

ss -tuln

स्पष्टीकरण:

  • -t: TCP कनेक्शन दिखाता है।
  • -u: UDP कनेक्शन दिखाता है।
  • -l: सुन रहे पोर्ट दिखाता है।
  • -n: संख्यात्मक पते और पोर्ट दिखाता है।

दूरस्थ कनेक्टिविटी का परीक्षण करें: curl

URL से डेटा लाता है:

curl http://example.com


कमांड-लाइन प्रशासन के लिए व्यावहारिक सुझाव

1. Tab पूर्णता का उपयोग करें

Tab दबाएँ जब आप कोई कमांड या फ़ाइलनाम टाइप कर रहे हों ताकि पथ या कमांड स्वतः पूर्ण हो जाएँ।

2. इतिहास कमांड का उपयोग करें

पहले चलाए गए कमांड तक पहुँचें:

history

इतिहास से कोई विशिष्ट कमांड चलाएँ:

!number

3. आउटपुट रीडायरेक्ट करें

कमांड आउटपुट को फ़ाइल में सहेजें:

command > output_file

4. कमांड चेन करें

कई कमांड क्रमिक रूप से चलाएँ:

command1 && command2

उदाहरण वर्कफ़्लो: वेब सर्वर सेट अप करना

बुनियादी कमांड का उपयोग करके वेब सर्वर सेट अप करने के लिए चरण-दर-चरण मार्गदर्शिका यहाँ दी गई है। अपनी कस्टम वेबसाइट कॉन्फ़िगर करने और यह सुनिश्चित करने के लिए इन निर्देशों का पालन करें कि यह डिफ़ॉल्ट Apache पृष्ठ को बदल दे।


1. सिस्टम अपडेट करें

अपने सिस्टम को अद्यतित रखना सुरक्षा और स्थिरता के लिए आवश्यक है। सभी पैकेज अपडेट और अपग्रेड करने के लिए निम्नलिखित कमांड चलाएँ:

sudo apt update && sudo apt upgrade -y


2. Apache इंस्टॉल करें

Apache वेब सर्वर इंस्टॉल करें:

sudo apt install apache2 -y

इंस्टॉल हो जाने पर, सत्यापित करें कि Apache चल रहा है:

sudo systemctl status apache2

आपको इस तरह का स्थिति संदेश दिखना चाहिए: Active: active (running)।


3. अपनी वेबसाइट के लिए डायरेक्टरी बनाएँ

अपनी वेबसाइट फ़ाइलें संग्रहीत करने के लिए एक डायरेक्टरी बनाएँ। इस उदाहरण में, हम mywebsite नाम की डायरेक्टरी बनाएँगे:

sudo mkdir -p /var/www/mywebsite


4. अनुमतियाँ सेट करें

सही स्वामित्व और अनुमतियाँ सेट करें ताकि Apache वेबसाइट फ़ाइलों तक पहुँच सके:

sudo chown -R www-data:www-data /var/www/mywebsite
sudo chmod -R 755 /var/www/mywebsite

5. नमूना HTML फ़ाइल बनाएँ

एक साधारण index.html फ़ाइल जोड़ें जो आपके वेबसाइट के होमपेज के रूप में काम करेगी:

sudo tee /var/www/mywebsite/index.html > /dev/null << EOF
<!DOCTYPE html>
<html>
<head>
    <title>Welcome</title>
</head>
<body>
    <h1>Welcome to My Website</h1>
</body>
</html>
EOF

इससे एक बुनियादी पृष्ठ बनता है जिस पर लिखा होता है: “Welcome to My Website”।


6. वर्चुअल होस्ट कॉन्फ़िगर करें

अपनी कस्टम वेबसाइट परोसने के लिए, Apache के लिए नई वर्चुअल होस्ट कॉन्फ़िगरेशन फ़ाइल बनाएँ:

sudo nano /etc/apache2/sites-available/mywebsite.conf

फ़ाइल में निम्नलिखित सामग्री पेस्ट करें:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/mywebsite
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

फ़ाइल सहेजने और बाहर निकलने के लिए Ctrl+O दबाएँ, फिर Ctrl+X दबाएँ।


7. अपनी वेबसाइट सक्षम करें

नई वर्चुअल होस्ट कॉन्फ़िगरेशन सक्षम करें:

sudo a2ensite mywebsite.conf

यह सुनिश्चित करने के लिए Apache की डिफ़ॉल्ट साइट कॉन्फ़िगरेशन अक्षम करें कि आपकी वेबसाइट परोसी जाए:

sudo a2dissite 000-default.conf

परिवर्तन लागू करने के लिए Apache पुनः लोड करें:

sudo systemctl reload apache2


8. कनेक्टिविटी का परीक्षण करें

यह जाँचने के लिए कि आपकी वेबसाइट काम कर रही है, चलाएँ:

curl http://localhost

आपको अपनी कस्टम index.html फ़ाइल की HTML सामग्री दिखनी चाहिए:

<!DOCTYPE html>
<html>
<head>
    <title>Welcome</title>
</head>
<body>
    <h1>Welcome to My Website</h1>
</body>
</html>

वैकल्पिक रूप से, ब्राउज़र खोलें और http://<your-server-ip> पर जाकर अपनी वेबसाइट देखें।


समस्या निवारण

यदि आपको अभी भी डिफ़ॉल्ट Apache पृष्ठ दिखता है या समस्याएँ आती हैं:

  • सुनिश्चित करें कि आपकी साइट सक्षम है
    सत्यापित करें कि आपका कॉन्फ़िगरेशन सक्रिय है:
ls /etc/apache2/sites-enabled/ 
  • आपको mywebsite.conf दिखना चाहिए। यदि नहीं, तो इसका उपयोग करके इसे सक्षम करें:
sudo a2ensite mywebsite.conf
  • Apache लॉग जाँचें
    लॉग में त्रुटियाँ खोजें:
sudo tail -f /var/log/apache2/error.log
  • Apache पुनरारंभ करें
    यदि समस्या बनी रहती है, तो Apache पुनरारंभ करें:
sudo systemctl restart apache2

निष्कर्ष

Linux कमांड लाइन में महारत हासिल करना प्रभावी Ubuntu Server प्रशासन के लिए आवश्यक है। इन कमांड को सीखने और अभ्यास करने से, आपको अपने सर्वर वातावरण को प्रबंधित करने, समस्याओं का निवारण करने और प्रशासनिक कार्य कुशलता से करने का आत्मविश्वास मिलेगा।

अगले चरण: उपयोगकर्ता और अनुमतियाँ प्रबंधित करना

एक बार जब आप कमांड-लाइन प्रशासन की मूल बातों से सहज हो जाएँ, तो सर्वर प्रबंधन में अगला महत्वपूर्ण चरण उपयोगकर्ताओं, समूहों और अनुमतियों को समझना है। उपयोगकर्ता खातों और पहुँच नियंत्रणों को ठीक से प्रबंधित करना सुरक्षा बनाए रखने और यह सुनिश्चित करने के लिए आवश्यक है कि केवल अधिकृत व्यक्ति ही आपके सर्वर पर संवेदनशील फ़ाइलों और संसाधनों तक पहुँच सकें या उन्हें संशोधित कर सकें।

अगले लेख में, “उपयोगकर्ता और अनुमतियाँ प्रबंधित करना”, हम निम्नलिखित को कवर करेंगे:

  • उपयोगकर्ता खाते कैसे बनाएँ, संशोधित करें और हटाएँ।
  • कुशल पहुँच नियंत्रण के लिए समूह प्रबंधित करना।
  • फ़ाइल और डायरेक्टरी अनुमतियाँ समझना (पढ़ना, लिखना, निष्पादित करना)।
  • विशेषाधिकार वृद्धि के लिए sudo जैसे उन्नत उपकरणों का उपयोग करना।
  • Ubuntu Server पर उपयोगकर्ता खातों को सुरक्षित करने की सर्वोत्तम प्रथाएँ।

अपनी सुरक्षा और पहुँच प्रबंधन को बेहतर बनाने के लिए कार्रवाई योग्य अंतर्दृष्टि के लिए बने रहें!

14 thoughts on “03.Mastering the Linux Command Line for Ubuntu Server”

टिप्पणी छोड़ें