हाइपरमॉडर्न टर्मिनल टूलबॉक्स

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

2023 में मानक स्थापित करने वाले टर्मिनल, शेल और कमांड-लाइन टूल।

स्थिर प्रसार के साथ बनाया गया। संकेत: 'कंप्यूटर टर्मिनल स्क्रीन: 0.3, टर्मिनल स्क्रीन पर शेल प्रोग्राम प्रिंटिंग: 0.3, पुरुष बिलआउट की शैली, जीवंत, उज्ज्वल'। बीज : 42.

सभी डेवलपर टर्मिनलों का उपयोग करते हैं; कुछ के लिए, उनका संपूर्ण वर्कफ़्लो टर्मिनल है

यह पोस्ट हाइपरमॉडर्न टर्मिनल टूलबॉक्स - टर्मिनल, शेल और कमांड-लाइन टूल्स का परिचय देता है जो 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 पर प्रकाशित

लेवल अप कोडिंग

हमारे समुदाय का हिस्सा बनने के लिए धन्यवाद! इससे पहले कि तुम जाओ:

  • कहानी के लिए ताली बजाएं और लेखक को फॉलो करें
  • लेवल अप कोडिंग प्रकाशन में अधिक सामग्री देखें
  • फ्री कोडिंग इंटरव्यू कोर्स ⇒ कोर्स देखें
  • हमें फॉलो करें: ट्विटर | लिंक्डइन | समाचार पत्रिका