উবুন্টুতে `setx` সমতুল্য


10

উইন্ডোজের একটি পাওয়ারশেল কমান্ড রয়েছে setxযা ব্যবহারকারী বা সিস্টেমের পরিবেশে পরিবেশ পরিবর্তনশীল তৈরি করে বা সংশোধন করে।

উবুন্টুর কি একইরকম কমান্ড রয়েছে, যেমন একটি পরিবেশ পরিবর্তনশীল সিস্টেম যুক্ত করতে বা আপডেট করার জন্য কেবল একটি লাইন ব্যবহার করে nanoবা নয় notvi

কার্যকর সমাধান

যোগ / আপডেট করার জন্য একটি লাইন

grep env_name /etc/environment && sed -i.bak 's/env_name=.*/env_name="env_value"/' /etc/environment || echo 'env_name="env_value"' >> /etc/environment

উত্তর:


12

আপনি এটি কমান্ড লাইনে নতুন হিসাবে ঘোষণা করে বা পুনরায় ঘোষণার মাধ্যমে এটি করতে পারেন। উদাহরণস্বরূপ, আপনি যদি ~/testfolderনিজের পাথের পরিবর্তনশীলটি যুক্ত করতে চান তবে আপনি কেবল এটি আপনার বর্তমান টার্মিনালে প্রবেশ করতে পারেন (এটি কেবল একটি উদাহরণ):

PATH="$HOME/testfolder:$PATH"

আপনি অবশ্যই টার্মিনাল সেশনটি খোলার সময়টির জন্য অবশ্যই এটি পরিবর্তন করবে। $এখানে ব্যবহারটি লক্ষ্য করুন, আপনি এটি ঘোষণার জন্য রেখে দিয়েছেন, তবে আপনি যদি এটি প্রদর্শন করতে চান তবে $এর বিষয়বস্তু প্রসারিত করতে আপনাকে যুক্ত করতে হবে।

আপনি যদি এগুলি আরও স্থায়ী এবং সাধারণ হিসাবে ঘোষণা করতে চান তবে এগুলি আপনার ~/.bashrc(কেবল আপনার জন্য) ফাইলে বা /etc/bash.bashrc(সিস্টেমের প্রশস্ত) ইন যুক্ত করতে পারেন উদাহরণস্বরূপ যদি আপনি চান যে সেগুলি কেবল আপনার বা সমস্ত ব্যবহারকারীর জন্য গণনা করা হচ্ছে। আরেকটি বিকল্প হ'ল এটি আপনার .profileফাইলে যুক্ত করা (কেবল নিজের জন্য) যেখানে আপনি লগ ইন করার মুহুর্তটি থেকে এটি কার্যকর হবে You echoউদাহরণস্বরূপ আপনি এটি করতে পারেন উদাহরণস্বরূপ যদি আপনি নিশ্চিত হন যে এই পরিবর্তনশীলটি ইতিমধ্যে সেট করা নেই বা আপনি নতুন তৈরি করেন তবে (কেবলমাত্র একটি উদাহরণ):

echo "variable=value" >> /path/filename

আপনি যদি নিজের ব্যবহারকারীর ডিরেক্টরি থেকে বাইরে কোনও ফাইল সম্পাদনা করতে চান যা আপনি যখন সম্পাদনা করতে চান তখন আপনাকে /etc/bash.bashrcব্যবহার করতে হবে sudoএবং সুতরাং আপনি কেবল 'এখানে নথিটি' ব্যবহার করতে পারবেন না, তার পরিবর্তে নীচের মতো একটি লাইন ব্যবহার করুন:

echo "variable=value" | sudo tee -a /path/filename

চলকটি যদি ইতিমধ্যে বিদ্যমান থাকে তবে আপনি sedকমান্ডটি দিয়ে এটি পরিবর্তন করতে পারেন (কেবলমাত্র একটি উদাহরণ):

sed -i.bak 's/variable=value/variable=new-value/' /path/filename

এটি ফাইলের পরিবর্তনশীল সম্পাদনা করবে তবে সম্পাদনার আগে এর একটি ব্যাকআপ তৈরি করবে। যদি আপনি সেড দিয়ে আপনার ব্যবহারকারী ডিরেক্টরিতে ফাইলগুলি পরিবর্তন sudoকরেন তবে বেশিরভাগ ক্ষেত্রে আপনাকে লাইনটি ব্যবহার করতে হবে:

sudo sed -i.bak 's/variable=value/variable=new-value/' /path/filename

একটি ফাইল থেকে একটি ভেরিয়েবল অপসারণ sedপাশাপাশি করা যেতে পারে , কেবলমাত্র রেজেক্সের দ্বিতীয় অংশটি খালি ছেড়ে দিন:

sed -i.bak 's/variable=value//' /path/filename

আপনার আগ্রহী যা বিভিন্ন পরিবেশের নির্ধারণ করা হয় তাহলে আপনি ব্যবহার করতে পারেন envতাদের লিস্টে কমান্ড ( set -o posix ; set ) | lessবা sh -c set। তিনটিই ( set -o posix ; set ) | lessপ্রকৃতপক্ষে নির্ধারিত সর্বাধিক ভেরিয়েবলগুলি ফিরিয়ে দেওয়ার সাথে সাথে বিভিন্ন পরিমাণের আউটপুট দেয়।


1
পরিবর্তে ( set -o posix ; set )এটি সহজ বলা sh -c set। এটি (যা সাধারণত উবুন্টু সংস্করণে সাধারণত হয় না) এর shএকটি সিমিলিংক হলেও এটি কাজ করবে bash
Ruslan

@ আরস্লান সিস্টেমটিতে sh -c setপ্রকৃত সমস্ত পরিবেশের ভেরিয়েবল প্রদর্শন করছে না। তবে আমি এগুলিকে কিছু প্রদর্শন করার তৃতীয় উপায় হিসাবে অন্তর্ভুক্ত করব।
ভিডিওনাথ

আসলে sh -c setসমস্ত পরিবেশের ভেরিয়েবলগুলি দেখায় shows এটি কেবল কলিং শেলের শেল ভেরিয়েবলগুলি দেখায় না , তবে আপনি যদি না করেন তবে এগুলি কখনই সেই শেল থেকে চালিত কোনও প্রক্রিয়া দ্বারা উত্তরাধিকার সূত্রে প্রাপ্ত হয় না export
Ruslan

আছে কি কখনো সম্পাদন করা একটি বৈধ কারণ /etc/environment? দেখে মনে হচ্ছে এটি বিভ্রান্তির একটি শর্টকাট।
রজার লিপসক্বে

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

11

এর সরাসরি কোনও সমতুল্য নেই setx /m, তবে যা করে তা সম্পাদন করার উপায় রয়েছে setx /m

setx /mরাখে variable=valueমধ্যে HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment। অ- / মি (অর্থাত ব্যবহারকারী অনুসারে) setxকেবল রাখে variable=valueমধ্যে HKCU\Environment

আপনি বিশেষত 'সিস্টেম প্রশস্ত' জন্য বলেছেন asked তার জন্য, আপনি ভেরিয়েবল-মান জোড়াটি হয় /etc/environmentওআর-তে যোগ করবেন /etc/profile.d/<yourfile>। প্রাক্তনটি পাম দ্বারা মূল্যায়ন করা হয়, তবে পরবর্তীটি মূল্যায়ন করে /bin/sh। সুতরাং, মধ্যে /etc/profile.d/<yourfile>, আপনি যোগ করতে হবে variable=value; export variable। (বাশও অনুমতি দেয় export variable=value) জন্য /etc/environmentআপনি যোগ হবে variable=value

প্রতি ব্যবহারকারীর সমতুল্য ~/.pam_environmentএবং হয় ~/.profile

আরও দেখুন: https://help.ubuntu.com/commune/En વાહન ভার্সিয়েবল


7

আপনি কমান্ড লাইনে পরিবেশের পরিবর্তনগুলি রফতানি করতে পারেন, তবে এটি ইতিমধ্যে শুরু হওয়া প্রক্রিয়াগুলিতে কার্যকর পরিবেশকে প্রভাবিত করবে না, কেবলমাত্র বর্তমান প্রক্রিয়া এবং এর উপ-প্রক্রিয়াগুলিতে। সুতরাং বাস্তবে ভেরিয়েবল পরিবর্তন করার সময় অনুশীলনে আপনার প্রায়শই পুনরায় চালু করতে হবে।

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