전체 경로를 입력하지 않고 프로그램 / 쉘 스크립트를 실행하는 방법이 있는지 알고 싶습니다.
/opt/idea/bin/idea.sh
전체 경로를 입력하지 않고 프로그램 / 쉘 스크립트를 실행하는 방법이 있는지 알고 싶습니다.
/opt/idea/bin/idea.sh
답변:
symlink 만 만들 수 있습니다 . 에서 만드십시오 /usr/local/bin
. 명령을 실행하기 만하면됩니다.
sudo ln -s /full/path/to/your/file /usr/local/bin/name_of_new_command
그런 다음 file
실행 파일을 만들어야합니다 .
chmod +x /full/path/to/your/file
이제 name_of_new_command
터미널에서 언제든지 실행할 수 있습니다 .
이것은 Linux를 가정용으로 사용하는 경우에만 좋은 솔루션입니다.
/usr/local/bin
스크립트 를 실행할 수 있으므로 개인 홈 폴더의 스크립트를 가리키는 심볼릭 링크를 배치해서는 안됩니다 . 심볼릭 링크는 다른 사용자에게는 보이지만 가리키는 파일은 아닙니다. 단일 사용자 시스템에서는 이것이 중요하지 않을 수 있지만 여전히 모든 사용자가 읽을 수있는 스크립트 (또는 스크립트 링크) 와 개인용 자체 제작 스크립트 (또는 스크립트 링크)를 배치하는 것이 "우수 사례" 입니다. 폴더 의 단일 사용자 /home/jack/myscript.sh
jack
/usr/local/bin
~/bin
변수에 추가 /opt/idea/bin
할 수 있습니다 PATH
:
PATH=/opt/idea/bin:"$PATH"
이 후 간단하게 실행할 수 있습니다 idea.sh
.
~/.bashrc
파일 에이 줄을 추가하고 싶을 것입니다 .
idea
해당 이름이 idea.sh
스크립트를 가리키는 링크 또는 별명을 작성해야합니다 .
idea.sh
스크립트는 스크립트가 아니라, 사실의 설치 디렉토리 외부로 이동하는 것은 완전히 지원되지 않습니다. 데비안 패키징 규칙은 여기에 적용되지 않습니다.
에 함수를 만들 수 있습니다 ~/.bashrc
:
some-name () {
/path/to/your/file
# or:
#cd /path/to/your
#./path
}
또는 다음을 만들 수 있습니다 alias
.
alias some-name='/path/to/your/file'
# or
#alias some-name='cd /path/to/your/; ./file'
두 경우 모두 다음을 호출하여 실행할 수 있습니다.
$ some-name
파일이 실행중인 위치에 의존하지 않는 경우 파일을 다음에 추가하십시오 ~/bin
.
mkdir -p ~/bin
cp /path/to/you/file ~/bin
# or mv /path/to/you/file ~/bin
# or ln -s /path/to/you/file ~/bin
~/bin
존재하는 경우 $PATH
자동으로 추가 됩니다. 그런 다음 직접 전화하십시오 file
.
$ file
(그러나 이름을 잘못 선택하면 덜 일반적인 이름으로 간주하십시오.)
file
당신에게 ~/bin
내가 보통 (더 스크립트)하는 일이다. 필자는 아마도 그 중 하나를 맨 위에 놓았을 것입니다.) 별칭은 특정 매개 변수가있는 명령 바로 가기에 좋습니다 (예 :) alias l='ls -CF'
. 나는 별명을 훨씬 더 많이 사용하는 것을 보았지만 . 나는 함수를 선언하지 않는 경향이 있습니다 ~/.bashrc
(나는 모든 스크립트를 별도의 파일로 구성하는 것을 선호합니다 ~/bin
). 이 모든 것이 맛의 문제이지만, 나는 추측합니다 :)
cd
스크립트는 작업 디렉토리에 따라 다를 수 있기 때문에 가장 쉽게 빌려주는 메소드를 선호했습니다 . :) 그렇지 않으면, 나는 파일을 ~/bin
내 자신 에 넣는 경향이있다 .
다음 명령을 사용하여 실행기를 만들 수 있습니다.
gnome-desktop-item-edit --create-new <path-where-to-save>
. 이 창을 열 것입니다.
원하는대로 이름을 지정하고 명령 상자에 다음을 입력하십시오.
sh -c '/opt/idea/bin/idea.sh'
저장하십시오.
이제 새로 만든 런처를 사용하여 해당 파일을 실행할 수 있습니다
또는
다음 내용으로 .desktop 파일을 만들 수 있습니다
[Desktop Entry]
Name=<whatever-you-want>
Exec=sh -c '/opt/idea/bin/idea.sh'
Terminal=false
Type=Application
Icon='<path to an icon file if you want>'
이제 .desktop
어느 곳에 나 확장명으로 저장하십시오 .
이 명령으로 실행 가능하게하십시오 chmod a+x <your-desktop-file>
이제 두 번 클릭하여 엽니 다.
bind
명령을 사용하여 함수와 add 핫키를 정의 할 수 있습니다 . ~/.bashrc
파일을 열고 다음 줄을 추가하십시오.
# define function that opens your program in working directory
Openprog(){
/your-Program/path/here
}
# bind hotkey to it (<F12>)
bind -x '"\e[24~":"Openprog"'
이제를 누르면 F12프로그램이 시작됩니다.
참고 : 이스케이프 코드를 확인하는 빠른 방법 :
터미널을 열고 Ctrl+를 누릅니다 V. 이제 좋아하는 키보드 단축키를 누르십시오. 올바른 이스케이프 코드가 나타납니다. 그냥 교체해야합니다 ^[
으로 \e
, 예를 대체 할 수있는 바로 가기를 추가하기 전에 ^[[24~
로를 \e[24~
.
/opt/idea/bin/idea.sh
파일을 직접 사용하여 파일 을 실행할 수도 있습니다bash_aliases
다음 ~/.bashrc
을 실행하여 파일을 엽니 다 .
gedit ~/.bashrc
#
줄 앞을 제거 하고 저장하면 줄이 다음과 같이 표시됩니다.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
이제 ~/.bash_aliases
파일을 열고
gedit ~/.bash_aliases
해당 파일에 아래 줄을 추가하고 저장하십시오.
alias idea='cd /opt/idea/bin && sudo ./idea.sh'
마지막으로 ~/.bashrc
파일을 소싱 하십시오.
source ~/.bashrc
이제 /opt/idea/bin/idea.sh
파일을 직접 실행할 수 있습니다 .
idea
다른 좋은 답변 외에도이 ~/.local/bin
디렉토리를 PATH에 링크하고 PATH에 추가하는 것을 고려 하십시오 (예 : 내에서 .bashrc
). 이 방법에는 특수 권한이 필요하지 않습니다 ( /usr/local/bin
예 :에 대한 심볼릭 링크와 달리 ). 이런 식으로 $ HOME을 넘치지 않고 표준 디렉토리 압축을 수행 할 수 있습니다. 이 https://unix.stackexchange.com/ 질문 에서 이에 대해 자세히 알아보십시오 .
아니면 간단히 사용할 수 있습니다
nano ~/.bashrc
그리고 추가
PATH=/full/path/to/file:"$PATH"
그것의 끝에 저장하고 종료하십시오. 그런 다음 파일 이름을 입력하면됩니다.
나는 여기와 다른 곳의 모든 대답을 따랐으므로 결국 명령을 수행하기 위해 로그 아웃 해야 할 수도 있다고 언급하는 사람은 거의 없습니다 .
특히 Xubuntu 에 대해 간단히 설명 하지만 다른 데비안 / 우분투 변형 에 대해서도이 간단한 지침을 작성했습니다.
(다음 지침에서는 ~ / bin 디렉토리를 사용합니다 . 왜냐하면이 OS가 명령을 찾는 위치이기 때문입니다. 여기를 참조 하십시오 .
# Open Terminal with Ctrl + Alt + T (or your system's own shortcut)
# You'll work in your home folder, no need to use sudo for any of this
cd # Go to home directory
mkdir -p bin # Create folder ~/bin if it doesn't exist
# Be careful not to type /bin, that's the bin folder in system root: /
sudo apt install nano # Skip this if you have Nano installed
nano bin/yournewcommand
# In Nano, type:
printf "Your new command works! \n" # \n means line break
# Ctrl+X To leave Nano
# Ctrl+Y To save the unsaved file
# Enter to confirm
chmod +x bin/yournewcommand
yournewcommand # If you just created the bin folder, this command might not yet work.
# You must now log out and log back in to make the bin folder noticed (I think)
yournewcommand # Now it works! (You can use Tab to autocomplete the command you're typing)
# If you add a second file/command, it should work without logging out (at least in my tests)