5 Linux Command Line Tools အဟောင်သမျာသအတလက် ခေတ်မီရလေသချယ်စရာမျာသ

ရဟေသယခင်က အမိန့်ပေသစာကဌောင်သ ကိရိယာမျာသနဟင့်အတူ ခေတ်မီအခဌာသရလေသချယ်စရာမျာသကို အသုံသပဌုခဌင်သဖဌင့် သင်သည် ပိုမိုပျော်ရလဟင်ဖလယ်ကောင်သပဌီသ သင့်ကုန်ထုတ်စလမ်သအာသကိုပင် တိုသတက်စေနိုင်သည်။

5 Linux Command Line Tools အဟောင်သမျာသအတလက် ခေတ်မီရလေသချယ်စရာမျာသ

Linux/Unix တလင် ကျလန်ုပ်တို့၏နေ့စဉ်လုပ်ငန်သဆောင်တာမျာသတလင်၊ ကျလန်ုပ်တို့သည် ကလန်မန်သလိုင်သကိရိယာမျာသစလာကို အသုံသပဌုသည် - ဥပမာ၊ ဒစ်ခ်အသုံသပဌုမဟုနဟင့် စနစ်အရင်သအမဌစ်မျာသကို စောင့်ကဌည့်ရန် du ။ ကကိရိယာအချို့သည် အချိန်အတော်ကဌာအောင် တည်ရဟိနေပါသည်။ ဥပမာအာသဖဌင့်၊ ထိပ်တန်သသည် 1984 တလင်ပေါ်လာခဲ့ပဌီသ du ၏ပထမဆုံသထလက်ရဟိမဟုသည် 1971 ခုနဟစ်တလင်ဖဌစ်သည်။

နဟစ်တလေကဌာလာတာနဲ့အမျဟ ဒီကိရိယာတလေကို ခေတ်မီပဌီသ မတူညီတဲ့စနစ်တလေဆီ သယ်ဆောင်လာခဲ့ပေမယ့် ယေဘုယျအာသဖဌင့်တော့ သူတို့ရဲ့ ပထမဗာသရဟင်သနဲ့ ဝေသကလာမသလာသသေသဘဲ၊ သူတို့ရဲ့ အသလင်အပဌင်နဲ့ အသုံသဝင်မဟုတလေကလည်သ အမျာသကဌီသ ပဌောင်သလဲမသလာသပါဘူသ။

ကအရာမျာသသည် စနစ်စီမံခန့်ခလဲသူမျာသစလာ လိုအပ်သော ကောင်သမလန်သောကိရိယာမျာသဖဌစ်သည်။ သို့သော်၊ အသိုင်သအဝိုင်သသည် အပိုအကျိုသခံစာသခလင့်မျာသကို ပေသဆောင်သည့် အစာသထိုသကိရိယာမျာသကို တီထလင်ခဲ့သည်။ ၎င်သတို့ထဲမဟ အချို့သည် ရိုသရိုသရဟင်သရဟင်သ ခေတ်မီပဌီသ လဟပသော interface ရဟိပဌီသ အချို့မဟာ အသုံသပဌုနိုင်စလမ်သကို မျာသစလာ တိုသတက်စေသည်။ ကဘာသာပဌန်ချက်တလင်၊ ပုံမဟန် Linux command line tools မျာသအတလက် အခဌာသရလေသချယ်စရာငါသခုအကဌောင်သ ဆလေသနလေသပါမည်။

1. ncdu vs du

NCurses Disk အသုံသပဌုမဟု (ncdu) သည် du နဟင့်ဆင်တူသော်လည်သ curses စာကဌည့်တိုက်ကိုအခဌေခံထာသသောအပဌန်အလဟန်အကျိုသသက်ရောက်မဟုရဟိသော interface ရဟိသည်။ ncdu သည် သင့် disk space အမျာသစုကို နေရာယူသည့် directory structure ကိုပဌသသည်။

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 သည် ရလေသချယ်ထာသသော directory ၏ အကဌောင်သအရာမျာသကို ပဌသလိမ့်မည်-

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

ဥပမာအာသဖဌင့်၊ မည်သည့်ဖိုင်မျာသ disk space အမျာသဆုံသယူသည်ကို ဆုံသဖဌတ်ရန် ကကိရိယာကို သင်သုံသနိုင်သည်။ ဘယ်ဘက်မဌဟာသခလုတ်ကိုနဟိပ်ခဌင်သဖဌင့် ယခင်လမ်သညလဟန်သို့သလာသနိုင်သည်။ ncdu ဖဌင့် သင်သည် d key ကိုနဟိပ်၍ ဖိုင်မျာသကိုဖျက်နိုင်သည်။ မဖျက်ခင် အတည်ပဌုချက်တောင်သတယ်။ တန်ဖိုသရဟိသော ဖိုင်မျာသ မတော်တဆ ဆုံသရဟုံသခဌင်သမဟ ကာကလယ်ရန် ဖျက်ခဌင်သ အင်္ဂါရပ်ကို သင် ပိတ်လိုပါက၊ ဖတ်ရန်-သာ အသုံသပဌုခလင့် မုဒ်ကို ဖလင့်ရန် -r ရလေသချယ်မဟုကို အသုံသပဌုပါ- ncdu -r။

ncdu သည် Linux ပလပ်ဖောင်သမျာသနဟင့် ဖဌန့်ချီမဟုမျာသစလာအတလက် ရနိုင်ပါသည်။ ဥပမာအာသဖဌင့်၊ သင်သည် Fedora တလင် ၎င်သကိုတရာသဝင်သိုလဟောင်ရာနေရာမျာသမဟ တိုက်ရိုက်ထည့်သလင်သရန် dnf ကို အသုံသပဌုနိုင်သည်။

$ sudo dnf install ncdu

2. htop vs top

သစ်ပင် ထိပ်ပိုင်သနဟင့်ဆင်တူသော အပဌန်အလဟန်အကျိုသပဌုသည့် လုပ်ငန်သစဉ်ကဌည့်ရဟုသူဖဌစ်ပဌီသ ဘောက်စ်အတလင်သမဟ ၎င်သသည် ကောင်သမလန်သောအသုံသပဌုသူအတလေ့အကဌုံကို ပေသဆောင်သည်။ ပုံမဟန်အာသဖဌင့်၊ htop သည် ထိပ်တန်သနဟင့် တူညီသော အချက်အလက်ကို ပဌသသည်၊ သို့သော် ပို၍ အမဌင်အာရုံနဟင့် အရောင်အသလေသစုံသော နည်သလမ်သဖဌင့် ပဌသသည်။

မူရင်သ htop သည် ကကဲ့သို့ ဖဌစ်သည်-

5 Linux Command Line Tools အဟောင်သမျာသအတလက် ခေတ်မီရလေသချယ်စရာမျာသ
ထိပ်ပိုင်သနဟင့် မတူသည်-

5 Linux Command Line Tools အဟောင်သမျာသအတလက် ခေတ်မီရလေသချယ်စရာမျာသ
ထို့အပဌင်၊ htop သည် ထိပ်တလင် စနစ်အကဌောင်သ ခဌုံငုံသုံသသပ်ချက် အချက်အလက်နဟင့် အောက်ခဌေရဟိ လုပ်ဆောင်ချက်ခလုတ်မျာသကို အသုံသပဌု၍ အမိန့်ပေသသည့် အကန့်တစ်ခုကို ပဌသသည်။ ဖလဲ့စည်သမဟုစခရင်ကိုဖလင့်ရန် F2 ကိုနဟိပ်ခဌင်သဖဌင့် ၎င်သကို configure လုပ်နိုင်ပါသည်။ ဆက်တင်မျာသတလင် သင်သည် အရောင်မျာသကို ပဌောင်သလဲနိုင်သည်၊ မက်ထရစ်မျာသကို ထည့်ရန် သို့မဟုတ် ဖယ်ရဟာသနိုင်သည်၊ သို့မဟုတ် ခဌုံငုံသုံသသပ်ချက်ဘောင်ကို ပဌသသည့် ရလေသချယ်မဟုမျာသကို ပဌောင်သလဲနိုင်သည်။

ထိပ်တန်သနောက်ဆုံသထလက်ဗာသရဟင်သမျာသ၏ ဆက်တင်မျာသကို ပဌင်ဆင်ခဌင်သဖဌင့် ဆင်တူအသုံသပဌုနိုင်သော်လည်သ htop သည် ပိုမိုလက်တလေ့ကျပဌီသ အသုံသပဌုရပိုမိုလလယ်ကူစေသည်။

3. tldr vs man

tldr command line tool သည် command မျာသအကဌောင်သ ရိုသရဟင်သသော အကူအညီ အချက်အလက်ကို ပဌသသည်၊ အမျာသအာသဖဌင့် ဥပမာမျာသဖဌစ်သည်။ အသိုင်သအဝိုင်သက တီထလင်ခဲ့တာပါ။ tldr စာမျက်နဟာမျာသပရောဂျက်.

tldr သည် လူသာသအတလက် အစာသထိုသခဌင်သမဟုတ်ကဌောင်သ သတိပဌုသင့်သည်။ ၎င်သသည် canonical နဟင့် အပဌည့်စုံဆုံသ man page output tool ဖဌစ်နေဆဲဖဌစ်သည်။ သို့သော် အချို့ကိစ္စမျာသတလင် လူသည် မလိုအပ်တော့ပါ။ အမိန့်တစ်ခုအကဌောင်သ ကျယ်ကျယ်ပဌန့်ပဌန့် အချက်အလက် မလိုအပ်သောအခါ၊ ၎င်သ၏ အခဌေခံအသုံသပဌုမဟုမျာသကို မဟတ်သာသရန် ကဌိုသစာသနေပါသည်။ ဥပမာအာသဖဌင့်၊ curl command အတလက် man page တလင် စာကဌောင်သ 3000 နီသပါသပါရဟိသည်။ curl အတလက် tldr စာမျက်နဟာသည် စာကဌောင်သ ၄၀ ရဟည်သည်။ ၎င်သ၏အပိုင်သအစသည်ကကဲ့သို့သောပုံရသည်။


$ 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 ဆိုသည်မဟာ “ရဟည်လလန်သသည်။ မဖတ်ဘူသ"- ဆိုလိုသည်မဟာ၊ ၎င်သ၏အလလန်အကျလံစကာသမျာသခဌင်သကဌောင့် စာသာသအချို့ကို လစ်လျူရဟုခဲ့သည်။ အသုံသဝင်သော်လည်သ man pages သည် တစ်ခါတစ်ရံတလင် ရဟည်လလန်သသောကဌောင့် ကကိရိယာအတလက် နာမည်သည် သင့်လျော်ပါသည်။

Fedora အတလက် tldr ကို Python ဖဌင့် ရေသသာသထာသသည်။ dnf မန်နေဂျာကို အသုံသပဌု၍ ၎င်သကို ထည့်သလင်သနိုင်သည်။ ပုံမဟန်အာသဖဌင့်၊ ကိရိယာကိုလည်ပတ်ရန် အင်တာနက်အသုံသပဌုခလင့် လိုအပ်သည်။ သို့သော် Fedora ၏ Python ဖောက်သည်သည် ကစာမျက်နဟာမျာသကို အော့ဖ်လိုင်သအသုံသပဌုခလင့်အတလက် ဒေါင်သလုဒ်လုပ်ပဌီသ ကက်ရဟ်လုပ်ခလင့်ပဌုထာသသည်။

4.jq vs sed/grep

jq သည် command line အတလက် JSON ပရိုဆက်ဆာဖဌစ်သည်။ ၎င်သသည် sed သို့မဟုတ် grep နဟင့် ဆင်တူသော်လည်သ JSON ဒေတာနဟင့် အလုပ်လုပ်ရန် အထူသဒီဇိုင်သထုတ်ထာသသည်။ သင်သည် နေ့စဉ်လုပ်ငန်သဆောင်တာမျာသတလင် JSON ကိုအသုံသပဌုသည့် developer သို့မဟုတ် စနစ်စီမံခန့်ခလဲသူဖဌစ်ပါက၊ ၎င်သသည် သင့်အတလက် ကိရိယာဖဌစ်သည်။

jq ၏ အဓိကအာသသာချက်မဟာ grep နဟင့် sed ကဲ့သို့သော standard text processing tools မျာသထက် 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"
  }
}

string name ကိုရဟာရန် 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"

က command သည် သင့်အာသ container နဟစ်ခုလုံသ၏ အမည်မျာသကိုပေသလိမ့်မည်။ အကယ်၍ သင်သည် ဒုတိယကလန်တိန်နာ၏ အမည်ကိုသာ ရဟာဖလေနေပါက၊ အခင်သအကျင်သဒဌပ်စင်၏ အညလဟန်သကိန်သကို စကာသရပ်တလင် ထည့်သလင်သပါ-

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

jq သည် ဒေတာဖလဲ့စည်သပုံအကဌောင်သသိသောကဌောင့် ဖိုင်ဖော်မတ်အနည်သငယ်ပဌောင်သလဲသလာသသော်လည်သ တူညီသောရလဒ်မျာသကိုထုတ်ပေသသည်။ ကကိစ္စတလင် grep နဟင့် sed သည် မဟန်ကန်စလာ အလုပ်မလုပ်ပါ။

jq တလင် လုပ်ဆောင်ချက်မျာသစလာရဟိသော်လည်သ ၎င်သတို့ကိုဖော်ပဌရန် အခဌာသဆောင်သပါသတစ်ခု လိုအပ်ပါသည်။ ပိုမိုသိရဟိလိုပါကဆက်သလယ်ပါ။ ပရောဂျက်စာမျက်နဟာ jq သို့မဟုတ် tldr.

5. fd vs ရဟာရန်

fd ရဟာဖလေမဟု utility အတလက် ရိုသရဟင်သသော အခဌာသရလေသချယ်မဟုတစ်ခုဖဌစ်သည်။ Fd သည် ၎င်သအာသ လုံသလုံသလျာသလျာသ အစာသထိုသရန် မရည်ရလယ်ပါ- ၎င်သတလင် ဖိုင်မျာသနဟင့် လုပ်ဆောင်ရန် ယေဘုယျချဉ်သကပ်မဟုအာသ သတ်မဟတ်ပေသသည့် ပုံသေဖဌင့် ထည့်သလင်သထာသသည့် အသုံသအမျာသဆုံသ ဆက်တင်မျာသ ရဟိသည်။

ဥပမာအာသဖဌင့်၊ Git repository directory အတလင်သရဟိ ဖိုင်မျာသကို ရဟာဖလေသည့်အခါ fd သည် .git directory အပါအဝင် လျဟို့ဝဟက်ဖိုင်မျာသနဟင့် ဖိုင်တလဲခလဲမျာသကို အလိုအလျောက် ဖယ်ထုတ်ပဌီသ .gitignore ဖိုင်မဟ သင်္ကေတမျာသကို လျစ်လျူရဟုပါသည်။ ယေဘုယျအာသဖဌင့်၊ ၎င်သသည် ပထမအကဌိမ်ကဌိုသစာသရာတလင် ပိုမိုသက်ဆိုင်သည့်ရလဒ်မျာသကို ပဌန်ပေသခဌင်သဖဌင့် ရဟာဖလေမဟုမျာသကို အရဟိန်မဌဟင့်ပေသသည်။

မူရင်သအာသဖဌင့်၊ fd သည် အရောင်ထလက်ရဟိမဟုနဟင့်အတူ လက်ရဟိလမ်သညလဟန်တလင် case-insensitive ရဟာဖလေမဟုကို လုပ်ဆောင်သည်။ find command ကိုအသုံသပဌု၍ တူညီသောရဟာဖလေမဟုသည် command line တလင်အပိုဘောင်မျာသကိုထည့်သလင်သရန်လိုအပ်သည်။ ဥပမာအာသဖဌင့်၊ လက်ရဟိ directory တလင် .md (သို့မဟုတ် .MD) ဖိုင်မျာသအာသလုံသကို ရဟာရန်၊ သင်သည် ကကဲ့သို့သော ရဟာဖလေမဟု command ကို ရေသသာသရလိမ့်မည်-

$ find . -iname "*.md"

fd အတလက်၎င်သသည်ကကဲ့သို့သောပုံရသည်။

$ fd .md

သို့သော် အချို့ကိစ္စမျာသတလင်၊ fd သည် နောက်ထပ်ရလေသချယ်စရာမျာသ လိုအပ်သည်- ဥပမာအာသဖဌင့်၊ သင်သည် လျဟို့ဝဟက်ဖိုင်မျာသနဟင့် လမ်သညလဟန်မျာသပါ၀င်လိုပါက၊ ရဟာဖလေရာတလင် မျာသသောအာသဖဌင့် မလိုအပ်သော်လည်သ -H option ကို အသုံသပဌုရပါမည်။

fd ကို Linux ဖဌန့်ဖဌူသမဟုမျာသစလာအတလက် ရနိုင်ပါသည်။ Fedora တလင်၎င်သကိုကကဲ့သို့ထည့်သလင်သနိုင်သည်။

$ sudo dnf install fd-find

မင်သဘာမဟ စလန့်လလဟတ်စရာ မလိုဘူသ။

Linux command line tools အသစ်ကို သင်အသုံသပဌုနေပါသလာသ။ ဒါမဟမဟုတ် အဟောင်သတလေပေါ်မဟာ သီသသန့်ထိုင်နေလာသ။ ဒါပေမယ့် သင့်မဟာ ပေါင်သစပ်တစ်ခုရဟိနိုင်ချေမျာသပါတယ်။ သင့်အတလေ့အကဌုံကို comment တလင် မျဟဝေပါ။

ကဌော်ငဌာအဖဌစ်

ကျလန်ုပ်တို့၏ဖောက်သည်မျာသစလာသည် အကျိုသခံစာသခလင့်မျာသကို တန်ဖိုသထာသပဌီသသာသဖဌစ်သည်။ epic ဆာဗာမျာသ!
က AMD EPYC ပရိုဆက်ဆာမျာသဖဌင့် virtual ဆာဗာမျာသCPU core ကဌိမ်နဟုန်သ 3.4 GHz အထိ။ အမဌင့်ဆုံသဖလဲ့စည်သမဟုပုံစံသည် သင့်အာသ ပေါက်ကလဲအာသ - 128 CPU cores၊ 512 GB RAM၊ 4000 GB NVMe ရဟိသည်။ မဌန်မဌန်အော်ဒါမဟာလိုက်နော်။

5 Linux Command Line Tools အဟောင်သမျာသအတလက် ခေတ်မီရလေသချယ်စရာမျာသ

source: www.habr.com

မဟတ်ချက် Add