با استفاده از جایگزین های مدرن تر در کنار ابزارهای خط فرمان قدیمی تر، می توانید لذت بیشتری ببرید و حتی بهره وری خود را بهبود ببخشید.
در کار روزانه خود بر روی لینوکس/یونیکس، از بسیاری از ابزارهای خط فرمان استفاده می کنیم - به عنوان مثال، برای نظارت بر استفاده از دیسک و منابع سیستم. برخی از این ابزارها برای مدت طولانی در دسترس بوده اند. به عنوان مثال، تاپ در سال 1984 ظاهر شد و اولین انتشار du به سال 1971 باز می گردد.
این ابزارها در طول سال ها مدرن شده و به سیستم های مختلف منتقل شده اند، اما به طور کلی از نسخه های اولیه خود فاصله زیادی نداشته اند، ظاهر و کاربرد آنها نیز تغییر چندانی نکرده است.
اینها ابزارهای عالی هستند که بسیاری از مدیران سیستم به آنها نیاز دارند. با این حال، جامعه ابزارهای جایگزینی را توسعه داده است که مزایای بیشتری را ارائه می دهد. برخی از آنها به سادگی دارای یک رابط مدرن و زیبا هستند، در حالی که برخی دیگر قابلیت استفاده را تا حد زیادی بهبود می بخشند. در این ترجمه، ما در مورد پنج جایگزین برای ابزارهای خط فرمان استاندارد لینوکس صحبت خواهیم کرد.
1. ncdu در مقابل du
استفاده از دیسک 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 برای بسیاری از پلتفرم ها و توزیع های لینوکس در دسترس است. به عنوان مثال، می توانید از dnf برای نصب آن بر روی فدورا مستقیماً از مخازن رسمی استفاده کنید:
$ sudo dnf install ncdu
2. htop vs top
به طور پیش فرض htop به شکل زیر است:
برخلاف بالا:
علاوه بر این، htop اطلاعات کلی در مورد سیستم را در بالا، و یک پانل برای اجرای دستورات با استفاده از کلیدهای عملکرد در پایین نمایش می دهد. می توانید با فشار دادن F2 آن را پیکربندی کنید تا صفحه پیکربندی باز شود. در تنظیمات، میتوانید رنگها را تغییر دهید، معیارها را اضافه یا حذف کنید، یا گزینههای نمایش پانل نمای کلی را تغییر دهید.
اگرچه میتوانید با بهینهسازی تنظیمات آخرین نسخههای top به قابلیت استفاده مشابهی دست پیدا کنید، htop تنظیمات پیشفرض مناسبی را ارائه میکند که استفاده از آن را کاربردیتر و آسانتر میکند.
3. tldr در مقابل مرد
ابزار خط فرمان tldr اطلاعات راهنمای ساده شده را در مورد دستورات، عمدتاً نمونه، نمایش می دهد. توسط جامعه توسعه داده شد
شایان ذکر است که tldr جایگزینی برای انسان نیست. هنوز هم متعارف ترین و جامع ترین ابزار خروجی صفحه مرد است. با این حال، در برخی موارد انسان زائد است. وقتی به اطلاعات جامعی در مورد یک دستور نیاز ندارید، فقط سعی می کنید کاربردهای اصلی آن را به خاطر بسپارید. برای مثال، صفحه man برای دستور curl تقریباً 3000 خط دارد. صفحه tldr برای curl 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 به معنای "خیلی طولانی است. نخوانده» : یعنی متنی به دلیل پرحرفی زیاد نادیده گرفته شد. این نام برای این ابزار مناسب است، زیرا صفحات man در عین مفید بودن، گاهی اوقات می توانند بیش از حد طولانی باشند.
برای فدورا، tldr در پایتون نوشته شده بود. با استفاده از dnf manager می توانید آن را نصب کنید. به طور معمول، ابزار برای کار کردن نیاز به دسترسی به اینترنت دارد. اما کلاینت پایتون فدورا به این صفحات اجازه دانلود و کش برای دسترسی آفلاین را می دهد.
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 جستجوی بدون حروف بزرگ را در فهرست فعلی با خروجی رنگ انجام میدهد. جستجوی مشابه با استفاده از دستور find مستلزم وارد کردن پارامترهای اضافی در خط فرمان است. به عنوان مثال، برای یافتن همه فایلهای md. (یا MD.) در فهرست فعلی، باید یک دستور find مانند این بنویسید:
$ find . -iname "*.md"
برای fd به صورت زیر است:
$ fd .md
اما در برخی موارد، fd به گزینههای اضافی نیز نیاز دارد: به عنوان مثال، اگر میخواهید فایلها و دایرکتوریهای مخفی را اضافه کنید، باید از گزینه -H استفاده کنید، اگرچه معمولاً هنگام جستجو این مورد نیاز نیست.
fd برای بسیاری از توزیع های لینوکس در دسترس است. در فدورا به صورت زیر قابل نصب است:
$ sudo dnf install fd-find
شما مجبور نیستید چیزی را رها کنید
آیا از ابزارهای خط فرمان جدید لینوکس استفاده می کنید؟ یا فقط روی قدیمی ها می نشینید؟ اما به احتمال زیاد شما یک ترکیب ترکیبی دارید، درست است؟ لطفا تجربه خود را در نظرات به اشتراک بگذارید.
در حقوق تبلیغات
بسیاری از مشتریان ما قبلاً از مزایای آن قدردانی کرده اند سرورهای حماسی!
آن
منبع: www.habr.com