বাশ ওরফে সংযুক্ত কমান্ডটি কীভাবে দেখবেন?


324

ধরা যাক বাশ শেলের মধ্যে আমার একটি নাম রয়েছে। কোন কমান্ড মুদ্রণ করতে পারে যে কমান্ডটি কীভাবে চালিত হবে?

উত্তর:


431

typeBuiltin এই জন্য দরকারী। এটি আপনাকে কেবলমাত্র এলিয়াসগুলি সম্পর্কে নয়, ফাংশন, বিল্টিনস, কীওয়ার্ড এবং বাহ্যিক আদেশগুলি সম্পর্কেও জানাবে।

$ type ls
ls is aliased to `ls --color=auto'
$ type rm
rm is /bin/rm
$ type cd
cd is a shell builtin
$ type psgrep
psgrep is a function
psgrep () 
{ 
    ps -ef | { 
        read -r;
        printf '%s\n' "$REPLY";
        grep --color=auto "$@"
    }
}

type -a cmdঅগ্রাধিকার অনুসারে সেই নাম দিয়ে সমস্ত কমান্ড প্রদর্শন করবে, যা lsউপরের উপন্যাসের জন্য দরকারী , যেখানে নিজের নামটি কল করে ls

$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls

এই বলে যে, যখন আপনি চালাতে ls, /bin/lsব্যবহৃত হবে, এবং --color=autoআর্গুমেন্ট তালিকায় অন্তর্ভুক্ত করা হবে, অন্য কোন আপনি নিজেকে জুড়তে ছাড়াও।


যখন একটি উপনামে আরও বেশি উপাধি রয়েছে তখন কী করবেন?
ব্যবহারকারী 251046

2
@ ব্যবহারকারী 251046 typeযতক্ষণ না আপনি একটি উপন্যাস ব্যতীত অন্য কিছু আঘাত না করেন ততক্ষণ ব্যবহার চালিয়ে যান ...
গিরিহা

আমার এই উত্তরটি পছন্দ হয়েছে কারণ typeযে কোনও উদ্ধৃতি বিশ্লেষণ / ব্যাখ্যা করবে, সুতরাং আপনি নিশ্চিত করতে পারেন যে উদ্ধৃতিগুলি ঠিক আছে।
উইসবুকি

আমি পেয়েছি ls is aliased to 'ls --color=auto', তবে আমি কীভাবে এক স্তর আরও গভীরভাবে পেতে পারি, এটি / বিন / এলএস বা / ইউএসআর / স্থানীয় / বিন / এলএস ব্যবহার করে কিনা তা দেখতে?
ক্রুবো

1
@ ক্রবুও type -a lsপছন্দ অনুসারে প্রাপ্ত সমস্ত ls কমান্ড প্রদর্শন করবে। যার যার ডান দিকের ডানদিকে নীচের অংশটি হ'ল এটিই ওরফে দ্বারা কার্যকর করা হবে।
গিরিহা

163

aliasশেল প্রম্পটে টাইপ করুন । এটি বর্তমানে সক্রিয় সমস্ত অ্যালিয়াসগুলির একটি তালিকা আউটপুট করা উচিত।

অথবা, আপনি alias [command]কোনও নির্দিষ্ট উপনামের সাথে কীভাবে প্রবণতা রয়েছে তা দেখতে টাইপ করতে পারেন, উদাহরণস্বরূপ, আপনি যদি উপনামটি কীভাবে প্রাক্তন করে রেখেছিলেন তা সন্ধান করতে চাইলে আপনি এটি lsকরতে পারেন alias ls


12
অথবা alias lsকীভাবে বিশেষভাবে যুক্ত lsহয় তা জানতে টাইপ করুন ।
পুলি

2
@ পুলি প্রকৃতপক্ষে আমি মনে করি প্রশ্নটি সমস্ত এলিয়াসগুলি দেখার ছিল , যদিও, এর কারণেই আমি উপন্যাস কমান্ডটি সম্পর্কে আরও বিশদভাবে জানাতে পারি নি।
টমাস ওয়ার্ড

এটি যদি উপস্বের জন্য কাজ করে, আপনি যদি কাস্টম শেল ফাংশনটি সংজ্ঞায়িত করেন তবে এটি কাজ করে না। typeতবে উভয় ক্ষেত্রেই কাজ করে।
সুজয় ফাদকে

53

আমি সত্যি পছন্দ করি Ctrl+ + Alt+ + Eআমি থেকে শিখেছি এই উত্তর । এটি বর্তমানে টাইপ করা কমান্ড লাইনটিকে "প্রসারিত" করে, যার অর্থ এটি উরফ প্রসারণ সম্পাদন করে (অন্যান্য বিষয়গুলির মধ্যে)।

ওটার মানে কি? এটি যে কোনও উপনামকে পরিবর্তিত করে, এটি বর্তমানে কমান্ড লাইনে লেখা থাকতে পারে, যা উপাধিটি বোঝায়।

উদাহরণস্বরূপ, যদি আমি টাইপ করি:

$ ls

এবং তারপর প্রেস Ctrl+ + Alt+ + E, এটা পরিণত হয়

$ ls --time-style=locale --color=auto

অন্যান্য ডিস্ট্রোসের সাথে এর সমতা আছে?
sepehr

@ সেফহর ডেবিয়ান নিয়ে কাজ করে, আমি ধরে নিলাম এটি একটি বাশ বৈশিষ্ট্য এবং কোনও বিতরণে কাজ করা উচিত।
ডের হচস্টাপলার

4
আপনি ঠিক বলেছেন, এটি ব্যাশে কাজ করে তবে আমার কাছে zsh আছে এবং এটি দুর্ভাগ্যজনকভাবে কাজ করে না।
sepehr

সত্যিই সহায়ক ছিল। ইতিহাসে লগ ইন করা পূর্ববর্তী বাশ কমান্ডগুলির মধ্যে একটি বিস্তৃত করার আমার একটি আলাদা লক্ষ্য ছিল, যেমন, 394 দিয়ে, যাতে মৃত্যুদন্ড কার্যকর করার আগে আমি প্রথমে এটি সম্পাদনা করতে পারি
XXL

1
এটি একটি ক্যাভেট আছে। যখন কোনও উপনামে প্রয়োজনীয় উক্তি অন্তর্ভুক্ত থাকে, সেগুলি সরানো হবে। সুতরাং, আমি এর squeue -u davidmh -o %.18i %.9P %.25j %.8u %.8T %.10M %.9l %.6D %R পরিবর্তে squeue -u davidmh -o "%.18i %.9P %.25j %.8u %.8T %.10M %.9l %.6D %R "
পেয়েছি

10

কঠোরভাবে সঠিক উত্তর বলতে BASH_ALIASES অ্যারে ব্যবহার করা হচ্ছে, যেমন:

$ echo ${BASH_ALIASES[ls]}
ls -F --color=auto --show-control-chars

2
আমি এটিকে এমন পরিস্থিতিতে খুঁজে পেয়েছি যেখানে আমি আশেপাশের মানব-দরকারী স্টাফ ছাড়াই প্রকৃত বিবৃতিটি অ্যালাইজড করার জন্য প্রোগ্রামেটিক অ্যাক্সেস চেয়েছিলাম।
এম জাস্টিন

এটি
zsh- এ

1
@ প্রোগ্রামার প্রশ্নটি বাশ সম্পর্কে ছিল - zsh এর জন্য আপনার zsh সম্পর্কে প্রশ্নগুলি দেখা উচিত
নুনেক্স

1
বিঙ্গো। আমার ঠিক যেমনটি প্রয়োজন ছিল, এম এম জাস্টিনের মতো - আমি lsসেখানে উপস্থিত কোনও পরিবর্তন না করে বর্তমানের ওরফে আরও স্যুইচগুলি স্ট্যাক করতে চাই । সুতরাং আমি alias ls="${BASH_ALIASES[ls]} --time-style=iso"আমার মামলার জন্য যাচ্ছি ।
ধনী

2

আপনি whichকমান্ডটি ব্যবহার করতে পারেন ।

আপনার জন্য একটি ওরফে সেট করেন তাহলে lsযেমন ls -alএবং তারপর টাইপ which ls, আপনি দেখতে পাবেন:

ls: aliased to ls -al


বাশের কোনও whichআদেশ নেই।
গিরিহা

আমার জন্য কাজ করছে না ..
চিয়েল টেন ব্রিনকে

2
whichএখানে বর্ণিত অনুসারে এলিয়াসগুলি দেখার জন্য একটি খারাপ উপায়: unix.stackexchange.com/questions/10525/… উবুন্টুতে ব্যাশ-এ উপনামের জন্য এটি আমার পক্ষেও কাজ করে না।
সুজয় ফাদকে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.