پرانے کمانڈ لائن ٹولز کے ساتھ ساتھ مزید جدید متبادلات استعمال کرکے، آپ زیادہ مزہ لے سکتے ہیں اور اپنی پیداواری صلاحیت کو بھی بہتر بنا سکتے ہیں۔
لینکس/یونکس پر اپنے روزمرہ کے کام میں، ہم بہت سے کمانڈ لائن ٹولز استعمال کرتے ہیں - مثال کے طور پر، ڈسک کے استعمال اور سسٹم کے وسائل کی نگرانی کے لیے۔ ان میں سے کچھ ٹولز کافی عرصے سے موجود ہیں۔ مثال کے طور پر، ٹاپ 1984 میں شائع ہوا، اور ڈو کی پہلی ریلیز 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 بمقابلہ ٹاپ
پہلے سے طے شدہ htop اس طرح لگتا ہے:
اوپر کے برعکس:
اس کے علاوہ، htop سب سے اوپر نظام کے بارے میں جائزہ معلومات، اور نیچے فنکشن کیز کا استعمال کرتے ہوئے کمانڈ چلانے کے لیے ایک پینل دکھاتا ہے۔ آپ کنفیگریشن اسکرین کو کھولنے کے لیے F2 دبا کر اسے کنفیگر کر سکتے ہیں۔ ترتیبات میں، آپ رنگ تبدیل کر سکتے ہیں، میٹرکس کو شامل یا ہٹا سکتے ہیں، یا اوور ویو پینل ڈسپلے کے اختیارات کو تبدیل کر سکتے ہیں۔
اگرچہ آپ ٹاپ کے تازہ ترین ورژنز کی سیٹنگز کو ٹیویک کرکے اسی طرح کے قابل استعمال کو حاصل کرسکتے ہیں، htop آسان ڈیفالٹ کنفیگریشن فراہم کرتا ہے، جو اسے زیادہ عملی اور استعمال میں آسان بناتا ہے۔
3. 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 کے بہت سے افعال ہیں، لیکن ان کی وضاحت کے لیے ایک اور مضمون کی ضرورت ہے۔ مزید معلومات کے لیے رابطہ کریں۔
5. ایف ڈی بمقابلہ تلاش
مثال کے طور پر، جب گٹ ریپوزٹری ڈائرکٹری میں فائلیں تلاش کرتے ہیں، تو fd خود بخود پوشیدہ فائلوں اور ذیلی ڈائرکٹریوں کو خارج کر دیتا ہے، بشمول .git ڈائریکٹری، اور .gitignore فائل سے وائلڈ کارڈز کو بھی نظر انداز کر دیتا ہے۔ مجموعی طور پر، یہ پہلی کوشش میں مزید متعلقہ نتائج واپس کر کے تلاش کو تیز کرتا ہے۔
پہلے سے طے شدہ طور پر، fd موجودہ ڈائرکٹری میں رنگ آؤٹ پٹ کے ساتھ ایک کیس غیر حساس تلاش کرتا ہے۔ فائنڈ کمانڈ کا استعمال کرتے ہوئے اسی تلاش کے لیے کمانڈ لائن پر اضافی پیرامیٹرز داخل کرنے کی ضرورت ہوتی ہے۔ مثال کے طور پر، موجودہ ڈائرکٹری میں تمام .md (یا .MD) فائلوں کو تلاش کرنے کے لیے، آپ تلاش کمانڈ لکھیں گے اس طرح:
$ find . -iname "*.md"
ایف ڈی کے لئے یہ اس طرح لگتا ہے:
$ fd .md
لیکن بعض صورتوں میں، fd کو اضافی اختیارات کی بھی ضرورت ہوتی ہے: مثال کے طور پر، اگر آپ پوشیدہ فائلز اور ڈائریکٹریز کو شامل کرنا چاہتے ہیں، تو آپ کو -H آپشن استعمال کرنا چاہیے، حالانکہ تلاش کرتے وقت عام طور پر اس کی ضرورت نہیں ہوتی ہے۔
fd لینکس کی بہت سی تقسیم کے لیے دستیاب ہے۔ فیڈورا میں اسے اس طرح انسٹال کیا جا سکتا ہے:
$ sudo dnf install fd-find
آپ کو کچھ بھی ترک کرنے کی ضرورت نہیں ہے۔
کیا آپ لینکس کے نئے کمانڈ لائن ٹولز استعمال کر رہے ہیں؟ یا آپ پرانے والوں پر خصوصی طور پر بیٹھتے ہیں؟ لیکن زیادہ تر امکان ہے کہ آپ کے پاس کومبو ہے، ٹھیک ہے؟ براہ کرم تبصرے میں اپنا تجربہ شیئر کریں۔
ایڈورٹائزنگ کے حقوق پر
ہمارے بہت سے گاہکوں نے پہلے ہی فوائد کو سراہا ہے۔ مہاکاوی سرورز!
یہ
ماخذ: www.habr.com