터미널에서 별칭을 지속적으로 정의하는 방법


18

모든 터미널 인스턴스에서 사용할 수 있도록 환경에 별칭을 추가하고 싶습니다.

나는 이 대답을 얻었다 :

예, .bashrc, .bash_profile 또는 .profile에 넣을 수 있습니다. 일부 시스템에서 쉘 초기화 스크립트는 또한 .bash_aliases 또는 .aliases를 소스하므로 해당 파일 중 하나가 시스템에 존재하면 사용하는 것이 좋습니다.

그러나 이러한 파일을 찾을 수 없습니다.

(숨겨진 파일을 보도록 OS X를 구성했지만 위의 4는 표시되지 않습니다.)


별명은 쉘 (터미널)에서만 작동하므로 OS X 환경에 별명을 추가한다는 것은 정확히 무엇을 의미합니까? 모든 사용자가 별명에 액세스 할 수 있도록 하시겠습니까?
nohillside

나는 그것이 미래에 열리는 모든 터미널 인스턴스에 대해 설정 될 것을 의미했다
Elad Benda

질문의 초점이 바뀌었기 때문에 편집 내용을 롤백했습니다. zsh에 별칭을 추가하는 방법에 대한 답변을 계속 찾고 있다면 새로운 질문을하십시오.
nohillside

답변:


23

bash를 사용하는 경우 ~ / .bashrc에 alias 명령을 추가하고 ~ / .bash_profile과 같은 파일을 저장하십시오.

. ~/.bashrc

bash가 대화 형 비 로그인 셸로 호출되면 .bash_profile은 읽지 않고 .bashrc를 읽습니다. bash가 대화식 로그인 쉘로 호출되면 .bashrc가 아닌 .bash_profile을 읽습니다.

터미널 및 iTerm은 기본적으로 새 쉘을 로그인 쉘로 열므로 많은 OS X 사용자는 .bash_profile을 개인 구성 파일로 사용합니다. 예를 들어 Emacs의 tmux와 쉘 모드는 새 쉘을 비 로그인 쉘로 엽니 다.

.profile은 ksh와 같은 다른 쉘에서도 읽습니다. .bash_profile과 .profile이 모두 존재하는 경우, bash는 대화식 로그인 쉘로 호출 될 때만 .bash_profile을 읽습니다.

자세한 내용은 https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html 을 참조하십시오.


3
@EladBenda 사용하는 경우 zsh에 별칭 명령을 추가하십시오 ~/.zshrc. ~/.zshrc(대화식) 비 로그인 및 로그인 셸에서 모두 읽으므로에서 소스를 제공 할 필요가 없습니다 ~/.zprofile.
Lri

항상 .bash_profile과 .bashrc의 차이점을 알고 싶었습니다. 감사.
Deesbek

oh-my-zsh를 사용하는 경우 별칭을 ~ / .aliases 파일에 유지하는 것이 더 좋습니다. 이 파일이 없으면 홈 폴더에 추가 할 수 있으며 숨겨진 파일이됩니다.
Anusha

6

새 터미널 창을 열고 홈 디렉토리로 이동하십시오 (입력 cd하고 Enter를 누르십시오).

그 후, 입력 ls .bash*도하고 ls .profile(점과 그 파일 이름 시작 각각 유의하시기 바랍니다). 해당 파일이 있으면 (그리고 최소한 .profile 파일이 있어야 함) 파일을 편집하고 별명을 추가해야합니다. VI (또는 VIM)를 사용하여 해당 파일을 편집 할 수 있지만 다른 편집기를 사용할 수 있습니다 (실제로 터미널 창에 입력 open .bash_profile하면 TextEditor에서 파일이 열리므로 VI에 익숙하지 않은 경우 좀 더 사용자 친화적 일 수 있습니다) . 어떤 이유로 든 해당 파일이 없으면 새 파일을 만들고 (.bashrc라고 함) 별칭 줄을 추가하십시오 (따라서 입력 할 때 한 줄에 하나의 명령이됩니다) 셸에서) 파일을 저장 한 다음 파일을 저장하십시오. 그런 다음을 사용하여 .bash_profile 및 .profile에 대한 심볼릭 링크를 만들 수 있습니다 ln -s .bashrc .bash_profile; ln -s .bashrc .profile.

내가 일반적으로하는 일은 .bashrc 및 .bash_profile .profile에 대한 심볼릭 링크를 만든 다음 하나의 파일에 대해서만 걱정하면됩니다.

이들 파일의 차이점은 bash가 로그인 쉘 (일반적으로 로그인 프로세스가 쉘을 로그인 쉘로 시작하는지)로 시작했는지 아니면 대화식 (그러나 로그인이 아닌) 쉘로 시작되었는지에 따라 다른 파일을 소스로 제공한다는 것입니다. 비 대화식 쉘. 세 파일 모두 본질적으로 동일하면 bash 시작 방법에 관계없이 일관된 환경이 제공됩니다.

당신은 더 많은 정보를 얻을 수 man bash있지만 준비는 긴 매뉴얼 페이지입니다. bash가 시작된 모드에 따라 소스 파일 (.bashrc, .profile 및 .bash_profile) 중 어느 파일이 소스인지 확인할 수 있습니다.

도움이 되었으면 좋겠습니다.


3

터미널에 다음 명령을 입력하십시오.

cd /etc
sudo vi bashrc

다음과 같이 추가하십시오.

alias ll="ls -lrt"

마지막으로 터미널을 다시 시작하십시오.


2

이 시스템 전체가 필요한 경우 /etc폴더 를 찾아야 합니다. 그러나 기본적으로 존재하지 않을 수 있습니다.이 경우 단순히 위 폴더에서 해당 폴더를 작성하고 터미널을 다시 시작하면됩니다. 폴더가 소유하고 sudo있으므로 /etc폴더 를 만드는 데 사용해야 합니다 root.

당신이 여는 모든 터미널에 대해 이것이 필요하다면 당신은 그것을 기계 전체에 할 필요가 없습니다. 자신의 홈 폴더에 이러한 파일을 만들 수 있으며 터미널 세션을 시작할 때마다 터미널에서 파일을 읽습니다.

또한 의견에서 언급했듯이 일반적으로 터미널과를 사용하여 이러한 것을 볼 수 있습니다 ls -lha.


0

루비가 설치되어 있다면이 루비 스크립트를 확인하십시오 https://github.com/ytbryan/aka

이 스크립트는 지속성 및 도트 파일의 자동 소싱과 같은 기능을 제공합니다. 워크 플로우를 중단하지 않고 터미널을 통해 별명을 관리하고 텍스트 편집기를 열 수 있습니다.

면책 조항 : 나는이 스크립트를 작성하고 매일 사용합니다. 버그 / 아이디어가 있으면 알려주세요. :)


0

Linux BASH에서와 같이 ll 명령을 찾는 사람들에게는 다음과 같이 생성됩니다 ...

alias ll="ls -laF"

귀하의 해당 행을 추가 .bashrc한 다음, 중복 파일 .bashrc과 같은 파일을 .bash_profile, 당신은 항상 영원 LL해야합니다.

그만한 가치가있는 리눅스 BASH는 " ls -laF" 의 별칭 일뿐 입니다.


-2

내 프로필 위치에 .bash 또는 .profile이 없다는 동일한 문제가있었습니다. 나는 마침내 / etc에서 찾았다


1
/ etc는 시스템 전체에서 사용됩니다. 이러한 파일을 편집하지 말고 홈 폴더에서 ~ / .bash_profile과 같은 고유 한 프로필 파일을 사용하는 것이 좋습니다.
grg

~ / .bash_profile을 갖기 위해 이음새가 생기지 않습니다. 내가 처음 시도한 것이었고 하나를 만들면 다시 시작한 후에도 사용되지 않습니다. 관리자가 어떻게 막았는지 믿습니다. 나는 지금 zsh를 사용하고 있고 .zshrc는 잘 작동한다
Leo Boulanger
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.