オペレーティングシステムに適用されるシェルという用語は、オペレーティングシステムのコマンドインタープリターを指します。 一般に、これは、ターミナル(コンソール)の形で現れる高性能のテキストインターフェイスであり、基本的に3つの重要な作業領域(オペレーティングシステムの管理、アプリケーションの実行とそれらとの対話、および基本としての機能)を提供します。環境プログラミング。 また、スクリプティングとは、シェルを使用してスクリプトを設計および作成する手法を指します。.
シェルスクリプトは非常に便利です。 私たちが持っているそれらのニーズを書いて、それから私たちのためにこの仕事をするスクリプトを編集するのは良い考えです。 この特定のケースでは、これを使用して、ポータブルで自己実行型の自己完結型アプリのスタートメニューとデスクトップにアプリケーションリンク(ショートカット)を作成します。
はじめに
GNU / Linuxディストリビューションのリポジトリにあるかどうかに関係なく、インストールまたは実行時にそれぞれの.desktopファイルを作成しないアプリケーションをダウンロードしてインストールしたことが何度もあります。 同じまたは最良の場合、正しいパスに配置されないため、スタートメニューを更新した後、オペレーティングシステムのインストール済みパッケージのリストに表示されます。
したがって、「Alacarte」や「Menulibre」などのアプリケーションを使用して、スタートメニューにそれぞれのリンクを手動で作成するようにアピールする必要があります。
そして、これらのグラフィックアプリケーションはこの目的のために非常に簡単に使用できますが、知ることは決して多くありません。 上記の操作を実行するための独自のスクリプトを作成し、オペレーティングシステム内で上記の操作がどのように実行されるかを内部から把握します。
シェルスクリプトファイルの作成や使用に慣れていない場合は、次のことができます。 これを読む 以前の投稿(シェル、Bash、スクリプト) 始めるために そして必要に応じて探索する この主題に関するすべての出版物。
シェルスクリプトを使用したプログラムの作成
スペースの理由から、スクリプトを最初から作成する方法をすでに知っていると想定します。つまり、スクリプトのヘッダーまたは最初の部分を作成する方法をすでに知っているので、その内容に直接移動します。
ただし、疑問がある場合は、これを確認してください 疑問を明確にするための以前の投稿(シェルスクリプトを使用してプログラムを段階的に構築する-パート1)。
コンテンツ
#!/usr/bin/env bash
set -eou pipefail
IFS=$'\n\t'
setterm --reset
# NOMBRE: MI-APP LINUX POST INSTALL - SCRIPT BICENTENARIO (MIAPP-LPI-SB)
# VERSIÓN: 1.0+0
# TIPO DE PROGRAMA: SISTEMA EXPERTO
# FUNCIÓN: ASISTENTE TECNICO PARA S.O. GNU/LINUX BASADOS EN DEBIAN
# NOMBRE CODIGO: MIAPP (MIAPP-LPI-SB 1.0+0)
# PAIS ORIGEN: Mi país
# CREADO POR: Mi Nombre
# LICENCIA: Licencia Pública General de GNU 3.
###############################################################################
# INICIO DEL MODULO DE VALIDACION PERMISO DE SUPERUSUARIO (ROOT) SOBRE EL MIAPP-LPI-SB
###############################################################################
# ESTE MODULO VALIDA QUE SOLO EL SUPERUSUARIO (USUARIO ROOT) PUEDA EJECUTAR
# EL LINUX POST INSTALL - SCRIPT BICENTENARIO.
clear
setterm -background red
if [[ "$(id -u)" != "0" ]]; then
echo "ESTE SCRIPT DEBE SER EJECUTADO COMO ROOT"
sleep 3
clear
else
echo "ESTE SCRIPT SERA EJECUTADO COMO SUPERUSUARIO (ROOT)"
sleep 3
clear
fi
###############################################################################
# FINAL DEL MODULO DE VALIDACION PERMISO DE SUPERUSUARIO (ROOT) SOBRE EL MIAPP-LPI-SB
###############################################################################
###############################################################################
# INICIO DEL MODULO DE ORDENES DE COMANDO DE POST INSTALACIÓN
###############################################################################
rm -f $HOME/mi_app/mi_app.desktop
rm -f $HOME/.local/share/applications/mi_app.desktop
rm -f $HOME/Desktop/mi_app.desktop
rm -f $HOME/Escritorio/mi_app.desktop
rm -f /usr/share/applications/mi_app.desktop
###############################################################################
echo "
[Desktop Entry]
Name=My Applicattions
GenericName=My Applicattions
GenericName[es]=Mi Aplicación
Comment=Mi Aplicación
Exec=/opt/mi_app/mi_app
Icon=`echo $HOME`/mi_app/icono_app.png
Terminal=false
Type=Application
Encoding=UTF-8
Categories=Network;Application;
MimeType=x-scheme-handler/mozilla;
X-KDE-Protocols=mozilla
" > `echo $HOME`/mi_app/mi_app.desktop
chown $USER:$USER -R `echo $HOME`/mi_app/mi_app.desktop
chmod 755 `echo $HOME`/mi_app/mi_app.desktop
ln -s `echo $HOME`/mi_app/mi_app.desktop $HOME/.local/share/applications/mi_app.desktop
ln -s `echo $HOME`/mi_app/mi_app.desktop $HOME/Desktop/mi_app.desktop
ln -s `echo $HOME`/mi_app/mi_app.desktop $HOME/Escritorio/mi_app.desktop
ln -s `echo $HOME`/mi_app/mi_app.desktop /usr/share/applications/mi_app.desktop
update-menus
###############################################################################
clear
su - $USER -c "xdg-open 'https://www.mi-app.com/'"
clear
echo ''
echo ''
echo '#------------------------------------------------------------------#'
echo '# GRACIAS POR USAR MI-APP LINUX POST INSTALL #'
echo '#------------------------------------------------------------------#'
echo ''
echo ''
sleep 3
###############################################################################
# FINAL DEL MODULO DE ORDENES DE COMANDO DE POST INSTALACIÓN
###############################################################################
注釈
コードから分析してヘッダーを省略できるため、次のスクリプトは自動化された方法で次の操作を実行します。
- スーパーユーザーrootまたはスーパーユーザーrootの権限として使用されていることを確認します。
- 以前のバージョンで作成されたアプリケーション内の以前のリンクを削除します。
- アプリケーションの新しい.desktopファイル(リンク)を、ユーザーのホーム内の独自のフォルダーに作成します。
- 作成したファイルにユーザー所有者権限を割り当てます。
- 作成したファイルに適切な読み取り/書き込み/実行権限を割り当てます。
- 必要なルートへの新しいシンボリックリンクを作成します。
- スタートメニューを更新して、作成した.desktopファイルを表示します。
- 作成したアプリケーションで特定のURLを実行します。
勧告
このファイルは、問題のアプリケーション/実行可能ファイルを含むフォルダー内に作成し、それぞれのアイコン(画像/ロゴ)を指定し、そのフォルダーをパスに配置することをお勧めします。 /opt
ルートの代わりに `echo $HOME`/mi_app/
つまり、 /home/mi_usuario/mi_app
.
この小さなスクリプトで、このテーマに関するこの点でのニーズを解決できることを願っています。 次の記事まで。
私があなたにこれを残している間 トピックに関するGnomeの公式Webサイトへのリンク そしてこのビデオ:
これとあなたのすべての記事をどうもありがとう。
XNUMXつの質問:rootでない場合、適切な権限で実行を続行するために、アスタリスクを示すパスワードをどのように要求できますか?
ダイアログ付きのインターフェイスを作成し、パスワード要求ボックスにキーを暗号化するプロパティを適用できます。 このプロパティがダイアログに存在することをよく覚えています。
この以前の投稿では、誰かが似たようなことをグラフィカルに行いましたが、添付ファイル、つまり使用されているコードは使用できなくなりました。 https://blog.desdelinux.net/script-avanzado-en-bash-bashmd5-para-proteger-algo-explicacion-detallada/
おかげで、グラフィカルインターフェイスなしで実行された場合にbash環境を離れる必要がないのは素晴らしいことです。その場合、アスタリスクなどがなくても、キーを要求し、テキストが表示されなくてもかまいません。 。 うーん、私はそれを見つけます http://www.tormentadebits.com/2012/08/scripts-bash-introducir-password-sin-mostrarlo-en-pantalla.html