कम कमांड का उपयोग करते हुए या मैन पेजों के भीतर मैं लिनक्स कमांड कैसे निष्पादित करता हूं?


9

मैं आम तौर पर कमांड lsको पाइप करता हूं lessऔर एक कमांड निष्पादित करना चाहता हूं, जबकि यह पेजिंग है। उदाहरण के लिए, मैं एक फाइल भर में आता हूं जिसे मैं डिलीट करना चाहूंगा ताकि मैं rm {filename}अभी भी पेजिंग करते हुए कमांड को निष्पादित करूं । मैं यह भी आशा करना चाहूंगा कि मैं मैन पेजों का उपयोग करते समय उसी पद्धति का उपयोग कर सकूं। यदि नहीं तो यह अलग कैसे है?

जवाबों:


8

आप !कम के भीतर बैंग ( ) का उपयोग करके कमांड लाइन तक पहुंच सकते हैं ।

उदाहरण के लिए, यदि आप टाइप करते हैं:

touch temp.txt
ls | less
!rm temp.txt

और temp.txt को जाना चाहिए।

संपादित करें: डिफ़ॉल्ट रूप से ऐसा लगता है कि आदमी अब पृष्ठ का कम उपयोग करता है (किसी कारण से मुझे लगा कि इसका उपयोग किया है more, शायद अतीत में ऐसा किया था)। आप एक ही चाल का उपयोग कर सकते हैं, लेकिन इसे पूरा करने के लिए इसे प्राप्त करने के लिए पूर्ण पथ (जैसे / / घर / उपयोगकर्ता / ...) की आवश्यकता होती है।

इसका कारण यह है कि मनुष्य वर्तमान कार्य निर्देशिका को बदल देता है। मेरी मशीन पर (xubuntu, using xfce-terminal) यह जाता है /usr/share/man। यदि आपका कंसोल CWD प्रदर्शित करता है तो आप इसे बदल सकते हैं, या आप इसे manदर्ज करके देख सकते हैं :

!pwd

आदमी वास्तव में सीडब्ल्यूडी को बदलता है, इसलिए आपको पूर्ण पथ का उपयोग करने की आवश्यकता होगी।
रोब

@ रोब - आपका क्या मतलब है man actually changes CWD?
मूँगफली के दाने

मैंने अपने स्टेटस बार में अपने CWD को दिखाने के लिए tmux स्थापित किया है। man manआदमी के खुले रहने पर डूइंग (या कुछ भी) मेरी CWD को बदल देगा। इस समय मेरी linux मशीन उपलब्ध नहीं है, और मैं CWD की जाँच करने के लिए किसी अन्य तरीके के बारे में सुनिश्चित नहीं हूँ, लेकिन मुझे ऐसा लगता है कि यह क्या कर रहा है।
रॉब

@Rob - तो आपके कहने का मतलब यह है कि सिर्फ इसलिए कि आप tmux का उपयोग कर रहे हैं, यह कमांड के स्थान man {command}से जब आप कमांड को चलाते हैं तो वर्तमान कार्य निर्देशिका को बदल देता है ? /home/{user}man
मूँगफली के दाने

मैंने जो व्यवहार देखा उसे समझाऊंगा। अब, यह CWD क्यों बदल रहा है, यह एक और सवाल है ...
ऐश

4

ऐसा करने का सामान्य तरीका वर्तमान नौकरी को निलंबित करना, कमांड निष्पादित करना और पुरानी नौकरी को फिर से शुरू करना है।

ls | less (पाठ पढ़ें, फ़ाइल नाम पर ध्यान दें)
Control-zवर्तमान सक्रिय कमांड को निलंबित करने के लिए

आपको इसके समान एक पंक्ति मिलनी चाहिए: [1]+ Stopped ls | less
([१] नौकरी का नंबर है)

rm testfile

fgया fg %1 (1 काम का नंबर है)

आप एक ही समय में कई प्रक्रियाओं को स्थगित कर सकते हैं। जैसे
ls | less
Control-z (output: [1]+ Stopped ls | less)
man rm
Control-z (output: [2]+ Stopped man rm)
rm -i testfile*

fg %1नौकरी फिर से शुरू करने के लिए (पृष्ठभूमि में मैन पेज को छोड़कर), या
fg %2नौकरी 2 (मैन आरएम) को फिर से शुरू करने के लिए

यदि आपके पास कई निलंबित प्रक्रियाएं हैं तो आप उन्हें सूचीबद्ध कर सकते हैं jobs

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.