5 Nā ʻano ʻē aʻe o kēia manawa i nā mea hana laina kauoha Linux kahiko

Ma ka hoʻohana ʻana i nā mea ʻē aʻe hou aʻe me nā mea hana laina kauoha kahiko, hiki iā ʻoe ke hauʻoli a hoʻomaikaʻi i kāu huahana.

5 Nā ʻano ʻē aʻe o kēia manawa i nā mea hana laina kauoha Linux kahiko

I kā mākou hana i kēlā me kēia lā ma Linux / Unix, hoʻohana mākou i nā mea hana laina kauoha - no ka laʻana, du e nānā i ka hoʻohana ʻana i ka disk a me nā kumuwaiwai ʻōnaehana. Ua lōʻihi kekahi o kēia mau mea hana. No ka laʻana, ʻike ʻia ka top i ka makahiki 1984, a ʻo ka hoʻokuʻu mua ʻana o du mai ka makahiki 1971.

I loko o nā makahiki, ua hoʻololi ʻia kēia mau mea hana a lawe ʻia i nā ʻōnaehana like ʻole, akā ma ke ʻano maʻamau ʻaʻole lākou i neʻe mamao mai kā lākou mau mana mua, ʻaʻole i loli nui ko lākou helehelena a me ka hoʻohana ʻana.

He mau mea hana maikaʻi kēia e pono ai nā luna hoʻonohonoho he nui. Eia naʻe, ua hoʻomohala ke kaiāulu i nā mea hana ʻē aʻe e hāʻawi ana i nā pono hou aʻe. Loaʻa kekahi o lākou i kahi interface hou, nani, aʻo nā mea ʻē aʻe e hoʻomaikaʻi nui i ka hoʻohana. Ma kēia unuhi ʻana, e kamaʻilio mākou e pili ana i ʻelima mau koho i nā mea hana laina kauoha Linux maʻamau.

1. ncdu vs du

NCurses Disk hoʻohana (ncdu) ua like me ka du, akā me kahi pilina pili e pili ana i ka waihona hōʻino. Hōʻike ʻo ncdu i ka papa kuhikuhi e lawe i ka hapa nui o kāu wahi disk.

Hoʻopili ʻo ncdu i ka disk a hōʻike i nā hopena i hoʻokaʻawale ʻia e nā papa kuhikuhi i hoʻohana pinepine ʻia, no ka laʻana:

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

Hiki iā ʻoe ke hoʻokele i nā mea komo me ka hoʻohana ʻana i nā kī pua. Inā ʻoe e kaomi iā Enter, e hōʻike ʻo ncdu i nā ʻike o ka papa kuhikuhi i koho ʻia:

--- /home/rgerardi/libvirt ----------------------------------------------------
                         /..
   91.3 GiB [##########] /images
    5.3 GiB [          ] /media

Hiki iā ʻoe ke hoʻohana i kēia mea hana, no ka laʻana, e hoʻoholo i nā faila e lawe ana i ka nui o ka nui o ka disk. Hiki iā ʻoe ke hele i ka papa kuhikuhi mua ma ke kaomi ʻana i ke kī pua hema. Me ka ncdu hiki iā ʻoe ke holoi i nā faila ma ke kaomi ʻana i ke kī d. Nīnau ʻo ia i ka hōʻoia ma mua o ka holoi ʻana. Inā makemake ʻoe e hoʻopau i ka hiʻohiʻona holoi no ka pale ʻana i ka nalo ʻana o nā faila waiwai, e hoʻohana i ke koho -r e hiki ai i ke ʻano heluhelu wale nō: ncdu -r.

Loaʻa ka ncdu no ka nui o nā kahua Linux a me nā māhele. No ka laʻana, hiki iā ʻoe ke hoʻohana i ka dnf e hoʻokomo iā ia ma Fedora pololei mai nā hale waihona mana:

$ sudo dnf install ncdu

2. htop vs luna

htop he mea nānā kaʻina hana pili like me luna, akā ma waho o ka pahu hāʻawi ia i kahi ʻike mea hoʻohana maikaʻi. Ma ka maʻamau, hōʻike ʻo htop i ka ʻike like me ka luna, akā ma ke ʻano ʻike a me ke kala.

E like me kēia ʻo ka htop maʻamau:

5 Nā ʻano ʻē aʻe o kēia manawa i nā mea hana laina kauoha Linux kahiko
ʻAʻole like me luna:

5 Nā ʻano ʻē aʻe o kēia manawa i nā mea hana laina kauoha Linux kahiko
Eia kekahi, hōʻike ʻo htop i ka ʻike ʻike e pili ana i ka ʻōnaehana ma luna, a me kahi panel no ka holo ʻana i nā kauoha me ka hoʻohana ʻana i nā kī hana ma lalo. Hiki iā ʻoe ke hoʻonohonoho iā ia ma ke kaomi ʻana i ka F2 e wehe i ka pale hoʻonohonoho. Ma nā ʻōkuhi, hiki iā ʻoe ke hoʻololi i nā waihoʻoluʻu, hoʻohui a wehe paha i nā ana, a i ʻole hoʻololi i nā koho hōʻike hōʻikeʻike.

ʻOiai hiki iā ʻoe ke hoʻokō i ka hoʻohana like ʻana ma o ka hoʻololi ʻana i nā hoʻonohonoho o nā mana hou loa o luna, hāʻawi ʻo htop i nā hoʻonohonoho paʻamau maʻalahi, e ʻoi aku ka maʻalahi a me ka maʻalahi o ka hoʻohana.

3. tldr vs kanaka

Hōʻike ka mea hana laina kauoha tldr i ka ʻike kōkua maʻalahi e pili ana i nā kauoha, ka hapa nui o nā laʻana. Ua kūkulu ʻia e ke kaiāulu papahana ʻaoʻao tldr.

Pono e hoʻomaopopo ʻaʻole ʻo tldr kahi pani no ke kanaka. ʻO ia nō ka canonical a ʻoi loa ka paahana puka kanaka ʻaoʻao. Eia nō naʻe, i kekahi mau hihia, ʻoi aku ka nui o ke kanaka. Inā ʻaʻole pono ʻoe i ka ʻike piha e pili ana i kahi kauoha, ke hoʻāʻo nei ʻoe e hoʻomanaʻo i kāna mau hoʻohana kumu. No ka laʻana, ʻo ka ʻaoʻao kanaka no ke kauoha curl aia ma kahi o 3000 mau laina. ʻO ka ʻaoʻao tldr no ka curl he 40 laina ka lōʻihi. Penei kona ʻāpana:


$ 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

ʻO TLDR ke ʻano o ka "lōʻihi loa; 'a'ole i heluhelu": 'o ia ho'i, 'a'ole i nānā 'ia kekahi kikokikona ma muli o ka nui o ka 'ōlelo. Ua kūpono ka inoa no kēia mea hana no ka mea ʻo nā ʻaoʻao kanaka, ʻoiai he pono, hiki ke lōʻihi i kekahi manawa.

No Fedora, ua kākau ʻia ʻo tldr ma Python. Hiki iā ʻoe ke hoʻokomo iā ia me ka hoʻohana ʻana i ka mana dnf. ʻO ka maʻamau, pono ka mea hana i ke komo pūnaewele e hana. Akā ʻo ka mea kūʻai aku ʻo Fedora's Python e ʻae i kēia mau ʻaoʻao e hoʻoiho a hūnā ʻia no ke komo ʻana ma waho.

4.jq vs sed/grep

ʻO jq kahi mea hana JSON no ka laina kauoha. Ua like ia me sed a i ʻole grep, akā ua hoʻolālā ʻia e hana me ka ʻikepili JSON. Inā he mea hoʻomohala ʻoe a i ʻole ka luna hoʻonohonoho ʻōnaehana e hoʻohana iā JSON i nā hana o kēlā me kēia lā, ʻo ia ka mea hana no ʻoe.

ʻO ka pōmaikaʻi nui o ka jq ma mua o nā mea hana hoʻoponopono kikokikona maʻamau e like me grep a me sed ʻo ia ka hoʻomaopopo ʻana i ka hoʻolālā ʻikepili JSON, e ʻae iā ʻoe e hana i nā nīnau paʻakikī i ka ʻōlelo hoʻokahi.

No ka laʻana, ke ʻimi nei ʻoe i nā inoa pahu i kēia faila 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"
  }
}

E holo i ka grep e ʻike i ka inoa string:

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

Ua hoʻihoʻi ʻo grep i nā laina āpau i loaʻa ka inoa huaʻōlelo. Hiki iā ʻoe ke hoʻohui i kekahi mau koho hou aʻe e grep e hoʻopaʻa iā ia, a hoʻohana i kekahi manipulation hōʻike maʻamau e ʻike i nā inoa pahu.

No ka loaʻa ʻana o ka hopena like me ka hoʻohana ʻana i ka jq, e kākau wale:

$ jq '.spec.containers[].name' k8s-pod.json
"busybox"
"nginx"

Hāʻawi kēia kauoha iā ʻoe i nā inoa o nā pahu ʻelua. Inā ʻoe e ʻimi wale nei i ka inoa o ka pahu lua, e hoʻohui i ka index of the array element i ka ʻōlelo:

$ jq '.spec.containers[1].name' k8s-pod.json
"nginx"

Ma muli o ka ʻike ʻana o jq e pili ana i ke ʻano o ka ʻikepili, hoʻopuka ia i nā hopena like inā hoʻololi iki ke ʻano o ka faila. ʻAʻole hiki ke hana pololei ʻo grep a me sed i kēia hihia.

He nui nā hana a jq, akā pono kekahi ʻatikala e wehewehe iā lākou. No ka 'ike hou aku e 'olu'olu e leka uila ʻaoʻao papahana jq a i tldr.

5. fd vs loaa

fd he mea hoʻololi maʻalahi i ka pono ʻimi. ʻAʻole i manaʻo ʻia ʻo Fd e hoʻololi iā ia: aia nā hoʻonohonoho maʻamau i hoʻonohonoho ʻia e ka paʻamau, e wehewehe ana i ke ala maʻamau i ka hana ʻana me nā faila.

No ka laʻana, i ka ʻimi ʻana i nā faila i loko o kahi waihona waihona Git, hoʻopau ʻokoʻa ʻo fd i nā faila huna a me nā subdirectories, me ka papa kuhikuhi .git, a me ka nānā ʻole ʻana i nā wildcards mai ka faila .gitignore. ʻO ka holoʻokoʻa, hoʻolalelale ia i ka huli ʻana ma ka hoʻihoʻi ʻana i nā hopena pili i ka hoʻāʻo mua.

ʻO ka mea paʻamau, hana ʻo fd i kahi hulina case-insensitive i ka papa kuhikuhi o kēia manawa, me ka hoʻopuka kala. ʻO ka huli like me ka hoʻohana ʻana i ke kauoha ʻimi pono e hoʻokomo i nā ʻāpana ʻē aʻe ma ka laina kauoha. No ka laʻana, no ka huli ʻana i nā faila .md (a i ʻole .MD) āpau i ka papa kuhikuhi o kēia manawa, e kākau ʻoe i kahi kauoha ʻimi e like me kēia:

$ find . -iname "*.md"

No fd ua like ia me keia:

$ fd .md

Akā i kekahi mau hihia, koi ʻia ka fd i nā koho hou aʻe: no ka laʻana, inā makemake ʻoe e hoʻokomo i nā faila huna a me nā papa kuhikuhi, pono ʻoe e hoʻohana i ka koho -H, ʻoiai ʻaʻole pono kēia i ka wā e ʻimi ai.

Loaʻa ka fd no nā māhele Linux he nui. Ma Fedora hiki ke hoʻokomo ʻia e like me kēia:

$ sudo dnf install fd-find

ʻAʻole pono ʻoe e haʻalele i kekahi mea

Ke hoʻohana nei ʻoe i nā mea hana laina kauoha Linux hou? A i ʻole noho wale ʻoe ma luna o nā mea kahiko? Akā ʻoi aku paha he hui pū kāu, ʻeā? E ʻoluʻolu e kaʻana like i kāu ʻike ma nā manaʻo.

Nā Pono o ka hoʻolaha

Ua mahalo ka nui o kā mākou mea kūʻai aku i nā pono nā kikowaena epic!
keia nā kikowaena virtual me nā kaʻina hana AMD EPYC, CPU kumu alapinepine a hiki i 3.4 GHz. ʻO ka hoʻonohonoho kiʻekiʻe loa e ʻae iā ʻoe e loaʻa kahi pahu - 128 CPU cores, 512 GB RAM, 4000 GB NVMe. E wikiwiki e kauoha!

5 Nā ʻano ʻē aʻe o kēia manawa i nā mea hana laina kauoha Linux kahiko

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka