내 터미널의 별칭은 어디에서 왔습니까?

내 터미널의 별칭은 어디에서 왔습니까?

Windows에서 bash 터미널(git-bash)을 실행하고 실행할 때마다 alias다음 별칭을 얻습니다.

$ alias
alias ll='ls -l'
alias ls='ls -F --color=auto --show-control-chars'
alias ltsc='$(npm bin)/tsc'
alias lwbc='$(npm bin)/webpack'
alias node='winpty node.exe'

내 것에는 .bashrc다음만 있습니다:

alias lwbc="\$(npm bin)/webpack"
alias ltsc="\$(npm bin)/tsc"

내 것에는 .bash_profile다음이 있습니다.

test -f ~/.profile && . ~/.profile
test -f ~/.bashrc && . ~/.bashrc

.profile파일이 없습니다 .

그러면 이것들은 어디서 오는가?

alias ll='ls -l'
alias ls='ls -F --color=auto --show-control-chars'
alias node='winpty node.exe'

고쳐 쓰다:

이러한 별칭이 에서 온다는 것을 알았습니다 /etc/profile.d/aliases.sh. 이제 이 파일이 어디에서 트리거되는지 어떻게 알 수 있습니까?

답변1

다음은 bash 문서에서 발췌한 내용입니다.

bash가 이 옵션을 사용하여 대화형 로그인 셸이나 비대화형 셸로 호출되면 --login먼저 파일 /etc/profile(파일이 존재하는 경우)에서 명령을 읽고 실행합니다. 파일을 읽은 후 ~/.bash_profile, ~/.bash_login, 를 순서대로 찾아 존재 ~/.profile하고 읽을 수 있는 첫 번째 파일부터 명령을 읽고 실행합니다. --noprofile이 옵션을 사용하면 쉘이 시작될 때 이 동작을 비활성화할 수 있습니다.

홈 디렉토리의 내용을 확인했으므로 질문에 대한 답변은 파일에 있을 가능성이 높습니다 .bashrc. 일부 배포판에서는 별칭을 포함하여 모든 사용자에 대해 기본값을 설정합니다. 그렇지 않은 경우 이 구성은 위의 발췌문에 언급된 다른 파일 중 하나에 있을 수 있습니다..bash_profile/etc/profile

답변2

시작 시 실행되는 명령의 추적을 인쇄하도록 bash에 요청합니다.

bash -x

추적에는 실행된 명령만 표시되며 해당 명령이 어떤 파일에서 왔는지는 표시되지 않습니다. 그러나 그것들은 bash가 읽고 있는 파일에서 나와야 합니다. 먼저 /etc/bash.bashrc(시스템에서 활성화된 경우), ~/.bashrc명령에서 나오 .거나 source사용된 경우 추적에 나타나는 다른 파일에서 가져와야 합니다.

일반을 실행할 때 별칭이 나타나지 bash않으면로그인 쉘, 잘못된 위치에 정의되어 있으므로 ~/.bashrc현재 로드된 위치를 조사하려면 추적이 활성화된 bash의 로그인 인스턴스를 실행하세요.bash -l -x

답변3

저는 SUSE를 사용하며 이 배포판의 경우 이러한 별칭은 에 있습니다 /etc/bash.bashrc. csh 또는 tcsh를 사용하는 경우 /etc/csh.cshrc이는 Linux 배포판에만 해당되므로 수정하지 않는 것이 좋습니다. 대신 관리자 권한으로 만들고 편집 /etc/bash.bashrc.local하면 파일 하단에서 /etc/bash.bashrc작업을 수행 test -s /etc/bash.bashrc.local하고 파일이 있으면 실행되는 것을 확인할 수 있습니다.

나도 그 ls별칭을 싫어합니다. 나는 alias ls='ls $LS_OPTIONS'수년 동안 댓글을 달았습니다 /etc/bash.bashrc. 시스템을 패치하고 커널 업데이트를 수행하면 이 /etc/bash.bashrc파일이 덮어쓰여질 수 있으므로 돌아가서 다시 편집해야 합니다.

사용하고 있다고 언급하셨습니다.Windows의 bash 터미널(git-bash)/etc/bash.bashrc그래서 그것이 당신에게 특별히 적합한 지 모르겠습니다 .

관련 정보