5 алтернативаҳои муосир ба асбобҳои пешинаи сатри фармони Linux

Бо истифода аз алтернативаҳои муосири муосир дар баробари абзорҳои кӯҳнаи сатри фармон, шумо метавонед лаззати бештаре дошта бошед ва ҳатто маҳсулнокии худро беҳтар кунед.

5 алтернативаҳои муосир ба асбобҳои пешинаи сатри фармони Linux

Дар кори ҳаррӯзаи худ дар Linux/Unix, мо бисёр асбобҳои сатри фармонро истифода мебарем - масалан, du барои назорат кардани истифодаи диск ва захираҳои система. Баъзе аз ин асбобҳо муддати тӯлонӣ вуҷуд доранд. Масалан, топ соли 1984 пайдо шуд ва аввалин нашри du ба соли 1971 рост меояд.

Дар тӯли солҳо, ин асбобҳо навсозӣ ва ба системаҳои гуногун интиқол дода шуданд, аммо дар маҷмӯъ онҳо аз версияҳои аввалини худ дур нарафтанд, намуди зоҳирӣ ва қобили истифодаашон низ чандон тағйир наёфтааст.

Инҳо абзорҳои олие мебошанд, ки ба бисёре аз маъмурони система ниёз доранд. Бо вуҷуди ин, ҷомеа асбобҳои алтернативӣ таҳия кардааст, ки манфиатҳои иловагӣ пешкаш мекунанд. Баъзеи онҳо интерфейси замонавӣ ва зебо доранд, дар ҳоле ки дигарон қобили истифодаро хеле беҳтар мекунанд. Дар ин тарҷума, мо дар бораи панҷ алтернатива ба асбобҳои стандартии сатри фармони Linux сӯҳбат хоҳем кард.

1. ncdu против ду

Истифодаи диски NCurses (ncdu) ба du монанд аст, аммо бо интерфейси интерактивӣ дар асоси китобхонаи лаънатҳо. ncdu сохтори директорияро нишон медиҳад, ки қисми зиёди фазои диски шуморо ишғол мекунад.

ncdu дискро таҳлил мекунад ва сипас натиҷаҳоро аз рӯи феҳристҳо ё файлҳои бештар истифодашаванда мураттаб мекунад, масалан:

ncdu 1.14.2 ~ Use the arrow keys to navigate, press ? for help
--- /home/rgerardi ------------------------------------------------------------
   96.7 GiB [##########] /libvirt
   33.9 GiB [###       ] /.crc
    7.0 GiB [          ] /Projects
.   4.7 GiB [          ] /Downloads
.   3.9 GiB [          ] /.local
    2.5 GiB [          ] /.minishift
    2.4 GiB [          ] /.vagrant.d
.   1.9 GiB [          ] /.config
.   1.8 GiB [          ] /.cache
    1.7 GiB [          ] /Videos
    1.1 GiB [          ] /go
  692.6 MiB [          ] /Documents
. 591.5 MiB [          ] /tmp
  139.2 MiB [          ] /.var
  104.4 MiB [          ] /.oh-my-zsh
   82.0 MiB [          ] /scripts
   55.8 MiB [          ] /.mozilla
   54.6 MiB [          ] /.kube
   41.8 MiB [          ] /.vim
   31.5 MiB [          ] /.ansible
   31.3 MiB [          ] /.gem
   26.5 MiB [          ] /.VIM_UNDO_FILES
   15.3 MiB [          ] /Personal
    2.6 MiB [          ]  .ansible_module_generated
    1.4 MiB [          ] /backgrounds
  944.0 KiB [          ] /Pictures
  644.0 KiB [          ]  .zsh_history
  536.0 KiB [          ] /.ansible_async
 Total disk usage: 159.4 GiB  Apparent size: 280.8 GiB  Items: 561540

Шумо метавонед бо истифода аз тугмаҳои тирча дар дохили сабтҳо ҳаракат кунед. Агар шумо Enter-ро пахш кунед, ncdu мундариҷаи директорияи интихобшударо намоиш медиҳад:

--- /home/rgerardi/libvirt ----------------------------------------------------
                         /..
   91.3 GiB [##########] /images
    5.3 GiB [          ] /media

Шумо метавонед ин асбобро истифода баред, масалан, муайян кунед, ки кадом файлҳо фазои бештари дискро ишғол мекунанд. Шумо метавонед бо пахш кардани тугмаи тирчаи чап ба феҳристи пешина гузаред. Бо ncdu шумо метавонед файлҳоро бо пахш кардани тугмаи d тоза кунед. Он пеш аз нест кардан тасдиқро талаб мекунад. Агар шумо хоҳед, ки хусусияти нест карданро барои пешгирӣ кардани талафоти тасодуфии файлҳои арзишманд ғайрифаъол кунед, имконоти -r-ро барои фаъол кардани режими дастрасии танҳо барои хондан истифода баред: ncdu -r.

ncdu барои бисёр платформаҳо ва дистрибюторҳои Linux дастрас аст. Масалан, шумо метавонед dnf-ро барои насб кардани он дар Fedora мустақиман аз анбори расмӣ истифода баред:

$ sudo dnf install ncdu

2. htop vs top

htop як тамошобини интерактивии равандест, ки ба боло монанд аст, аммо берун аз он таҷрибаи хуби корбарро фароҳам меорад. Бо нобаёнӣ, htop ҳамон маълумотро бо боло нишон медиҳад, аммо ба таври визуалӣ ва рангинтар.

Бо нобаёнӣ htop чунин менамояд:

5 алтернативаҳои муосир ба асбобҳои пешинаи сатри фармони Linux
Баръакси боло:

5 алтернативаҳои муосир ба асбобҳои пешинаи сатри фармони Linux
Илова бар ин, htop маълумоти мухтасарро дар бораи система дар боло ва панел барои иҷро кардани фармонҳо бо истифода аз тугмаҳои функсионалӣ дар поён нишон медиҳад. Шумо метавонед онро бо пахшкунии F2 барои кушодани экрани конфигуратсия танзим кунед. Дар Танзимот, шумо метавонед рангҳоро тағир диҳед, нишондиҳандаҳоро илова ё хориҷ кунед ё имконоти намоиши панели умумиро тағир диҳед.

Ҳарчанд шумо метавонед бо тағир додани танзимоти версияҳои охирини боло қобилияти шабеҳро ба даст оред, htop конфигуратсияҳои мувофиқи пешфарзро таъмин мекунад, ки истифодаи онро амалӣ ва осонтар мекунад.

3. tldr против одам

Асбоби сатри фармони tldr маълумоти соддакардашудаи кӯмакро дар бораи фармонҳо, асосан мисолҳо нишон медиҳад. Он аз ҷониби ҷомеа таҳия шудааст лоиҳаи саҳифаҳои tldr.

Бояд гуфт, ки тлдр ивазкунандаи одам нест. Он то ҳол воситаи каноникӣ ва мукаммалтарин воситаи баромади саҳифаи одам мебошад. Аммо, дар баъзе мавридҳо одам зиёдатист. Вақте ки ба шумо маълумоти ҳамаҷониба дар бораи фармон ниёз надоред, шумо танҳо кӯшиш мекунед, ки истифодаи асосии онро дар хотир доред. Масалан, саҳифаи ман барои фармони curl тақрибан 3000 сатрро дар бар мегирад. Саҳифаи tldr барои curl 40 сатр аст. Қисми он чунин менамояд:


$ tldr curl

# curl
  Transfers data from or to a server.
  Supports most protocols, including HTTP, FTP, and POP3.
  More information: <https://curl.haxx.se>.

- Download the contents of an URL to a file:

  curl http://example.com -o filename

- Download a file, saving the output under the filename indicated by the URL:

  curl -O http://example.com/filename

- Download a file, following [L]ocation redirects, and automatically [C]ontinuing (resuming) a previous file transfer:

  curl -O -L -C - http://example.com/filename

- Send form-encoded data (POST request of type `application/x-www-form-urlencoded`):

  curl -d 'name=bob' http://example.com/form                                                                                            
- Send a request with an extra header, using a custom HTTP method:

  curl -H 'X-My-Header: 123' -X PUT http://example.com                                                                                  
- Send data in JSON format, specifying the appropriate content-type header:

  curl -d '{"name":"bob"}' -H 'Content-Type: application/json' http://example.com/users/1234

... TRUNCATED OUTPUT

TLDR маънои "хеле дароз; нахондааст»: яъне баъзе матндо аз чидати муф-тадил буданаш нодида гирифта шудаанд. Ном барои ин асбоб мувофиқ аст, зеро саҳифаҳои man, гарчанде муфид бошанд ҳам, баъзан метавонанд хеле дароз бошанд.

Барои Fedora, tldr дар Python навишта шудааст. Шумо метавонед онро бо истифода аз менеҷери dnf насб кунед. Одатан, асбоб барои кор кардан дастрасии интернетро талаб мекунад. Аммо муштарии Python Fedora имкон медиҳад, ки ин саҳифаҳо барои дастрасии офлайн зеркашӣ ва кэш карда шаванд.

4.jq против sed/grep

jq протсессори JSON барои сатри фармон аст. Он ба sed ё grep монанд аст, аммо махсус барои кор бо маълумоти JSON тарҳрезӣ шудааст. Агар шумо таҳиягар ё мудири система бошед, ки JSON-ро дар вазифаҳои ҳаррӯза истифода мебарад, ин асбоб барои шумост.

Бартарии асосии jq нисбат ба абзорҳои стандартии коркарди матн ба монанди grep ва sed дар он аст, ки он сохтори додаҳои JSON-ро мефаҳмад ва ба шумо имкон медиҳад дар як ифода дархостҳои мураккаб эҷод кунед.

Масалан, шумо кӯшиш карда истодаед, ки дар ин файли JSON номҳои контейнерро пайдо кунед:

{
  "apiVersion": "v1",
  "kind": "Pod",
  "metadata": {
    "labels": {
      "app": "myapp"
    },
    "name": "myapp",
    "namespace": "project1"
  },
  "spec": {
    "containers": [
      {
        "command": [
          "sleep",
          "3000"
        ],
        "image": "busybox",
        "imagePullPolicy": "IfNotPresent",
        "name": "busybox"
      },
      {
        "name": "nginx",
        "image": "nginx",
        "resources": {},
        "imagePullPolicy": "IfNotPresent"
      }
    ],
    "restartPolicy": "Never"
  }
}

Барои дарёфти номи сатр grep-ро иҷро кунед:

$ grep name k8s-pod.json
        "name": "myapp",
        "namespace": "project1"
                "name": "busybox"
                "name": "nginx",

grep ҳамаи сатрҳои дорои номи калимаро баргардонид. Шумо метавонед якчанд имконоти дигарро ба grep барои маҳдуд кардани он илова кунед ва барои пайдо кардани номҳои контейнер баъзе аз коркарди ифодаи муқаррариро истифода баред.

Барои ба даст овардани ҳамон натиҷа бо истифода аз jq, танҳо нависед:

$ jq '.spec.containers[].name' k8s-pod.json
"busybox"
"nginx"

Ин фармон ба шумо номи ҳарду контейнерро медиҳад. Агар шумо танҳо номи контейнери дуюмро ҷустуҷӯ кунед, индекси элементи массивро ба ифода илова кунед:

$ jq '.spec.containers[1].name' k8s-pod.json
"nginx"

Азбаски jq дар бораи сохтори маълумот медонад, он як натиҷаҳоро медиҳад, ҳатто агар формати файл каме тағир ёбад. grep ва sed метавонанд дар ин ҳолат дуруст кор накунанд.

jq вазифаҳои зиёд дорад, аммо барои тавсифи онҳо мақолаи дигар лозим аст. Барои маълумоти бештар лутфан тамос гиред саҳифаи лоиҳа jq ё ба tldr.

5. fd vs find

fd алтернативаи соддакардашудаи утилитаи find аст. Fd барои пурра иваз кардани он пешбинӣ нашудааст: он танзимоти маъмултаринро бо нобаёнӣ насб кардааст, ки равиши умумии кор бо файлҳоро муайян мекунад.

Масалан, ҳангоми ҷустуҷӯи файлҳо дар директорияи анбори Git, fd ба таври худкор файлҳо ва зеркаталогҳои пинҳоншударо, аз ҷумла директорияи .gitро истисно мекунад ва инчунин аломатҳои ҷонишинро аз файли .gitignore нодида мегирад. Умуман, он ҷустуҷӯро тавассути баргардонидани натиҷаҳои мувофиқтар дар кӯшиши аввал суръат мебахшад.

Бо нобаёнӣ, fd дар феҳристи ҷорӣ бо баромади ранг ҷустуҷӯи ба ҳарфи ҳарфро иҷро мекунад. Ҷустуҷӯи якхела бо истифода аз фармони ҷустуҷӯ ворид кардани параметрҳои иловагиро дар сатри фармон талаб мекунад. Масалан, барои пайдо кардани ҳама файлҳои .md (ё .MD) дар феҳристи ҷорӣ, шумо фармони find-ро чунин менависед:

$ find . -iname "*.md"

Барои fd он чунин менамояд:

$ fd .md

Аммо дар баъзе мавридҳо, fd инчунин имконоти иловагиро талаб мекунад: масалан, агар шумо хоҳед, ки файлҳо ва директорияҳои пинҳониро дохил кунед, шумо бояд опсияи -H -ро истифода баред, гарчанде ки ин одатан ҳангоми ҷустуҷӯ талаб карда намешавад.

fd барои бисёр тақсимоти Linux дастрас аст. Дар Fedora онро метавон чунин насб кард:

$ sudo dnf install fd-find

Шумо набояд аз чизе даст кашед

Оё шумо асбобҳои нави сатри фармони Linux-ро истифода мебаред? Ё шумо танҳо дар болои кӯҳна нишастаед? Аммо эҳтимоли зиёд шумо комбо доред, дуруст? Лутфан таҷрибаи худро дар шарҳҳо мубодила кунед.

Дар бораи ҳуқуқи реклама

Бисёре аз муштариёни мо аллакай фоидаҳоро қадр кардаанд серверҳои эпикӣ!
ин серверҳои виртуалӣ бо коркардкунандагони AMD EPYC, басомади асосии CPU то 3.4 ГГц. Конфигуратсияи ҳадди аксар ба шумо имкон медиҳад, ки таркиш дошта бошед - 128 ядрои CPU, 512 ГБ RAM, 4000 ГБ NVMe. Барои фармоиш шитоб кунед!

5 алтернативаҳои муосир ба асбобҳои пешинаи сатри фармони Linux

Манбаъ: will.com

Илова Эзоҳ