Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> बाश प्रोग्रामिंग

अपने Linux टर्मिनल से फ़्लैटपैक लॉन्च करें

फ्लैटपैक एप्लिकेशन वितरण मॉडल डेवलपर्स को नए और आसान तरीके से लिनक्स को लक्षित करने में मदद कर रहा है, और यह लिनक्स उपयोगकर्ताओं को लिनक्स के किस संस्करण के बारे में चिंता किए बिना अधिक एप्लिकेशन इंस्टॉल करने में मदद कर रहा है। यह एक रोमांचक तकनीक है, और मेरे फेडोरा सिल्वरब्लू सिस्टम पर, यह डिफ़ॉल्ट पैकेज स्थापना विधि है। सिल्वरब्लू पर मेरे सभी डेस्कटॉप एप्लिकेशन और स्लैकवेयर पर मेरे द्वारा उपयोग किए जाने वाले मेरे कई पसंदीदा फ़्लैटपैक्स के रूप में चल रहे हैं।

हालाँकि, कुछ मामलों में फ़्लैटपैक को थोड़ा अजीब बनाने वाली एक चीज़ है, और वह है इसकी नामकरण योजना। उदाहरण के लिए, जब मैं Emacs को फ़्लैटपैक के रूप में स्थापित करता हूँ, तो यह मेरे सिस्टम पर org.gnu.emacs के रूप में पंजीकृत होता है . यह, जाहिरा तौर पर, मौजूदा सिस्टम-स्तरीय एप्लिकेशन के नाम को बंद करने के डर से किया जाता है - यदि मेरे पास पहले से ही Emacs स्थापित है, तो /usr/bin/emacs के बीच क्या अंतर है? और Emacs का फ़्लैटपैक इंस्टॉलेशन? इस कारण से, Emacs जैसा फ़्लैटपैक कुछ इस तरह (इसके लिए तैयार हो जाओ) इस पथ पर स्थापित हो जाता है:

/var/lib/flatpak/app/org.gnu.emacs/current/active/export/bin/org.gnu.emacs

यह /usr/bin . से सिम्लिंक नहीं है या /opt , स्थान को उपयोगकर्ता के पथ में नहीं जोड़ा जाता है, और फ़्लैटपैक लॉन्च करने के लिए इस तरह के आह्वान की आवश्यकता होती है:

$ flatpak run org.gnu.emacs

यह केवल emacs दर्ज करने की तुलना में बहुत अधिक टाइपिंग है ।

नाम याद रखना मुश्किल है

फ़्लैटपैक नामकरण योजना यह भी मानती है कि आप फ़्लैटपैक का उपयोग अक्सर पैकेज के रिवर्स डीएनएस नाम को याद रखने के लिए करते हैं। संरचना के अलावा, फ़्लैटपैक के नामकरण के लिए कोई मानक नहीं है, इसलिए एक फ़्लैटपैक ऊंट-केस का उपयोग कर सकता है, जैसे कि org.libreoffice.LibreOffice , जबकि कोई अन्य मिश्रण का उपयोग कर सकता है, जैसे कि org.gimp.GIMP

कुछ नाम दूसरों की तुलना में याद रखने में आसान होते हैं। उदाहरण के लिए, org.glimpse_editor.Glimpse याद रखना आसान है केवल अगर आपको याद है कि इसकी वेबसाइट https://glipse-editor.org है, न कि झलक.org, और एक अंडरस्कोर डैश को बदल देता है।

फ़्लैटपैक डेवलपर्स के दृष्टिकोण से, यह कोई समस्या नहीं है क्योंकि फ़्लैटपैक्स को डेस्कटॉप से ​​लॉन्च करने का इरादा है। आपको org.gnu.emacs remember याद रखने की ज़रूरत नहीं है क्योंकि आप इसे हमेशा गनोम गतिविधियों या अपने के-मेनू या इसी तरह के ग्राफ़िकल लॉन्चर से लॉन्च कर सकते हैं।

यह अक्सर पर्याप्त होता है, लेकिन कभी-कभी टर्मिनल से एप्लिकेशन लॉन्च करना अधिक सुविधाजनक होता है क्योंकि आप पहले से ही टर्मिनल का उपयोग कर रहे हैं। चाहे मुझे झलक में एक छवि चाहिए या Emacs में एक टेक्स्ट फ़ाइल या VLC में एक संगीत फ़ाइल, मैं बहुत बार टर्मिनल में डेस्कटॉप पर "ड्रॉप" करने के लिए बहुत व्यस्त हूं (भले ही यह सिर्फ एक कुंजी दूर है!), लॉन्च एप्लिकेशन, फ़ाइल खोलने के लिए मेनू के माध्यम से क्लिक करें, और फिर मेरे फाइल सिस्टम के माध्यम से उस फ़ाइल को खोजने के लिए क्लिक करें जिसे मैं खोलना चाहता हूं।

जिस फ़ाइल को मैं खोलना चाहता हूं उसके बाद कमांड टाइप करना तेज़ है। लेकिन अगर मुझे flatpak run org.something.app टाइप करना है तो , ऐसा नहीं है।

फ्लैटपैक लॉन्च करने के लिए बैश उपनामों का उपयोग करना

इन सबका स्पष्ट समाधान एक बैश उपनाम है। बैश उपनाम के साथ, आप अपने इच्छित किसी भी शब्द को कोई भी मनमाना आदेश दे सकते हैं। कई सामान्य बैश उपनाम हैं जो लगभग हर लिनक्स उपयोगकर्ता के पास अपने सिस्टम पर होते हैं, या तो सचेत पसंद से या क्योंकि वितरण उन्हें पूर्व निर्धारित करता है:

$ grep alias ~/.bashrc
alias cp='cp -v'
alias rm='/usr/bin/local/trashy'
alias mv='mv -v'
alias ls='ls --color'
alias ll='ls -l --color'
alias lh='ll -h'

आप फ़्लैटपैक्स के लिए भी उपनाम बना सकते हैं:

alias emacs='flatpak run org.gnu.emacs'

समस्या हल हो गई!

बैश स्क्रिप्टिंग के साथ बेहतर सहभागिता

मेरे लिए बहुत श्रमसाध्य महसूस करने के लिए मैन्युअल रूप से उपनाम जोड़ने की प्रक्रिया में अधिक समय नहीं लगा। और मेरे लिए, यह कार्य नहीं बल्कि प्रक्रिया है। एक संपादक खोलना और एक उपनाम जोड़ना उल्लेखनीय रूप से त्वरित है, लेकिन यह मेरे कार्यप्रवाह में एक विराम है।

जो मैं वास्तव में चाहता हूं वह कुछ ऐसा है जो मैं मानसिक और शारीरिक रूप से प्रारंभिक फ्लैटपैक इंस्टॉल प्रक्रिया में जोड़ सकता हूं आवश्यकतानुसार . मेरे द्वारा इंस्टॉल किए गए सभी फ़्लैटपैक्स को उपनाम की आवश्यकता नहीं है। उदाहरण के लिए, मेरे सिल्वरब्लू सिस्टम पर फ़्लैटपैक्स की आंशिक सूची यहां दी गई है:

$ find /var/lib/flatpak/app/* -maxdepth 0 -type d | tail -n5
/var/lib/flatpak/app/org.gnome.baobab
/var/lib/flatpak/app/org.gnome.Calculator
/var/lib/flatpak/app/org.gnome.Calendar
/var/lib/flatpak/app/org.gnome.Characters
/var/lib/flatpak/app/org.gnome.clocks
/var/lib/flatpak/app/org.gnome.Contacts
/var/lib/flatpak/app/org.gnome.eog
/var/lib/flatpak/app/org.gnome.Evince
/var/lib/flatpak/app/org.gnome.FileRoller
/var/lib/flatpak/app/org.gnome.font-viewer
/var/lib/flatpak/app/org.gnome.gedit
/var/lib/flatpak/app/org.gnome.Logs
/var/lib/flatpak/app/org.gnome.Maps
/var/lib/flatpak/app/org.gnome.NautilusPreviewer
/var/lib/flatpak/app/org.gnome.Rhythmbox3
/var/lib/flatpak/app/org.gnome.Screenshot
/var/lib/flatpak/app/org.gnome.Weather
/var/lib/flatpak/app/org.gnu.emacs
/var/lib/flatpak/app/org.signal.Signal

मैं टर्मिनल से कभी भी मौसम या गनोम कैलकुलेटर लॉन्च नहीं करूंगा। मैं कभी भी टर्मिनल से सिग्नल लॉन्च नहीं करूंगा, क्योंकि यह एक ऐसा एप्लिकेशन है जिसे मैं अपने दिन की शुरुआत में खोलता हूं और कभी बंद नहीं करता।

इसलिए, जिन आवश्यकताओं को मैंने अपने लिए परिभाषित किया है वे हैं:

  • आवश्यकतानुसार उपनाम जोड़ना
  • टर्मिनल-आधारित नियंत्रण, इसलिए यह मेरी फ़्लैटपैक इंस्टॉल प्रक्रिया के अंत में आराम से फिट बैठता है
  • एक काम करता है और अच्छा करता है
  • फेडोरा, आरएचईएल, स्लैकवेयर, और किसी भी अन्य डिस्ट्रो में पोर्टेबल जो मैं किसी भी सप्ताह का उपयोग कर रहा हूं

हाल ही में मैंने जो समाधान तय किया है वह एक कस्टम छोटी बैश स्क्रिप्ट है जिसका उपयोग मैं फ़्लैटपैक्स के लिए उपनाम जोड़ने के लिए करता हूं मुझे पता है कि मैं अपने टर्मिनल से जल्दी पहुंचना चाहता हूं। ये रही स्क्रिप्ट:

#!/bin/sh
# GPLv3 appears here
# gnu.org/licenses/gpl-3.0.md

# vars
SYMRC=.bashrc.d
SYMDIR=$HOME/$SYMRC
SYMFILE=flatpak_aliases

# exit on errors
set -e

# this is where the aliases lives
if [ ! -d $SYMDIR ]; then
    mkdir "${SYMDIR}"
    touch "${SYMDIR}"/"${SYMFILE}"
fi

sourcer() {
    echo 'Run this command to update your shell:'
    echo ". ${SYMDIR}/${SYMFILE}"
}

lister() {
    cat "${SYMDIR}"/"${SYMFILE}"
}

adder() {
    grep "alias ${ARG}\=" "${SYMDIR}"/"${SYMFILE}" && i=1
    [[ $VERBOSE ]] && echo "$i"

    if [ $i > 0 ]; then
        echo "Alias for ${ARG} already exists:"
        grep "alias ${ARG}=" "${SYMDIR}"/"${SYMFILE}"
        exit
    else
        echo "alias ${ARG}='${COMMAND}'" >> "${SYMDIR}"/"${SYMFILE}"
        [[ $VERBOSE ]] && echo "Alias for ${ARG} added"
        sourcer
    fi

    unset i
}

remover() {
    echo "Removing stuff."
    sed -i "/alias ${ARG}\=/d" "${SYMDIR}"/"${SYMFILE}"
    sourcer
}

# arg parse
while [ True ]; do
    if [ "$1" = "--help" -o "$1" = "-h" ]; then
        echo " "
        echo "$0 add --command 'flatpak run org.gnu.emacs' emacs \# create symlink for emacs"
        echo "$0 add --command 'flatpak run org.gnu.emacs -fs' emacs-fs \# create symlink for emacs in fullscreen"
        echo "$0 remove emacs \# remove emacs symlink"
        echo "$0 list         \# list all active flatpak symlinks"
        echo " "
        exit
    elif [ "$1" = "--verbose" -o "$1" = "-v" ]; then
        VERBOSE=1
        shift 1
    elif [ "$1" = "list" ]; then
        MODE="list"
        shift 1
    elif [ "$1" = "add" ]; then
        MODE="add"
        shift 1
    elif [ "$1" = "remove" ]; then
        MODE="remove"
        shift 1
    elif [ "$1" = "--command" -o "$1" = "-c" ]; then
        COMMAND="${2}"
        shift 2
    else
        break
    fi
done

#create array, retain spaces
ARG=( "${@}" )

case $MODE in
    add)
        adder
        ;;
    list)
        lister
        ;;
    remove)
        remover
        ;;
    *)
        echo "You must specify an action <list|add|remove>"
        exit 1
esac

स्क्रिप्ट का उपयोग करना

अपने Linux टर्मिनल से फ़्लैटपैक लॉन्च करें

जब मैं एक फ़्लैटपैक स्थापित करता हूँ जो मैं टर्मिनल से लॉन्च करना चाहता हूँ, तो मैं इस स्क्रिप्ट के साथ प्रक्रिया समाप्त करता हूँ:

$ flatpak install org.gnu.emacs
$ pakrat add -c 'flatpak run org.gnu.emacs' emacs
Alias for emacs added.
Run this command to update your shell:
. ~/.bashrc.d/flatpak_aliases

$ . ~/.bashrc.d/flatpak_aliases

यदि कोई उपनाम पहले से मौजूद है, तो उसे खोजा जाता है, और कोई नया उपनाम नहीं बनाया जाता है।

मैं एक उपनाम भी हटा सकता हूँ:

$ pakrat remove emacs

यह फ़्लैटपैक को नहीं हटाता है और केवल समर्पित flatpak_aliases पर काम करता है फ़ाइल।

सभी फ़्लैटपैक उपनाम ~/.bashrc.d/flatpak_aliases में जोड़े जाते हैं , जिसे आप अपने .bashrc में कोड के इस तरीके को रखकर आपके शेल के लॉन्च होने पर स्वचालित रूप से प्राप्त कर सकते हैं या .bash_profile या .profile फ़ाइल:

if [ -d ~/.bashrc.d ]; then
  for rc in ~/.bashrc.d/*; do
    if [ -f "$rc" ]; then
      . "$rc"
    fi
  done
fi

unset rc

Flatpak लॉन्चिंग मेड इज़ी

फ्लैटपैक डेस्कटॉप लिनक्स के साथ वास्तव में अच्छी तरह से एकीकृत है, और उनके पीछे एक मजबूत, प्रतिलिपि प्रस्तुत करने योग्य बुनियादी ढांचा है। वे बनाने में अपेक्षाकृत आसान हैं और उपयोग में आसान हैं। थोड़े से अतिरिक्त प्रयास के साथ, आप उन्हें टर्मिनल में नीचे ला सकते हैं ताकि आप उनका उपयोग कर सकें जो आपके लिए सबसे अच्छा काम करता है। वहाँ शायद इस तरह की कई अन्य परियोजनाएँ हैं और शायद कुछ विकास में हैं जो एक साधारण बैश स्क्रिप्ट की तुलना में कहीं अधिक उन्नत हैं, लेकिन यह अब तक मेरे लिए अच्छा काम कर रहा है। इसे आज़माएं, या टिप्पणियों में अपना कस्टम समाधान साझा करें!


  1. Android लॉकस्क्रीन से आसानी से अपने पसंदीदा ऐप्स लॉन्च करें

    यह लॉलीपॉप उपयोगकर्ताओं के लिए है (एक बयान जो अब कमरे में अधिकांश लोगों को नाराज और दुखी नहीं करता है। #BeyondFragmentation)। लॉलीपॉप की मेरी पसंदीदा विशेषताओं में से एक लॉकस्क्रीन पर सूचनाएं हैं। मैं एक झटके में अनावश्यक सूचनाओं को स्वाइप कर सकता हूं और एक महत्वपूर्ण सूचना को मेरे फोन को अनलॉक किए

  1. अपने Android डिवाइस पर साइडबार से ऐप्स कैसे लॉन्च करें

    एंड्रॉइड डिवाइस पर ऐप्स लॉन्च करना कई तरीकों से किया जा सकता है। आप ऐप लॉन्च करने के लिए अपने होमस्क्रीन पर उपलब्ध ऐप शॉर्टकट का उपयोग कर सकते हैं, या आप ऐप लॉन्च करने के लिए ऐप ड्रॉअर खोल सकते हैं; दोनों आपके लिए काम करवाते हैं। जबकि आप अपने डिवाइस पर ऐप्स को सक्रिय करने के लिए इन तरीकों का उपयोग

  1. टर्मिनल का उपयोग करके अपने मैक से एनाकोंडा को कैसे अनइंस्टॉल करें

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