प्रत्येक लॉग पर BASH इतिहास को 500 रेखाओं तक काट दिया गया


22

किसी कारण से, मैं रिबूट के बाद अपना BASH इतिहास रखने के लिए अपना सिस्टम प्राप्त नहीं कर सकता। यहाँ मेरे संबंधित अनुभाग हैं ~/.bashrc:

shopt -s histappend
PROMPT_COMMAND='history -a; updateWindowTitle'
export HISTCONTROL=ignoredups
export HISTSIZE=9999
export HISTFILESIZE=999999
export HISTFILE="$HOME/.bash_history"

जहां तक ​​मैं बता सकता हूं कि वे सभी आवश्यक विकल्प हैं (मुझे पता है कि मैं अतीत में इन सभी के बिना कई रिबूट के पार इतिहास रखने में सक्षम था)। हालाँकि, इन विकल्पों को कई रिबूट से पहले जोड़ने के बावजूद, मैंने रिबूट के बाद अभी भी अपने अधिकांश इतिहास को ढीला कर दिया है। यह खाली नहीं है, लेकिन इसमें 9999 लाइनें नहीं हैं जो मैंने रिबूट करने से पहले की थीं।

इससे पहले कि कोई शिकायत करे, हाँ मैंने इन सवालों को पढ़ा है। मैंने उनके कुछ सुझावों को ऊपर सूचीबद्ध के रूप में लागू किया है, बाकी या तो अनपेक्षित थे या प्रासंगिक नहीं थे:

इस बंद मौके पर कि वहाँ अन्य प्रासंगिक आदेश हो सकते हैं, आप ~/.bashrc यहाँ मेरा पूरा देख सकते हैं

तो मुझे क्या याद आ रही है? मेरा इतिहास क्यों नहीं बचा? अगर किसी को लगता है कि एक और फाइल प्रासंगिक हो सकती है तो मुझे बताएं और मैं इसे पोस्ट करूंगा। मैंने grep -i hist \.*अपने में चलाकर जाँच की $HOMEजिसमें पता चला कि .स्ट्रिंग वाली एकमात्र प्रासंगिक फाइल थी histया HISTथी .bashrc

मैं लिनक्स मिंट डेबियन संस्करण, GNU बैश, संस्करण 4.2.36 (1) -release (x86_64-pc-linux-gnu) और मेरा पसंदीदा टर्मिनल एमुलेटर (प्रासंगिक होने के मामले में) चला रहा हूं terminator


अपडेट करें:

टिप्पणियों में @ mpy के सुझाव के बाद, मैंने डिफ़ॉल्ट के विपरीत ~/.bashrcसेट करने के लिए अपना नाम बदल दिया और यह इंटरैक्टिव गोले के लिए समस्या को हल करने के लिए लगता है । लॉगिन गोले अभी भी उसी व्यवहार को प्रदर्शित करते हैं, जिसके तर्ज पर इतिहास को काट दिया गया है। हालाँकि, संबंधित फ़ाइलों में कोई संबंधित चर सेट नहीं हैं :HISTFILE=~/bash_history~/.bash_history500HIST

$ for f in /etc/profile ~/.profile ~/.bash_profile ~/.bash_login; do \
   echo -ne "$f :"; echo `grep HIST $f`; \
done
/etc/profile :
/home/terdon/.profile :grep: /home/terdon/.profile: No such file or directory
/home/terdon/.bash_profile :grep: /home/terdon/.bash_profile: No such file or directory
/home/terdon/.bash_login :grep: /home/terdon/.bash_login: No such file or directory
$ grep -r HIST /etc/profile.d/  <-- returns nothing

तो, क्यों स्थापित कर रही है HISTSIZEऔर HISTFILESIZEमें ~/.bashrcपर्याप्त नहीं है जब तक कि मैं स्पष्ट रूप से सेट $HISTFILEडिफ़ॉल्ट के अलावा कुछ करने के लिए ~/.bash_history?


क्या आप .bash_history या रूट के स्वामी हैं? Do ls -l .bash_history
अदनान भट्टी

1
@MSStp हाँ, यह मेरे द्वारा स्वामित्व में है। सुझाव के लिए धन्यवाद, लेकिन मैं यह नहीं देखता कि यह कैसे एक अनुमति मुद्दा हो सकता है, या तो मैं इसे पढ़ने / लिखने के लिए उपयोग किया है या मैं नहीं। चूंकि कुछ इतिहास बचा है, मैं स्पष्ट रूप से करता हूं। यदि बैश में एक ऐसी सेटिंग होती थी जिससे यह समस्या होती है जब यह फ़ाइल उपयोगकर्ता के पास नहीं है, तो यह या तो शिकायत करेगी या संपूर्ण इतिहास कार्यक्षमता काम नहीं करेगी।
टेराडन

जब आप historyकमांड निष्पादित करते हैं , तो आपके द्वारा देखा जाने वाला आउटपुट cat .bash_historyलाइन नंबरों के अलावा, आपके द्वारा देखे जाने, चलाने के समान है ? मेरा मतलब है कि historyकमांड सूची समय टिकटों या अन्य जानकारी? मैं जो कारण पूछ रहा हूं, यदि आप इन गूढ़ सामग्रियों को देखते हैं, तो इसका मतलब है, एक अन्य मॉड्यूल / फ़ंक्शन / प्रोग्राम है, जो शेल इतिहास के साथ खिलवाड़ कर रहा है और जो कुछ भी है, उसका एक गलत या छोटी गाड़ी संस्करण है, जिससे आपको दुःख हो सकता है। ।
मेलबर्सलान

@Mel_Burslan हाँ यह समान है, केवल अंतर लाइन नंबर है।
टेराडॉन

2
ठीक है, एक अजीब सा सुझाव है, लेकिन यह एक अजीब समस्या भी है ;): HISTFILE के रूप में एक और फ़ाइल आज़माएं, डिफ़ॉल्ट नहीं ~/.bash_history। बहुत समझाई गई व्याख्या: मुझे लगता है कि बैश आपका डिफ़ॉल्ट शेल है, इसलिए सिस्टम शुरू होने पर एक गैर-संवादात्मक शेल आपके एक्स सत्र का माता-पिता है (मैं यह भी मानता हूं कि आप एक्स का उपयोग करते हैं), जो हिस्टैपेंड विकल्प के बारे में कुछ भी नहीं जानता होगा (जैसा कि .bashrc केवल है। इंटरैक्टिव गोले द्वारा पढ़ा जाता है), इसलिए जब तक यह मूल खोल सब कुछ ठीक चलता है, लेकिन समाप्ति (यानी सिस्टम रुकावट) पर यह ओवरराइड करेगा ~/.bash_history(जो डिफ़ॉल्ट है) और आपके इतिहास को गड़बड़ कर देता है ...
mpy

जवाबों:


17

समस्या वास्तव में लॉगिन और गैर-लॉगिन गोले के विभिन्न व्यवहार को उबालती है। मैंने उन चरों को सेट किया था जो मेरे इतिहास को नियंत्रित करते हैं ~/.bahsrc। यह फ़ाइल तब नहीं पढ़ी जाती है जब कोई लॉगिन शेल शुरू करता है, यह केवल इंटरएक्टिव, नॉन-लॉगइन शेल (से man bash) द्वारा पढ़ा जाता है :

जब बैश को एक इंटरेक्टिव लॉगिन शेल के रूप में या --loginविकल्प के साथ एक गैर-इंटरैक्टिव शेल के रूप में लागू किया जाता है , तो यह पहले फ़ाइल से कमांड को पढ़ता है और निष्पादित करता है /etc/profile, यदि वह फ़ाइल मौजूद है। उस फ़ाइल को पढ़ने के बाद, यह ~ / .bash_profile ~/.bash_loginऔर ~/.profile, और उस क्रम में दिखता है , और पहले वाले से कमांड को पढ़ता और निष्पादित करता है जो कि मौजूद है और पठनीय है। --noprofileविकल्प इस्तेमाल किया जा सकता है जब खोल इस व्यवहार को बाधित करने के लिए शुरू कर दिया है।

[। । । ]

जब एक इंटरेक्टिव शेल जो लॉगिन शेल नहीं है, तो bash पढ़ता है और ~ / .bashrc से कमांड निष्पादित करता है, यदि यह फाइल मौजूद है। यह --norc विकल्प के उपयोग से बाधित हो सकता है। --Rcfile फ़ाइल विकल्प ~ / .bashrc के बजाय फ़ाइल से आदेशों को पढ़ने और निष्पादित करने के लिए बैश करने के लिए बाध्य करेगा।

इसलिए, हर बार जब मैंने लॉग इन किया, या एक tty में गिरा, या ssh का उपयोग किया, तो .historyफ़ाइल को छोटा किया जा रहा था क्योंकि मैंने इसे सही आकार में सेट नहीं किया था ~/.profile। मुझे आखिरकार इस बात का अहसास हुआ और बस चर को ~/.profile वे सेट करते हैं जहां वे हैं , इसके बजाय~/.bashrc

इसलिए, मेरी वजह ~/.historyसे छंटनी हो रही थी क्योंकि मैंने केवल इंटरैक्टिव, नॉन-लॉगिन शेल द्वारा पढ़ी गई फ़ाइल में हिस्टरी वैरिएबल सेट किया था और इसलिए हर बार जब मैं एक अलग प्रकार का शेल चलाता था तो वेरिएबल को अनदेखा कर दिया जाता था और फाइल कट जाती थी। तदनुसार।


बहुत अच्छा बिंदु, साझा करने के लिए धन्यवाद! हालांकि, मैं इससे सहमत नहीं हूं: यह फ़ाइल तब नहीं पढ़ी जाती है जब कोई लॉगिन शेल शुरू करता है, यह केवल इंटरेक्टिव शेल द्वारा पढ़ा जाता है। क्योंकि एक लॉगिन शेल इंटरएक्टिव भी हो सकता है। अन्यथा पूरे इतिहास तंत्र का कोई मतलब नहीं होगा। IMHO .bashrc(गैर-संवादात्मक या लॉगिन गोले) द्वारा नहीं पढ़ा जाता है।
मपी

@mpy वास्तव में, क्षमा करें, मेरा मतलब था इंटरैक्टिव, गैर-लॉगिन गोले। उत्तर संपादित किया गया।
टेराडॉन

1
@terdon, सामान्य मुहावरा है कि इंटरैक्टिव शैल विकल्प ~ / .profile या ~ / .bash_profile में नहीं जाते हैं। इंटरएक्टिव शेल विकल्प ~ / .bashrc में डाल दिए जाते हैं। दो स्थानों पर सेटिंग बनाए रखने से बचने के लिए निम्नलिखित कमांड को ~ / .bash_profile के शीर्ष पर रखा जा सकता है: export BASH_ENV=~/.bashrc ; if [ -f ~/.bashrc ]; then . ~/.bashrc; fi... और ~ / .bashrc के शीर्ष पर यह सुनिश्चित करने के लिए एक चेक लगाएं कि आप वास्तव में अंतःक्रियात्मक रूप से चल रहे हैं। [ -z "$PS1" ] && return... बेशक, यह सिर्फ एक मुहावरा है।
नूह स्परियर 10

1
@NoahSpurrier BASH_ENVप्रासंगिक नहीं है, यह केवल गैर-इंटरैक्टिव गोले को प्रभावित करता है। "मुहावरे" के लिए, यह कुछ ऐसा है जिसे डेबियन ने शुरू किया और जिसके साथ मैं व्यक्तिगत रूप से सहमत नहीं हूं। मेरे पास xsetमेरे .bashrc में अक्सर ग्राफिकल विकल्प ( और पसंद) होते हैं और मैं नहीं चाहता कि जब मैं किसी टैटी से या उसके माध्यम से लॉगिन शेल चलाऊं तो वे सक्रिय हों ssh। मैं अपना .profile और .bashrc अलग चाहता हूं। कई (हालांकि सभी नहीं) लॉगिन प्रबंधक स्रोत। जब आप इतने वैश्विक चर में लॉग इन करते हैं, तो वहां सबसे अच्छा सेट होता है, जहां उन्हें केवल एक बार पढ़ा जाएगा और प्रत्येक बार जब आप एक टर्मिनल खोलते हैं।
टेराडन

1
@WilsonF हाँ। फाइलें क्रमिक रूप से पढ़ी जाती हैं और व्यक्तिगत फाइलें ( ~/.profileया ~/.bashrc) अंतिम पढ़ी जाती हैं। उन में कुछ भी सेट वैश्विक सेटिंग्स पर पूर्वता ले जाएगा। आप काफी सही हैं, आपको उन चरों को सेट नहीं करना चाहिए /etc/bash.bashrc। इसके बजाय ~/.profile(या ~/.bash_profile) का उपयोग करें ।
टेराडॉन

11

मेरा सुझाव HISTFILEडिफ़ॉल्ट के रूप में , किसी अन्य फ़ाइल का उपयोग करना है ~/.bash_history

हालाँकि, मेरी कोई विश्लेषणात्मक व्याख्या नहीं है, मैं इस सुझाव की रूपरेखा तैयार करने की कोशिश करूँगा: यदि आप bashअपने डिफ़ॉल्ट (लॉगिन) शेल के रूप में उपयोग करते हैं और उपयोग भी करते हैं X(जो दोनों बहुत संभावित है) आपके पास एक bashसही उदाहरण है (चित्रमय) ) लॉग इन करें:

systemd
 ...
  |-login
  |   `-bash      <<====
  |       `-slim
  |           |-X -nolisten tcp vt07 -auth /var/run/slim.auth
  |           |  `-{X}
  |           `-fluxbox
  |               `-xterm -bg black -fg white
  |                   `-bash
 ...

मुझे लगता है कि यह उदाहरण एक लॉगिन शेल है, इसलिए यह आपके ~/.bashrcबारे में नहीं पढ़ता है और इसलिए आपको histappendविकल्प के बारे में कुछ भी पता नहीं होगा :

man bash (1) : जब एक इंटरेक्टिव शेल जो कि लॉगिन शेल नहीं है, तो bash पढ़ता है और /etc/bash.bashrc और ~ / .bashrc से कमांड निष्पादित करता है, अगर ये फाइलें मौजूद हैं। (...)

जब तक यह "पैरेंट शेल" चलता है, तब तक सब कुछ ठीक है, लेकिन इसके समापन (यानी सिस्टम रुकावट) पर यह ओवरराइड करेगा ~/.bash_history(क्योंकि यह डिफ़ॉल्ट मान है) और आपके इतिहास को गड़बड़ कर देता है या इसे सिस्टम पर फिर से शुरू (फिर से डिफ़ॉल्ट) 500 पर भेज देता है लाइनों। (या शायद दोनों ...)

यह मुझ पर भी प्रहार करता है, कि इतिहास विन्यास को इसमें शामिल करना पर्याप्त नहीं है ~/.bashrc, क्योंकि यह ऐसा असामान्य सेटअप नहीं होना चाहिए। मेरे पास इसके लिए कोई स्पष्टीकरण नहीं है।


अपनी समस्या के बारे में, कि "लॉगिन गोले अभी भी समान व्यवहार प्रदर्शित करते हैं", आप इतिहास के विन्यास को भी इसमें शामिल करने का प्रयास कर सकते हैं ~/.bash_profile:

मैन बैश (1) : जब बैश को एक इंटरेक्टिव लॉगिन शेल के रूप में, या - एलगिन ऑप्शन के साथ एक गैर-इंटरैक्टिव शेल के रूप में आमंत्रित किया जाता है, तो यह पहले फाइल / etc / प्रोफाइल से कमांड को पढ़ता है और निष्पादित करता है, यदि वह फाइल मौजूद है। उस फ़ाइल को पढ़ने के बाद, यह ~ / .bash_profile, (...) की तलाश करता है

दुर्भाग्य से मैं अपने स्वयं के bashविन्यास से विवरण के साथ अधिक न्यायसंगत स्पष्टीकरण नहीं दे सकता , क्योंकि मैं एक zshव्यक्ति हूं ...


2
स्पष्ट रूप से मेरे द्वारा ~/.bash_profileहल किए गए इतिहास विकल्पों को समस्या को हल करने में। मैं अब ~/.bash_historyअपनी इतिहास फ़ाइल के रूप में उपयोग कर रहा हूं, लेकिन ~/.bashrcमेरे प्रश्न में दिखाए गए सभी लाइनों को बस जोड़ दिया है ~/.bash_profile। अभी भी यकीन नहीं है कि इंटरेक्टिव गोले कौन बिखेर रहा था, लेकिन यह अब काम करने लगता है, धन्यवाद!
टेराडॉन

1
अस्वीकार करने के लिए क्षमा करें, लेकिन जो कुछ चल रहा था उसे स्पष्ट करते हुए उत्तर पोस्ट करना भूल गया। मैंने कुछ समय पहले @Gilles की मदद से इसका पता लगाया और अंत में उत्तर पोस्ट करने के लिए चक्कर लगाया। मैं मेरा स्वीकार करना चाहता था क्योंकि यह वास्तव में (बहुत अच्छा) काम करने की पेशकश के बजाय मुद्दे की व्याख्या करता है और भविष्य के आगंतुकों की मदद कर सकता है।
टेराडो

2

चूँकि आपकी सभी सेटिंग्स मैन पेज के अनुसार क्रम में हैं, और चूंकि इतिहास फ़ाइल आकार (बाइट्स) द्वारा प्रतिबंधित नहीं है, केवल वही संभावित स्पष्टीकरण जिसके बारे में मैं सोच सकता हूं। यह कैसे खोल मर जाता है के साथ करना है।

ऑनलाइन संदर्भ के अनुसार, सुशोभित निकास (इतिहास बचाया) केवल तब होता है जब शेल SIGHUP प्राप्त करता है। मैं वास्तव में यह नहीं समझा सकता कि आपका सिस्टम रिबूट होने पर संकेतों का प्रचार कैसे करता है, लेकिन मुझे संदेह है कि आपका खोल SIGKILL या SIGPWR के साथ है।

ऐसा इसलिए हो सकता है क्योंकि आपका WM अतुल्यकालिक रूप से (प्रतीक्षा) और टर्मिनल एमुलेटर WM से चला जाता है, जहां बैश को SITEUP के अलावा एक निकास-मजबूर संकेत मिलता है। यह भी हो सकता है कि ओएस को एक्सक्लूसिव रूप से एक्स -> डब्लूएम -> एक्सटर्म के माध्यम से शेल प्राप्त करने से पहले सभी प्रक्रियाओं को "फाइनल किल" सभी प्रक्रियाओं को भेजने की जल्दी हो, क्योंकि संभवतः एक्स या डब्ल्यूएम इससे बाहर निकलने में अधिक समय लेता है। यह ओएस नीचे जाने के लिए तैयार होने के लिए लेता है।

मैं इस सामग्री के साथ गहरे पानी में हूं, लेकिन मुझे लगता है कि उन रेखाओं के साथ कुछ गलत व्यवहार का कारण बनता है। मेरे पास यह मुद्दा पहले आया है, और सबसे ठोस उपाय है exitकि आप इतिहास रखना चाहते हैं।

मैंने history -aआपके प्रश्न पर ध्यान दिया , और मैं यह नहीं सोच सकता कि इतिहास को संरक्षित करने के लिए यह पर्याप्त क्यों नहीं होगा।

आप समस्या का पता लगाकर समस्या का निवारण कर सकते हैं जो वास्तव में आपकी बैश को मारता है और यह पता लगाने के लिए आगे बढ़ता है कि सिग्नल कहाँ से उत्पन्न होता है और समस्या को ठीक करता है, या बस इतिहास को फ्लश करता है जब आपको पता चलता है कि कौन सा सिग्नल अंतिम है (तब तक डिस्क अभी भी ऑनलाइन है। ):

trap "echo got 1  >/tmp/sig1;  exit" SIGHUP
trap "echo got 2  >/tmp/sig2;  exit" SIGINT
trap "echo got 15 >/tmp/sig15; exit" SIGTERM
 .. and so on...

शामिल किए गए स्क्रीनशॉट से पता चलता है कि मैं दूसरे और तीसरे पैराग्राफ में क्या बात कर रहा हूं। अनुक्रम मैं में शेल है बाएं से , सही और बिल्ली इतिहास से बाईं खोल मार डालते हैं।

आदमी को मारना

स्टार्टअप पर, (...) HISTFILE के मान द्वारा नामित फ़ाइल को छोटा किया जाता है, यदि आवश्यक हो, तो HISTFILESIZE (+ डिफ़ॉल्ट 500) के मान द्वारा निर्दिष्ट लाइनों की संख्या से अधिक नहीं होना चाहिए।

यदि हिस्टैपेंड शेल विकल्प सक्षम है (+ यहाँ पर डिफ़ॉल्ट), तो लाइनें इतिहास फ़ाइल में जोड़ दी जाती हैं, अन्यथा इतिहास फ़ाइल अधिलेखित हो जाती है।

ऑनलाइन संदर्भ

3.7.6 संकेत

जब बैश संवादात्मक होता है, तो किसी भी जाल के अभाव में, यह SIGTERM को अनदेखा कर देता है (ताकि 'मार 0' एक इंटरेक्टिव शेल को न मार दे), और SIGINT को पकड़ लिया जाता है और उसे संभाला जाता है (ताकि प्रतीक्षा का अवरोध बाधित हो)। जब बैश को एक संकेत मिलता है, तो यह किसी भी निष्पादित छोरों से बाहर हो जाता है। सभी मामलों में, बैश SIGQUIT की उपेक्षा करता है। यदि जॉब कंट्रोल लागू है (जॉब कंट्रोल देखें), बैश SIGTTIN, SIGTTOU और SIGTSTP को नजरअंदाज करता है।

बैश द्वारा शुरू किए गए गैर-बिलिन आदेशों में सिग्नल हैंडलर को अपने माता-पिता से शेल द्वारा विरासत में प्राप्त मूल्यों के लिए सेट किया गया है। जब नौकरी पर नियंत्रण प्रभावी नहीं होता है, तो एसिंक्रोनस कमांड इन विरासत संचालकों के अलावा SIGINT और SIGQUIT की उपेक्षा करते हैं। कमांड प्रतिस्थापन के परिणामस्वरूप चलने वाले कमांड कीबोर्ड-जेनरेट किए गए जॉब कंट्रोल सिग्नल SIGTTIN, SIGTTOU और SIGTSTP को अनदेखा करते हैं।

किसी SITEUP के प्राप्त होने पर शेल डिफ़ॉल्ट रूप से बाहर निकलता है। बाहर निकलने से पहले, एक इंटरेक्टिव शेल सभी जॉब के लिए, रनिंग या रोके जाने के लिए SITEUP का समाधान करता है। बंद नौकरियों को SIGCONT भेजा जाता है ताकि यह सुनिश्चित हो सके कि वे SIGHUP प्राप्त करते हैं। शेल को किसी विशेष कार्य के लिए SITEUP सिग्नल भेजने से रोकने के लिए, इसे जॉब टेबल से हटाए गए बिलिन (जॉब कंट्रोल बिल्डिंस देखें) के साथ हटा दिया जाना चाहिए या डिस -एच का उपयोग करके SIGHUP प्राप्त नहीं करने के लिए चिह्नित किया जाना चाहिए।

यदि हूपोनेक्सिट शेल विकल्प शॉपट के साथ सेट किया गया है (देखें द शाप्ट बिलिन), बैश इंटरएक्टिव लॉगिन शेल से बाहर निकलने पर सभी नौकरियों के लिए एक साइट भेजता है।

यदि बैश एक कमांड को पूरा करने के लिए इंतजार कर रहा है और एक संकेत प्राप्त करता है जिसके लिए एक जाल सेट किया गया है, तो कमांड पूरा होने तक जाल को निष्पादित नहीं किया जाएगा। जब बैश वेट बिलिन के माध्यम से एक अतुल्यकालिक आदेश की प्रतीक्षा कर रहा है, तो एक सिग्नल का रिसेप्शन जिसके लिए एक जाल स्थापित किया गया है, प्रतीक्षा बायिन को तुरंत बाहर निकलने की स्थिति में 128 से अधिक के साथ वापस लौटने का कारण होगा, जिसके तुरंत बाद ट्रैप निष्पादित हो जाता है।

प्रदर्शनकारी स्क्रीन शॉट

संकेत


मुझे उस स्क्रीनशॉट में वास्तव में नहीं मिल रहा है। वह क्या है /tmp/psoजिसे आप मार रहे हैं? मैं अलग-अलग किल संकेतों के बारे में आपकी बात देखता हूं (हालांकि जैसा कि आप कहते हैं, मुझे लगा था कि इससे history -aनिपटने के लिए क्या है)। मैं थोड़ी देर के लिए परीक्षण करूंगा और रिपोर्ट करूंगा।
टेराडॉन

$ बिल्ली tmp / पी एस * \ N ps -ओ पीआईडी = | सिर -n1> ~ / tmp / पीएसओ \ N 17201 \ N
Ярослав Рахматуллин

0

चेक / आदि / प्रोफ़ाइल और /etc/profile.d/*

शायद वहाँ इतिहास सेटिंग्स के साथ कुछ गड़बड़ है।


धन्यवाद, लेकिन grep -r HIST /etc/profile.d/कुछ भी नहीं लौटाता, और मैंने पहले ही जाँच कर ली है /etc/profile
टेराडॉन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.