টার্মিনালে, যখন "সিডি" কমান্ড বলা হয়, libwww-perl এর "হেড" কমান্ডটিও কার্যকর করা হয়


1

বর্তমানে, টার্মিনালে, যখন আমি একটি cdকমান্ড কার্যকর করি , এটি এলডাব্লুপি-র headকমান্ডও কার্যকর করে।

টার্মিনাল আউটপুটটির একটি অনুলিপি নিম্নলিখিত:

laptop:bin user$ cd ~
Unknown option: n
Usage: head [-options] <url>...
    -m <method>   use method for the request (default is 'HEAD')
    -f            make request even if head believes method is illegal
    -b <base>     Use the specified URL as base
    -t <timeout>  Set timeout value
    -i <time>     Set the If-Modified-Since header on the request
    -c <conttype> use this content-type for POST, PUT, CHECKIN
    -a            Use text mode for content I/O
    -p <proxyurl> use this as a proxy
    -P            don't load proxy settings from environment
    -H <header>   send this HTTP header (you can specify several)

    -u            Display method and URL before any response
    -U            Display request headers (implies -u)
    -s            Display response status code
    -S            Display response status chain
    -e            Display response headers
    -d            Do not display content
    -o <format>   Process HTML content in various ways

    -v            Show program version
    -h            Print this message

    -x            Extra debugging output
laptop:bin user$

আমি পর্যালোচনা করেছি ~/.bash_profileএবং ~/.bashrcতবে কেবলমাত্র তিনটি রফতানি বিবৃতি রয়েছে এবং কোনও উরফ বা এর মতো কিছু নেই। এটি নিম্নরূপ:

[[ -s "/Users/user/.rvm/scripts/rvm" ]] && source "/Users/user/.rvm/scripts/rvm"  # This loads RVM into a shell session.
### Added by the Heroku Toolbelt
export PATH="/Applications/XAMPP/xamppfiles/bin:/usr/local/heroku/bin:$PATH"
export PATH=/Users/user/bin/Sencha/Cmd/3.1.2.342:$PATH
export SENCHA_CMD_3_0_0="/Users/user/bin/Sencha/Cmd/3.1.2.342"
export PATH=$PATH:/Applications/acquia-drupal/drush

পড়া থেকে, দেখে মনে হচ্ছে এলডাব্লুপি ইনস্টল করার ফলে /usr/bin/headকমান্ডটি ওভাররাইট হয়ে গেছে , তবে আমি পরীক্ষা করে দেখেছি এবং এটি ওএসএক্স একটি। যাইহোক, আমি যখন headটার্মিনাল থেকে কল করি , এটি পরিবর্তে LWP হেড কমান্ডটি শুরু করে।

প্রতি দেশপ্রেমের অনুরোধ অনুসারে, এখানে লিখিত সামগ্রী রয়েছে ~/.rvm/scripts/rvm: http://pastebin.com/7rZVQAcy

আমি চেষ্টা করার চেষ্টা চালিয়ে যাব, এবং প্রাসঙ্গিক হলে নতুন তথ্য দিয়ে প্রশ্নটি আপডেট করব।

অতিরিক্ত তথ্য:

laptop:dir user$ alias cd
-bash: alias: cd: not found
laptop:dir user$ which cd
/usr/bin/cd
laptop:dir user$ which head
/Applications/XAMPP/xamppfiles/bin/head

এর ফলাফল echo "$PS1"; echo "$PROMPT_COMMAND":

\h:\W \u\$ 
update_terminal_cwd;

এর ফলাফল type -a update_terminal_cwd:

update_terminal_cwd is a function
update_terminal_cwd () 
{ 
    local SEARCH=' ';
    local REPLACE='%20';
    local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}";
    printf '\e]7;%s\a' "$PWD_URL"
}

এর ফলাফল type -a cd:

cd is a function
cd () 
{ 
    if builtin cd "$@"; then
        __rvm_do_with_env_before;
        __rvm_project_rvmrc;
        __rvm_after_cd;
        __rvm_do_with_env_after;
        return 0;
    else
        return $?;
    fi
}
cd is a shell builtin
cd is /usr/bin/cd

1
কি আছে /Users/user/.rvm/scripts/rvm?
nohillside

@ পেট্রিক্স, ফাইলটির বিষয়বস্তু অন্তর্ভুক্ত করতে সম্পাদিত প্রশ্ন, ধন্যবাদ!
এস্তেবান ব্রেনেস

2
কি alias cdএবং which cdপ্রদর্শন করে?
চিহ্নিত করুন

1
@ ইস্টবান, টার্মিনাল টাইপ করুন which headতারপরে ফলাফলটি এখানে পোস্ট করুন। এটি আপনাকে প্রকৃতপক্ষে কোনটি ব্যবহার করছে তার পথটি বলা উচিত।
l'L'l

2
এর আউটপুট কি echo "$PS1"; echo "$PROMPT_COMMAND"?
গ্লেন জ্যাকম্যান

উত্তর:


4

আমি ধরে নিচ্ছি আপনি ব্যবহার করছেন bash

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

এটি নিশ্চিত করার জন্য বাহ্যিক সংস্করণটি ব্যবহার করে দেখুন - কমান্ড প্রম্পটে টাইপ করুন /usr/bin/cdএবং আপনার কোনও সমস্যা ছাড়াই আপনার হোম ডিরেক্টরিতে যেতে হবে।

এখন আসুন পরীক্ষা করা যাক অন্যটি কী cdহতে পারে।

type -a cd আমাদের দেওয়া উচিত

cd is a shell builtin
cd is /usr/bin/cd

which head আমাদের দেওয়া উচিত /usr/bin/head

alias আমাদের একটি দীর্ঘ তালিকা দিতে পারে তবে কোনও উপাধির দিকে ইশারা করে কিছুই নেই cd

সিডি এনভায়রনমেন্ট ভেরিয়েবলের বুদ্ধিমান এন্ট্রি থাকা উচিত:

CDARGS_NODUPS=1
CDARGS_SORT=0
CDPATH='.:~:~/bin:~/dev:/usr:/'

একই সাথে:

PROMPT_COMMAND='history -a; history -n; printf "\e]1;${PWD}\a"'
PS1='\[\033[34m\]\h:\W \u$\[\033[0m\] '
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor

যদি সবকিছু ঠিক থাকে তবে আমার অর্থ cdএকটি বিল্টিন ফাংশন যা নাশপাতি আকারে চলে গেছে তার দ্বারা নতুন সংজ্ঞা দেওয়া হবে । কমান্ড লাইনে set | lessআপনাকে আপনার সমস্ত শেল ভেরিয়েবল, উপকরণ এবং ফাংশনগুলির একটি ডাম্পের মাধ্যমে পৃষ্ঠাগুলির অনুমতি দেবে। আপনি যদি টাইপ করেন /তবে ফাইলটির জন্য অনুসন্ধান করতে পারেন cd(স্থানটি লক্ষ্য করুন) এবং দেখুন কিনা তা ঘটছে।

একবার আপনি আবিষ্কার করেছেন যে "কেউ" - আপনার ক্ষেত্রে rvm- একটি শেল ফাংশনটি সংজ্ঞায়িত করছে cdতবে আপনি অপরাধীকে আনইনস্টল করতে পারেন বা এটি কোথায় বাজে কাজ করে তা আবিষ্কার করতে পারেন এবং ফাংশনটির নাম 'আরসিডি' এর পরিবর্তে 'আরসিডি' এর মতো পরিবর্তন করতে পারেন can সিডি '। শেল ফাংশনটি প্রথমে typeবিল্টিনের আউটপুটে তালিকাবদ্ধ থাকাকালীন cdযেখানে এটি ফাংশন দ্বারা ডাকা হবে তা বাদ দেওয়া হবে ( builtin cdএটি ফাংশন সংজ্ঞাতে যা করছে - বিল্টিন সংস্করণকে কল করে)।

আমি প্রায় গ্যারান্টি দিতে চাই যে ফাংশনটি সংজ্ঞায়িত হয়েছে /Users/user/.rvm/scripts/rvm

আমি আনইনস্টল করে শুরু করব rvmএবং তারপরে এটি পুনরায় ইনস্টল করব কিনা তা ঠিক হয়ে যায় see আপনি ম্যাকপোর্টস বা হোমব্রু ব্যবহার করে এটি ইনস্টল করছেন?


আমি মনে করি, প্রথম কমান্ডের উপর ভিত্তি করে type -a cdআমরা অপরাধীর অংশ পেয়েছি, কারণ আমি আরভিএমের সাথে বিল্টিন শেল ফাংশন (প্রশ্নে আউটপুট যুক্ত) করেছি something সুতরাং আমি বিশ্বাস করি যে এটি উভয় কল? কীভাবে কেউ ঠিক করবে যে এটি দুটি সিডি সংজ্ঞা ব্যবহার করছে না?
এস্তেবান ব্রেনেস

আনইনস্টল করে সমস্যাগুলি স্থির করা হয়েছে (বিশেষত সিস্টেম থেকে এর সমস্ত চিহ্নগুলি মুছে ফেলার জন্য আরভিএমের নির্দেশাবলী অনুসরণ করে) এটি হোমব্রিউ ব্যবহার করে ইনস্টল করা হয়েছিল।
Esteban Brenes

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