আমি কীভাবে একটি দুর্বৃত্ত ওরফে ঘোষণা খুঁজে পেতে পারি?


37

আমি কোথায় সুনির্দিষ্ট aliasঘোষিত হয়েছে তা সন্ধান করার চেষ্টা করছি । উপকরণগুলির সন্ধানের জন্য আমি জানি সমস্ত সাধারণ স্থান অনুসন্ধান করেছি:

  • ~ / .Bashrc
  • ~ / .Bash_profile
  • জন্য / etc / bashrc
  • জন্য / etc / প্রফাইল

কোন ভাগ্য নেই।

আমি জানি এটি একটি aliasকারণ কারণ আমি যখন করি তখন which COMMANDআমি পাই:

alias COMMAND='/path/to/command'
    /path/to/command

কোন ফাইলটি aliasকেবল aliasনামটি জানার ঘোষণা করে তা খুঁজে পাওয়ার কোনও উপায় আছে ?


3
এলিয়াসের পরিবর্তে পরিবেশের ভেরিয়েবল সম্পর্কে একটি সম্পর্কিত প্রশ্ন । মূলত, কোনও সহজ উপায় নেই যেহেতু উপনামটি যে কোনও জায়গায় সেট করা যেতে পারে। set -xআপনার শীর্ষে প্রস্তাবিত হিসাবে রাখার চেষ্টা করুন এবং দেখুন যে এটি আপনার জন্য হ্রাস করে।
jw013

1
আপনাকে বা set -xএর শীর্ষে রাখতে হবে । শুধু চালাবেন না বা কেন ? /etc/bash_profile/etc/bashrcbash -i -xbash -l -x
মিকেল

উত্তর:


30

আমি /etc/profile.d/আপত্তিজনক জন্য সন্ধান করতে হবে alias

এটি সন্ধানের জন্য আপনি নিম্নলিখিতগুলিও করতে পারেন:

grep -r '^alias COMMAND' /etc

এটি পুনরুদ্ধার grepকরে ফাইলগুলির মাধ্যমে শুরু করে একটি লাইনের সন্ধান করবে alias COMMAND

অন্য সব কিছু যদি ব্যর্থ হয় তবে এটিকে আপনার নিজের শেষে রাখুন ~/.bashrc

unalias COMMAND

26

আপনি চেষ্টা করতে পারেন এমন কয়েকটি জিনিস রয়েছে:

  1. bash -vশেল শুরুর সময় কোন লাইনগুলি পড়ছে তা দেখতে ব্যবহার করুন
  2. bash -xশেল প্রারম্ভকালে কোন কমান্ড চলমান তা দেখতে ব্যবহার করুন
  3. শুধুমাত্র একটি স্টার্টআপ ফাইল দিয়ে চালান

bash -v

-v বিকল্প তোলে bashযে স্ক্রিপ্ট ফাইল এটি সার্চ যেমন এটি সার্চ থেকে প্রতিটি লাইন প্রিন্ট করা হবে।

দৌড় দিয়ে শুরু করুন

bash -i -v >bash-i.out 2>&1

5-10 সেকেন্ড অপেক্ষা করুন, তারপরে টিপুন Ctrl+C

এটি আপনাকে এমন একক ফাইল দেবে যা bash-i.outআপনার সমস্ত প্রারম্ভিক ফাইলগুলি একত্রে মার্জড (বা কনক্যাটেনেটেড) এর মতো।

তারপরে lessফাইলটি ওপেন করতে এবং উপন্যাসটি ব্যবহার করে অনুসন্ধান করুন /aliasname

এখন, ফাইলের অন্যান্য লাইনের সাথে alias উপনামটি কোথায় উপস্থিত হবে তা তুলনা করুন। উদাহরণস্বরূপ, বেশিরভাগ সিস্টেমে /etc/bash.bashrcশীর্ষে একটি মন্তব্য রয়েছে যা বলে /etc/bash.bashrcএবং এটিতে ~/.bashrcএকটিও রয়েছে।

যদি এটি আপনার শীর্ষের উপরে থাকে ~/.bashrc, তবে এটি সম্ভবত একটি স্টার্টআপ ফাইল /etcযা উফরটি সংজ্ঞায়িত করছে, অন্যথায় এটি আপনার ~/.bashrcবা কোনও ফাইল যা এতে sourceবা .(ডট কমান্ড) এর মাধ্যমে অন্তর্ভুক্ত রয়েছে ।

এটি যদি উপনামটি না দেখায়, চেষ্টা করুন

bash -l -v >bash-l.out 2>&1

যে ব্যাশ বলে একটি লগইন শেল, যা, কিছু ভিন্ন প্রারম্ভকালে ফাইল সার্চ উদাহরণস্বরূপ হতে /etc/profileএবং ~/.bash_profileপরিবর্তে /etc/bash.bashrcএবং ~/.bashrc

বাশ -x

যদি bash -vআপনাকে একটি নির্দিষ্ট উত্তর না দেয় তবে দৌড়ানোর চেষ্টা করুন bash -x, যা শেলটি যে শৃঙ্খলাগুলি চলছে সেগুলি ছাড়াই কমান্ডগুলি মুদ্রণ করে।

পদ্ধতি মূলত পরিবর্তন ব্যতীত উপরে হিসাবে একই -vথেকে -x। (প্রয়োজনে আপনি উভয়কে একসাথে ব্যবহার করতে পারেন))

শুধুমাত্র একটি স্টার্টআপ ফাইল দিয়ে চালান

bash -i --rcfile="$HOME/.bashrc"

এবং দেখুন আপনার উপনাম আছে কিনা।

আপনার সিস্টেমে এটি rcfileআছে /etc/bash.bashrcকিনা সেট সহ একই চেষ্টা করুন ।

তারপরে চেষ্টা করুন

bash -l --rcfile="$HOME/.bash_profile"

এবং প্রতিটি ব্যাশ স্টার্টআপ ফাইলের সাথে এটি করুন যার profileনাম রয়েছে যেমন, পরিবর্তন $HOME/.bash_profileকরুন /etc/profile

যে কোনও উপায়ে উপনামটি প্রদর্শিত হয় সেই ফাইলটি আপনাকে দেখানো শুরু করা উচিত।


2

হতে পারে আপনার .xinitrc? আপনার .bashrcবা .bash_profileতাদের মধ্যে অন্য কোনও ফাইল উত্স আছে কিনা তা পরীক্ষা করে দেখুন । উদাহরণস্বরূপ, আমি আমার সমস্ত উপন্যাস এই আদেশ দ্বারা রেফারেন্স করা একটি পৃথক ফাইলে রাখি:

[ -f ~/.bash_alias ] && source $HOME/.bash_alias

কিছু প্রশ্ন যা সাহায্য করতে পারে: এটি কি নিয়মিত বা মূল ব্যবহারকারীদের জন্য? এটি কোন আদেশ? লিনাক্সের কী স্বাদ?


0

আমি আমার উলামের সংজ্ঞাগুলিতে রাখার খুব সাধারণ অনুশীলনটি অনুসরণ করি

~/.bash_aliases

এবং তারপরে এটি .brcrc থেকে কল করে

[ -f ~/.bash_aliases ] && source $HOME/.bash_aliases

আমি কি অনুমান করতে পারি যে আপনি .বাশ_লিয়াসের পরিবর্তে আপনার দ্বিতীয় কমান্ডে বাশ_আলিয়াস?
স্তম্ভিত
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.