কম্পিউটার টিউটোরিয়াল

আপনার উত্পাদনশীলতা বাড়িয়ে দেবে বাশের অপরিহার্য অ্যালিয়াসসমূহ

একটি বাশ অ্যালিয়াস হলো বাশ কমান্ডগুলোর সাথে নতুন কমান্ডগুলোর συμπূরক বা ওভাররাইড করার একটি পদ্ধতি। বাশ অ্যালিয়াস POSIX টার্মিনালে ব্যবহারকারীর অভিজ্ঞতা কাস্টমাইজ করা সহজ করে দেয়। এগুলো সাধারণত $HOME/.bashrc বা $HOME/bash_aliases-এ ডিফাইন করা হয় (যেটি $HOME/.bashrc দ্বারা লোড করা উচিত)।

অधিকাংশ ডিস্ট্রিবিউশন কোনো নতুন ইউজার অ্যাকাউন্টের ডিফল্ট .bashrc ফাইলে কমপক্ষে কিছু জনপ্রিয় অ্যালিয়াস যোগ করে দেয়। এগুলো বাশ অ্যালিয়াসের সিনট্যাক্স দেখানোর জন্য সহজ উদাহরণ:

alias ls='ls -F'
 alias ll='ls -lh'

সব ডিস্ট্রিবিউশন প্রি-পপুলেটেড অ্যালিয়াসের সাথে আসে না। আপনি যদি ম্যানুয়ালি অ্যালিয়াস যোগ করেন, তবে সেগুলো আপনার বর্তমান বাশ সেশনে লোড করতে হবে:

$ source ~/.bashrc

অন্যথায়, আপনি আপনার টার্মিনাল বন্ধ করে পুনরায় খুলতে পারেন যাতে এটি কনফিগারেশন ফাইল রিলোড করে।

উপরের অ্যালিয়াসগুলো আপনার বাশ ইনিশিয়ালাইজেশন স্ক্রিপ্টে ডিফাইন থাকলে, আপনি ll টাইপ করে ls -l-এর ফলাফল পেতে পারেন, এবং ls টাইপ করলে সাদা পুরনো ls-এর আউটপুটের বদলে কিছু এবং পাবেন।

সেই অ্যালিয়াসগুলো রাখা ভালো, কিন্তু সেগুলো কেবল সম্ভাবনার поверхকে ছুঁয়েছে। এখানে টপ ১০ বাশ অ্যালিয়াস দেওয়া হলো যেগুলো একবার ব্যবহার করলে আপনি সেগুলোর ছাড়া থাকতে পারবেন না।

প্রথমে সেটআপ করুন

শুরু করার আগে, ~/.bash_aliases নামে একটি ফাইল তৈরি করুন:

$ touch ~/.bash_aliases

তারপর, নিচের কোডটি আপনার ~/.bashrc ফাইলে আছে তা নিশ্চিত করুন:

if [ -e $HOME/.bash_aliases ]; then
 source $HOME/.bash_aliases
 fi

আপনি যদি এই আর্টিকেলের যেকোনো অ্যালিয়াস নিজে চেষ্টা করতে চান, সেগুলো আপনার .bash_aliases ফাইলে লিখুন, এবং source ~/.bashrc কমান্ড দিয়ে আপনার বাশ সেশনে লোড করুন।

ফাইল সাইজ অনুযায়ী সর্ট করুন

আপনি যদি GNOME-এ Nautilus, MacOS-এ Finder, বা Windows-এ Explorer-এর মতো GUI ফাইল ম্যানেজার দিয়ে কম্পিউটিং জীবন শুরু করেছেন, তবে আপনি ফাইল লিস্ট সাইজ অনুযায়ী সর্ট করার অভ্যস্ত। টার্মিনালে ও সেটি করা যায়, কিন্তু সেটি একদম সংক্ষিপ্ত নয়।

GNU সিস্টেমে আপনার কনফিগারেশনে এই অ্যালিয়াসটি যোগ করুন:

alias lt='ls --human-readable --size -1 -S --classify'

এই অ্যালিয়াস lt-কে একটি ls কমান্ড দিয়ে রিপ্লেস করে যা প্রতিটি আইটেমের সাইজ দেখায়, সাইজ অনুযায়ী সর্ট করে, একক কলামে, এবং ফাইল টাইপ নির্দেশ করার একটি নোটেশন সহ। আপনার নতুন অ্যালিয়াস লোড করুন, এবং চেষ্টা করুন:

$ source ~/.bashrc
 $ lt
 total 344K
 140K configure*
 44K aclocal.m4
 36K LICENSE
 32K config.status*
 24K Makefile
 24K Makefile.in
 12K config.log
 8.0K README.md
 4.0K info.slackermedia.Git-portal.json
 4.0K git-portal.spec
 4.0K flatpak.path.patch
 4.0K Makefile.am*
 4.0K dot-gitlab.ci.yml
 4.0K configure.ac*
 0 autom4te.cache/
 0 share/
 0 bin/
 0 install-sh@
 0 compile@
 0 missing@
 0 COPYING@

MacOS বা BSD-এ, ls কমান্ডের একই অপশনগুলো নেই, তাই এই অ্যালিয়াসটি কাজ করবে:

alias lt='du -sh * | sort -h'

এই ভার্সনের ফলাফল কিছুটা আলাদা:

$ du -sh * | sort -h
 0 compile
 0 COPYING
 0 install-sh
 0 missing
 4.0K configure.ac
 4.0K dot-gitlab.ci.yml
 4.0K flatpak.path.patch
 4.0K git-portal.spec
 4.0K info.slackermedia.Git-portal.json
 4.0K Makefile.am
 8.0K README.md
 12K config.log
 16K bin
 24K Makefile
 24K Makefile.in
 32K config.status
 36K LICENSE
 44K aclocal.m4
 60K share
 140K configure
 476K autom4te.cache

বস্তুত:, লিনাক্সেও সেটি উপকারী, কারণ ls ব্যবহার করলে ডিরেক্টরি এবং সিমলিংক ০ সাইজ হিসেবে দেখায়, যা আপনি আসলে চান না। আপনার পছন্দ।

ব্র্যাড অ্যালেকজান্ডারের এই অ্যালিয়াস আইডিয়ার জন্য ধন্যবাদ।

শুধু মাউন্ট করা ড্রাইভ দেখুন

mount কমান্ড একসময় খুব সিম্পল ছিল। শুধু এক কমান্ড দিয়ে আপনি আপনার কম্পিউটারের সকল মাউন্ট করা ফাইলসিস্টেমের লিস্ট পেতে পারতেন, এবং এটি প্রায়শই একটি ওয়ার্কস্টেশনে কী ড্রাইভ আটাচড সেটির ওভারভিউ পেতে ব্যবহার হতো। তিন-চার এন্ট্রি বেশি দেখতে পাওয়া অত্যাধুনিক হতো কারণ অধিকাংশ কম্পিউটারের ততটাই USB পোর্ট থাকে না, তাই ফলাফল ম্যানেজযোগ্য হতো।

কম্পিউটারএখন কিছুটা জটিল, এবং LVM, ফিজিক্যাল ড্রাইভ, নেটওয়ার্ক স্টোরেজ, এবং ভার্চুয়াল ফাইলসিস্টেমের মাঝপথে mount-এর ফলাফল পার্স করা কঠিন:

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
 proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
 devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=8131024k,nr_inodes=2032756,mode=755)
 securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
 [...]
 /dev/nvme0n1p2 on /boot type ext4 (rw,relatime,seclabel)
 /dev/nvme0n1p1 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=winnt,errors=remount-ro)
 [...]
 gvfsd-fuse on /run/user/100977/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=100977,group_id=100977)
 /dev/sda1 on /run/media/seth/pocket type ext4 (rw,nosuid,nodev,relatime,seclabel,uhelper=udisks2)
 /dev/sdc1 on /run/media/seth/trip type ext4 (rw,nosuid,nodev,relatime,seclabel,uhelper=udisks2)
 binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)

उस সমস্যাটি সমাধান করতে এই অ্যালিয়াসটি চেষ্টা করুন:

alias mnt="mount | awk -F' ' '{ printf \"%s\t%s\n\",\$1,\$3; }' | column -t | egrep ^/dev/ | sort"

এই অ্যালিয়াস awk ব্যবহার করে mount-এর আউটপুট কলাম অনুযায়ী পার্স করে, আউটপুটকে সেটি কমানো যা আপনি সম্ভবত খুঁজছেন (কোন হার্ড ড্রাইভ মাউন্ট করা, ফাইলসিস্টেম নয়):

$ mnt
 /dev/mapper/fedora-root /
 /dev/nvme0n1p1 /boot/efi
 /dev/nvme0n1p2 /boot
 /dev/sda1 /run/media/seth/pocket
 /dev/sdc1 /run/media/seth/trip

MacOS-এ, mount কমান্ড খুব ভার্বোস আউটপুট দেয় না, তাই অ্যালিয়াস অপ্রয়োজনীয় হতে পারে। যাইহোক, আপনি যদি সংক্ষিপ্ত রিপোর্ট পছন্দ করেন, তবে এটি চেষ্টা করুন:

alias mnt='mount | grep -E ^/dev | column -t'

ফলাফল:

$ mnt
 /dev/disk1s1 on / (apfs, local, journaled)
 /dev/disk1s4 on /private/var/vm (apfs, local, noexec, journaled, noatime, nobrowse)

গ্রেপ ইতিহাসে কমান্ড খুঁজুন

কখনো কখনো আপনি টার্মিনালে কিছু করার উপায় খুঁজে পান, এবং আপনাকে বলেন যে আপনি এটা কখনো ভুলবেন না। তারপর এক ঘন্টা যায়, এবং আপনি সম্পূর্ণ ভুলে যান আপনি কী করেছিলেন।

বাশ ইতিহাসে সার্চ করা সবার জন্য সময়মতো একটি কাজ। আপনি যদি নিখুঁতভাবে জানেন কী খুঁজছেন, তবে Ctrl+R দিয়ে রিভার্স সার্চ করতে পারেন, কিন্তু কখনো আপনি আপনার খুঁজে যাচ্ছে কমান্ডটি ঠিক মনে রাখতে পারেন না।

এখানে একটি অ্যালিয়াস যা সেই কাজটি কিছুটা সহজ করে দেবে:

alias gh='history|grep'

এখানে এটি কীভাবে ব্যবহার করতে হয় তার একটি উদাহরণ:

$ gh bash
 482 cat ~/.bashrc | grep _alias
 498 emacs ~/.bashrc
 530 emacs ~/.bash_aliases
 531 source ~/.bashrc

মডিফিকেশন টাইম অনুযায়ী সর্ট করুন

প্রত্যেক সোমবার এটি ঘটে: আপনি কাজে পৌঁছান, কম্পিউটারে বসেন, টার্মিনাল খুলেন, এবং আপনি মনে করেন আপনি গত শুক্রবার কী করছিলেন ভুলে গেছেন। আপনার দরকার হলো সবচেয়ে gầniai মডিফাইড ফাইলগুলো লিস্ট করার একটি অ্যালিয়াস।

আপনি ls কমান্ড ব্যবহার করে একটি অ্যালিয়াস তৈরি করতে পারেন যা আপনাকে যেখানে ছেড়ে দিয়েছিলেন সেটি খুঁজে বের করতে সাহায্য করবে:

alias left='ls -t -1'

আউটপুট সিম্পল, যদিও আপনি --long অপশন দিয়ে এক্সটেন্ড করতে পারেন। লিস্ট করা অ্যালিয়াসটি এটি দেখায়:

$ left
 demo.jpeg
 demo.xcf
 design-proposal.md
 rejects.txt
 brainstorm.txt
 query-letter.xml

ফাইল গণনা করুন

আপনার একটি ডিরেক্টরিতে কতগুলো ফাইল আছে সেটি জানার সমাধান ইউনিক্স কমান্ড কনস্ট্রাকশনের সবচেয়ে ক্লাসিক উদাহরণों থেকে একটি: আপনি ls কমান্ড দিয়ে ফাইল লিস্ট করেন, -1 অপশন দিয়ে আউটপুটকে শুধু এক কলামে আনার, এবং তারপর আউটপুটকে wc (ওয়ার্ড কাউন্ট) কমান্ডে পাইপ করে সিঙ্গল ফাইলের লাইনগুলো কত আছে সেটি গণনা করেন।

এটি ইউনিক্স ফিলোসফির একটি চমৎকার উদাহরণ যা দেখায় কীভাবে ব্যবহারকারীরা সিস্টেমের ছোট ছোট কম্পোনেন্ট ব্যবহার করে নিজেদের সমাধান বানাতে পারেন। এই কমান্ড কম্বিনেশনও টাইপ করার দরকারে অনেক বেশি যদি আপনি একদিনে বারবার করেন, এবং ডিরেক্টরি অফ ডিরেক্টরির জন্য এটি ঠিক কাজ করে না -R অপশন ছাড়া, যা আউটপুটে নতুন লাইন আনে এবং চেষ্টাটি ব্যর্থ করে।

বদলে, এই অ্যালিয়াস প্রক্রিয়াটি সহজ করে দেয়:

alias count='find . -type f | wc -l'

এটি ফাইল গণনা করে, ডিরেক্টরি উপেক্ষা করে, কিন্তু ডিরেক্টরির কন্টেন্টস নয়। আপনার যদি একটি প্রজেক্ট ফোল্ডার থাকে যাতে দুটি ডিরেক্টরি আছে, যestar প্রতিটিতে দুটি ফাইল, অ্যালিয়াসটি চার রিটার্ন করবে, কারণ পুরো প্রজেক্টে চারটি ফাইল আছে।

$ ls
 foo bar
 $ count
 4

পাইথন ভার্চুয়াল এনভায়রনমেন্ট তৈরি করুন

আপনি কি পাইথনে কোড করেন?

আপনি কি খুব বেশি পাইথনে কোড করেন?

আপনি যদি করেন, তবে আপনি জানেন পাইথন ভার্চুয়াল এনভায়রনমেন্ট তৈরি করতে কমপক্ষে ৫৩ কীস্ট্রোক লাগে।

এটি ৪৯ টি বেশি, কিন্তু দুটি নতুন অ্যালিয়াস ve এবং va দিয়ে সহজেই এড়ানো যায়:

alias ve='python3 -m venv ./venv'
 alias va='source ./venv/bin/activate'

ve চালালে venv নামে একটি নতুন ডিরেক্টরি তৈরি হবে যেটি পাইথন3-র সাধারণ ভার্চুয়াল এনভায়রনমেন্ট ফাইলসিস্টেম ধারণ করবে। va অ্যালিয়াস আপনার কারেন্ট শেলে এনভায়রনমেন্ট এক্টিভেট করবে:

$ cd my-project
 $ ve 
 $ va
 (venv) $ 

কপি প্রগ্রেস বার যোগ করুন

সবাই প্রগ্রেস বারের মজা উডালেন কারণ সেগুলো বিখ্যাতভাবে inaccurateness। এবং গভীরে, আমরা সবাই সেগুলো চাই। ইউনিক্স cp কমান্ডে প্রগ্রেস বার নেই, কিন্তু -v অপশন আছে ভার্বোসিটির জন্য, অর্থাৎ এটি কপি হওয়া প্রতিটি ফাইলের নাম টার্মিনালে ইহো করে। সেটি একটি ভালো হ্যাক, কিন্তু এক বড় ফাইল কপি করার সময় সেটি ভালো কাজ করে না যখন আপনি কতটুকু ফাইল বাকি আছে সেটির ইন্ডিকেশন চান।

pv কমান্ড কপির সময় প্রগ্রেস বার দেয়, কিন্তু এটি ডিফল্ট অ্যাপ্লিকেশন হিসেবে সাধারণ নয়। অন্যদিকে, rsync কমান্ড প্রায় সব POSIX সিস্টেমের ডিফল্ট ইনস্টলেশনে থাকে, এবং এটি রিমোট ও লোকালি ফাইল কপি করার সবচেয়ে স্মার্ট উপায় হিসেবে বিখ্যাত।

অধিকন্তু, এর বিল্ট-ইন প্রগ্রেস বার আছে।

alias cpv='rsync -ah --info=progress2'

এই অ্যালিয়াস ব্যবহার করা cp কমান্ড ব্যবহার করার মতোই:

$ cpv bigfile.flac /run/media/seth/audio/
 3.83M 6% 213.15MB/s 0:00:00 (xfr#4, to-chk=0/4)

এই কমান্ড ব্যবহার করার একটি আকর্ষণীয় পার্শ্বপ্রতিক্রিয়া হলো rsync -r ফ্ল্যাগ ছাড়া ফাইল এবং ডিরেক্টরি দুটোই কপি করে যা cp-এর জন্য প্রয়োজন হতো।

ফাইল রিমুভাল দুর্ঘটনা থেকে রক্ষা পান

আপনাকে rm কমান্ড ব্যবহার করা উচিত নয়। rm ম্যানুয়ালটিও এটিকে বলে:

Warning: If you use ‘rm’ to remove a file, it is usually possible to recover the contents of that file. If you want more assurance that the contents are truly unrecoverable, consider using ‘shred’.

আপনি যদি একটি ফাইল মুছতে চান, তবে আপনার ডেস্কটপে যেমন করেন, সেভাবে ফাইলটি আপনার Trash-এ মুভ করুন।

POSIX এটিকে সহজ করে দেয়, কারণ Trash আপনার ফাইলসিস্টেমে একটি অ্যাক্সেসযোগ্য, আসল লোকেশন। সেই লোকেশন প্ল্যাটফর্ম অনুযায়ী বদলতে পারে: FreeDesktop-এ, Trash অবস্থিত ~/.local/share/Trash, MacOS-এ এটি ~/.Trash, কিন্তু যাহোক, এটি শুধু একটি ডিরেক্টরি যেখানে আপনি সেই ফাইলগুলো রাখেন যা আপনি চোখের আড়ালে দূর রাখতে চান যতক্ষণ না আপনি সেগুলো চিরকালের জন্য মুছে ফেলার জন্য প্রস্তুত।

এই সহজ অ্যালিয়াস আপনাকে আপনার সিস্টেম Trash-এ ফাইল ও ফোল্ডার মুভ করার একটি উপায় দেয়:

alias tcn='mv --force -t ~/.local/share/Trash '

এই অ্যালিয়াস mv-এর একটি কমপরিচিত ফ্ল্যাগ ব্যবহার করে যা আপনাকে ফাইলটি শেষ আর্গুমেন্ট হিসেবে দিতে দেয়, সাধারণত প্রথমে লিস্ট করার প্রয়োজনীয়তা উপেক্ষা করে। এখন আপনি আপনার নতুন কমান্ড ব্যবহার করে ফাইল ও ফোল্ডার আপনার সিস্টেম Trash-এ মুভ করতে পারেন:

$ ls 
 foo bar
 $ tcn foo
 $ ls
 bar 

এখন ফাইলটি "গিয়ে গেছে", কিন্তু শুধু তখন পর্যন্ত আপনি ঠান্ডা পসিনায় উপচিন্তায় আপনি বুঝেন যে আপনাকে এখনও সেটি দরকার। সেটার মুহূর্তে, আপনি আপনার সিস্টেম Trash থেকে ফাইলটি রেসকিউ করতে পারেন; বাশ এবং mv ডেভেলপারদের টিপ দিতে ভুলবেন না।

Note: আপনি যদি আরও রোবাস্ট Trash কমান্ড চান আরও ভালো FreeDesktop কম্প্লায়েন্সের সাথে, Trashy দেখুন।

আপনার Git ওয়ার্কফ্লো সহজ করুন

সবার একটি यুনিক ওয়ার্কফ্লো থাকে, কিন্তু সাধারণত কিছু রিপিটিভ টাস্ক থাকে। আপনি যদি নিয়মিত Git-এ কাজ করেন, তবে সম্ভবত কিছু সিকোয়েন্স আছে যা আপনি বারবার টাইপ করতে বাধ্য হচ্ছেন। হয়তো আপনি মাস্টার ব্রাঞ্চে ফিরে লেটেস্ট চেঞ্জ পুল করছেন বারবার দিন भर, অথবা হয়তো ট্যাগ তৈরি করে রিমোটে পুশ করছেন, অথবা কিছু একদম আলাদা।

আপনি যেই Git মন্ত্রটি টাইপ করতে বাধ্য হচ্ছেন সেটি কী হোক, আপনি একটি বাশ অ্যালিয়াস দিয়ে কিছু পেইন কমাতে পারেন। তার হুকে(argument) পাস করার ক্ষমতার কারণে Git-এ একটি সমৃদ্ধ ইন্ট্রোস্পেক্টিভ কমান্ড সেট আছে যা আপনাকে বাশে অদ্ভুত কাজ করতে বাধ্য হওয়া থেকে বাঁচায়।

উদাহরণস্বরূপ, আপনি বাশে একটি প্রজেক্টের টপ-লেভেল ডিরেক্টরি খুঁজে বের করতে পারেন না (যেটি বাশের দৃষ্টিতে সম্পূর্ণ আর্মিটারি, কারণ কম্পিউটারের কাছে অ্যাবসোলিউট টপ লেভেল হলো রুট ডিরেক্টরি), কিন্তু Git এক সিম্পল কোয়েরি দিয়ে তার টপ লেভেল জানতে পারে। আপনি যদি Git হুকে গবেষণা করেন, তবে আপনি সকল ধরনের তথ্য খুঁজে পাবেন যা বাশ কিছুই জানে না, কিন্তু আপনি একটি বাশ অ্যালিয়াস দিয়ে সেই তথ্য লিভারেজ করতে পারেন।

এখানে একটি অ্যালিয়াস যা একটি Git প্রজেক্টের টপ লেভেল খুঁজে বের করে, আপনি প্রজেক্টের যেকোনো জায়গায় কেননা থাকুন, এবং তারপর সেখানে ডিরেক্টরি চেঞ্জ করে, মাস্টার ব্রাঞ্চে চেঞ্জ করে, এবং একটি Git pull করে:

alias startgit='cd `git rev-parse --show-toplevel` && git checkout master && git pull'

এই ধরণের অ্যালিয়াস সার্বজনীনভাবে উপকারী নয়, কিন্তু এটি দেখায় কীভাবে একটি সহজ অ্যালিয়াস অনেক কষ্টসাধ্য নেভিগেশন, কমান্ড, এবং প্রম্প্টের জন্য অপেক্ষা উন্মূলন করতে পারে।

একটি সিম্পলার, এবং সম্ভবত আরও সার্বজনীন, অ্যালিয়াস আপনাকে Git প্রজেক্টের টপ লেভেলে ফিরিয়ে আনে। এই অ্যালিয়াস উপকারী কারণ আপনি একটি প্রজেক্টে কাজ করলে সেটি আপনার "টেম্পোরারি হোম" ডিরেক্টরি হয়ে যায়। আপনার আসল হোম যেতে যতটা সহজ, প্রজেক্টের হোম যেতেও ততটাই সহজ হওয়া উচিত, এবং সেটি করার একটি অ্যালিয়াস:

alias cg='cd `git rev-parse --show-toplevel`'

এখন cg কমান্ড আপনাকে আপনার Git প্রজেক্টের শীর্ষে নিয়ে যাবে, আপনি তার ডিরেক্টরি স্ট্রাকচারে কতটুকু গভীরে কেননা ডুবে থাকেন।

ডিরেক্টরি চেঞ্জ করুন এবং কন্টেন্টস একসাথে দেখুন

একবার (অনুমান 대로) একজন প্রখ্যাত বিজ্ঞানী প্রস্তাব করেছিলেন যে আমরা গ্রহের শক্তি সমস্যা সমাধান করতে পারি গিকরা cd এর পর ls টাইপ করার 시간에 খরচ 되는 শক্তি হernel করতে।

এটি একটি সাধারণ প্যাটার্ন, কারণ সাধারণত যখন আপনি ডিরেক্টরি চেঞ্জ করেন, আপনার ইচ্ছা বা প্রয়োজন থাকে সারওন্ডিং দেখার।

আপনার কম্পিউটারের ডিরেক্টরি ট্রি "ব্যাঙ্গা" করার প্রক্রিয়া একটি স্টার্ট-এন্ড-স্টপ প্রক্রিয়া হতে হবে না।

এটি চিটিং, কারণ এটি একটি অ্যালিয়াস নয়, কিন্তু বাশ ফাংশন এক্সপ্লোর করার একটি চমৎকার পাওয়া। অ্যালিয়াস কুইক সাবস্টিটিউশনের জন্য চমৎকার, কিন্তু বাশ আপনাকে আপনার .bashrc ফাইলে লোকাল ফাংশন যোগ করার অনুমতি দেয় (অথবা একটি আলাদা ফাংশন ফাইল যা আপনি .bashrc-এ লোড করেন, ঠিক অ্যালিয়াস ফাইলের মত)।

মডুলার রাখতে, ~/.bash_functions নামে একটি নতুন ফাইল তৈরি করুন এবং আপনার .bashrc সেটি লোড করুক:

if [ -e $HOME/.bash_functions ]; then
 source $HOME/.bash_functions
 fi

ফাংশন ফাইলে এই কোড যোগ করুন:

function cl() {
 DIR="$*";
 # if no DIR given, go home
 if [ $# -lt 1 ]; then 
 DIR=$HOME;
 fi;
 builtin cd "${DIR}" && \
 # use your preferred ls command
 ls -F --color=auto
 }

ফাংশনটি আপনার বাশ সেশনে লোড করুন এবং চেষ্টা করুন:

$ source ~/.bash_functions
 $ cl Documents
 foo bar baz
 $ pwd
 /home/seth/Documents
 $ cl ..
 Desktop Documents Downloads
 [...]
 $ pwd
 /home/seth

ফাংশনগুলো অ্যালিয়াস চেয়ে অনেক বেশি ফ্লেক্সিবল, কিন্তু সেই ফ্লেক্সিবিলিটির সাথে আসে আপনার দায়িত্ব যে আপনার কোড অর্থপূর্ণ এবং আপনার আশা অনুযায়ী কাজ করে। অ্যালিয়াসগুলো সিম্পল হওয়ার জন্য বানানো, তাই সেগুলো সহজ রাখুন, কিন্তু উপকারী। বাশ কীভাবে বিহেভ করে সেটি গুরুতর পরিবর্তনের জন্য ফাংশন বা কাস্টম শেল স্ক্রিপ্ট ব্যবহার করুন যেগুলো আপনার PATH-এ একটি লোকেশনে সংরক্ষিত।

রেকর্ডের জন্য, cd এবং ls সিকোয়েন্সকে অ্যালিয়াস হিসেবে ইমপ্লিমেন্ট করার কিছু চমৎকার হ্যাক আছে, তাই আপনি যদি পর্যাপ্ত ধৈর্যশীল হন, তবে নম্র অ্যালিয়াস দিয়েও আকাশই সীমা।

অ্যালিয়াসিং এবং ফাংশনিং শুরু করুন

আপনার এনভায়রনমেন্ট কাস্টমাইজ করা ही লিনাক্সকে মজাদার করে, এবং আপনার দক্ষতা বাড়ানো লিনাক্সকে জীবন পরিবর্তনকারী করে। সিম্পল অ্যালিয়াস দিয়ে শুরু করুন, ফাংশনে গ্র্যাজুয়েট হন, এবং আপনার must-have অ্যালিয়াসগুলো কমেন্টে পোস্ট করুন!

  1. লিনাক্স উত্পাদনশীলতা বাড়ানোর ১৫টি অপরিহার্য কমান্ড-লাইন অ্যালিয়াস

  2. ৭টি অপরিহার্য বাশ হিস্ট্রি শর্টকাট যা আপনি প্রতিদিন ব্যবহার করবেন

  3. ৭টি অপরিহার্য সোশ্যাল মিডিয়া অ্যাপ যা আপনার কাছে থাকা উচিত — ইনফোগ্রাফিক

  4. অ্যান্ড্রয়েড ব্লোটওয়্যার সরিয়ে ফেলুন: রুট ছাড়া সহজ পদ্ধতি