5 съвременни алтернативи на старите инструменти за команден ред в Linux.

Използвайки по-съвременни алтернативи в допълнение на старите инструменти за команден ред, може да получите повече удоволствие и дори да повишите производителността си.

5 съвременни алтернативи на старите инструменти за команден ред в Linux.

В ежедневната работа в Linux / Unix използваме множество инструменти за команден ред — например, du за мониторинг на използването на диска и системните ресурси. Някои от тези инструменти съществуват отдавна. Например, top се появи през 1984 година, а първото издание на du е от 1971 година.

През годините тези инструменти бяха модернизирани и портируеми на различни системи, но в крайна сметка не се отделят много от първоначалните версии; техният външен вид и удобство за използване също не са се променили значително.

Това са отлични инструменти, необходими на много системни администратори. Въпреки това, обществото е разработило алтернативни инструменти, които предлагат допълнителни предимства. Някои от тях просто имат съвременен и красив интерфейс, а други значително подобряват удобството на използване. В този превод ще разгледаме пет алтернативи на стандартните инструменти за команден ред в Linux.

1. ncdu срещу du

NCurses Disk Usage (ncdu) е подобен на du, но с интерактивен интерфейс, базиран на библиотеката curses. ncdu показва структурата на директориите, които заемат по-голямата част от вашето дисково пространство.

ncdu анализира диска и след това показва резултатите, сортирани по най-често използваните директории или файлове, например:

ncdu 1.14.2 ~ Използвайте стрелките за навигация, натиснете ? за помощ
--- /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
 Обща употреба на диска: 159.4 GiB  Явна големина: 280.8 GiB  Артикул: 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 срещу top

Htop е интерактивен инструмент за визуализация на процеси, подобен на top, но предоставящ приятен потребителски интерфейс. По подразбиране htop показва същата информация като top, но в по-ясен и цветен формат.

По подразбиране htop изглежда така:

5 съвременни алтернативи на старите инструменти за команден ред в Linux.
За разлика от top:

5 съвременни алтернативи на старите инструменти за команден ред в Linux.
Освен това, в горната част на htop се показва обзорна информация за системата, а в долната част — панел за изпълнение на команди с функционалните клавиши. Можете да го конфигурирате, като натиснете F2, за да отворите екрана за настройка. В настройките можете да промените цветовете, да добавите или изтриете метрики или да промените параметрите на панела с преглед.

Въпреки че с новите версии на top можете да постигнете подобна удобна работа, htop предоставя удобни конфигурации по подразбиране, което го прави по-практичен и лесен за употреба.

3. tldr срещу man

Инструментът за команден ред tldr показва опростена справочна информация за командите, основно примери. Той е разработен от общността tldr pages project.

Трябва да се отбележи, че tldr не е заместител на man. Той все още е каноничният и най-пълен инструмент за извеждане на справочни страници. Въпреки това, в някои случаи man е излишен. Когато не ви е необходима изчерпателна информация за дадена команда, просто се опитвате да запомните основните варианти на нейното използване. Например, man страницата за командата curl съдържа почти 3000 реда. tldr страницата за curl е с дължина 40 реда. Неин фрагмент изглежда така:


$ tldr curl

# curl
  Прехвърля данни от или до сървър.
  Поддържа повечето протоколи, включително HTTP, FTP и POP3.
  Повече информация: .

- Изтеглете съдържанието на URL адрес в файл:

  curl http://example.com -o filename

- Изтеглете файл, запазвайки изхода под името на файла, посочено от URL адреса:

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

- Изтеглете файл, следвайки [L]ocation пренасочвания, и автоматично [C]ontinuing (възобновяване) на предишно прехвърляне на файл:

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

- Изпратете данни форматирани като заявка (POST заявка от тип `application/x-www-form-urlencoded`):

  curl -d 'name=bob' http://example.com/form                                                                                            
- Изпратете заявка с допълнителен заглавие, използвайки собствен HTTP метод:

  curl -H 'X-My-Header: 123' -X PUT http://example.com                                                                                  
- Изпратете данни в JSON формат, посочвайки подходящия заглавие на съдържанието:

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

... ТРАНСЛИРАНО ИЗХОД

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, за да търсите реда name:

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

grep върна всички редове, съдържащи думата name. Можете да добавите още параметри в 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 срещу find

fd — това е опростена алтернатива на утилитата find. Fd не е замислен да я замести напълно: той по подразбиране има най-разпространените настройки, които определят общия подход към работата с файлове.

Например, при търсене на файлове в директорията на репозитория Git, fd автоматично изключва скритите файлове и поддиректории, включително директория .git, а също така игнорира шаблоните от файла .gitignore. Като цяло, той ускорява търсенето, предоставяйки по-релевантни резултати от първия опит.

По подразбиране fd извършва търсене без оглед на регистра в текущата директория с цветен изход. Същото търсене с командата find изисква въвеждане на допълнителни параметри в командния ред. Например, за да намерите всички файлове .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 GHz. Максималната конфигурация ще позволи да се издигнете до 128 ядра CPU, 512 GB RAM и 4000 GB NVMe. Побързайте да поръчате!

5 съвременни алтернативи на старите инструменти за команден ред в Linux.

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster