콘솔에 이름을 입력하여 특정 프로그램을 실행할 수 있도록하려면 어떻게해야합니까?


17

최근에 git 저장소에서 Light Table을 다운로드하여 Light Table을 설치 했으며이 웹 사이트 의 지침에 따라 데스크탑 런처를 만들었습니다.

이제 터미널에 직접 입력하여 프로그램을 실행하고 싶습니다

LightTable

그리고 아닙니다

./opt/LightTable/deploy/LightTable

6
@ user68186 포함 PATH변수를 환경 변수에 추가하는 것이 종종 이것을 달성하는 가장 좋은 방법은 아니며 때로는 시스템을 손상 시키거나 보안 취약점을 일으킬 수도 있습니다. ( 여기 에서 명령으로 변환 될 다른 실행 파일과 추가 된 위치를 고려해야합니다 PATH.) 여기에 답변이있는 쉘 별명을 추가하는 것이 그러한 복잡성을 고려하지 않는 사람에게는 더 좋습니다. 또한 해당 특정 앱에보다 좁게 맞춰져 있습니다. 따라서 이것은 조금 중복되지만 질문의 사본 이 아닙니다 .
Eliah Kagan

관련 (그러나 반드시 중복은 아님) : 경로에 디렉토리를 어떻게 추가합니까?
세스

답변:


20

이것은 별명으로 대략적으로 수행 될 수 있습니다. .bashrc파일에 한 줄을 추가하여 영구적 인 bash 별명을 작성할 수 있습니다 .

터미널에서 nano ~/.bashrc

하단에 다음 줄을 추가하십시오.

alias LightTable='/full/path/opt/LightTable/deploy/LightTable'

내가 대신 전체 경로를 추가 .했으므로 모든 작업 디렉토리에서 작동합니다. 터미널을 닫았다가 다시 열거 나 source ~/.bashrcbashrc 파일을 다시로드하십시오.


7

이것은 기본적인 질문이 아니며, 가장 좋은 방법은 별명을 만드는 것입니다. 예제로 netbeans를 사용하겠습니다.

터미널 열기 Ctrl+Alt+T

nano ~/.bashrc

파일 맨 아래에 이것을 작성하십시오.

alias netbeans='/home/john/netbeans-7.0.1/bin/netbeans'

Ctrl + x

Y

Enter

netbeans 단어는 프로그램을 시작하는 데 사용할 명령이며 필요한 것으로 변경할 수 있습니다. 따옴표 안에는 netbeans 별칭이 호출 될 때 실행하려는 명령이 있습니다.

이 명령을 활성화하려면 터미널을 다시 열어야합니다


명성이 낮아서 투표 할 수 없지만 답변 해 주셔서 감사합니다. 매우 유용했습니다
dapias

5

실행 파일 /usr/bin이 간단한 실행 프로그램이고 다른 파일에 의존하지 않는 경우 실행 파일을 복사 할 수 있습니다 . 다른 파일에 의존하는 경우 가장 좋은 방법은 프로그램에 대한 바로 가기 명령을 만드는 것입니다.

별명을 작성하는 위치는 사용자가 직접 작성하는 것입니다 (.bashrc, .profile 등). 그러나 개인적으로 파일 에 모든 환경 변수 를 허용 .bash_aliases했습니다 (처음에 변수 를 만들어야합니다).

HOME 폴더에 .bash_aliases 파일을 작성하고 원하는대로 편집하십시오. 그런 다음 바로 가기를 만들려면 다음을 수행하십시오.

alias LightTable='path_to_opt/LightTable/deploy/LightTable'

파일을 저장하면됩니다.

추신 : L을 대문자로 잊어 버렸거나 실수로 Capslock이 활성화 된 경우 별칭을 lighttable 및 LIGHTTABLE로 지정할 수 있으므로 명령을 다시 입력 할 필요가 없습니다.


명성이 낮아서 투표 할 수는 없지만 답변 해 주셔서 감사합니다. 매우 유용했습니다
dapias

/usr/local/bin대신 Apt를 통해 설치되지 않은 것을 넣는 것이 좋습니다 . 물건은 /usr/binApt 패키지로 지우거나 바꿀 수 있지만 물건 /usr/local/bin은 혼자 남겨 둡니다.
차이 티 렉스

3

다른 응답자가 이것을 제안하지 않은 이유는 확실하지 않지만 OP가 실제로 지적한 것처럼 $PATH변수 앞에 추가 하면 내가 달성 한 방법 일 것입니다.

echo 'PATH=/opt/LightTable/deploy:$PATH' >> ~/.bash_profile
source ~/.bash_profile

그런 다음 다음을 실행하십시오.

LightTable

참고 : 사용하기 쉽도록 별칭 LightTable을 지정 lighttable합니다 echo 'alias LightTable=lighttable' >> ~/.bash_alias && source ~/.bash_alias.
JoeNyland

2

내가 생각하는 별칭보다 심볼릭 링크를 만드는 것이 좋습니다. 별명 원하지 않는 경우 명령 행을 대체 할 수 있습니다. 심볼릭 링크를 만들면 원하는대로 프로그램을 실행할 수 있습니다.

sudo ln -s full_path_to_opt/LightTable/deploy/LightTable  /usr/local/bin

그러면 / usr / local / bin에 (PATH에 이미 있어야합니다!) LightTable이 실제로있는 바로 가기가 만들어집니다. "LightTable"의 대문자가 마음에 들지 않으면 심볼릭 링크의 이름을 바꿀 수도 있습니다.

sudo ln -s full_path_to_opt/LightTable/deploy/LightTable  /usr/local/bin/lighttable

참고로, 프로그램이 어색하게 설계된 경우, 즉 구성 파일이나 라이브러리를 찾지 못하는 것에 대해 불평하는 경우 더 유용한 다른 솔루션은 래퍼 스크립트를 만드는 것입니다. 이렇게하려면 "LightTable"(또는 원하는 다른 파일)이라는 파일 (당시 원하는 곳)을 작성하십시오.

#!/bin/sh
# Simple script to run LightTable
if ! cd full_path_to_opt/LightTable/deploy/LightTable ; then
    echo "$0: error: LightTable directory not found." >&2
    exit 1
fi
exec ./LightTable

이 파일의 권한을 변경하십시오.

chmod 755 <wrapper_script>

작동하는지 확인하고 실행되면 / usr / local / bin으로 이동하십시오.

sudo mv -i <wrapper_script> /usr/local/bin

당신의 말은 사실이지만 그가 원하는 것에 대답하지 않았습니다. 그는 파일 / 별명을 사용하여 파일을 실행하고 싶었다
Johnn

1
@ 존 : 미안 해요, 차이가 무엇인지 이해가 안 돼요. 경로를 지정하지 않고 프로그램을 실행할 방법을 묻는 질문을 이해합니다. 쉘이 별명을 사용하는지 또는 PATH 메커니즘을 사용하는지 여부는 프로그램 실행을 요청하는 경우 아무런 차이가 없습니다. 파일로 다른 것을하고 싶다면 별칭을 사용하여 파일의 전체 경로를 제공하는 것이 가장 좋은 방법이지만 파일을 실행하려고합니다. 내가 착각 했니?
Zorawar

그건 내 잘못이 아니야
Johnn

1
@ 존 : 아, 어쨌든 비판의 눈에 감사드립니다!
Zorawar

0

우분투에서 시작할 때 이것을 시도했습니다. 터미널에 LightTable을 넣으면 $PATH디렉토리 에서 LightTable이라는 파일을 검색합니다 . echo $PATH디렉토리를 얻을 수 있습니다 .

에서 LightTable 프로그램을 실행하려면 ./opt/LightTable/deploy/LightTableLight Table 파일을에 배치해야 /usr/games or /usr/bin.하지만 Super User 권한이 필요합니다.

Ctrl + Alt + T로 터미널을여십시오

그런 다음 넣어

다음을 사용하여 LightTable의 바로 가기를 만드는 것을 선호합니다

sudo ln -s path/to/LightTable  /usr/games/LightTable

그런 다음 SU 비밀번호를 입력하십시오. 그런 다음 LightTable터미널에서 를 사용하여 프로그램에 액세스 할 수 있습니다

당신은 /usr/bin또는 /usr/local/bin대신에 /usr/games, 무엇이든 넣을 수 있습니다$PATH 디렉토리 있지만 그렇게 할 필요는 없지만 것이 좋습니다/usr/local/bin

또한 lightpath대신 출력 파일을 변경하는 것이 좋습니다.LightPath

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.