हाइपरमॉडर्न टर्मिनल टूलबॉक्स
2023 में मानक स्थापित करने वाले टर्मिनल, शेल और कमांड-लाइन टूल।
सभी डेवलपर टर्मिनलों का उपयोग करते हैं; कुछ के लिए, उनका संपूर्ण वर्कफ़्लो टर्मिनल है
यह पोस्ट हाइपरमॉडर्न टर्मिनल टूलबॉक्स - टर्मिनल, शेल और कमांड-लाइन टूल्स का परिचय देता है जो 2023 में मानक स्थापित करता है
किट्टी एक टर्मिनल एमुलेटर के रूप में
किट्टी एक टर्मिनल एमुलेटर है - यह गनोम टर्मिनल, अलाक्रिट्टी या विंडोज टर्मिनल का एक विकल्प है।
एक टर्मिनल एमुलेटर वह प्रोग्राम है जो आपके टर्मिनल को चलाता है। अलग-अलग ऑपरेटिंग सिस्टम (OS) अलग-अलग टर्मिनल एमुलेटर पेश करते हैं, या तो OS के हिस्से के रूप में या इंस्टॉल करने योग्य थर्ड-पार्टी प्रोग्राम के रूप में।
किट्टी एक जीपीयू-त्वरित, तृतीय-पक्ष टर्मिनल एमुलेटर है। किट्टी तेज, अत्यधिक अनुकूलन योग्य और खुला स्रोत है।
कॉन्फ़िगरेशन एक kitty.conf
पाठ फ़ाइल का उपयोग करके किया जाता है:
# $XDG_CONFIG_HOME/kitty/kitty.conf
font_family Operator Mono Book
font_size 14.0
scrollback_lines 2000
टिप — में किट्टी सेटिंग्स बदलते समय kitty.conf
, आपको किट्टी प्रोग्राम को पूरी तरह से पुनरारंभ करने की आवश्यकता होगी।
Zsh और Prezto एक शेल के रूप में
Zsh C में लिखा गया एक शेल है - यह बैश या फिश का एक विकल्प है।
शेल एक ऑपरेटिंग सिस्टम टेक्स्ट इंटरफ़ेस है जो एक टर्मिनल के अंदर चलता है। शेल कमांड फाइल बनाने और प्रोग्राम चलाने जैसे कार्य करते हैं।
Zsh एक ओपन सोर्स शेल है, जो बैश की तुलना में अधिक कार्यक्षमता और अनुकूलता प्रदान करता है।
Zsh .zshrc
फ़ाइल का उपयोग करके कॉन्फ़िगर किया गया है:
# ~/.zshrc
HISTSIZE=9999
alias brew='arch -x86_64 brew'
export PATH="$HOME/dotfiles/scripts:$PATH"
Prezto की सुविधाओं में सिंटैक्स हाइलाइटिंग और कमांड टैब पूर्णता शामिल है। नए कमांड-लाइन टूल को इंटरएक्टिवली एक्सप्लोर करने के लिए टैब कंप्लीशन उपयोगी है।
Prezto को .zpreztorc
फ़ाइल का उपयोग करके कॉन्फ़िगर किया गया है:
# ~/.zpreztorc
zstyle ':prezto:load' pmodule \
'environment' \
'terminal' \
'editor' \
'history' \
'directory' \
'spectrum' \
'utility' \
'completion' \
'git' \
'syntax-highlighting' \
'history-substring-search' \
'autosuggestions' \
'prompt'
एक पाठ संपादक के रूप में नियोविम
नियोविम लुआ में लिखा गया एक टेक्स्ट एडिटर है - यह विम, नैनो या एमएसीएस का विकल्प है।
नियोविम विम का एक लोकप्रिय उत्तराधिकारी है। Vimscript में लिखा गया Vim प्लगइन्स का पूरा इकोसिस्टम Neovim में काम करता है, Lua में लिखे Neovim प्लगइन्स के हलचल वाले इकोसिस्टम के शीर्ष पर।
एक अच्छी तरह से कॉन्फ़िगर किए गए नियोविम में स्वत: पूर्णता (वीएस कोड में उपलब्ध समान भाषा सर्वर), ट्रीसेटर के साथ सिंटैक्स हाइलाइटिंग और विभिन्न प्रकार की सूचियों के माध्यम से खोज के लिए टेलीस्कोप के लिए भाषा सर्वर हैं।
नियोविम का विन्यास लुआ में किया जाता है — एक init.lua
फ़ाइल से शुरू होता है:
-- $XDG_CONFIG_HOME/nvim/init.lua
-- set size of a tab to be 4
-- vim command line `:set tabstop=2`
-- vimscript `set tabstop=2`
vim.opt.set.tabstop = 2
-- run vimscript in lua
vim.cmd([[set tabstop=2]])
-- set variable
-- vimscript `let g:zoom#statustext = 'Z'`
vim.g['zoom#statustext'] = 'Z'
टिप - हलचल वाले नियोविम पारिस्थितिकी तंत्र को कवर करने वाले साप्ताहिक समाचार पत्र के लिए नियोविम में इस सप्ताह की सदस्यता लें।
एकाधिक टर्मिनलों के लिए Tmux
Tmux C में लिखा गया एक टर्मिनल मल्टीप्लेक्सर है - यह स्क्रीन का विकल्प है, या कई विंडो में टर्मिनल चल रहा है।
टर्मिनल मल्टीप्लेक्सर्स आपको एक ही विंडो में कई टर्मिनल सत्रों को प्रबंधित करने की अनुमति देते हैं।
Tmux आपको अनुकूलन योग्य कुंजी बाइंडिंग के साथ लगातार सत्र, विंडो और फलक प्रबंधन देता है।
Tmux एकाधिक टर्मिनलों को प्रबंधित करने के लिए अवधारणाओं के पदानुक्रम का उपयोग करता है:
- एक फलक एक खिड़की के भीतर एक आयताकार क्षेत्र होता है। प्रत्येक फलक एक अलग टर्मिनल सत्र प्रदर्शित करता है।
- एक विंडो एक फुल-स्क्रीन कंटेनर है जिसमें एक या अधिक पैन होते हैं।
- सत्र एक या अधिक विंडो का संग्रह होता है।
आप निम्न के साथ एक नया Tmux सेशन शुरू कर सकते हैं tmux new
:
# create a session named `work`
$ tmux new -s work
आप निम्न के साथ चल रहे Tmux सेशन को फिर से जोड़ सकते हैं tmux attach
:
# reattach to last session
$ tmux attach
# reattach the session named `work`
$ tmux attach -t work
Ctrl-b c
: एक नई विंडो बनाएं।Ctrl-b n
: अगली विंडो पर स्विच करें।Ctrl-b p
: पिछली विंडो पर स्विच करें।
# ~/.tmux.conf
set -g default-terminal "screen-256color"
setw -g mode-keys vi
set -g status-left "#[fg=green,bold]Session: #S #[fg=white,bold]| #[fg=yellow,bold]Window: #W"
set-option -g prefix C-a
एक सुंदर संकेत के लिए स्टारशिप
स्टारशिप एक शेल प्रॉम्प्ट है जिसे रस्ट में लिखा गया है — यह Powerlevel10k या Pure का विकल्प है।
एक संकेत कमांड लाइन का एक अनुकूलन योग्य हिस्सा है जो वर्तमान निर्देशिका या गिट शाखा जैसे संदर्भ प्रदान करता है।
स्टारशिप आपको तेज़, अनुकूलन योग्य संकेत देता है। कॉन्फ़िगरेशन फ़ाइल का उपयोग करके किया जाता है starship.toml
:
# $XDG_CONFIG_HOME/starship.toml
[username]
disabled = true
[hostname]
disabled = true
[git_status]
ahead = "↑"
behind = "↓"
[directory]
truncation_length = 2
टेक्स्ट खोजने के लिए रिपग्रेप
Ripgrep एक टेक्स्ट फ़ाइल खोजकर्ता है जिसे रस्ट में लिखा गया है - यह grep या खोजने का एक विकल्प है।
Ripgrep की प्राथमिक विशेषता गति है — यह वैकल्पिक उपकरणों की तुलना में तेज़ है।
Ripgrep का मूल उपयोग किसी निर्देशिका में पैटर्न की खोज करना है:
$ rg 'pattern' ~/project
alias g='rg -l --hidden --smart-case --line-buffered'
$ g 'some-pattern' some/directory
फजी सर्चिंग के लिए fzf
fzf एक अस्पष्ट खोजक है जिसे गो में लिखा गया है - यह नियतात्मक खोज का एक विकल्प है।
fzf आपको अस्पष्ट खोज एल्गोरिथम का उपयोग करके खोज करने की अनुमति देता है जो अपूर्ण जानकारी पर रेगेक्स पैटर्न से मेल खाता है। यह खोज परिणामों को आपके लिखते ही प्रकट होने देता है, यहां तक कि गलत वर्तनी के साथ भी।
fzf को कमांड-लाइन प्रोग्राम के रूप में चलाया जा सकता है:
$ fzf
# fuzzy search all files in the `work` directory
$ cat ~/work/** <TAB>
fzf का उपयोग विभिन्न खोज बैकेंड के साथ किया जा सकता है, जैसे कि ढूँढें, grep या Ripgrep।
FZF_DEFAULT_COMMAND
टिप — परिवेश चर सेट करके Ripgrep को fzf बैकएंड के रूप में उपयोग करें export FZF_DEFAULT_COMMAND='rg --files --hidden'
।
फ़ाइलें सूचीबद्ध करने के लिए Exa
Exa एक फाइल-लिस्टिंग प्रोग्राम है जिसे रस्ट में लिखा गया है - यह ls और ट्री का विकल्प है।
एक फाइल लिस्टिंग प्रोग्राम आपको फाइलों और निर्देशिकाओं की सूची दिखाता है। Exa आइकॉन, Git इंटीग्रेशन और वर्सेटाइल सॉर्टिंग विकल्प जैसी सुविधाएँ प्रदान करता है।
Exa के कुछ अलग बुनियादी विचार हैं:
# list as a grid
$ exa -G
bp-historical-data cities data-science-south-data predict-newspapers README.md titanic
# list each item on one line
$ exa -1
bp-historical-data
cities
data-science-south-data
predict-newspapers
README.md
titanic
# list as a table - same as `ls -l`
$ exa -l
drwxr-xr-x - adam 26 Apr 20:20 bp-historical-data
drwxr-xr-x - adam 14 Feb 16:42 cities
drwxr-xr-x - adam 26 Apr 20:25 data-science-south-data
drwxr-xr-x - adam 28 Apr 14:52 predict-newspapers
.rw-r--r-- 124 adam 29 Apr 15:20 README.md
drwxr-xr-x - adam 26 Apr 17:31 titanic
$ exa --tree --level=2
├── bp-historical-data
│ ├── __pycache__
│ ├── dashboard.py
│ ├── data
│ ├── notebooks
│ ├── README.md
│ └── requirements.txt
├── README.md
└── titanic
├── data
├── requirements.txt
├── titanic.ipynb
├── titanic.md
└── titanic.py
Exa के लिए मेरे उपनाम हैं:
alias ls = 'exa --long --icons --no-permissions --no-user --git --time-style long-iso --time=modified --group-directories-first -a'
alias tree = 'exa --tree'
फाइलें देखने के लिए बैट
बैट एक फाइल व्यूअर है जिसे रस्ट में लिखा गया है — यह कैट का एक विकल्प है।
फ़ाइल व्यूअर एक प्रोग्राम है जो फ़ाइल की सामग्री को प्रदर्शित करता है।
बैट सिंटैक्स हाइलाइटिंग, गिट इंटीग्रेशन और ऑटोमैटिक फाइल पेजिंग जैसी कार्यक्षमता प्रदान करता है।
प्रोग्राम को टेक्स्ट फ़ाइल पर इंगित करके बैट का उपयोग किया जाता है:
$ bat path/to/file
पाठ को बदलने के लिए दुखी
सैड एक स्ट्रीम एडिटर है जिसे रस्ट में लिखा गया है - यह sed या awk का विकल्प है।
स्ट्रीम एडिटर टेक्स्ट स्ट्रीम या टेक्स्ट फाइल पर सर्च और रिप्लेस ऑपरेशंस करते हैं।
सैड (अंतरिक्ष युग seD) उन्हें लागू करने से पहले प्रस्तावित प्रतिस्थापन दिखाता है, जिससे आप जांच कर सकते हैं और उन्हें चुनने से पहले कौन से प्रतिस्थापन कर सकते हैं।
सैड का उपयोग कमांड-लाइन प्रोग्राम के रूप में किया जाता है:
$ sad '<pattern>' '<replacement>'
$ cat README.md
# Data Science South Projects
Example projects for the courses at [Data Science South](https://www.datasciencesouth.com/).
$ exa -1 | sad "courses" "modules"
$ cat README.md
# Data Science South Projects
Example projects for the modules at [Data Science South](https://www.datasciencesouth.com/).
jq JSON के साथ काम करने के लिए
jq एक JSON प्रोसेसर है जिसे C में लिखा गया है - यह fx, jp, या Python जैसी भाषा में JSON को संसाधित करने का विकल्प है।
jq आपको JSON डेटा को फ़िल्टर करने, बदलने और हेरफेर करने की अनुमति देता है, जो एपीआई प्रतिक्रियाओं, कॉन्फ़िगरेशन फ़ाइलों और डेटा स्टोर के साथ काम करने के लिए उपयोगी है।
Jq में एक केंद्रीय विचार फ़िल्टर है, जो इनपुट JSON पर लागू होता है:
$ jq 'filter_expression' input.json
.key
- एक कुंजी का मान निकालें,.[]
- एक सरणी से सभी मान निकालें,.[2]
- एक सरणी से तीसरा मान निकालें।
# extract the `name` key
$ echo '{"name": "Alice", "data": [6, 12]}' | jq '.name'
"Alice"
# extract the second element from the `data` list
$ echo '{"name": "Alice", "data": [6, 12]}' | jq '.data[1]'
12
नेविगेशन के लिए ज़ोक्साइड
ज़ॉक्साइड एक टर्मिनल नेविगेशन उपयोगिता है जिसे रस्ट में लिखा गया है - यह सीडी, पुशड और पॉपड का विकल्प है।
ज़ॉक्साइड आपके विज़िट इतिहास से सीधे निर्देशिकाओं में जाता है। यह कितनी बार और हाल ही में दौरा किया गया है, इस पर आधारित प्रत्येक निर्देशिका को एक अंक प्रदान करता है।
ज़ोक्साइड का उपयोग कमांड लाइन प्रोग्राम के रूप में किया जाता है:
# move to a folder that best matches `code`
$ z code
गिट इतिहास देखने के लिए टिग
टिग एक गिट इतिहास दर्शक है जो सी में लिखा गया है - यह गिट सीएलआई या लेज़ीगिट का उपयोग करने का एक विकल्प है।
टिग आपके गिट प्रतिबद्ध इतिहास को ब्राउज़ करने के लिए एक नेविगेट करने योग्य, रंग-कोडित इंटरफ़ेस प्रदान करता है। यह कमिट की खोज करने, कमिट ग्राफ को देखने और अलग-अलग समय पर फाइल दिखाने की अनुमति देता है।
टिग को कमांड-लाइन प्रोग्राम के रूप में चलाया जाता है:
$ tig
direnv पर्यावरण चर प्रबंधन के लिए
direnv शेल पर्यावरण चर को लोड और अनलोड करता है - गो में लिखा गया है, यह उपयोग करने का एक विकल्प है$ source .env
।
जैसे ही आप विभिन्न परियोजना निर्देशिकाओं के बीच नेविगेट करते हैं, direnv पर्यावरण चर को स्वचालित रूप से लोड और अनलोड करता है।
direnv का उपयोग करने से पर्यावरण चर के मैन्युअल लोडिंग से बचा जाता है, और एक परियोजना से दूसरे प्रोजेक्ट में सेट होने वाले पर्यावरण चर से बचाता है।
direnv .envrc
आपके प्रोजेक्ट के लिए विशिष्ट चर रखने के लिए एक फ़ाइल का उपयोग करता है, जिसे शेल स्क्रिप्ट के रूप में चलाया जाता है:
# .envrc
export PROJECT_NAME="alpha"
$ direnv allow .
एक सामान्य अभ्यास वैकल्पिक रूप से गुप्त या निजी लोड करना है .envrc
:
source_env_if_exists .envrc.secret
युक्ति — direnv exec <path> <command>
किसी विशिष्ट निर्देशिका में नेविगेट किए बिना परिवेश को लोड करने के साथ कमांड चलाने के लिए उपयोग करें।
डॉकर के लिए आलसीडॉकर
Lazydocker Docker कंटेनरों और छवियों का प्रबंधन करता है - Go में लिखा गया है, यह Docker Desktop या Docker CLI का एक विकल्प है।
Lazydocker टर्मिनल यूआई के माध्यम से कंटेनरों और छवियों को देखना, शुरू करना, रोकना और हटाना आसान बनाता है। यह कंटेनर की स्थिति, लॉग और संसाधन उपयोग का रीयल-टाइम अवलोकन भी प्रदान कर सकता है।
Lazydocker का उपयोग कमांड-लाइन प्रोग्राम के रूप में किया जाता है:
$ lazydocker
मार्कडाउन के पूर्वावलोकन के लिए मार्कसर्व
Markserv एक ब्राउज़र में Markdown फ़ाइलों को प्रस्तुत करता है - Node.js में लिखा गया है, यह ग्रिप या मार्कडाउन पूर्वावलोकन का एक विकल्प है।
मार्कसर्व वास्तविक समय में मार्कडाउन को HTML में प्रस्तुत करता है, आपके द्वारा किए गए परिवर्तनों को स्वचालित रूप से प्रतिबिंबित करता है।
मार्कसर्व गिटहब के स्वाद वाले मार्कडाउन का समर्थन करता है, जिसका अर्थ है कि यह जीथब के समान ही कोड ब्लॉक और टेबल को प्रारूपित करता है। मार्कसर्व README.md
जीथब को पुश किए बिना फाइलों का पूर्वावलोकन करने के लिए बहुत अच्छा है।
पोर्ट 8010 पर मार्कसर्व सर्वर शुरू करने के लिए:
$ markserv -p 8010
स्थानीय सर्वर साझा करने के लिए Ngrok
ngrok आपके स्थानीय सर्वर के लिए सुरंग बनाता है - गो में लिखा गया है, यह सर्वो, लोकल टनल या पेजकाइट का विकल्प है।
ngrok इंटरनेट पर NAT या फ़ायरवॉल के पीछे एक स्थानीय सर्वर को उजागर करता है। यह आपकी टीम के साथ विकास सर्वर साझा करने के लिए उपयोगी है।
आप चलाकर 8000 पोर्ट करने के लिए सुरंग शुरू कर सकते हैं:
$ ngrok http 8000
सारांश
हाइपरमॉडर्न टर्मिनल टूलबॉक्स है:
- GPU के लिए किट्टी त्वरित, अत्यधिक अनुकूलन योग्य टर्मिनल,
- शेल के लिए Zsh और Zsh कॉन्फ़िगरेशन के लिए Prezto ,
- एक पाठ संपादक के रूप में नियोविम ,
- कई टर्मिनलों के प्रबंधन के लिए Tmux ,
- एक सुंदर शीघ्र के लिए स्टारशिप ,
- पाठ फ़ाइलों को खोजने के लिए Ripgrep ,
- अस्पष्ट खोज के लिए fzf ,
- फ़ाइलों को सूचीबद्ध करने के लिए Exa ,
- फ़ाइलें देखने के लिए बैट ,
- पाठ फ़ाइलों में खोजने और बदलने के लिए दुख की बात है ,
- jq JSON के साथ काम करने के लिए,
- नेविगेशन के लिए ज़ॉक्साइड ,
- गिट इतिहास देखने के लिए टिग ,
- पर्यावरण चर प्रबंधन के लिए direnv ,
- डॉकर के लिए लेज़ीडॉकर ,
- मार्कडाउन का पूर्वावलोकन करने के लिए मार्कसर्व ,
- स्थानीय सर्वरों को इंटरनेट पर प्रदर्शित करने के लिए ngrok ।
टर्मिनल मास्टर बनने के लिए एक बार में एक टूल सीखें
मूल रूप से https://www.datasciencesouth.com पर प्रकाशित ।
लेवल अप कोडिंग
हमारे समुदाय का हिस्सा बनने के लिए धन्यवाद! इससे पहले कि तुम जाओ:
- कहानी के लिए ताली बजाएं और लेखक को फॉलो करें
- लेवल अप कोडिंग प्रकाशन में अधिक सामग्री देखें
- फ्री कोडिंग इंटरव्यू कोर्स ⇒ कोर्स देखें
- हमें फॉलो करें: ट्विटर | लिंक्डइन | समाचार पत्रिका