लिनक्स बैश चीट शीट

कुछ उपकरण कमांड लाइन पैरामीटर

Page content

एक बहुत व्यापक सूची नहीं, बस कुछ जो मुझे उपयोगी लगता है

bash और shell के जयंती!

लिनक्स यूबंटू के संस्करण की जांच

विधि 1

lsb_release -a

कुछ ऐसा उत्पन्न करेगा

कोई LSB मॉड्यूल उपलब्ध नहीं है।
वितरक के आईडी:	लिनक्समिंट
विवरण:	लिनक्स मिंट 22.1
रिलीज:	22.1
कोडनेम:	एक्सिया

विधि 2

cat /etc/os-release

कुछ ऐसा उत्पन्न करेगा

नाम="लिनक्स मिंट"
वर्जन="22.1 (एक्सिया)"
आईडी=लिनक्समिंट
आईडी_लाइक="यूबंटू डीबियन"
प्रेटी_नाम="लिनक्स मिंट 22.1"
वर्जन_आईडी="22.1"
होम_यूआरएल="https://www.linuxmint.com/"
सपोर्ट_यूआरएल="https://forums.linuxmint.com/"
बग_रिपोर्ट_यूआरएल="http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/"
प्राइवेसी_पॉलिसी_यूआरएल="https://www.linuxmint.com/"
वर्जन_कोडनेम=एक्सिया
यूबंटू_कोडनेम=नोबल

आर्काइविंग और अन-आर्काइविंग

संपीड़न

tar -zcvf आर्काइव-नाम.tgz डायरेक्टरी-नाम

असंपीड़न

tar -zxvf आर्काइव-नाम.tgz

दूरस्थ सर्वर

दूरस्थ सर्वर पर उपयोगकर्ता पहचान भेजें

ssh-copy-id उपयोगकर्ता@10.0.0.225

इससे अगली बार पासवर्ड के बिना लॉगिन करने की अनुमति मिलेगी जैसे

ssh उपयोगकर्ता@10.0.0.225

फ़ाइल अपलोड

scp ~/फ़ाइल.ext उपयोगकर्ता@होस्ट-आईपी:/होम/उपयोगकर्ता/फ़ाइल.ext

नेस्टेड चीजों के साथ फ़ोल्डर डाउनलोड करें

scp -r उपयोगकर्ता@होस्ट-आईपी:/होम/उपयोगकर्ता/डिर ~/डिर

फ़ोल्डर और फ़ाइल

अस्तित्व की जांच

# यदि फ़ोल्डर नहीं है तो बनाएं, सभी मध्यस्थ फ़ोल्डर के साथ
[ -d $repdir ] || mkdir -p $repdir

# या
if [ -d $fname ]; then
  echo "फ़ाइल मौजूद नहीं है: $fname"
  return
fi

विशिष्ट उपयोगकर्ता के लिए फ़ोल्डर बनाएं

sudo mkdir dir1
sudo chown विशिष्ट_उपयोगकर्ता dir1
sudo chown :विशिष्ट_समूह dir1

फ़ोल्डर में फ़ाइलों के ऊपर चले

# यह एक फ़ोल्डर में सभी jpg फ़ाइलों को fits में परिवर्तित करता है
for f in कुछ-फ़ोल्डर/*.jpg
do
  convert "$f" "${f/.jpg/.fits}"
done

सभी फ़ाइलों को एक में मिला दें

cat ./* > merged.txt

क्रोनटब में कमांड के निष्पादन को जोड़ें

(crontab -l 2>/dev/null | \
  grep -v control-marker-1; \
  echo '*/15 * * * * /bin/bash /home/user/stest/stest.sh /home/user/stest >> /home/user/stest/stest.log 2>&1 #control-marker-1') | \
  crontab -

यहाँ:

  • */15 - हर 15 मिनट में चले
  • control-marker-1 - क्रोन कॉन्फ़िग में इस कमांड के लिए पहचानकर्ता है जिसे अगली बार इसी स्क्रिप्ट के साथ अपडेट करें
  • /bin/bash - निष्पादित कमांड
  • /home/user/stest/stest.sh - बैश पैराम - यह स्क्रिप्ट चलेगा
  • /home/user/stest - स्क्रिप्ट पैराम - $1 द्वारा एक्सेस किया जाएगा
  • /home/user/stest/stest.log - stest.sh के कंसोल आउटपुट के साथ लॉग फ़ाइल

जांच

grep /home/user/stest/stest.sh /var/log/syslog
crontab -e

लॉग्स

लाइव लॉग फ़ाइल देखें

sudo tail -f /var/log/megalog.log

करल के स्थिति कोड

response=$(curl --write-out '%{http_code}' --silent --output /dev/null सर्वरनाम)
  
# या

url='http://localhost:8080/'
status=$(curl --head --location --connect-timeout 5 --write-out %{http_code} --silent --output /dev/null ${url})

[[ $status == 500 ]] || [[ $status == 000 ]] && echo restarting ${url} # शुरू/पुनः शुरू लॉजिक करें

एसएसएच कमांड के बाद लॉगऑफ़ के बाद चले रहे

https://stackoverflow.com/questions/954302/how-to-make-a-program-continue-to-run-after-log-out-from-ssh

मान लीजिए कि आपके पास एक फ़ॉरग्राउंड में चल रहा प्रोग्राम है, दबाएं

  • कंट्रोल-जेड, फिर:

[1]+ बंद myprogram

  • disown -h %1
  • bg 1

[1]+ myprogram &

  • लॉगआउट

JSON उत्पन्न करें

jo इंस्टॉल करें

sudo apt-get install jo
a="123"
b="456"
jo "model=a" "prompt=b" "stream=false"

आउटपुट करेगा

{"model":"a", "prompt":"b", "stream":false}

कुछ अधिक जटिल:

jo -p name=जेन बिंदु[]=1 बिंदु[]=2 जिओ[लैट]=10 जिओ[लॉन]=20
{
   "name": "जेन",
   "बिंदु": [
      1,
      2
   ],
   "जिओ": {
      "लैट": 10,
      "लॉन": 20
   }
}

JSON के फॉर्मेट

उपयोग करें

| jq .

उपरोक्त जेएसओएन के फॉर्मेट करने के लिए:

a="123"
b="456"
jo "model=$a" "prompt=$b" "stream=false" | jq .

फॉर्मेट किया गया जेएसओएन होगा:

{
  "model": 123,
  "prompt": 456,
  "stream": false
}

JSON के विश्लेषण और कुछ क्षेत्र के मान के लौटाना

पहले jq को इंस्टॉल करें

sudo apt-get install jq

उपयोग करें

  | jq -r '.fieldName'

ओलामा के आउटपुट के विश्लेषण के लिए जैसे:

curl http://localhost:11434/api/generate -d '{
  "model": "llama3",
  "prompt": "Why is the sky blue?",
  "stream": false
}'  | jq -r '.response'

फ़ाइल में शब्दों की संख्या की गिनती

शब्द गिनती:

wc -w filename.txt

कुछ ऐसा लौटाएगा

261 filename.txt

यदि आपको केवल एक पूर्णांक चाहिए, तो आप पहला शब्द जो एक संख्या है, काट सकते हैं

words=`wc -w filename.txt | cut -f1 -d' '`
echo "$words शब्द"

या इस तरह वीसी वाला उपयोग करें:

words=`wc -w < filename.txt`
echo "$words शब्द"

डिरेक्टरी के द्वारा HDD पर कितना स्पेस ले रहा है

du ~/dirname

चल रहे स्क्रिप्ट के फ़ोल्डर के नाम को प्राप्त करें

SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )

स्क्रिप्ट के निष्पादन समय के माप

एक विकल्प टाइम फ़ंक्शन का उपयोग करना है

time your_script.sh

एक अन्य तरीका थोड़ा अधिक जटिल है:

start=`date +%s`

# बहुत महत्वपूर्ण कोड
# यहाँ आता है

end=`date +%s`

runtime=$((end-start))

दो फ़ाइलों की तुलना वीएस कोड के साथ

code -d <फ़ाइल 1> <फ़ाइल 2>

यूबंटू रिपॉजिटरी में उपलब्ध पैकेजों की जांच

sudo apt-cache policy <packageName>

उपयोगी लिंक