Caja에서 실행 파일 실행

Caja에서 실행 파일 실행

Windows 7에서 마이그레이션하려는 새로운 Linux "수퍼유저"로서 저는 검색을 통해 답변할 수 있는 기본적인 질문을 거부했지만 계속해서 이 문제에 봉착했습니다.

hello.exeLinux 터미널에서 gcc를 사용하여 C에서 실행 파일을 생성하면 권한 이 부여되었다고 말합니다 X. 그러면 터미널에서 ./hello.exe아무 문제 없이 실행할 수 있습니다.

하지만 Caja에서 실행하려고 하면 해당 구성 요소가 텍스트 파일로 표시됩니다. 그러나 "관리자 권한으로 실행"을 선택할 수는 있지만 로그인 비밀번호를 입력해야 합니다.

이는 다음 두 설정 중 어느 설정이 활성화되어 있는지와 관계가 없습니다.

  • 실행 가능한 텍스트 파일이 열리면 실행합니다.
  • 실행 가능한 텍스트 파일을 열 때 봅니다.

하지만 두 번째 설정으로 남겨둡니다. 그렇지 않으면 텍스트 파일을 보거나 편집할 때마다 무엇을 하고 싶은지 묻는 메시지가 나타납니다.

(비밀번호 필요) 를 사용하여 터미널에서 Caja를 시작하려고 시도했지만 sudo cajaCaja가 실행 파일을 실행하지 않습니다. 조금도실행 옵션이 더 이상 존재하지 않기 때문입니다.

Caja에서 실행 파일을 두 번 클릭하여 직접 실행하려면 어떻게 해야 합니까?


편집: 다음에서 실행 파일을 실행할 수 있습니까?어느간단한 더블클릭으로 파일 관리자를 만들 수 있나요?
편집 2: 이제 Nemo 파일 관리자로 Mint Cinnamon을 실행하지만 질문은 기본적으로 동일합니다. 실행 파일을 직접 실행할 수 있는 일부 설정이 누락되었나요?
편집 3:

조사하다가 발견한 것은
그놈은 노틸러스에서 바이너리 앱을 실행하는 기능을 제거합니다:

"또는 달리 말하면, 노틸러스를 사용하여 실행하기 위해 프로그램, 스크립트 또는 앱을 두 번 클릭할 수 없습니다." (2018년 5월)

그리고 파일 관리자 작성자가 이를 오픈 소스 코드의 파생물로 개발한 것으로 의심되므로(또는 아마도 공통 시스템 구성 요소를 사용하여) 현재는 누구도 그렇게 하지 않을 것입니다.

이 Wikipedia 페이지도 찾았습니다.파일 관리자 비교다양한 테이블이 있어요. 전화 한 사람파일 기능마지막 열이 "실행 파일 실행"이므로 해당 파일 관리자 중 여러 개를 시험해 보았습니다.

  • 없음그 중 일부는 내가 컴파일한 실행 파일을 실행합니다(그리고 그 중 일부는 시스템 드라이브가 아닌 작업 드라이브에 쉽게 액세스할 수조차 없습니다).

그러나 어쨌든 지금은 쉬운 해결 방법을 찾았습니다. 즉, 제가 가장 좋아하는 텍스트 편집기인 Geany는 프로젝트로 만들지 않고 한 번의 클릭이나 F5 키 누르기를 통해 현재 소스 파일의 실행 파일을 실행한다는 것입니다. .

답변1

예, Caja와 같은 파일 관리자에서 실행 파일을 실행할 수 있습니다.

GUI 없이 간단한 "hello, world" 프로그램이 포함된 파일이 hello.c홈 디렉터리에 있다고 가정해 보겠습니다./home/User

#include <stdio.h>

int main()
{
    printf("hello, world\n");
}

gcc -o hello hello.c실행 파일을 생성하기 위해 실행하여 프로그램을 컴파일합니다 hello.

Caja에서 직접 실행하려면 hello터미널을 실행하고 그 안에서 실행 파일을 실행하는 실행 프로그램을 제공하거나 간단한 GUI로 실행 파일을 제공할 수 있습니다.

런처를 사용할 계획이라면 다른 작업을 수행하기 전에(이전에 이 작업을 수행하지 않은 경우) 터미널을 열고 환경 설정으로 이동하여 "HoldOpen"이라는 새 프로필을 추가하고 " 해당 프로필의 "명령" 탭에서 "명령이 종료될 때"를 "터미널 열린 상태로 유지"로 설정하세요. 그렇지 않으면 터미널이 열리고, 프로그램을 실행하고, 런처에서 시작할 때 결과를 보기 전에 닫힙니다.

그런 다음 프로그램의 실행 프로그램을 만듭니다 hello. 런처는 확장자를 가진 텍스트 파일일 뿐입니다 .desktop. 개념적으로는 Windows 단축키와 비슷합니다. 확장자 .desktop는 파일이 Caja에 나타날 때 표시되지 않지만 터미널의 디렉토리 목록에는 표시됩니다. 다음과 같이 저장해야 하는 목적을 위한 간단한 실행 프로그램 hello.desktop입니다.

[Desktop Entry]
Version=1.0
Type=Application
Name=hello
Comment=
Exec=mate-terminal --profile=HoldOpen -e "/home/User/hello"
Icon=
Path=
Terminal=false
StartupNotify=false

런처는 직접 작성하거나 (위의 경우처럼) 데스크탑을 마우스 오른쪽 버튼으로 클릭하고 "런처 생성..."을 선택한 다음 최소한 "이름" 및 "명령" 상자( 후자는 "Exec" 키에 해당함).

Caja에서 실행 프로그램 파일을 두 번 클릭하면 hello자체 터미널에서 실행되고 그 안에 출력이 표시됩니다.

"터미널" 키는 실제로 실행 중인 메이트 터미널이고 hello메이트 터미널에서 실행되기 때문에 "false"로 설정되어 있습니다.

또한 mate-terminal 대신 gnome-terminal을 사용하는 경우 터미널에서 출력을 보려면 "hello, world" 앞에 줄 바꿈 몇 개를 추가해야 할 수도 있습니다.

런처에 대한 자세한 내용은 Freedesktop.org를 참조하세요.데스크탑 엔트리 사양.

런처 없이 두 번 클릭하여 Caja에서 직접 프로그램을 실행할 수 있는 대안은 Zenity 응용 프로그램을 사용하여 필요에 따라 GUI 대화 상자를 생성함으로써 프로그램에 간단한 GUI를 제공하는 것입니다. 를 실행하여 Zenity를 설치할 수 있습니다 sudo apt-get install zenity. 그런 다음 hello.c 프로그램의 printf 문인 stdio를 stdlib 및 시스템 호출로 대체하여 대화 상자를 표시할 수 있습니다.

#include <stdlib.h>

int main()
{
system("zenity --info --title='Hello' --text='hello, world'");
}

man zenityZenity 애플리케이션에 대한 자세한 내용은 를 참조하세요 .

관련 정보