우분투 14.04.2가 있습니다. 모든 사용자가 자동으로 특정 별칭 집합을 갖도록 만들고 싶습니다. 개인 .bashrc에 별칭을 설정했지만 다른 사용자에게 수동으로 복사하지 않아도됩니다. 이상적으로는 새로 작성된 사용자에 대해서도 자동으로 설정해야합니다.
우분투 14.04.2가 있습니다. 모든 사용자가 자동으로 특정 별칭 집합을 갖도록 만들고 싶습니다. 개인 .bashrc에 별칭을 설정했지만 다른 사용자에게 수동으로 복사하지 않아도됩니다. 이상적으로는 새로 작성된 사용자에 대해서도 자동으로 설정해야합니다.
답변:
스크립트를 작성하여 /etc/profile.d/
모든 사용자의 별명을 작성할 수 있습니다 .
에 파일 00-aliases.sh
(또는 다른 이름)을 작성하십시오 /etc/profile.d
.
gksu gedit /etc/profile.d/00-aliases.sh
이 파일에 별명을 넣으십시오. 예:
alias foo='bar --baz'
alias baz='foo --bar'
파일을 저장하십시오
몇 가지 참고 사항 :
/etc/profile
이전에 실행되는 전역 파일입니다 ~/.profile
./etc/profile.d/
에 의해 호출 된 스크립트가 포함 된 폴더입니다 /etc/profile
경우 /etc/profile
라고합니다 (당신이 시작할 때 / 쉘 로그인), 그것으로 끝나는 모든 파일을 검색 .sh
에서 /etc/profile.d/
이러한 명령 중 하나를 실행합니다 :
source /etc/profile.d/myfile.sh
. /etc/profile.d/myfile.sh
00-
파일 이름 앞에 두어 나머지 스크립트보다 먼저 실행되도록합니다./etc/profile
있지만 권장하지는 않습니다..sh
파일의 별칭은 로그인 셸에 대해서만 정의 되며 대화 형 비 로그인 셸에서는 작동하지 않습니다. 환경 변수와 달리 bash는 자식 bash 쉘뿐만 아니라 자식 프로세스로 별칭을 내보낼 수 없습니다. 이 방법은 단지 이러한 가상 콘솔 또는 SSH를 통해 로그온하여 얻은 원래 쉘로 로그인 쉘, 테스트 않다면 제대로 작동하는 것처럼 보일 수 있지만, 그것은 그들의 자녀 껍질에 실패 하고 또한 GUI 터미널 창에 의해 시작 껍질에 실패합니다. /etc/profile.d/
/etc/profile
여기 에서 지적했듯이 전역 별칭을 추가하는 것이 좋습니다 /etc/bash.bashrc
.
alias foo='bar --baz'
alias baz='foo --bar'
(로그인이 아닌) 특정 쉘에 대해서는 스크립트를 /etc/profile.d
무시할 수 있기 때문 입니다. 왜 /etc/profile.d
작동하지 않는지 알아내는 데 몇 시간이 걸렸습니다 .
쉘 간 구별에 대해서는 예를 들어 https://askubuntu.com/a/606882/ 및 .bashrc 및 .bash_profile 이해를 참조하십시오 .
별명은 쉘 내부에서만 작동합니다. 실행 파일처럼 광범위하게 액세스 할 수있는 것을 원하는 경우 다음과 같은 작은 바로 가기 스크립트를 추가 할 수 있습니다 /usr/bin
.
#!/bin/sh
ls -l "$@"
는 "$@"
실행에 이르기까지 모든 인수를 전달합니다. 스크립트 이름은 실행 파일 이름입니다.