Kwa kutumia njia mbadala za kisasa zaidi pamoja na zana za zamani za mstari wa amri, unaweza kujifurahisha zaidi na hata kuboresha tija yako.
Katika kazi yetu ya kila siku kwenye Linux/Unix, tunatumia zana nyingi za mstari wa amri - kwa mfano, du kufuatilia matumizi ya diski na rasilimali za mfumo. Baadhi ya zana hizi zimekuwepo kwa muda mrefu. Kwa mfano, top ilionekana mnamo 1984, na toleo la kwanza la du lilianzia 1971.
Kwa miaka mingi, zana hizi zimekuwa za kisasa na zimewekwa kwa mifumo tofauti, lakini kwa ujumla hawajahamia mbali na matoleo yao ya kwanza, kuonekana kwao na utumiaji pia haujabadilika sana.
Hizi ni zana nzuri ambazo wasimamizi wengi wa mfumo wanahitaji. Hata hivyo, jumuiya imeunda zana mbadala zinazotoa manufaa ya ziada. Baadhi yao wana kiolesura cha kisasa, kizuri, wakati wengine huboresha sana usability. Katika tafsiri hii, tutazungumza kuhusu njia tano mbadala za zana za mstari wa amri za Linux.
1. ncdu vs du
NCurses Disk Matumizi (
ncdu huchambua diski na kisha kuonyesha matokeo yaliyopangwa na saraka au faili zinazotumiwa mara nyingi, kwa mfano:
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
Unaweza kupitia maingizo kwa kutumia vitufe vya vishale. Ukibonyeza Enter, ncdu itaonyesha yaliyomo kwenye saraka iliyochaguliwa:
--- /home/rgerardi/libvirt ----------------------------------------------------
/..
91.3 GiB [##########] /images
5.3 GiB [ ] /media
Unaweza kutumia zana hii, kwa mfano, kuamua ni faili gani zinazochukua nafasi kubwa ya diski. Unaweza kwenda kwenye saraka iliyotangulia kwa kubonyeza kitufe cha mshale wa kushoto. Na ncdu unaweza kufuta faili kwa kubonyeza kitufe cha d. Inauliza uthibitisho kabla ya kufuta. Ikiwa ungependa kuzima kipengele cha kufuta ili kuzuia upotevu wa kimakosa wa faili muhimu, tumia chaguo la -r ili kuwezesha hali ya ufikiaji wa kusoma pekee: ncdu -r.
ncdu inapatikana kwa majukwaa mengi ya Linux na usambazaji. Kwa mfano, unaweza kutumia dnf kuisanikisha kwenye Fedora moja kwa moja kutoka kwa hazina rasmi:
$ sudo dnf install ncdu
2. htop dhidi ya juu
Kwa chaguo-msingi htop inaonekana kama hii:
Tofauti na juu:
Kwa kuongeza, htop inaonyesha maelezo ya muhtasari kuhusu mfumo ulio juu, na jopo la kuendesha amri kwa kutumia funguo za kazi chini. Unaweza kuisanidi kwa kubonyeza F2 ili kufungua skrini ya usanidi. Katika Mipangilio, unaweza kubadilisha rangi, kuongeza au kuondoa vipimo, au kubadilisha chaguo za kuonyesha kidirisha cha muhtasari.
Ingawa unaweza kufikia utumiaji sawa kwa kubadilisha mipangilio ya matoleo ya hivi karibuni ya top, htop hutoa usanidi chaguo-msingi rahisi, ambayo inafanya kuwa ya vitendo zaidi na rahisi kutumia.
3. tldr dhidi ya mtu
Zana ya mstari wa amri ya tldr huonyesha maelezo ya usaidizi yaliyorahisishwa kuhusu amri, hasa mifano. Ilitengenezwa na jamii
Inafaa kuzingatia kuwa tldr sio mbadala wa mwanadamu. Bado ni zana ya kisheria na pana zaidi ya kutoa ukurasa wa mwanadamu. Hata hivyo, katika baadhi ya matukio binadamu ni redundant. Wakati hauitaji habari kamili juu ya amri, unajaribu tu kukumbuka matumizi yake ya kimsingi. Kwa mfano, ukurasa wa mtu wa amri ya curl una karibu mistari 3000. Ukurasa wa tldr wa curl una urefu wa mistari 40. Sehemu yake inaonekana kama hii:
$ 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 maana yake ni βmuda mrefu sana; hawakusoma": yaani, maandishi fulani yalipuuzwa kwa sababu ya vitenzi vyake vingi. Jina linafaa kwa zana hii kwa sababu kurasa za mtu, ingawa ni muhimu, wakati mwingine zinaweza kuwa ndefu sana.
Kwa Fedora, tldr iliandikwa kwa Python. Unaweza kuisanikisha kwa kutumia dnf manager. Kwa kawaida, chombo kinahitaji upatikanaji wa mtandao ili kufanya kazi. Lakini mteja wa Python wa Fedora huruhusu kurasa hizi kupakuliwa na kuhifadhiwa kwa ufikiaji wa nje ya mkondo.
4.jq dhidi ya sed/grep
jq ni kichakataji cha JSON cha safu ya amri. Ni sawa na sed au grep, lakini imeundwa mahsusi kufanya kazi na data ya JSON. Ikiwa wewe ni msanidi programu au msimamizi wa mfumo ambaye hutumia JSON katika kazi za kila siku, hiki ndicho chombo chako.
Faida kuu ya jq juu ya zana za kawaida za usindikaji wa maandishi kama vile grep na sed ni kwamba inaelewa muundo wa data wa JSON, hukuruhusu kuunda maswali changamano kwa usemi mmoja.
Kwa mfano, unajaribu kutafuta majina ya kontena katika faili hii ya 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"
}
}
Endesha grep kupata jina la kamba:
$ grep name k8s-pod.json
"name": "myapp",
"namespace": "project1"
"name": "busybox"
"name": "nginx",
grep ilirudisha mistari yote iliyo na jina la neno. Unaweza kuongeza vigezo vichache zaidi kwa grep ili kuizuia, na kwa udanganyifu wa kawaida wa kujieleza pata majina ya kontena.
Ili kupata matokeo sawa kwa kutumia jq, andika tu:
$ jq '.spec.containers[].name' k8s-pod.json
"busybox"
"nginx"
Amri hii itakupa majina ya vyombo vyote viwili. Ikiwa unatafuta tu jina la kontena la pili, ongeza faharisi ya safu ya safu kwenye usemi:
$ jq '.spec.containers[1].name' k8s-pod.json
"nginx"
Kwa kuwa jq inajua juu ya muundo wa data, hutoa matokeo sawa hata ikiwa umbizo la faili linabadilika kidogo. grep na sed inaweza kufanya kazi kwa usahihi katika kesi hii.
jq ina kazi nyingi, lakini kifungu kingine kinahitajika kuzielezea. Kwa habari zaidi tafadhali wasiliana
5. fd dhidi ya kupata
Kwa mfano, unapotafuta faili katika saraka ya hazina ya Git, fd hutenga kiotomatiki faili zilizofichwa na saraka ndogo, ikiwa ni pamoja na saraka ya .git, na pia hupuuza kadi-mwitu kutoka kwa faili ya .gitignore. Kwa ujumla, inaharakisha utafutaji kwa kurudisha matokeo muhimu zaidi kwenye jaribio la kwanza.
Kwa chaguo-msingi, fd hufanya utafutaji usiojali kesi katika saraka ya sasa, na matokeo ya rangi. Utafutaji sawa kwa kutumia amri ya kupata unahitaji kuingiza vigezo vya ziada kwenye mstari wa amri. Kwa mfano, ili kupata faili zote za .md (au .MD) katika saraka ya sasa, ungeandika amri ya kupata kama hii:
$ find . -iname "*.md"
Kwa fd inaonekana kama hii:
$ fd .md
Lakini katika hali zingine, fd pia inahitaji chaguzi za ziada: kwa mfano, ikiwa unataka kujumuisha faili zilizofichwa na saraka, lazima utumie -H chaguo, ingawa hii kawaida haihitajiki wakati wa kutafuta.
fd inapatikana kwa usambazaji wengi wa Linux. Katika Fedora inaweza kusanikishwa kama hii:
$ sudo dnf install fd-find
Huna budi kuacha chochote
Je, unatumia zana mpya za mstari wa amri za Linux? Au unakaa pekee kwenye zile za zamani? Lakini uwezekano mkubwa una combo, sawa? Tafadhali shiriki uzoefu wako katika maoni.
Haki za Matangazo
Wateja wetu wengi tayari wamethamini faida seva za epic!
Ni
Chanzo: mapenzi.com