Օգտագործելով ավելի ժամանակակից այլընտրանքներ հրամանի տողերի հին գործիքների հետ մեկտեղ, դուք կարող եք ավելի շատ զվարճանալ և նույնիսկ բարելավել ձեր արտադրողականությունը:
Linux/Unix-ի վրա մեր ամենօրյա աշխատանքի ընթացքում մենք օգտագործում ենք հրամանի տողի բազմաթիվ գործիքներ, օրինակ՝ սկավառակի օգտագործումը և համակարգի ռեսուրսները վերահսկելու համար: Այս գործիքներից մի քանիսը գոյություն ունեն երկար ժամանակ: Օրինակ՝ թոփը հայտնվեց 1984 թվականին, իսկ du-ի առաջին թողարկումը սկսվեց 1971 թվականին։
Տարիների ընթացքում այս գործիքները արդիականացվել և տեղափոխվել են տարբեր համակարգեր, բայց ընդհանուր առմամբ դրանք շատ չեն հեռացել իրենց առաջին տարբերակներից, դրանց տեսքն ու օգտագործելիությունը նույնպես առանձնապես չեն փոխվել։
Սրանք հիանալի գործիքներ են, որոնք շատ համակարգային ադմինիստրատորների կարիք ունեն: Այնուամենայնիվ, համայնքը մշակել է այլընտրանքային գործիքներ, որոնք առաջարկում են լրացուցիչ առավելություններ: Նրանցից ոմանք պարզապես ունեն ժամանակակից, գեղեցիկ ինտերֆեյս, իսկ մյուսները մեծապես բարելավում են օգտագործելիությունը: Այս թարգմանության մեջ մենք կխոսենք ստանդարտ Linux հրամանի տող գործիքների հինգ այլընտրանքների մասին:
1. ncdu vs du
NCurses սկավառակի օգտագործումը (
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-ը վերևում ցուցադրում է համակարգի մասին ընդհանուր տեղեկատվությունը, իսկ ներքևում գտնվող ֆունկցիոնալ ստեղների միջոցով հրամաններ գործարկելու վահանակ: Դուք կարող եք այն կարգավորել՝ սեղմելով 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 manager: Որպես կանոն, գործիքը գործելու համար պահանջում է ինտերնետ հասանելիություն: Բայց Fedora-ի Python հաճախորդը թույլ է տալիս այս էջերը ներբեռնել և քեշավորել անցանց մուտքի համար:
4.jq vs 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-ն ունի բազմաթիվ գործառույթներ, սակայն դրանք նկարագրելու համար անհրաժեշտ է մեկ այլ հոդված։ Լրացուցիչ տեղեկությունների համար խնդրում ենք դիմել
5. fd vs գտնել
Օրինակ, երբ որոնում եք ֆայլեր Git պահոցի գրացուցակում, fd-ն ինքնաբերաբար բացառում է թաքնված ֆայլերը և ենթագրացուցակները, ներառյալ .git գրացուցակը, ինչպես նաև անտեսում է .gitignore ֆայլի նիշերը: Ընդհանուր առմամբ, այն արագացնում է որոնումները՝ վերադարձնելով ավելի համապատասխան արդյունքներ առաջին փորձից:
Լռելյայնորեն, fd-ն ընթացիկ գրացուցակում կատարում է մեծատառերի անզգայուն որոնում՝ գունավոր ելքով: Գտնել հրամանի օգտագործմամբ նույն որոնումը պահանջում է հրամանի տողում լրացուցիչ պարամետրեր մուտքագրել: Օրինակ, ընթացիկ գրացուցակում բոլոր .md (կամ .MD) ֆայլերը գտնելու համար դուք պետք է գրեք որոնման հրամանը, ինչպիսին է.
$ find . -iname "*.md"
fd-ի համար այն ունի հետևյալ տեսքը.
$ fd .md
Բայց որոշ դեպքերում fd-ը պահանջում է նաև լրացուցիչ տարբերակներ. օրինակ, եթե ցանկանում եք ներառել թաքնված ֆայլեր և գրացուցակներ, ապա պետք է օգտագործեք -H տարբերակը, չնայած որոնելիս դա սովորաբար չի պահանջվում:
fd-ը հասանելի է Linux-ի բազմաթիվ բաշխումների համար: Fedora-ում այն կարող է տեղադրվել այսպես.
$ sudo dnf install fd-find
Պետք չէ ոչինչ զիջել
Դուք օգտագործում եք Linux հրամանի տողի նոր գործիքները: Թե՞ բացառապես հների վրա եք նստում։ Բայց, ամենայն հավանականությամբ, դուք ունեք կոմբինացիա, այնպես չէ՞: Խնդրում ենք կիսվել ձեր փորձով մեկնաբանություններում։
Գովազդի իրավունքների մասին
Մեր հաճախորդներից շատերն արդեն գնահատել են առավելությունները էպիկական սերվերներ!
այս
Source: www.habr.com