باستخدام البدائل الأكثر حداثة إلى جانب أدوات سطر الأوامر القديمة، يمكنك الاستمتاع بمزيد من المتعة وتحسين إنتاجيتك.
في عملنا اليومي على Linux/Unix، نستخدم العديد من أدوات سطر الأوامر - على سبيل المثال، du لمراقبة استخدام القرص وموارد النظام. بعض هذه الأدوات كانت موجودة منذ فترة طويلة. على سبيل المثال، ظهر الجزء العلوي في عام 1984، ويعود تاريخ الإصدار الأول من du إلى عام 1971.
على مر السنين، تم تحديث هذه الأدوات ونقلها إلى أنظمة مختلفة، ولكن بشكل عام لم تبتعد كثيرًا عن إصداراتها الأولى، كما لم يتغير مظهرها وسهولة استخدامها كثيرًا.
هذه أدوات رائعة يحتاجها العديد من مسؤولي النظام. ومع ذلك، قام المجتمع بتطوير أدوات بديلة تقدم فوائد إضافية. يتمتع بعضها ببساطة بواجهة حديثة وجميلة، بينما يعمل البعض الآخر على تحسين سهولة الاستخدام بشكل كبير. في هذه الترجمة، سنتحدث عن خمسة بدائل لأدوات سطر أوامر Linux القياسية.
1. NCDU مقابل دو
استخدام القرص 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 مقابل الأعلى
بشكل افتراضي، يبدو htop كما يلي:
على عكس الأعلى:
بالإضافة إلى ذلك، يعرض htop معلومات عامة حول النظام في الأعلى، ولوحة لتشغيل الأوامر باستخدام مفاتيح الوظائف في الأسفل. يمكنك تكوينه بالضغط على F2 لفتح شاشة التكوين. في الإعدادات، يمكنك تغيير الألوان، أو إضافة المقاييس أو إزالتها، أو تغيير خيارات عرض لوحة النظرة العامة.
على الرغم من أنه يمكنك تحقيق سهولة استخدام مماثلة عن طريق تعديل إعدادات أحدث الإصدارات من الإصدار العلوي، إلا أن htop يوفر تكوينات افتراضية ملائمة، مما يجعله أكثر عملية وأسهل في الاستخدام.
3. تلدر مقابل الرجل
تعرض أداة سطر الأوامر 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 العديد من الوظائف، ولكن هناك حاجة إلى مقال آخر لوصفها. للمزيد من المعلومات أرجو الأتصال
5.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 الجديدة؟ أم تجلس حصرا على القديم؟ ولكن على الأرجح لديك التحرير والسرد، أليس كذلك؟ يرجى مشاركة تجربتك في التعليقات.
كإعلان
لقد قدر العديد من عملائنا بالفعل الفوائد خوادم ملحمية!
هذا
المصدر: www.habr.com