나는 다음과 같은 작업을 하려고 합니다.
alias banana='emacs /usr/local/nagios/etc/objects/'
따라서 이 파일(/usr/local/nagios/etc/objects/firewall.cfg)을 편집하려면 "bananafirewall.cfg"를 입력하고 싶습니다. 내가 입력하면 emacs는 두 개의 버퍼를 열 것입니다. 하나는 디렉토리 편집 모드에서 "/usr/local/nagios/etc/objects"용이고 다른 하나는 Firewall.cfg라는 빈 두 번째 파일로 열립니다. 이는 분명히 명령 " 바나나파이어월.cfg"가 작동하지 않습니다.
30분 동안 머리를 긁적였어요. 별칭이 올바른 명령입니까? 이 모든 파일을 /root에 ln -s할 수 있을 것 같은데, 다른 제안이 있습니까?
답변1
별칭은 명령에 다른 이름을 부여하거나 기본 인수를 전달하는 데 유용합니다. 그 외에도 그들은 예를 들어 주장을 수정하는 데 능숙하지 않습니다. 대신 함수를 사용하세요.
여러 파일 이름을 쉽게 지원하려면 먼저 대상 디렉터리로 전환하세요. 하위 쉘을 생성하려면 중괄호 대신 괄호를 사용하여 디렉토리 변경이 상위 쉘에 영향을 주지 않도록 하십시오.
banana () (
cd /usr/local/nagios/etc/objects/ &&
emacs "$@"
)
답변2
다음과 같은 쉘 함수를 사용할 수 있습니다.
banana () { emacs /usr/local/nagios/etc/objects/"$1"; }
하나의 파일 이름에만 작동합니다. 여러 개를 지원하면 상황이 더 복잡해집니다.