پرانے لینکس کمانڈ لائن ٹولز کے 5 جدید متبادل

پرانے کمانڈ لائن ٹولز کے ساتھ ساتھ مزید جدید متبادلات استعمال کرکے، آپ زیادہ مزہ لے سکتے ہیں اور اپنی پیداواری صلاحیت کو بھی بہتر بنا سکتے ہیں۔

پرانے لینکس کمانڈ لائن ٹولز کے 5 جدید متبادل

لینکس/یونکس پر اپنے روزمرہ کے کام میں، ہم بہت سے کمانڈ لائن ٹولز استعمال کرتے ہیں - مثال کے طور پر، ڈسک کے استعمال اور سسٹم کے وسائل کی نگرانی کے لیے۔ ان میں سے کچھ ٹولز کافی عرصے سے موجود ہیں۔ مثال کے طور پر، ٹاپ 1984 میں شائع ہوا، اور ڈو کی پہلی ریلیز 1971 کی ہے۔

برسوں کے دوران، ان ٹولز کو جدید بنایا گیا ہے اور مختلف سسٹمز میں پورٹ کیا گیا ہے، لیکن عام طور پر یہ اپنے پہلے ورژن سے زیادہ آگے نہیں بڑھے ہیں، ان کی ظاہری شکل اور استعمال میں بھی زیادہ تبدیلی نہیں آئی ہے۔

یہ بہترین ٹولز ہیں جن کی بہت سے سسٹم ایڈمنسٹریٹرز کو ضرورت ہے۔ تاہم، کمیونٹی نے متبادل ٹولز تیار کیے ہیں جو اضافی فوائد پیش کرتے ہیں۔ ان میں سے کچھ کے پاس صرف ایک جدید، خوبصورت انٹرفیس ہے، جبکہ دیگر کے استعمال میں بہت بہتری ہے۔ اس ترجمے میں، ہم معیاری لینکس کمانڈ لائن ٹولز کے پانچ متبادلات کے بارے میں بات کریں گے۔

1. ncdu بمقابلہ du

NCurses ڈسک کا استعمال (این سی ڈی یو) du کی طرح ہے، لیکن curses لائبریری پر مبنی ایک انٹرایکٹو انٹرفیس کے ساتھ۔ 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 بہت سے لینکس پلیٹ فارمز اور تقسیم کے لیے دستیاب ہے۔ مثال کے طور پر، آپ اسے فیڈورا پر براہ راست سرکاری ذخیروں سے انسٹال کرنے کے لیے dnf استعمال کر سکتے ہیں۔

$ sudo dnf install ncdu

2. htop بمقابلہ ٹاپ

ہاپ سب سے اوپر کی طرح ایک انٹرایکٹو عمل دیکھنے والا ہے، لیکن باکس سے باہر یہ صارف کا ایک اچھا تجربہ فراہم کرتا ہے۔ پہلے سے طے شدہ طور پر، htop وہی معلومات دکھاتا ہے جیسا کہ اوپر، لیکن زیادہ بصری اور رنگین انداز میں۔

پہلے سے طے شدہ htop اس طرح لگتا ہے:

پرانے لینکس کمانڈ لائن ٹولز کے 5 جدید متبادل
اوپر کے برعکس:

پرانے لینکس کمانڈ لائن ٹولز کے 5 جدید متبادل
اس کے علاوہ، htop سب سے اوپر نظام کے بارے میں جائزہ معلومات، اور نیچے فنکشن کیز کا استعمال کرتے ہوئے کمانڈ چلانے کے لیے ایک پینل دکھاتا ہے۔ آپ کنفیگریشن اسکرین کو کھولنے کے لیے F2 دبا کر اسے کنفیگر کر سکتے ہیں۔ ترتیبات میں، آپ رنگ تبدیل کر سکتے ہیں، میٹرکس کو شامل یا ہٹا سکتے ہیں، یا اوور ویو پینل ڈسپلے کے اختیارات کو تبدیل کر سکتے ہیں۔

اگرچہ آپ ٹاپ کے تازہ ترین ورژنز کی سیٹنگز کو ٹیویک کرکے اسی طرح کے قابل استعمال کو حاصل کرسکتے ہیں، htop آسان ڈیفالٹ کنفیگریشن فراہم کرتا ہے، جو اسے زیادہ عملی اور استعمال میں آسان بناتا ہے۔

3. tldr بمقابلہ آدمی

tldr کمانڈ لائن ٹول کمانڈز کے بارے میں آسان مدد کی معلومات دکھاتا ہے، زیادہ تر مثالیں۔ یہ کمیونٹی کی طرف سے تیار کیا گیا تھا tldr صفحات پروجیکٹ.

یہ بات قابل غور ہے کہ tldr انسان کا متبادل نہیں ہے۔ یہ اب بھی کینونیکل اور سب سے زیادہ جامع مین پیج آؤٹ پٹ ٹول ہے۔ تاہم بعض صورتوں میں انسان بے کار ہے۔ جب آپ کو کسی کمانڈ کے بارے میں جامع معلومات کی ضرورت نہیں ہوتی ہے، تو آپ صرف اس کے بنیادی استعمال کو یاد رکھنے کی کوشش کر رہے ہوتے ہیں۔ مثال کے طور پر، curl کمانڈ کے مین پیج میں تقریباً 3000 لائنیں ہیں۔ curl کے لیے 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 Python میں لکھا گیا تھا۔ آپ اسے ڈی این ایف مینیجر کا استعمال کرکے انسٹال کرسکتے ہیں۔ عام طور پر، ٹول کو چلانے کے لیے انٹرنیٹ تک رسائی کی ضرورت ہوتی ہے۔ لیکن Fedora کا Python کلائنٹ ان صفحات کو آف لائن رسائی کے لیے ڈاؤن لوڈ اور کیش کرنے کی اجازت دیتا ہے۔

4.jq بمقابلہ sed/grep

jq کمانڈ لائن کے لئے ایک JSON پروسیسر ہے۔ یہ sed یا grep کی طرح ہے، لیکن خاص طور پر JSON ڈیٹا کے ساتھ کام کرنے کے لیے ڈیزائن کیا گیا ہے۔ اگر آپ ایک ڈویلپر یا سسٹم ایڈمنسٹریٹر ہیں جو روزمرہ کے کاموں میں JSON کا استعمال کرتے ہیں، تو یہ آپ کے لیے ٹول ہے۔

معیاری ٹیکسٹ پروسیسنگ ٹولز جیسے grep اور sed پر jq کا بنیادی فائدہ یہ ہے کہ یہ 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 ڈائریکٹری، اور .gitignore فائل سے وائلڈ کارڈز کو بھی نظر انداز کر دیتا ہے۔ مجموعی طور پر، یہ پہلی کوشش میں مزید متعلقہ نتائج واپس کر کے تلاش کو تیز کرتا ہے۔

پہلے سے طے شدہ طور پر، fd موجودہ ڈائرکٹری میں رنگ آؤٹ پٹ کے ساتھ ایک کیس غیر حساس تلاش کرتا ہے۔ فائنڈ کمانڈ کا استعمال کرتے ہوئے اسی تلاش کے لیے کمانڈ لائن پر اضافی پیرامیٹرز داخل کرنے کی ضرورت ہوتی ہے۔ مثال کے طور پر، موجودہ ڈائرکٹری میں تمام .md (یا .MD) فائلوں کو تلاش کرنے کے لیے، آپ تلاش کمانڈ لکھیں گے اس طرح:

$ find . -iname "*.md"

ایف ڈی کے لئے یہ اس طرح لگتا ہے:

$ fd .md

لیکن بعض صورتوں میں، fd کو اضافی اختیارات کی بھی ضرورت ہوتی ہے: مثال کے طور پر، اگر آپ پوشیدہ فائلز اور ڈائریکٹریز کو شامل کرنا چاہتے ہیں، تو آپ کو -H آپشن استعمال کرنا چاہیے، حالانکہ تلاش کرتے وقت عام طور پر اس کی ضرورت نہیں ہوتی ہے۔

fd لینکس کی بہت سی تقسیم کے لیے دستیاب ہے۔ فیڈورا میں اسے اس طرح انسٹال کیا جا سکتا ہے:

$ sudo dnf install fd-find

آپ کو کچھ بھی ترک کرنے کی ضرورت نہیں ہے۔

کیا آپ لینکس کے نئے کمانڈ لائن ٹولز استعمال کر رہے ہیں؟ یا آپ پرانے والوں پر خصوصی طور پر بیٹھتے ہیں؟ لیکن زیادہ تر امکان ہے کہ آپ کے پاس کومبو ہے، ٹھیک ہے؟ براہ کرم تبصرے میں اپنا تجربہ شیئر کریں۔

ایڈورٹائزنگ کے حقوق پر

ہمارے بہت سے گاہکوں نے پہلے ہی فوائد کو سراہا ہے۔ مہاکاوی سرورز!
یہ AMD EPYC پروسیسرز کے ساتھ ورچوئل سرورز، CPU کور فریکوئنسی 3.4 گیگا ہرٹز تک۔ زیادہ سے زیادہ کنفیگریشن آپ کو بلاسٹ کرنے کی اجازت دے گی - 128 CPU کور، 512 GB RAM، 4000 GB NVMe۔ آرڈر کرنے کے لئے جلدی کرو!

پرانے لینکس کمانڈ لائن ٹولز کے 5 جدید متبادل

ماخذ: www.habr.com

نیا تبصرہ شامل کریں