![Mint의 명령줄에서 데스크톱 실행 프로그램을 실행하세요.](https://linux55.com/image/137249/Mint%EC%9D%98%20%EB%AA%85%EB%A0%B9%EC%A4%84%EC%97%90%EC%84%9C%20%EB%8D%B0%EC%8A%A4%ED%81%AC%ED%86%B1%20%EC%8B%A4%ED%96%89%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%98%EC%84%B8%EC%9A%94..png)
명령줄에서 데스크톱 실행 프로그램을 시작할 수 있나요? 예를 들어 ~/Desktop 디렉터리에 Slack용 데스크톱 실행 프로그램이 있습니다.
vadim@my-pc ~/Desktop $ cat slack.desktop
[Desktop Entry]
Name=Slack
Comment=Slack Desktop
GenericName=Slack Client for Linux
Exec=/usr/bin/slack --proxy-server="10.1.50.8:8080"
Icon=/usr/share/pixmaps/slack.png
Type=Application
StartupNotify=true
Categories=GNOME;GTK;Network;InstantMessaging;
MimeType=x-scheme-handler/slack;
Name[en_US]=slack
Exec 매개변수에서는 프록시 서버 등 애플리케이션 시작을 위한 다양한 옵션을 지정할 수 있습니다. 데스크톱 실행 프로그램의 매개변수에서 프록시를 정확하게 지정하는 것이 편리하다는 것을 알았습니다.
이제 데스크탑 런처의 모든 시작 옵션을 사용하여 명령줄에서 Slack을 시작할 수 있기를 원합니다. 쉘 스크립트 파일을 생성하고 여기에 원하는 모든 시작 옵션을 지정하고 데스크톱 실행 프로그램과 명령줄에서 파일을 실행할 수 있다는 것을 알고 있지만 그냥 실행할 수 있는 방법이 있습니까?슬랙 데스크탑명령줄의 파일?
답변1
다음과 같은 도구를 사용할 수 있습니다.xdg-open
(현재 손상됨), kde-open
,gnome-open
,gtk-launch
또는 데스크탑 환경과 동일합니다. ( xdg-open
보편적인 것 같지만...)
gtk-launch
( 다른 툴킷에 더 유사한 도구가 있을 수 있음을 제외하고는 모두 동일한 오류가 발생하는 것 같습니다 xdg-open
. 실행하는 대신 편집기에서 .desktop 파일을 엽니다.)
패키지: (정확한 이름은 배포판에 따라 다름) (CentOS 7 기준)
- gtk3은 gtk 시작에 사용됩니다.
- xdg-open용 xdg-utils
- kde-open을 위한 kde 런타임
- 그놈 오픈용 libgnome
답변2
정말로 이것을 원한다면 .desktop 파일에서 실행 파일 이름을 추출하여 실행하는 작은 함수를 작성하는 것이 좋습니다. 셸의 초기화 파일(예 ~/.bashrc
: )에 다음 줄을 추가합니다.
runDesktop () {
eval "$(awk -F= '$1=="Exec"{$1=""; print}' "$1")"
}
그런 다음 .desktop 파일을 사용하여 .desktop 파일을 실행할 수 있습니다 runDesktop ~/Desktop/slack.desktop
. 틀림없이,평소의 경고신청 에 대해서 eval
.
조금 더 노력하면 되겠죠복잡한복잡한:
runDesktop () {
comm=( $(awk -F= '$1=="Exec"{$1=""; print}' "$1") )
"${comm[0]}" "${comm[@]:1}" &
disown
}
답변3
이 dex
앱은 아마도 이를 수행하는 가장 쉬운 방법일 것입니다.
sudo apt install dex
그렇다면 dex ~/Desktop/some-application.desktop
또는 대부분의 시스템 앱을 /usr
마음대로 사용할 수 있기 때문입니다 dex /usr/share/applications/some-application.desktop
.