별칭을 볼 수 없음

별칭을 볼 수 없음

내 루트 사용자와 다른 사용자 testuser가 있습니다. 이제 testuser의 .bashrc에는 ls -a에 대한 la와 같은 몇 가지 별칭이 있습니다. 하지만 testuser에 로그인하여 la를 실행하려고 하면 다음 오류가 발생합니다. -sh: la: not find

$HOME을 찾아봐도 권한이 거부되었습니다(?)

이로 인해 작업 속도가 느려집니다! 돕다!

답변1

셸의 메시지는 로 시작합니다 -sh. 이는 두 가지 중요한 단서를 제공합니다.

  • 선행은 -이것이 로그인 쉘임을 나타냅니다. 관례적으로 로그인 프로그램(사용자 이름과 비밀번호를 입력하는 프로그램, logingdm, sshd 등)은 extra -. ~/.profile세션 시작 파일을 읽습니다 .
  • 쉘의 이름은 입니다 sh. 따라서 사용자의 로그인 쉘은 bash /bin/sh가 아닌 bash로 설정됩니다. bash에 대한 심볼릭 링크 이거나 /bin/shdash와 같은 다른 셸입니다. bash가 name으로 호출되면 sh호환성 이유로 구성 파일을 읽지 않고 표준 파일만 읽습니다(로그인 쉘에서는 ~/.profile/etc/profile로그인 쉘에서는 파일을 읽지 않습니다). 그래서 그것은 어느 쪽이든 ~/.bashrc읽히지 않을 것입니다 .

bash를 명시적으로 호출하면 .bashrc명령을 지정했더라도 -t터미널을 열도록 플래그를 전달해야 합니다.ssh

ssh -t testuser@nameofhost bash

대신 사용자의 로그인 쉘을 bash로 전환하고 싶을 수도 있습니다 /bin/sh.testuser

chsh -s /bin/bash

/usr/local/bin/bashbash가 있는 곳으로 경로를 변경합니다. 인수 없이 호출 하면 chsh선택할 수 있는 쉘을 보여주는 메뉴가 표시됩니다.

답변2

시스템 전체의 /etc/bashrc 및/또는 /etc/profile 파일을 확인할 수 있습니다. 파일에 다음과 같은 내용을 추가할 수도 있습니다.

if [ `whoami` == "testuser" ] 
then  
   alias x='echo x' # alias list..
fi

관련 정보