5 بدائل حديثة لأدوات سطر أوامر Linux القديمة

باستخدام البدائل الأكثر حداثة إلى جانب أدوات سطر الأوامر القديمة، يمكنك الاستمتاع بمزيد من المتعة وتحسين إنتاجيتك.

5 بدائل حديثة لأدوات سطر أوامر Linux القديمة

في عملنا اليومي على Linux/Unix، نستخدم العديد من أدوات سطر الأوامر - على سبيل المثال، du لمراقبة استخدام القرص وموارد النظام. بعض هذه الأدوات كانت موجودة منذ فترة طويلة. على سبيل المثال، ظهر الجزء العلوي في عام 1984، ويعود تاريخ الإصدار الأول من du إلى عام 1971.

على مر السنين، تم تحديث هذه الأدوات ونقلها إلى أنظمة مختلفة، ولكن بشكل عام لم تبتعد كثيرًا عن إصداراتها الأولى، كما لم يتغير مظهرها وسهولة استخدامها كثيرًا.

هذه أدوات رائعة يحتاجها العديد من مسؤولي النظام. ومع ذلك، قام المجتمع بتطوير أدوات بديلة تقدم فوائد إضافية. يتمتع بعضها ببساطة بواجهة حديثة وجميلة، بينما يعمل البعض الآخر على تحسين سهولة الاستخدام بشكل كبير. في هذه الترجمة، سنتحدث عن خمسة بدائل لأدوات سطر أوامر Linux القياسية.

1. NCDU مقابل دو

استخدام القرص NCurses (ncdu) يشبه du، ولكن مع واجهة تفاعلية تعتمد على مكتبة اللعنات. يعرض ncdu بنية الدليل التي تشغل معظم مساحة القرص لديك.

يقوم 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 مقابل الأعلى

هتوب هو عارض عمليات تفاعلي يشبه الجزء العلوي، ولكنه يوفر تجربة مستخدم رائعة بشكل خارج الصندوق. افتراضيًا، يعرض htop نفس المعلومات التي يعرضها top، ولكن بطريقة أكثر وضوحًا وملونة.

بشكل افتراضي، يبدو htop كما يلي:

5 بدائل حديثة لأدوات سطر أوامر Linux القديمة
على عكس الأعلى:

5 بدائل حديثة لأدوات سطر أوامر Linux القديمة
بالإضافة إلى ذلك، يعرض htop معلومات عامة حول النظام في الأعلى، ولوحة لتشغيل الأوامر باستخدام مفاتيح الوظائف في الأسفل. يمكنك تكوينه بالضغط على F2 لفتح شاشة التكوين. في الإعدادات، يمكنك تغيير الألوان، أو إضافة المقاييس أو إزالتها، أو تغيير خيارات عرض لوحة النظرة العامة.

على الرغم من أنه يمكنك تحقيق سهولة استخدام مماثلة عن طريق تعديل إعدادات أحدث الإصدارات من الإصدار العلوي، إلا أن htop يوفر تكوينات افتراضية ملائمة، مما يجعله أكثر عملية وأسهل في الاستخدام.

3. تلدر مقابل الرجل

تعرض أداة سطر الأوامر tldr معلومات مساعدة مبسطة حول الأوامر، ومعظمها أمثلة. تم تطويره من قبل المجتمع مشروع صفحات tldr.

ومن الجدير بالذكر أن tldr ليس بديلاً للإنسان. لا تزال أداة إخراج صفحة الدليل الأساسية والأكثر شمولاً. ومع ذلك، في بعض الحالات يكون الإنسان زائدًا عن الحاجة. عندما لا تحتاج إلى معلومات شاملة حول أمر ما، فأنت تحاول فقط تذكر استخداماته الأساسية. على سبيل المثال، تحتوي صفحة الدليل الخاصة بأمر الضفيرة على 3000 سطر تقريبًا. يبلغ طول صفحة 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 تعني "طويل جدًا؛ لم أقرأ": أي أنه تم تجاهل بعض النص بسبب الإسهاب المفرط فيه. الاسم مناسب لهذه الأداة لأن صفحات الدليل، رغم كونها مفيدة، قد تكون طويلة جدًا في بعض الأحيان.

بالنسبة لفيدورا، تمت كتابة tldr بلغة بايثون. يمكنك تثبيته باستخدام مدير dnf. عادةً ما تتطلب الأداة الوصول إلى الإنترنت لتعمل. لكن عميل Fedora's Python يسمح بتنزيل هذه الصفحات وتخزينها مؤقتًا للوصول إليها في وضع عدم الاتصال.

4.jq مقابل 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 العديد من الوظائف، ولكن هناك حاجة إلى مقال آخر لوصفها. للمزيد من المعلومات أرجو الأتصال صفحة المشروع jq أو إلى tldr.

5.fd مقابل البحث

fd هو بديل مبسط لأداة البحث. ليس المقصود من 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 الجديدة؟ أم تجلس حصرا على القديم؟ ولكن على الأرجح لديك التحرير والسرد، أليس كذلك؟ يرجى مشاركة تجربتك في التعليقات.

كإعلان

لقد قدر العديد من عملائنا بالفعل الفوائد خوادم ملحمية!
هذا خوادم افتراضية مزودة بمعالجات AMD EPYC‎تردد نواة وحدة المعالجة المركزية يصل إلى 3.4 جيجا هرتز. سيسمح لك الحد الأقصى من التكوين بالحصول على 128 نواة لوحدة المعالجة المركزية، و512 جيجابايت من ذاكرة الوصول العشوائي، و4000 جيجابايت من NVMe. عجلوا للطلب!

5 بدائل حديثة لأدوات سطر أوامر Linux القديمة

المصدر: www.habr.com

إضافة تعليق