টার্মিনাল কমান্ড ব্যবহার করে কীভাবে সিস্টেম পাথ (AT AT PATH`) থেকে কোনও পাথ সরিয়ে ফেলা যায়?


10

আমি চলার মাধ্যমে সিস্টেমের পথে ( $PATH) ডিরেক্টরি ডিরেক্টরি যুক্ত করেছি ,

export PATH=$PATH:/home/avinash/Desktop/raj

এখন আমার পথটি দেখতে এমন দেখাচ্ছে,

$ প্রতিধ্বনি $ পথ H
/ Usr / lib / lightdm / lightdm / usr / স্থানীয় পক্ষ থেকে / sbin / usr / স্থানীয় / বিন: / usr / sbin / usr / বিন: পক্ষ থেকে / sbin: / বিন / usr / গেম / usr / স্থানীয় / গেম : / হোম / অবিনাশ / ডেস্কটপ / রাজ

আমি /home/avinash/Desktop/rajকমান্ডটি ব্যবহার করে সিস্টেম পাথের পরিবর্তনশীল থেকে অপসারণ করতে চাই ( যেমন এক্সপোর্ট কমান্ড পাথ যুক্ত করার ক্ষেত্রে করে )।


আপনি রফতানি বিবৃতি কোথায় রেখেছিলেন?
সোরাভ্যাক

জিনোম টার্মিনাল (ctrl + Alt + t)
অবিনাশ রাজ

উত্তর:


14

চলমান export PATH=$PATH:/...আপনার PATHসিস্টেম-ব্যাপী সেট করে না । এটি কেবল একটি শেল ভেরিয়েবল। একটি নতুন শেল এবং বুম শুরু করুন , এটি চলে গেছে। স্পষ্টতই যদি আপনি এটি ~/.bashrc(বা অন্য কোনও পরিবেশ বুটস্ট্র্যাপ ফাইল) যুক্ত করে থাকেন তবে আপনাকে সেই পরিবর্তনটি ফিরিয়ে দিতে হবে তবে এটি এখানে আপনার সমস্যার মতো মনে হচ্ছে না।

আপনি যদি কোনও নতুন শেল শুরু না করার জন্য মরিয়া হয়ে থাকেন তবে আপনি এটি ম্যানুয়ালি সরিয়ে এটি সেট করে রাখতে পারেন:

export PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

11

আপনার বর্তমান শেলটিতে (আপনার জিনোম-টার্মিনালের বর্তমান সেশন) আপনি এটি ব্যবহার করে এটি করতে পারেন:

export PATH=${PATH%:/home/avinash/Desktop/raj}

সাধারণভাবে:

${string%substring}

মোছাগুলিকে সবচেয়ে কম ম্যাচে $substringথেকে ফিরে এর $string

পরীক্ষা করে দেখুন স্ট্রিং ম্যানিপুলেশন আরও তথ্যের জন্য।


2

আপনি যদি এটি কমান্ড হিসাবে ব্যবহার করতে চান তবে এখানে একটি ছোট স্ক্রিপ্ট রয়েছে:

#!/bin/bash

# This script removes folder from PATH variable
# Folders to remove reading as arguments

if [ $# -lt 1 ]; then
    echo "You should give at least one argument"
    echo "For example"
    echo "$0 /usr/local/bin"
else
    FOLDERS_TO_REMOVE=`echo $@ | sed 's/ /|/g'`

    echo "You actually PATH variable is:"
    echo $PATH
    echo "###"

    PATH=$( echo ${PATH} | tr -s ":" "\n" | grep -vwE "(${FOLDERS_TO_REMOVE})" | tr -s "\n" ":" | sed "s/:$//" )

    echo "Now you need to run"
    echo "export PATH=$PATH"
fi

নাম দিন unexport, এবং এটি আপনার পাঠাতে যুক্ত করুন।

ব্যবহার:

unexport /usr/local/bin /bin /sbin

এই স্ক্রিপ্টটি আপনার আসলে পরিবর্তন করে না PATH। আপনি যদি স্ক্রিপ্টটি এটি করতে চান তবে আপনার শেষ পংক্তিটি পরিবর্তন করা উচিত। সাবস্টিটিউট echo "export PATH=$PATH"করতেexport PATH=$PATH


2

আপনি যদি exportকোনও শেল ইনিশিয়েশন ফাইলে যেমন বিবৃতিটি রাখেন তবে আপনি ~/.bashrcনিম্নলিখিত কমান্ডগুলি টার্মিনালে ব্যবহার করতে পারেন,

#remove the export statement from the file.
sed -i 's#export PATH=$PATH:/home/avinash/Desktop/raj##g' ~/.bashrc
#source ~/.bashrc
. ~/.bashrc

এটি ফোল্ডারটিকে পথ থেকে সরিয়ে ফেলবে।

আপনি যদি কোনও টার্মিনাল থেকে পথটি রফতানি করে থাকেন

আপনি যতক্ষণ শেলটিতে রয়েছেন ততক্ষণ ফোল্ডারটি পথে থাকবে। পাথটি ওভাররাইট করতে আপনাকে নতুন পথ নির্ধারণ করতে হবে। যেমন ইতিমধ্যে অন্য উত্তরে উল্লিখিত হয়েছে।

আপনি পুরানো পথ নির্ধারণ করতে নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন

export PATH=`echo ${PATH/\:\/home\/avinash\/Desktop\/raj/}`

বা, সহজভাবে

export PATH=${PATH/':/home/avinash/Desktop/raj'/}

এটি সাবস্ট্রিং প্রতিস্থাপন,

${string/substring/replacement}

2

একটি নোংরা হ্যাক হয়

export PATH="$( echo $PATH| tr : '\n' |grep -v raj | paste -s -d: )"
  1. লাইন ব্যবহার করে আপনার পথের প্রতিটি দির আলাদা করুন tr
  2. আপনি যা চান না তা সরান ("রাজ" এর সাথে মিলে যাওয়ার পথ) ব্যবহার করে grep -vএবং
  3. পিছনে ফিরে একটি দীর্ঘ ":" সীমাবদ্ধ স্ট্রিং ব্যবহার করে paste

প্যাথের কোনও দির আছে :বা একটি নতুন লাইন থাকলে এটি সম্ভবত কাজ করবে না

যদি আপনি নিজেকে এটি অনেক কিছু করতে দেখেন তবে এটিকে একটি ফাংশন হিসাবে বিবেচনা করুন এবং আপনার শেল প্রোফাইলে সংরক্ষণ করুন (যেমন .bashrc, .zshrc)

# use like: rminpath "raj"
rminpath(){ export PATH="$( echo $PATH| tr : '\n' |grep -v "$1" | paste -sd: )"; }

1

export PATH=$PATH:/home/avinash/Desktop/raj (এখানে আপনি ফাইলটি ভেরিয়েবলে যুক্ত করেছেন))

echo $PATH
আপনি যদি এই আদেশটি কার্যকর করেন তবে এটি আউটপুট:

/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/avinash/Desktop/raj

কীভাবে আপনি এটিকে সরান? শুধু চালানো

$ export PATH=${PATH/'/home/avinash/Desktop/raj'/}

এটি স্ট্রিং প্রতিস্থাপনের ধারণা।

$ export PATH=${string/substring/replacement}

0

শেল বিল্টিন কমান্ড exportভেরিয়েবল সেট কিনা তা নির্ধারণ করে না, এটি ভেরিয়েবল এবং এর মান উপ-প্রসেসগুলিতে সেট করা আছে কিনা তা নির্ধারণ করে।

ভেরিয়েবল পরিবর্তন করা, রফতানি হওয়া বা না করা, প্যারেন্ট প্রসেস বা তার উপরের কোনও প্রভাব ফেলবে না, সুতরাং স্ক্রিপ্টটি চালানো না হলে স্ক্রিপ্টে এটিকে পরিবর্তন করা কোনও প্রভাব ফেলবে না source

একটি শেল ফাংশন:

function trimpath {
    PATH=${PATH%:*}
}

PATH ভেরিয়েবলের শেষ উপাদানটি ছাঁটাবে। এটির exportঅবস্থা প্রভাবিত নয়।


0

ঘোষণা করুন -x PATH = "/ কাঙ্ক্ষিত / পথ / আপনি_বন্ত" যদি আমি ভুল না হয়ে যাই তবে নিজে যা চান তা আপডেট করবে এবং এটি কী হবে তা আপনার নির্দেশে এটি সম্পূর্ণরূপে। [নিশ্চিত হয়ে নিন যে আপনি রুট হিসাবে চালিত হয়েছেন এবং পছন্দসই ব্যবহারকারী হিসাবে আপনি এই পরিবর্তনটি প্রভাবিত করতে চান] দ্বিগুণ নিশ্চিত হতে, ENV চালিয়ে যান যাতে নিশ্চিত হন $ পাথ কার্যকরভাবে পরিবর্তিত হয়েছিল। (আপনি '/ usr / bin / env' চালানোর পরে যে কোনও আউটপুট পাবেন তা পরিবর্তন করার জন্য এটি দরকারী। এটি আটকা)

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