저는 사용자와 호스트로 구성된 LDAP 기반 네트워크에서 작업하고 있습니다. 내 사용자는 LDAP 사용자이기 때문에 모든 호스트에 존재하며, 내 사용자의 홈 디렉터리는 마운트 지점으로 모든 호스트에 존재합니다.
~/.bash_profile
소스가 ~/.bashrc
있으면 설정해두었습니다 .
~/.bashrc
내 마지막 줄 안에는 set -o emacs
.
로컬 셸에서는 로그인 후 emacs 스타일 줄 편집을 활성화하도록 emacs 옵션을 올바르게 설정합니다.
그러나 다른 호스트로 ssh를 하면 ~/.bashrc
다른 모든 것을 로드 해도 set -o emacs
적용되지 않거나 적용되고 덮어쓰게 됩니다.
그래서 현재는 set -o emacs
다른 호스트에 SSH로 연결할 때마다 수동으로 수행해야 합니다.
set -o emacs
Emacs 라인 편집이 활성화된 상태에서 대화형 쉘에 들어가자마자 자동으로 실행되도록 다른 호스트로 SSH를 통해 실행할 수 있는 방법이 있습니까 ?
답변1
일부 명령을 사용하여 my 이후에 로드되고 my 를 재정의하는 호출이 포함되어 있음 strace
을 발견했습니다 . 내 로컬 컴퓨터에는 문제가 존재하지 않으므로 localhost에서는 문제가 발생하지 않습니다./etc/inputrc
~/.bashrc
set editing-mode vi
set -o emacs
/etc/inputrc
또한 strace는 대체 항목으로 로드하기 ~/.inputrc
전에 무엇을 찾아야 할지 결정합니다./etc/inputrc
그래서 우리는 touch ~/.inputrc
빈 것을 생성 inputrc
하고 짜잔, set -o emacs
이제 SSH를 사용하여 로그인할 수 있습니다 :)
답변2
ssh
표준 입력 및 표준 출력이 ssh
로컬 터미널로 전달되는 원격 호스트에서 새로운 셸을 시작합니다. 따라서 set -o emacs
실행 해야 합니다.외딴로컬 호스트가 아닌 호스트. emacs
스타일 라인 편집이 기본값이므로 원격 파일에 이미 유사한 라인이 포함되어 있을 수 있으므로 삭제 set -o vim
해야 합니다.