나만의 터미널 명령을 만드는 방법

나만의 터미널 명령을 만드는 방법

나는 사용자 정의 터미널 명령을 생성하는 방법을 알고 있으며 이는 폴더의 모든 Java 클래스를 컴파일하는 데 정말 유용할 것입니다. 또한 이 작업을 수행하기 위해 사람들은 일반적으로 ~/bin 폴더를 만들고 실행하려는 줄이 있는 .sh 파일을 저장하지만 잘 이해할 수 없었습니다. 예를 들어 몇 줄이 포함된 compile.sh를 만듭니다.

-gcc file -o file
-gcc file1 -o file1

하지만 읽는 동안 홈 폴더에 숨겨진 .bashrc라는 파일에 줄을 추가해야 하는데 어떻게 해야 할지 모르겠습니다. 이 파일을 더 쉽게 편집할 수 있는 방법이 없을까요? 그런 다음 내 사용자 정의 명령은 .sh 파일(컴파일)의 이름이 됩니다.

답변1

컴퓨터의 모든 사용자가 사용할 수 있는 Bash 스크립트를 만드는 가장 쉬운 방법은 /usr/local/bin. 하지만 이를 위해서는 관리자 권한이 필요합니다.

  1. 스크립트를 작성하십시오.

    즐겨 사용하는 텍스트 편집기를 열고 스크립트에서 실행하려는 모든 명령을 한 줄에 하나씩 작성합니다.

    로 줄을 시작하여 Bash 스크립트에 주석을 추가할 수 있습니다 #.

    완료되면 아래의 정확한 줄을 스크립트 상단의 첫 번째 줄로 추가하세요. 이는 "shebang"이라고 불리며 스크립트를 실행할 인터프리터를 쉘에 알려줍니다.

    #!/bin/bash
    

    다음은 질문에서 언급한 두 명령을 실행하는 전체 스크립트의 간단한 예입니다.

    #!/bin/bash
    
    # Compile 'file':
    gcc file -o file
    # Compile 'file1':
    gcc file1 -o file1
    
  2. 스크립트를 올바른 위치로 이동하세요.

    모든 사용자를 위한 자체 스크립트를 배치해야 하는 위치는 입니다 /usr/local/bin.

    이 디렉터리는 사용자가 소유하므로 root관리자여야 하며 sudo파일을 그곳으로 이동하려면 를 사용해야 합니다.

    홈 디렉토리인 에 스크립트를 생성했다고 가정합니다 ~/my_script.sh. 터미널을 열고 아래 명령을 입력하고 SCRIPTNAME원하는 이름으로 바꾸세요. 이 이름은 실행하기 위해 입력해야 하는 명령이 됩니다. 파일 .sh확장자는 필요하지 않습니다.

    sudo mv ~/myscript.sh /usr/local/bin/SCRIPTNAME
    
  3. 올바른 소유자 및 권한을 설정하십시오.

    스크립트는 가 소유하고 쓸 수 있어야 root하지만 모든 사람이 읽고 실행할 수 있어야 합니다. 아래 두 명령은 이를 보장합니다.

    sudo chown root: /usr/local/bin/SCRIPTNAME
    sudo chmod 755 /usr/local/bin/SCRIPTNAME
    
  4. 스크립트를 실행하고 다음을 즐겨보세요.

    SCRIPTNAME이제 터미널에 간단히 입력하면 (또는 원하는 이름으로) 스크립트가 실행됩니다.

답변2

스크립트를 작성하는 것은 매우 편리한 실행 방법이지만하나의 파일에 있는 여러 명령, 하나 또는 두 개의 명령만 필요한 기능을 사용하는 것이 좋습니다.

아래의 함수 정의를 예로 들어 보겠습니다.

compile()
{
  gcc "$1" -o "${1%%.*}" && printf "<<< Compiled successfully\n"
}

파일 에 배치한 .bashrc다음 새 터미널 탭을 실행하거나 열면 변수 에 추가 source ~/.bashrc하지 않고도 어디서나 이 명령을 실행할 수 있으며 다음과 같이 파일 이름을 명령줄 인수로 제공할 수 있습니다.~/binPATH

compile somecode.c

참고로 gedit ~/.bashrc명령줄에서 호출하여 해당 파일을 편집할 수 있습니다.

"$1"및 의 기능이 무엇인지 궁금하신 분들을 위해 "${1%%.*}""$1"첫 번째 명령줄 매개변수(이 경우 "somecode.c")를 참조합니다. 즉, "${1%%.*}"매개변수 확장, 특히 접미사 제거를 수행하고 점 뒤의 모든 항목을 버리는 매개변수입니다. 즉, 그것은 somecode.c로 변합니다 somecode . 자세한 내용은 다음을 읽어보세요.배쉬 매뉴얼 페이지매개변수 확장에 대한 섹션

답변3

본 내용을 시작하기 전에 새 명령을 만드는 것이 아니라 실행 파일로 실행할 수 있는 스크립트를 만드는 것임을 분명히 하고 싶었습니다. 그러나 어디에서나 실행할 수 있으므로 명령과 동일한 방식으로 작동할 수 있습니다.

홈 폴더에 "bin"이라는 폴더가 없으면 새로 만듭니다.

이제 터미널 창을 열고 nano ~/.bashrc.

그러면 편집기가 열립니다. 이 파일의 맨 아래에 이라는 새 줄을 추가합니다 PATH="$HOME/bin:$PATH".

이제 Ctrl+O(0이 아닌 문자 o)를 눌러 파일을 저장한 다음 Enter 키를 누릅니다. Ctrl+X를 사용하여 편집기를 종료합니다. 변경 사항을 적용하려면 로그아웃했다가 다시 로그인하세요. 그래도 작동하지 않으면 컴퓨터를 다시 시작하세요.

이제 bin 폴더에 생성한 모든 스크립트는 터미널 창 어디에서나 액세스할 수 있습니다.

nano, gedit(Ubuntu 그래픽 텍스트 편집기) 또는 원하는 텍스트 편집기를 사용하여 이러한 스크립트를 만들 수 있습니다. 스크립트를 ~/bin 폴더에 저장하고 파일을 실행 가능하게 만드세요. 이를 수행하는 두 가지 방법이 있습니다:

GUI : 파일을 마우스 오른쪽 버튼으로 클릭하고 권한 탭으로 이동한 다음 "프로그램으로 실행 허용" 확인란을 선택합니다.

터미널 :chmod +x /location/of/your/file

관련 정보