Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> बाश प्रोग्रामिंग

केवल डॉटफाइल्स और बैश लिपियों का उपयोग करके एक नया उबंटू डेस्कटॉप कैसे सेट करें

गिटहब पर ओपन सोर्स फाइलों के बारे में मेरी सबसे पसंदीदा चीजों में से एक यह देखने की क्षमता है कि दूसरे कैसे करते हैं (जिसे कुछ लोग कहते हैं) सांसारिक चीजें, जैसे कि उनका .bashrc सेट करना और अन्य डॉटफाइल। जब मैं पहली बार लिनक्स की तरफ आया था, तब भी मैं राइसिंग को लेकर उतना उत्साहित नहीं था, तब भी मैं बहुत उत्साहित हो जाता हूं जब मुझे एक कॉन्फिग सेटिंग मिलती है जो चीजों को सुंदर और तेज बनाती है, और इस तरह, बेहतर होती है।

मुझे हाल ही में कुछ ऐसी चीजें मिलीं, खासकर टॉम हडसन की डॉटफाइल्स में। टॉम चीजों को स्क्रिप्ट करना पसंद करता है, और उनमें से कुछ चीजों में स्वचालित रूप से सिम्लिंक सेट करना और उबंटू रिपॉजिटरी एप्लिकेशन और अन्य प्रोग्राम इंस्टॉल करना शामिल है। यह मुझे सोचने लगा। क्या मैं अपनी वर्तमान मशीन को दोहराने के लिए एक नई मशीन के सेट अप को स्वचालित कर सकता हूं?

आम तौर पर यह देखने के लिए कि वे कैसे काम करते हैं, चीजों को अलग करने के इच्छुक होने के नाते, मुझे पता है कि मैंने अपने लैपटॉप को कभी-कभी गड़बड़ कर दिया है। (आमतौर पर जब मैं घर से दूर होता हूं, और मेरा बैकअप हार्डड्राइव नहीं होता है।) उन दुर्लभ लेकिन वास्तव में असुविधाजनक परिस्थितियों में जब मेरा कंप्यूटर अपने पूर्व स्व का खोल बन जाता है, (बा-डम-चिंग) यह काफी अच्छा होगा हम्प्टी डम्प्टी को फिर से एक साथ वापस लाने का एक तेज़, आसान तरीका पाने के लिए, जैसा मुझे पसंद है।

डिस्क छवि बनाने और बाद में इसे पुनर्स्थापित करने के विपरीत, बैश स्क्रिप्ट का एक संग्रह बनाना, बनाए रखना और घूमना आसान है। उन्हें किसी विशेष उपयोगिता की आवश्यकता नहीं है, केवल एक बाहरी परिवहन विधि की आवश्यकता है। यह पूरे बंड केक के बजाय नुस्खा के साथ गुजरने जैसा है। (मम्म, केक।)

इसके अतिरिक्त, वर्चुअल मशीन, या वीएम, या यहां तक ​​कि केवल वर्चुअल प्राइवेट सर्वर, या वीपीएस की स्थापना करते समय इस तरह की कार्यक्षमता सुपर उपयोगी होगी। (दोनों, अब जबकि मैं इसे लिख रहा हूं, शायद मेरे अधिक विनाशकारी प्रयोगों के लिए और अधिक क्षमाशील लक्ष्य बना देगा... जियो और सीखो!)

खैर, कुछ टटोलने और गुगल करने और चारों ओर खुदाई करने के बाद, मेरे पास अब स्क्रिप्ट का एक सूट है जो यह कर सकता है:

केवल डॉटफाइल्स और बैश लिपियों का उपयोग करके एक नया उबंटू डेस्कटॉप कैसे सेट करें

सेटअप का वीडियो यहां देखें।

यह बूट करने योग्य यूएसबी से लोड किए गए एक ताजा उबंटू डेस्कटॉप पर सेट अप स्क्रिप्ट के परीक्षण चलाने का पूंछ अंत है। इसने मेरे सभी कार्यक्रमों और सेटिंग्स को तीन मिनट के भीतर बहाल कर दिया था!

यह पोस्ट बैश स्क्रिप्ट का उपयोग करके उबंटू डेस्कटॉप (मेरे मामले में, उबंटू एलटीएस 18.04) चलाने वाले कंप्यूटर के स्वचालित सेट अप को प्राप्त करने के तरीके को कवर करेगा। कवर की गई अधिकांश जानकारी सभी लिनक्स डेस्कटॉप फ्लेवर पर लागू होती है, हालांकि कुछ सिंटैक्स भिन्न हो सकते हैं। बैश स्क्रिप्ट तीन मुख्य क्षेत्रों को कवर करती है:डॉटफाइल्स को लिंक करना, उबंटू और अन्य जगहों से सॉफ्टवेयर इंस्टॉल करना और डेस्कटॉप वातावरण स्थापित करना। हम इनमें से प्रत्येक क्षेत्र को कवर करेंगे और महत्वपूर्ण बिट्स पर जाएंगे ताकि आप अपनी खुद की स्क्रिप्ट तैयार करना शुरू कर सकें।

Dotfiles

डॉटफाइल्स वे हैं जिन्हें अधिकांश लिनक्स उत्साही कॉन्फ़िगरेशन फाइल कहते हैं। वे आम तौर पर उपयोगकर्ता के होम डायरेक्टरी में रहते हैं (बिल्टिन वेरिएबल $HOME के साथ बैश स्क्रिप्ट में दर्शाया जाता है। ) और सभी प्रकार के कार्यक्रमों की उपस्थिति और व्यवहार को नियंत्रित करते हैं। फ़ाइल नाम . , जो लिनक्स में छिपी हुई फाइलों को दर्शाता है (इसलिए "डॉट" फाइलें)। यहां कुछ सामान्य डॉटफ़ाइल और वे तरीके दिए गए हैं जिनसे वे उपयोगी हैं।

.bashrc

.bashrc फ़ाइल इंटरएक्टिव, गैर-लॉगिन शेल द्वारा स्टार्टअप पर निष्पादित कमांड की एक सूची है। इंटरएक्टिव बनाम गैर-इंटरैक्टिव शेल थोड़ा भ्रमित करने वाला हो सकता है, लेकिन हमारे लिए यहां चिंता करने की आवश्यकता नहीं है। हमारे उद्देश्यों के लिए, जब भी आप कोई नया टर्मिनल खोलते हैं, तो एक संकेत देखें, और उसमें कमांड टाइप कर सकते हैं, आपका .bashrc निष्पादित किया गया था।

इस फ़ाइल की पंक्तियाँ कीस्ट्रोक्स को कम करने वाले उपनाम बनाकर या उपयोगी जानकारी के साथ एक सहायक संकेत प्रदर्शित करके आपके वर्कफ़्लो को बेहतर बनाने में मदद कर सकती हैं। यह एडी जैसे उपयोगकर्ता द्वारा बनाए गए प्रोग्राम भी चला सकता है। अधिक विचारों के लिए, आप मेरे .bashrc . पर एक नज़र डाल सकते हैं GitHub पर फ़ाइल करें।

.vimrc

.vimrc dotfile सभी पाठ संपादकों के चैंपियन विम को कॉन्फ़िगर करता है। (यदि आपने अभी तक कीबोर्ड शॉर्टकट की शक्तियों का उपयोग नहीं किया है, तो मैं विम सीखने के लिए एक मजेदार गेम की अत्यधिक अनुशंसा करता हूं।)

.vimrc . में , हम प्रदर्शन सेटिंग, रंग और कस्टम कीबोर्ड शॉर्टकट जैसी संपादक प्राथमिकताएं सेट कर सकते हैं। आप मेरे .vimrc . पर एक नज़र डाल सकते हैं गिटहब पर।

आपके द्वारा उपयोग किए जाने वाले प्रोग्राम के आधार पर अन्य डॉटफाइल उपयोगी हो सकती हैं, जैसे .gitconfig या .tmux.conf . आपके लिए क्या उपलब्ध है और क्या उपयोगी है, यह समझने के लिए GitHub पर dotfiles को एक्सप्लोर करना एक शानदार तरीका है!

डॉटफाइल्स को लिंक करना

हम अपने सभी डॉटफाइलों के लिए प्रतीकात्मक लिंक, या सिम्लिंक बनाने के लिए एक स्क्रिप्ट का उपयोग कर सकते हैं। यह हमें सभी फाइलों को एक केंद्रीय भंडार में रखने की अनुमति देता है, जहां उन्हें आसानी से प्रबंधित किया जा सकता है, साथ ही उस स्थान पर एक प्रकार का प्लेसहोल्डर भी प्रदान करता है जहां हमारे प्रोग्राम कॉन्फ़िगरेशन फ़ाइल की अपेक्षा करते हैं। यह आम तौर पर, लेकिन हमेशा नहीं, उपयोगकर्ता होम निर्देशिका है। उदाहरण के लिए, चूंकि मैं अपने डॉटफाइल्स को गिटहब पर स्टोर करता हूं, इसलिए मैं उन्हें ~/github/dotfiles/ जैसे पथ वाली निर्देशिका में रखता हूं। जबकि फ़ाइलें स्वयं सिम्लिंक होती हैं, जिसके परिणामस्वरूप ~/.vimrc . जैसा पथ बनता है ।

किसी भी मौजूदा फाइल और सिम्लिंक को प्रोग्रामेटिक रूप से जांचने और संभालने के लिए, फिर नए बनाएं, हम इस सुरुचिपूर्ण शेल स्क्रिप्ट का उपयोग कर सकते हैं। मैं इसकी प्रशंसा केवल इसलिए करता हूं क्योंकि मैंने टॉम की सेटअप स्क्रिप्ट से इसका मूल भाग चुरा लिया है, इसलिए मैं इसका श्रेय नहीं ले सकता कि यह कितना प्यारा है।

symlink.sh स्क्रिप्ट हमारे $HOME . में प्रत्येक डॉटफाइल के लिए सिम्लिंक बनाने का प्रयास करके काम करती है . यह पहले यह देखने के लिए जाँच करता है कि क्या कोई सिमलिंक पहले से मौजूद है, या यदि समान नाम वाली कोई नियमित फ़ाइल या निर्देशिका मौजूद है। पूर्व मामले में, सिम्लिंक को हटा दिया जाता है और फिर से बनाया जाता है; बाद में, फ़ाइल या निर्देशिका का नाम बदल दिया जाता है, फिर सिमलिंक बनाया जाता है।

सॉफ़्टवेयर इंस्टॉल करना

शेल स्क्रिप्ट की खोज के बारे में सुंदर चीजों में से एक यह पता लगाना है कि केवल कमांड लाइन का उपयोग करके कितना हासिल किया जा सकता है। किसी ऐसे व्यक्ति के रूप में जिसका कंप्यूटर से पहला संपर्क एक ग्राफिकल ऑपरेटिंग सिस्टम के माध्यम से था, मुझे टर्मिनल में काम करना ताज़ा रूप से तेज़ लगता है।

उबंटू के साथ, अधिकांश प्रोग्राम जिनकी हमें आवश्यकता होती है, वे डिफ़ॉल्ट उबंटू सॉफ़्टवेयर रिपॉजिटरी के माध्यम से उपलब्ध होते हैं। हम आमतौर पर इन्हें apt search <program> . कमांड से खोजते हैं और उन्हें sudo apt install <program> . के साथ इंस्टॉल करें . कुछ सॉफ़्टवेयर जो हम चाहते हैं वे डिफ़ॉल्ट रिपॉजिटरी में नहीं हो सकते हैं, या हो सकता है कि उन्हें सबसे वर्तमान संस्करण में पेश न किया जाए। इन मामलों में, हम अभी भी इन प्रोग्रामों को उबंटू में पीपीए, या पर्सनल पैकेज आर्काइव का उपयोग करके स्थापित कर सकते हैं। हमें बस सावधान रहना होगा कि हमारे द्वारा चुने गए पीपीए आधिकारिक स्रोतों से हैं।

यदि कोई प्रोग्राम जो हम चाहते हैं वह डिफ़ॉल्ट रिपॉजिटरी में दिखाई नहीं देता है या पीपीए नहीं लगता है, तो भी हम इसे कमांड लाइन के माध्यम से स्थापित करने में सक्षम हो सकते हैं। "इंस्टॉलेशन कमांड लाइन" के लिए एक त्वरित खोज को कुछ जवाब मिलना चाहिए।

चूंकि बैश स्क्रिप्ट केवल कमांड का एक संग्रह है जिसे हम टर्मिनल में व्यक्तिगत रूप से चला सकते हैं, हमारे सभी वांछित प्रोग्रामों को स्थापित करने के लिए एक स्क्रिप्ट बनाना उतना ही सरल है जितना कि सभी कमांड को एक स्क्रिप्ट फ़ाइल में डालना। मैंने अपनी स्थापना स्क्रिप्ट को डिफ़ॉल्ट रिपॉजिटरी के बीच व्यवस्थित करना चुना, जो मेरे द्वारा स्थापित हैं aptinstall.sh स्क्रिप्ट, और प्रोग्राम जिनमें बाहरी स्रोत शामिल हैं, मेरे programs.sh . के साथ प्रबंधित किए जाते हैं स्क्रिप्ट।

डेस्कटॉप परिवेश सेट करना

हाल के अवसरों पर जब मुझे एक नया डेस्कटॉप मिला है (जानबूझकर या अन्यथा) मैं हमेशा यह भूल जाता हूं कि सभी डेस्कटॉप वातावरण सेटिंग्स को याद रखने, खोजने और फिर बदलने में कितना समय लगता है। कीबोर्ड शॉर्टकट, कार्यस्थान, ध्वनि सेटिंग, रात्रि मोड... यह जोड़ता है!

शुक्र है, इन सभी सेटिंग्स को गैर-ग्राफिकल प्रारूप में कहीं संग्रहीत किया जाना है, जिसका अर्थ है कि अगर हम यह पता लगा सकते हैं कि यह कैसे किया जाता है, तो हम आसानी से बैश स्क्रिप्ट के साथ सेटिंग्स में हेरफेर करने का एक तरीका ढूंढ सकते हैं। टर्मिनल कमांड को देखें और देखें, gsettings list-recursively

गनोम डेस्कटॉप वातावरण के लिए ढेर सारी सेटिंग्स हैं। less पर पाइप करके हम सूची को स्क्रॉल करना आसान बना सकते हैं (यदि, मेरी तरह, आप कभी-कभी यह कहने वाले व्यक्ति हैं कि "बस मुझे सब कुछ देखने दें और पता करें कि मुझे क्या चाहिए!") कोड> :gsettings list-recursively | less . वैकल्पिक रूप से, यदि हमें इस बात का आभास है कि हम क्या खोज रहे हैं, तो हम grep का उपयोग कर सकते हैं :gsettings list-recursively | grep 'keyboard'

हम gsettings set . के साथ अपनी सेटिंग में हेरफेर कर सकते हैं आज्ञा। कभी-कभी अपनी इच्छित सेटिंग के लिए सिंटैक्स ढूंढना मुश्किल हो सकता है, इसलिए जब हम पहली बार अपनी स्क्रिप्ट बना रहे होते हैं, तो मैं परिवर्तन करने के लिए GUI का उपयोग करने की सलाह देता हूं, फिर gsettings ढूंढता हूं। लाइन हमने बदली और उसका मान रिकॉर्ड किया।

कुछ प्रेरणा के लिए, आप मेरा desktop.sh देख सकते हैं GitHub पर सेटिंग स्क्रिप्ट.

सब को एक साथ रखना

मॉड्यूलर स्क्रिप्ट्स (एक सिम्लिंक के लिए, दो प्रोग्राम इंस्टॉल करने के लिए, दूसरा डेस्कटॉप सेटिंग्स के लिए) दोनों चीजों को व्यवस्थित रखने और कुछ को चलाने में सक्षम होने के लिए उपयोगी है, लेकिन सभी स्वचालित सेट अप के लिए नहीं। उदाहरण के लिए, अगर मुझे एक वीपीएस स्थापित करना है जिसमें मैं केवल कमांड लाइन का उपयोग करता हूं, तो मुझे ग्राफिकल प्रोग्राम या डेस्कटॉप सेटिंग्स को स्थापित करने से परेशान होने की आवश्यकता नहीं होगी।

ऐसे मामलों में जहां मैं सभी स्क्रिप्ट चलाना चाहता हूं, हालांकि, एक-एक करके ऐसा करना थोड़ा कठिन है। शुक्र है, चूंकि बैश स्क्रिप्ट स्वयं टर्मिनल कमांड द्वारा चलाई जा सकती हैं, हम उन सभी को चलाने के लिए बस एक और मास्टर स्क्रिप्ट लिख सकते हैं!

यहाँ एक नई उबंटू डेस्कटॉप मशीन के सेट अप को संभालने के लिए मेरी मास्टर स्क्रिप्ट है:

#!/bin/bash

./symlink.sh
./aptinstall.sh
./programs.sh
./desktop.sh

# Get all upgrades
sudo apt upgrade -y

# See our bash changes
source ~/.bashrc

# Fun hello
figlet "... and we're back!" | lolcat

मैंने अच्छे उपाय के लिए अपग्रेड लाइन में फेंक दिया। यह सुनिश्चित करेगा कि हमारे नए डेस्कटॉप पर इंस्टॉल किए गए प्रोग्राम में नवीनतम अपडेट हैं। अब एक साधारण, सिंगल बैश कमांड सब कुछ संभाल लेगा!

आपने देखा होगा कि, जबकि हमारा डेस्कटॉप अब दिखता है और परिचित रूप से चलता है, ये स्क्रिप्ट एक बहुत महत्वपूर्ण क्षेत्र को कवर नहीं करती हैं:हमारी फाइलें। उम्मीद है, आपके पास उन लोगों के लिए एक बैक अप विधि है जिसमें कुछ प्रकार के विश्वसनीय बाहरी हार्डवेयर शामिल हैं। यदि नहीं, और यदि आप अपने काम को GitHub या GitLab जैसे बाहरी रिपॉजिटरी होस्ट में रखना चाहते हैं, तो मेरे पास बैश वन-लाइनर्स के साथ आपके GitHub रिपॉजिटरी को स्वचालित रूप से क्लोन और बैकअप करने का एक तरीका है।

हालाँकि, बाहरी रिपॉजिटरी होस्ट पर निर्भर होने से 100% कवरेज नहीं मिलता है। वे फ़ाइलें जिन्हें आप बाहरी रूप से होस्ट किए गए रिपॉजिटरी (निजी या अन्यथा) में नहीं रखेंगे, परिणामस्वरूप खींची नहीं जा सकती हैं। गिट ने उन वस्तुओं को अनदेखा कर दिया जिन्हें निजी कुंजी और रहस्य जैसे शामिल फ़ाइलों से उत्पन्न नहीं किया जा सकता है, उन्हें फिर से नहीं बनाया जाएगा। हालाँकि, वे फ़ाइलें इतनी छोटी हैं कि आप एक जोड़े एन्क्रिप्टेड USB फ्लैश ड्राइव पर एक पूरा गुच्छा फिट कर सकते हैं (और यदि आपके पास निजी कुंजी बैकअप नहीं है, तो शायद आपको पहले ऐसा करना चाहिए?)।

उस ने कहा, मुझे आशा है कि इस पोस्ट ने आपको कम से कम कुछ प्रेरणा दी है कि कैसे डॉटफाइल और बैश स्क्रिप्ट एक नया डेस्कटॉप स्थापित करने में स्वचालित करने में मदद कर सकते हैं। यदि आप कुछ ऐसी सेटिंग्स के साथ आते हैं जो आपको उपयोगी लगती हैं, तो कृपया अपनी डॉटफाइल्स को भी साझा करके दूसरों को उन्हें खोजने में मदद करें!


  1. लोकप्रिय डेस्कटॉप और ऑनलाइन टूल का उपयोग करके PDF कैसे संपादित करें

    पीडीएफ एडिटिंग एक ऐसी चीज हुआ करती थी जिससे निपटने के लिए कुछ ही लोगों की जरूरत होती थी। अब घर से काम करने वाले अधिक लोगों के साथ, PDF संपादित करना कुछ ऐसा होता जा रहा है जो हम सभी को समय-समय पर करने की आवश्यकता है। जबकि यह एक पीडीएफ को संपादित करने के लिए एक घर का काम हुआ करता था, अब हर प्लेटफॉर्म

  1. बैश-इट - बैश फ्रेमवर्क आपकी लिपियों और उपनामों को नियंत्रित करने के लिए

    बैश-इट बैश 3.2+ . के लिए समुदाय बैश कमांड और स्क्रिप्ट का एक बंडल है , जो स्वतः पूर्णता, थीम, उपनाम, कस्टम फ़ंक्शन, और बहुत कुछ के साथ आता है। यह आपके दैनिक कार्य के लिए शेल स्क्रिप्ट और कस्टम कमांड के विकास, रखरखाव और उपयोग के लिए एक उपयोगी ढांचा प्रदान करता है। यदि आप दैनिक आधार पर बैश शेल का उपय

  1. उबंटू लिनक्स को कैसे अपडेट करें [सर्वर और डेस्कटॉप]

    यदि आप अपने डेस्कटॉप पर उबंटू लिनक्स चला रहे हैं, तो आपको बिल्ट-इन अपडेट टूल का उपयोग करके नियमित रूप से अपडेट करने के लिए कहा जाएगा। लेकिन क्या होगा यदि आप उबंटू सर्वर पर हैं या किसी भी लंबित अपडेट को मैन्युअल रूप से जांचना और चलाना चाहते हैं? यह ट्यूटोरियल डेस्कटॉप और सर्वर पर आपके उबंटू लिनक्स ओ