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

В ежедневната работа в Linux / Unix използваме множество инструменти за команден ред — например, du за мониторинг на използването на диска и системните ресурси. Някои от тези инструменти съществуват отдавна. Например, top се появи през 1984 година, а първото издание на du е от 1971 година.
През годините тези инструменти бяха модернизирани и портируеми на различни системи, но в крайна сметка не се отделят много от първоначалните версии; техният външен вид и удобство за използване също не са се променили значително.
Това са отлични инструменти, необходими на много системни администратори. Въпреки това, обществото е разработило алтернативни инструменти, които предлагат допълнителни предимства. Някои от тях просто имат съвременен и красив интерфейс, а други значително подобряват удобството на използване. В този превод ще разгледаме пет алтернативи на стандартните инструменти за команден ред в Linux.
1. ncdu срещу du
NCurses Disk Usage () е подобен на 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 ncdu2. htop срещу top
е интерактивен инструмент за визуализация на процеси, подобен на top, но предоставящ приятен потребителски интерфейс. По подразбиране htop показва същата информация като top, но в по-ясен и цветен формат.
По подразбиране htop изглежда така:

За разлика от top:

Освен това, в горната част на htop се показва обзорна информация за системата, а в долната част — панел за изпълнение на команди с функционалните клавиши. Можете да го конфигурирате, като натиснете F2, за да отворите екрана за настройка. В настройките можете да промените цветовете, да добавите или изтриете метрики или да промените параметрите на панела с преглед.
Въпреки че с новите версии на top можете да постигнете подобна удобна работа, htop предоставя удобни конфигурации по подразбиране, което го прави по-практичен и лесен за употреба.
3. tldr срещу man
Инструментът за команден ред tldr показва опростена справочна информация за командите, основно примери. Той е разработен от общността .
Трябва да се отбележи, че 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
— това е опростена алтернатива на утилитата 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? Или работите изцяло с старите? Но вероятно имате комбинация, нали? Моля, споделете опита си в коментарите.
Реклама
Много от нашите клиенти вече оцениха предимствата на епичните сървъри!
Това , ядрената честота на CPU до 3.4 GHz. Максималната конфигурация ще позволи да се издигнете до 128 ядра CPU, 512 GB RAM и 4000 GB NVMe. Побързайте да поръчате!
Източник: habr.com
