Ескі пәрмен жолы құралдарымен қатар заманауи баламаларды пайдалану арқылы сіз көбірек көңіл көтеруге және тіпті өнімділікті арттыруға болады.
Linux/Unix жүйесіндегі күнделікті жұмысымызда біз көптеген пәрмен жолы құралдарын қолданамыз - мысалы, дискті пайдалануды және жүйелік ресурстарды бақылау үшін du. Бұл құралдардың кейбіреулері бұрыннан бар. Мысалы, топ 1984 жылы пайда болды, ал du бірінші шығарылымы 1971 жылдан басталады.
Осы жылдар ішінде бұл құралдар жаңартылды және әртүрлі жүйелерге ауыстырылды, бірақ жалпы алғанда олар өздерінің алғашқы нұсқаларынан алысқа кеткен жоқ, олардың сыртқы түрі мен ыңғайлылығы да көп өзгерген жоқ.
Бұл көптеген жүйелік әкімшілерге қажет тамаша құралдар. Дегенмен, қауымдастық қосымша артықшылықтар ұсынатын балама құралдарды әзірледі. Олардың кейбіреулері жай ғана заманауи, әдемі интерфейске ие, ал басқалары пайдалану мүмкіндігін айтарлықтай жақсартады. Бұл аудармада біз стандартты Linux пәрмен жолы құралдарының бес баламасы туралы айтатын боламыз.
1. ncdu vs du
NCurses Disk Usage (
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 платформалары мен дистрибутивтері үшін қол жетімді. Мысалы, сіз оны Fedora-ға ресми репозиторийлерден орнату үшін dnf пайдалана аласыз:
$ sudo dnf install ncdu
2. htop vs top
Әдепкі бойынша htop келесідей көрінеді:
Жоғарыдан айырмашылығы:
Сонымен қатар, htop жоғарғы жағында жүйе туралы шолу ақпаратын және төменгі жағында функционалдық пернелерді пайдаланып пәрмендерді іске қосу тақтасын көрсетеді. Оны конфигурациялау экранын ашу үшін F2 пернесін басу арқылы конфигурациялауға болады. Параметрлерде түстерді өзгертуге, көрсеткіштерді қосуға немесе жоюға немесе шолу тақтасын көрсету опцияларын өзгертуге болады.
Жоғарғы нұсқаның соңғы нұсқаларының параметрлерін өзгерту арқылы ұқсас қолайлылыққа қол жеткізуге болатынына қарамастан, htop ыңғайлы әдепкі конфигурацияларды қамтамасыз етеді, бұл оны практикалық және пайдалануды жеңілдетеді.
3. tldr адамға қарсы
tldr пәрмен жолы құралы пәрмендер туралы жеңілдетілген анықтамалық ақпаратты, негізінен мысалдарды көрсетеді. Оны қоғамдастық әзірледі
Айта кетейік, tldr адамды алмастырмайды. Бұл әлі де канондық және ең жан-жақты адам бетін шығару құралы. Дегенмен, кейбір жағдайларда адам артық болады. Пәрмен туралы жан-жақты ақпарат қажет болмаса, сіз оның негізгі қолданыстарын есте сақтауға тырысасыз. Мысалы, curl пәрменіне арналған адам бетінде 3000-ға жуық жол бар. Curl үшін tldr беті 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 «тым ұзақ» дегенді білдіреді; оқымады»: яғни кейбір мәтін шектен тыс көп сөз болғандықтан ескерілмеді. Бұл құралға атау сәйкес келеді, себебі адам беттері пайдалы болғанымен, кейде тым ұзын болуы мүмкін.
Fedora үшін tldr Python тілінде жазылған. Оны dnf менеджері арқылы орнатуға болады. Әдетте, құрал жұмыс істеу үшін Интернетке қосылуды қажет етеді. Бірақ Fedora компаниясының Python клиенті бұл беттерді жүктеп алуға және желіден тыс кіру үшін кэштеуге мүмкіндік береді.
4.jq және sed/grep
jq пәрмен жолына арналған JSON процессоры. Ол sed немесе grep сияқты, бірақ JSON деректерімен жұмыс істеу үшін арнайы жасалған. Егер сіз күнделікті тапсырмаларда JSON қолданатын әзірлеуші немесе жүйелік әкімші болсаңыз, бұл сізге арналған құрал.
grep және sed сияқты стандартты мәтінді өңдеу құралдарына қарағанда jq негізгі артықшылығы оның 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 көптеген функциялары бар, бірақ оларды сипаттау үшін басқа мақала қажет. Қосымша ақпарат алу үшін хабарласыңыз
5. fd және табу
Мысалы, Git репозиторий каталогындағы файлдарды іздеу кезінде fd автоматты түрде жасырын файлдар мен ішкі каталогтарды, соның ішінде .git каталогын қоспайды, сонымен қатар .gitignore файлындағы қойылмалы таңбаларды елемеді. Тұтастай алғанда, ол бірінші әрекетте көбірек сәйкес нәтижелерді қайтару арқылы іздеуді жылдамдатады.
Әдепкі бойынша, fd ағымдағы каталогта регистрді ескермейтін іздеуді түсті шығыспен орындайды. Табу пәрмені арқылы бірдей іздеу пәрмен жолына қосымша параметрлерді енгізуді талап етеді. Мысалы, ағымдағы каталогтағы барлық .md (немесе .MD) файлдарын табу үшін келесідей табу пәрменін жазасыз:
$ find . -iname "*.md"
fd үшін бұл келесідей көрінеді:
$ fd .md
Бірақ кейбір жағдайларда fd қосымша опцияларды да қажет етеді: мысалы, жасырын файлдар мен каталогтарды қосқыңыз келсе, -H опциясын пайдалануыңыз керек, дегенмен бұл әдетте іздеу кезінде талап етілмейді.
fd көптеген Linux дистрибутивтері үшін қол жетімді. Fedora-да оны келесідей орнатуға болады:
$ sudo dnf install fd-find
Ештеңеден бас тартудың қажеті жоқ
Сіз жаңа Linux пәрмен жолы құралдарын пайдаланасыз ба? Әлде сіз тек ескілерге отырасыз ба? Бірақ сізде комбо бар шығар, солай емес пе? Пікірлерде тәжірибеңізбен бөлісіңіз.
Жарнама құқықтары туралы
Біздің көптеген клиенттеріміз артықшылықтарды бағалады эпикалық серверлер!
осы
Ақпарат көзі: www.habr.com