A Bash alias হল নতুনের সাথে Bash কমান্ডের পরিপূরক বা ওভাররাইড করার একটি পদ্ধতি৷ ব্যাশ উপনামগুলি ব্যবহারকারীদের জন্য POSIX টার্মিনালে তাদের অভিজ্ঞতা কাস্টমাইজ করা সহজ করে তোলে। এগুলিকে প্রায়শই $HOME/.bashrc-এ সংজ্ঞায়িত করা হয় অথবা $HOME/bash_aliases (যা অবশ্যই $HOME/.bashrc দ্বারা লোড করা উচিত )।
বেশিরভাগ ডিস্ট্রিবিউশন ডিফল্ট .bashrc-এ অন্তত কিছু জনপ্রিয় উপনাম যোগ করে কোনো নতুন ব্যবহারকারী অ্যাকাউন্টের ফাইল। এগুলি একটি Bash alias:
এর সিনট্যাক্স প্রদর্শনের জন্য সহজalias ls='ls -F'
alias ll='ls -lh'
যদিও সমস্ত ডিস্ট্রিবিউশন প্রাক-জনবহুল উপনামের সাথে পাঠানো হয় না। আপনি যদি ম্যানুয়ালি উপনাম যোগ করেন, তাহলে আপনাকে অবশ্যই সেগুলি আপনার বর্তমান ব্যাশ সেশনে লোড করতে হবে:
$ source ~/.bashrc
অন্যথায়, আপনি আপনার টার্মিনাল বন্ধ করে আবার খুলতে পারেন যাতে এটি তার কনফিগারেশন ফাইল পুনরায় লোড করে।
আপনার ব্যাশ ইনিশিয়ালাইজেশন স্ক্রিপ্টে সংজ্ঞায়িত এই উপনামগুলির সাথে, আপনি তারপর ll টাইপ করতে পারেন এবং ls -l এর ফলাফল পান , এবং যখন আপনি ls টাইপ করেন আপনি প্লেইন পুরাতনের আউটপুটের পরিবর্তে পাবেন ls।
এই উপনামগুলি থাকা দুর্দান্ত, তবে এগুলি কেবল যা সম্ভব তার পৃষ্ঠটি স্ক্র্যাচ করে। এখানে সেরা 10টি ব্যাশ উপনাম রয়েছে যেগুলি একবার চেষ্টা করলে আপনি ছাড়া বাঁচতে পারবেন না৷
প্রথমে সেট-আপ করুন
শুরু করার আগে, ~/.bash_aliases নামে একটি ফাইল তৈরি করুন :
$ touch ~/.bash_aliases
তারপর, নিশ্চিত করুন যে এই কোডটি আপনার ~/.bashrc-এ প্রদর্শিত হচ্ছে ফাইল:
if [ -e $HOME/.bash_aliases ]; then
source $HOME/.bash_aliases
fi
আপনি যদি নিজের জন্য এই নিবন্ধের কোনো উপনাম চেষ্টা করতে চান, তাহলে সেগুলিকে আপনার .bash_aliases-এ প্রবেশ করান ফাইল, এবং তারপর উৎস ~/.bashrc দিয়ে আপনার ব্যাশ সেশনে লোড করুন আদেশ।
ফাইলের আকার অনুসারে সাজান
আপনি যদি জিইউআই ফাইল ম্যানেজারগুলির সাথে আপনার কম্পিউটিং জীবন শুরু করেন যেমন জিনোমে নটিলাস, ম্যাকওএসের ফাইন্ডার বা উইন্ডোজের এক্সপ্লোরার, তাহলে আপনি সম্ভবত ফাইলগুলির আকার অনুসারে একটি তালিকা বাছাই করতে অভ্যস্ত। আপনি এটি একটি টার্মিনালেও করতে পারেন, তবে এটি একেবারে সংক্ষিপ্ত নয়।
একটি 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 ব্যবহার করে ডিরেক্টরি এবং সিমলিঙ্কগুলিকে 0 আকারে তালিকাভুক্ত করে, যা আপনি আসলে যে তথ্য চান তা নাও হতে পারে। এটা আপনার পছন্দ।
এই উপনামের ধারণার জন্য ব্র্যাড আলেকজান্ডারকে ধন্যবাদ।
শুধু মাউন্ট করা ড্রাইভগুলি দেখুন
৷মাউন্ট কমান্ড তাই সহজ হতে ব্যবহৃত. শুধুমাত্র একটি কমান্ডের সাহায্যে, আপনি আপনার কম্পিউটারে সমস্ত মাউন্ট করা ফাইল সিস্টেমের একটি তালিকা পেতে পারেন এবং এটি প্রায়শই একটি ওয়ার্কস্টেশনের সাথে কোন ড্রাইভগুলি সংযুক্ত ছিল তার একটি ওভারভিউয়ের জন্য ব্যবহৃত হত। এটি তিন বা চারটির বেশি এন্ট্রি দেখতে চিত্তাকর্ষক ছিল কারণ বেশিরভাগ কম্পিউটারে এর চেয়ে অনেক বেশি ইউএসবি পোর্ট নেই, তাই ফলাফলগুলি পরিচালনাযোগ্য ছিল৷
কম্পিউটার এখন একটু বেশি জটিল, এবং LVM, ফিজিক্যাল ড্রাইভ, নেটওয়ার্ক স্টোরেজ এবং ভার্চুয়াল ফাইল সিস্টেমের মধ্যে, মাউন্ট-এর ফলাফল পার্স করা কঠিন হতে পারে:
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 ব্যবহার করে মাউন্ট -এর আউটপুট পার্স করতে কলাম দ্বারা, আপনি সম্ভবত যা খুঁজছেন তার আউটপুট হ্রাস করে (কি হার্ড ড্রাইভ, এবং ফাইল সিস্টেম নয়, মাউন্ট করা হয়):
$ 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-এ, মাউন্ট কমান্ড ভয়ানক ভার্বোস আউটপুট প্রদান করে না, তাই একটি উপনাম ওভারকিল হতে পারে। যাইহোক, যদি আপনি একটি সংক্ষিপ্ত প্রতিবেদন পছন্দ করেন তবে এটি চেষ্টা করুন:
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)
আপনার grep ইতিহাসে একটি কমান্ড খুঁজুন
কখনও কখনও আপনি কীভাবে টার্মিনালে কিছু করতে হবে তা খুঁজে বের করেন এবং নিজেকে প্রতিশ্রুতি দেন যে আপনি এইমাত্র যা শিখেছেন তা আপনি কখনই ভুলে যাবেন না। তারপর এক ঘন্টা চলে যায়, এবং আপনি যা করেছেন তা পুরোপুরি ভুলে গেছেন।
আপনার ব্যাশ ইতিহাসের মাধ্যমে অনুসন্ধান করা এমন কিছু যা প্রত্যেককে সময়ে সময়ে করতে হয়। আপনি ঠিক কী খুঁজছেন তা যদি আপনি জানেন, তাহলে আপনি Ctrl+R ব্যবহার করতে পারেন আপনার ইতিহাসের মাধ্যমে একটি বিপরীত অনুসন্ধান করতে, কিন্তু কখনও কখনও আপনি যে আদেশটি খুঁজে পেতে চান তা মনে রাখতে পারেন না৷
সেই কাজটিকে একটু সহজ করার জন্য এখানে একটি উপনাম রয়েছে:
alias gh='history|grep'
এটি কীভাবে ব্যবহার করবেন তার একটি উদাহরণ এখানে দেওয়া হল:
$ gh bash
482 cat ~/.bashrc | grep _alias
498 emacs ~/.bashrc
530 emacs ~/.bash_aliases
531 source ~/.bashrc
পরিবর্তনের সময় অনুসারে সাজান
এটি প্রতি সোমবার হয়:আপনি কাজ শুরু করেন, আপনি আপনার কম্পিউটারে বসেন, আপনি একটি টার্মিনাল খোলেন এবং আপনি দেখতে পান যে আপনি গত শুক্রবার যা করছেন তা ভুলে গেছেন। অতি সম্প্রতি পরিবর্তিত ফাইলগুলির তালিকা করার জন্য আপনার যা প্রয়োজন তা হল একটি উপনাম৷
৷আপনি ls ব্যবহার করতে পারেন৷ আপনি কোথায় ছেড়েছিলেন তা খুঁজে পেতে আপনাকে সাহায্য করার জন্য একটি উপনাম তৈরি করতে কমান্ড:
alias left='ls -t -1'
আউটপুট সহজ, যদিও আপনি এটি --লং দিয়ে প্রসারিত করতে পারেন আপনি পছন্দ করলে বিকল্প। উপনাম, তালিকাভুক্ত হিসাবে, এটি প্রদর্শন করে:
$ left
demo.jpeg
demo.xcf
design-proposal.md
rejects.txt
brainstorm.txt
query-letter.xml
ফাইল গণনা করুন
একটি ডিরেক্টরিতে আপনার কতগুলি ফাইল আছে তা যদি আপনার জানার প্রয়োজন হয়, তাহলে সমাধান হল UNIX কমান্ড নির্মাণের সবচেয়ে ক্লাসিক উদাহরণগুলির মধ্যে একটি:আপনি ls দিয়ে ফাইলগুলি তালিকাভুক্ত করুন কমান্ড, -1 এর সাথে শুধুমাত্র একটি কলাম হতে এর আউটপুট নিয়ন্ত্রণ করুন বিকল্প, এবং তারপর সেই আউটপুটটিকে wc এ পাইপ করুন (শব্দ গণনা) একক ফাইলের কতগুলি লাইন আছে তা গণনা করার জন্য কমান্ড।
এটি একটি উজ্জ্বল প্রদর্শনী কিভাবে ইউনিক্স দর্শন ব্যবহারকারীদের ছোট সিস্টেম উপাদান ব্যবহার করে তাদের নিজস্ব সমাধান তৈরি করতে দেয়। এই কমান্ড সংমিশ্রণটি টাইপ করার জন্যও অনেক কিছু যদি আপনি এটি দিনে বেশ কয়েকবার করেন, এবং এটি -R ব্যবহার না করে ডিরেক্টরিগুলির একটি ডিরেক্টরির জন্য ঠিক কাজ করে না বিকল্প, যা আউটপুটে নতুন লাইন প্রবর্তন করে এবং অনুশীলনটিকে অকেজো করে দেয়।
পরিবর্তে, এই উপনাম প্রক্রিয়াটিকে সহজ করে তোলে:
alias count='find . -type f | wc -l'
এটি একটি ফাইল গণনা করে, ডিরেক্টরি উপেক্ষা করে, কিন্তু না ডিরেক্টরির বিষয়বস্তু। আপনার যদি দুটি ডিরেক্টরি সমন্বিত একটি প্রকল্প ফোল্ডার থাকে, যার প্রতিটিতে দুটি ফাইল থাকে, তাহলে উপনামটি চারটি ফেরত দেয়, কারণ পুরো প্রকল্পে চারটি ফাইল রয়েছে৷
$ ls
foo bar
$ count
4
একটি পাইথন ভার্চুয়াল পরিবেশ তৈরি করুন
আপনি কি পাইথনে কোড করেন?
আপনি কি পাইথনে প্রচুর কোড করেন?
আপনি যদি তা করেন, তাহলে আপনি জানেন যে একটি পাইথন ভার্চুয়াল পরিবেশ তৈরি করতে অন্তত 53টি কীস্ট্রোকের প্রয়োজন হয়৷
এটি 49টি অনেক বেশি, কিন্তু এটি ve<নামক দুটি নতুন উপনামের সাহায্যে সহজেই ঠেকানো যায়৷ এবং va :
alias ve='python3 -m venv ./venv'
alias va='source ./venv/bin/activate'
ve চলছে৷ venv নামে একটি নতুন ডিরেক্টরি তৈরি করে , Python3 এর জন্য সাধারণ ভার্চুয়াল এনভায়রনমেন্ট ফাইলসিস্টেম ধারণ করে। va alias আপনার বর্তমান শেলের পরিবেশকে সক্রিয় করে:
$ cd my-project
$ ve
$ va
(venv) $
একটি অনুলিপি অগ্রগতি বার যোগ করুন
৷সবাই প্রগতি বারে মজা করে কারণ তারা কুখ্যাতভাবে ভুল। এবং তবুও, গভীরভাবে, আমরা সবাই তাদের চাই বলে মনে হচ্ছে। UNIX cp কমান্ডের কোন অগ্রগতি বার নেই, তবে এটির একটি -v আছে verbosity-এর বিকল্প, যার অর্থ এটি আপনার টার্মিনালে প্রতিলিপি করা প্রতিটি ফাইলের নামের প্রতিধ্বনি করে। এটি একটি বেশ ভাল হ্যাক, কিন্তু আপনি যখন একটি বড় ফাইল কপি করছেন এবং কত ফাইল এখনও স্থানান্তর করা হয়েছে তার কিছু ইঙ্গিত চান তখন এটি এত ভাল কাজ করে না৷
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 ম্যানুয়াল এমনকি তাই বলে:
সতর্কতা :আপনি যদি একটি ফাইল মুছে ফেলার জন্য 'rm' ব্যবহার করেন, তাহলে সাধারণত সেই ফাইলের বিষয়বস্তু পুনরুদ্ধার করা সম্ভব। আপনি যদি আরও নিশ্চিত হতে চান যে বিষয়বস্তুগুলি সত্যিকার অর্থেই পুনরুদ্ধারযোগ্য নয়, তাহলে 'শেড' ব্যবহার করার কথা বিবেচনা করুন৷
আপনি যদি একটি ফাইল সরাতে চান, আপনার ফাইলটিকে আপনার ট্র্যাশে সরানো উচিত, ঠিক যেমন আপনি ডেস্কটপ ব্যবহার করার সময় করেন৷
POSIX এটিকে সহজ করে তোলে, কারণ ট্র্যাশ হল একটি অ্যাক্সেসযোগ্য, আপনার ফাইল সিস্টেমের প্রকৃত অবস্থান। আপনার প্ল্যাটফর্মের উপর নির্ভর করে সেই অবস্থানটি পরিবর্তিত হতে পারে:একটি ফ্রিডেস্কটপে, ট্র্যাশ ~/.local/share/Trash-এ অবস্থিত , MacOS এ থাকাকালীন এটি ~/.ট্র্যাশ , কিন্তু যেভাবেই হোক, এটি শুধুমাত্র একটি ডিরেক্টরি যেখানে আপনি যে ফাইলগুলিকে আপনার দৃষ্টির বাইরে রাখতে চান যতক্ষণ না আপনি সেগুলিকে চিরতরে মুছে ফেলতে প্রস্তুত হন৷
এই সাধারণ উপনামটি আপনার টার্মিনাল থেকে ফাইলগুলিকে ট্র্যাশ বিনে টস করার একটি উপায় প্রদান করে:
alias tcn='mv --force -t ~/.local/share/Trash '
এই উপনামটি অল্প পরিচিত mv ব্যবহার করে ফ্ল্যাগ যা আপনাকে ফাইলটি প্রথমে তালিকাভুক্ত করার স্বাভাবিক প্রয়োজনীয়তা উপেক্ষা করে, চূড়ান্ত যুক্তি হিসাবে আপনি যে ফাইলটি সরাতে চান তা প্রদান করতে সক্ষম করে। এখন আপনি আপনার সিস্টেম ট্র্যাশে ফাইল এবং ফোল্ডার সরাতে আপনার নতুন কমান্ড ব্যবহার করতে পারেন:
$ ls
foo bar
$ tcn foo
$ ls
bar
এখন ফাইলটি "চলে গেছে", কিন্তু শুধুমাত্র যতক্ষণ না আপনি ঠান্ডা ঘামে বুঝতে পারেন যে আপনার এখনও এটির প্রয়োজন। সেই সময়ে, আপনি আপনার সিস্টেম ট্র্যাশ থেকে ফাইল উদ্ধার করতে পারেন; Bash এবং mv টিপ দিতে ভুলবেন না ডেভেলপাররা বেরিয়ে আসছে।
দ্রষ্টব্য: আপনার যদি আরও শক্তিশালী ট্র্যাশ দরকার হয় আরও ভালো ফ্রিডেস্কটপ কমপ্লায়েন্স সহ কমান্ড, ট্র্যাশি দেখুন।
আপনার গিট ওয়ার্কফ্লোকে সরল করুন
প্রত্যেকেরই একটি অনন্য ওয়ার্কফ্লো আছে, তবে সাধারণত পুনরাবৃত্তিমূলক কাজগুলি যাই হোক না কেন। আপনি যদি নিয়মিতভাবে গিটের সাথে কাজ করেন, তাহলে সম্ভবত এমন কিছু ক্রম আছে যা আপনি নিজেকে প্রায়শই পুনরাবৃত্তি করছেন। হতে পারে আপনি নিজেকে মাস্টার ব্রাঞ্চে ফিরে যাচ্ছেন এবং দিনের বেলায় সাম্প্রতিক পরিবর্তনগুলি বারবার টেনে আনছেন, অথবা আপনি নিজেই ট্যাগ তৈরি করছেন এবং তারপরে সেগুলিকে রিমোটে ঠেলে দিচ্ছেন, অথবা সম্ভবত এটি সম্পূর্ণ অন্য কিছু।
যাই হোক না কেন আপনি টাইপ করতে ক্লান্ত হয়ে পড়েছেন গিট মন্ত্র, আপনি ব্যাশ উপনাম দিয়ে কিছুটা ব্যথা উপশম করতে সক্ষম হতে পারেন। হুকগুলিতে আর্গুমেন্টগুলি প্রেরণ করার ক্ষমতার জন্য মূলত ধন্যবাদ, গিট-এর অন্তর্মুখী কমান্ডগুলির একটি সমৃদ্ধ সেট রয়েছে যা আপনাকে ব্যাশে অস্বাভাবিক কীর্তি সম্পাদন করা থেকে বাঁচায়৷
উদাহরণস্বরূপ, যখন আপনি একটি প্রকল্পের শীর্ষ-স্তরের ডিরেক্টরিটি বাশ-এ সনাক্ত করতে সংগ্রাম করতে পারেন (যা, যতদূর বাশ উদ্বিগ্ন, এটি একটি সম্পূর্ণ নির্বিচারে উপাধি, যেহেতু কম্পিউটারের পরম শীর্ষ স্তরটি হল রুট ডিরেক্টরি), গিট একটি সহজ প্রশ্নের সাথে তার শীর্ষ স্তর জানে. আপনি যদি গিট হুক নিয়ে অধ্যয়ন করেন, তাহলে আপনি নিজেকে এমন সব ধরনের তথ্য খুঁজে পেতে সক্ষম হবেন যেগুলি সম্পর্কে Bash কিছুই জানে না, কিন্তু আপনি সেই তথ্যটিকে একটি Bash alias দিয়ে ব্যবহার করতে পারেন৷
একটি গিট প্রকল্পের শীর্ষ স্তর খুঁজে বের করার জন্য এখানে একটি উপনাম রয়েছে, আপনি বর্তমানে সেই প্রকল্পে যেখানেই কাজ করছেন না কেন, এবং তারপরে এটিতে ডিরেক্টরি পরিবর্তন করতে, মাস্টার শাখায় পরিবর্তন করতে এবং একটি গিট পুল সম্পাদন করতে পারেন:
alias startgit='cd `git rev-parse --show-toplevel` && git checkout master && git pull'
এই ধরনের উপনাম কোনোভাবেই সার্বজনীনভাবে উপযোগী উপনাম নয়, তবে এটি প্রদর্শন করে যে কিভাবে একটি তুলনামূলক সহজ উপনাম অনেক শ্রমসাধ্য নেভিগেশন, কমান্ড এবং প্রম্পটের জন্য অপেক্ষা করতে পারে।
একটি সহজ, এবং সম্ভবত আরও সর্বজনীন, উপনাম আপনাকে গিট প্রকল্পের শীর্ষ স্তরে ফিরিয়ে দেয়। এই উপনামটি দরকারী কারণ আপনি যখন একটি প্রকল্পে কাজ করছেন, তখন সেই প্রকল্পটি কমবেশি আপনার "অস্থায়ী হোম" ডিরেক্টরিতে পরিণত হয়। "বাড়িতে" যাওয়াটা আপনার আসল বাড়িতে যাওয়ার মতোই সহজ হওয়া উচিত, এবং এটি করার জন্য এখানে একটি উপনাম রয়েছে:
alias cg='cd `git rev-parse --show-toplevel`'
এখন cg কমান্ড এটি আপনাকে আপনার গিট প্রকল্পের শীর্ষে নিয়ে যায়, আপনি এর ডিরেক্টরি কাঠামোর যতই গভীরে নেমে এসেছেন না কেন।
ডিরেক্টরি পরিবর্তন করুন এবং একই সময়ে বিষয়বস্তু দেখুন
এটি একবার (কথিতভাবে) একজন শীর্ষস্থানীয় বিজ্ঞানী দ্বারা প্রস্তাব করা হয়েছিল যে আমরা cd টাইপ করে গীকদের দ্বারা ব্যয় করা শক্তিকে কাজে লাগিয়ে গ্রহের অনেক শক্তি সমস্যার সমাধান করতে পারি। ls এর পরে৷ .
এটি একটি সাধারণ প্যাটার্ন, কারণ সাধারণত আপনি যখন ডিরেক্টরি পরিবর্তন করেন, তখন আপনার আশেপাশে কী আছে তা দেখার আবেগ বা প্রয়োজন থাকে।
কিন্তু আপনার কম্পিউটারের ডিরেক্টরি ট্রি "হাঁটা" একটি স্টার্ট এবং স্টপ প্রক্রিয়া হতে হবে না।
এটি একটি প্রতারণা, কারণ এটি মোটেও একটি উপনাম নয়, তবে এটি ব্যাশ ফাংশনগুলি অন্বেষণ করার একটি দুর্দান্ত অজুহাত। যদিও উপনামগুলি দ্রুত প্রতিস্থাপনের জন্য দুর্দান্ত, Bash আপনাকে আপনার .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 একটি উপনাম হিসাবে ক্রম, তাই আপনি যদি যথেষ্ট ধৈর্যশীল হন, তাহলে নম্র উপনাম ব্যবহার করেও আকাশ সীমা।
আলিয়াসিং এবং কাজ করা শুরু করুন
আপনার পরিবেশকে কাস্টমাইজ করাই লিনাক্সকে মজাদার করে তোলে এবং আপনার কার্যকারিতা বৃদ্ধি করে যা লিনাক্সের জীবনকে পরিবর্তন করে। সাধারণ উপনাম দিয়ে শুরু করুন, ফাংশনে স্নাতক হন এবং মন্তব্যে আপনার থাকা আবশ্যক উপনাম পোস্ট করুন!