ওএস এক্সের টার্মিনালে আপডেট_টার্মিনাল_সিডাব্লুড কী করে


21

আমি এখন বেশ কিছুক্ষণ ধরে আশ্চর্য হয়েছি। ইন $PROMPT_COMMANDOS X এর মধ্যে ব্যাশ এর, একটি কমান্ড বলা হয় update_terminal_cwd। আমি নিশ্চিত যে এটি অন্তর্নির্মিত কোনও বাশ নয় এবং সম্ভবত ওএস এক্সে রয়েছে But তবে এটি ঠিক কী করে তা আমি জানি না। কেউ জানেন?

উত্তর:


26

এটি বর্তমান ওয়ার্কিং ডিরেক্টরি (সিডাব্লুডি) প্রতিধ্বনিত করার অনুরোধটি আপডেট করে এবং এতে সংজ্ঞায়িত হয় /etc/bashrc:

update_terminal_cwd() {
    # Identify the directory using a "file:" scheme URL,
    # including the host name to disambiguate local vs.
    # remote connections. Percent-escape spaces.
    local SEARCH=' '
    local REPLACE='%20'
    local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
    printf '\e]7;%s\a' "$PWD_URL"
}

এটি লক্ষণীয় যে আপনি যদি অ্যাপল টার্মিনাল অ্যাপ্লিকেশনটিতে নিজের শেলটি চালাচ্ছেন তবে কেবলমাত্র ফাংশনটি সংজ্ঞায়িত হবে worth আপনি যদি আইটার্ম ব্যবহার করছেন তবে এটি সংজ্ঞায়িত হবে না।
নিউক্লিংার

এস্কেপ-7 হ্যাকটি হ'ল কী এবং এটি কোথায় মুদ্রিত হয়? সেই নথিটি কোথায়? :)
ওয়াইল্ডকার্ড

1
@ উইল্ডকার্ড এটি xtermশিরোনাম বারের পাঠ্য নির্ধারণের জন্য একটি নিয়ন্ত্রণ কোড। সর্বাধিক অ্যাক্সেসযোগ্য ডকুমেন্টেশন সম্ভবত লিনাক্স ব্যাশ প্রম্পট হাটোxtermসূত্রগুলিতে আসল ডকুমেন্টেশন রয়েছে , আইআইআরসি।
ট্রিপলি

2
এই ফাংশনটি 9 নং লাইনে সেট করা হয়েছে /etc/bashrc_Apple_Terminal( এখানে শেখার একটি কৌশলটির মাধ্যমে পাওয়া গেছে )। তবে আমি দেখতে পেয়েছি যে কোনও স্ক্রিন সেশনের মধ্যেই, $ PROMPT_COMMAND খালি স্ট্রিংয়ে পরিণত হয় যার অর্থ /etc/bashrc_Apple_Terminalসম্ভবত আর কার্যকর করা হয় না। তুমি কি জানো কেন?
zyxue

1
@zyxue আপনি যদি তাকান /etc/bashrc, এটি $TERM_PROGRAMটার্মিনালটি নির্ধারণ করতে এবং /etc/bashrc_$TERM_PROGRAMএটি বিদ্যমান থাকলে একটি সম্পর্কিত চালানোর জন্য চলকটি ব্যবহার করে । সুতরাং স্ক্রিন সেশনে $TERM_PROGRAMসম্ভবত সেট করা নেই বা অন্য কিছুতে সেট করা আছে Apple_Terminal
ডেভিড মোলস 21

-15

অস্বচ্ছ গোপন এনকোডেড ফর্ম্যাট স্ট্রিং, '\ ই] 7;% s \ এ'। সন্দেহ।

local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"

আমি যা সংগ্রহ করি তা থেকে "ফাইল: // O HOSTNAME" মাস্ক আউট করা হয় যাতে আপনি দূরবর্তী প্রোটোকলটি দেখতে পাচ্ছেন না: হোস্ট গুপ্তচরবৃত্তি।


1
... বা O HOSTNAME হ'ল একটি পরিবর্তনশীল যা স্ক্রিপ্টটি চালু রয়েছে তার উপর নির্ভর করে পরিবর্তিত হয়। ?!? পারানয়েড অনেক? আপনি যদি মনে করেন যে অন্য উত্তরের তালিকাভুক্ত কোডটি স্ক্রিনে মুদ্রণ ব্যতীত অন্য কিছু করতে পারে তবে ব্যাশ স্ক্রিপ্টিং কীভাবে কাজ করে তা আপনার কোনও ধারণা নেই।
টিউবেডগ

মেমো পেলেন না? - "শেলশক" ব্যাশ দুর্বলতা web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-6271 যে কোনও ক্ষেত্রে 1) এর মধ্যে অজানা উত্স যে আমি পরিবেশের পরিবর্তনশীল 'update_terminal_cwd' সেট করি নি 2) চালু যে শীর্ষ, এটি একটি ফাংশন। স্বয়ংক্রিয়ভাবে সন্দেহ হয়। গণ অনুপ্রবেশ কেউ তা চায় না। হয়তো এনআইএসটি অ্যাপল ওএসএক্স এবং ব্রাউজার ফায়ারফক্স / ক্রোম / অপেরা "দুর্বলতা" সম্পর্কে রিপোর্ট করবে?
ব্যবহারকারী 982671

7
আপনি যা চালিয়ে যাচ্ছেন সে সম্পর্কে আপনার কোনও ধারণা নেই তা আপনি প্রদর্শন চালিয়ে যান। update_terminal_cwdপরিবেশের পরিবর্তনশীল নয়, এটি একটি ফাংশনের নাম। এটি স্পষ্ট পাঠ্যে সংজ্ঞায়িত করা হয়েছে /etc/bashrcএবং printfফাংশনে স্ক্রিনে মুদ্রিত বিন্যাসযুক্ত স্ট্রিংগুলি ছাড়া আর কিছু করার ক্ষমতা নেই। অবশেষে, আপনার পোস্ট করা অশ্লীল লিঙ্কটি পরিবেশের পরিবর্তনশীল সংজ্ঞাতে পাঠ্য সংযোজন করে স্বেচ্ছাচারিত ফাংশন সম্পাদন করার সাথে জড়িত ... যার এখানে আলোচনা করা হচ্ছে এমন কোনও কিছুই করার নেই do এবং ডাব্লুটিএফএফ কি ব্রাউজারগুলির শেল স্ক্রিপ্টিংয়ের সাথে কি করতে হবে?
টিউবেডগ

এটি যে প্রশ্ন জিজ্ঞাসা করা হয়েছিল তার উত্তর দেওয়ার চেষ্টা করে না ( এই বিবৃতিটি ন্যায়সঙ্গত করার জন্য বিশদ বিশ্লেষণের জন্য এখানে দেখুন )। উত্তরের জন্য উত্তর বাক্স সংরক্ষণ করুন যা জিজ্ঞাসা করা প্রশ্নের উত্তর দেয়। ধন্যবাদ!
ডিডাব্লু

1
@ টিউবেডগ হা হা, হ্যাঁ, আপনি যদি এটি করেন তবে typeset -fএটি সমস্ত "ব্যবহারকারী সংজ্ঞায়িত" ফাংশন প্রদর্শন করবে এবং এইভাবে পপ আপ হবে। যদি তারা স্কেচিযুক্ত কিছু করার চেষ্টা করে তবে তারা এটিকে সহজেই দৃশ্যমান করে না।
কলব ক্যানিয়ন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.