Bash에서 명령을 정의할 수 있습니까?

Bash에서 명령을 정의할 수 있습니까?

예를 들어 다음과 같이 설정할 수 있습니다.

gb = cd /media/Dan/evolution

gb... bash에서 실행할 때마다 cd해당 특정 디렉터리로 이동할 수 있도록 하려면 ?

온라인에서 뭔가를 찾았습니다: alias명령. 하지만 위의 작업을 완료할 수 없는 것 같습니다.

가능합니까? 어떻게?

답변1

다음을 입력하세요.

alias gb='cd /media/Dan/evolution'

이 설정을 영구적으로 만들려면(재부팅하거나 다른 콘솔을 연 후에도 유지되도록) ~/.bashrc 파일에 이 줄을 추가하세요(bash를 기본 셸로 사용한다고 가정).

답변2

별칭의 대안

gb() { cd /media/Dan/evolution; }

이는 인수를 사용하지 않고 cd /media/Dan/evolution을 실행하는 쉘 함수 gb를 정의합니다. 다른 제안과 마찬가지로 ~/.bashrc에 추가할 수 있습니다.

답변3

이것은 가능하며 alias당신이 찾고 있는 명령입니다. 예를 들어 alias ll="ls -l"bash에서는 별칭을 설정할 때 공백이 사용되지 ll않습니다 ls -l. man alias유용할 수도 있습니다.

답변4

또는 C 프로그램을 작성하여 필요한 명령을 호출하고 이를 /usr/bin에 저장할 수 있습니다.

#include <stdio.h>
#include <string.h>

int main () {
    char command[50]; //notice you can change this to fit your needs
    int return_val;

    strcpy( command, "echo \"cd /media/Dan/evolution\" | bash -i" );
    return_val = system(command); 

   //this is equivalent to entering the command in a new bash, 
   //which will return and exit

    return return_val;
}

컴파일하려면 소스 코드를 저장한 디렉터리(bash)로 이동하여 실행합니다(sudo가 필요할 수 있음).

 gcc ./gb.c -o /usr/bin/gb

추가 조사 후여기system(), 단순히 명령을 입력하는 것만 으로는 bash 내장 기능이 작동하지 않는다는 것을 깨달았습니다 . 이것이 바로 대화형 bash 인스턴스를 생성하고 여기에 명령을 반영해야 하는 이유입니다. 쉘 스크립트에 대한 호출을 단축하려는 경우가 아니면 지나치게 복잡하고 아마도 쓸모가 없을 것입니다( some_script그렇지 않습니다 sh ~/radgeRayden/Scripts/some_script).

system() 함수에 대한 참조

관련 정보