UNIX의 /etc에서 .profile 업데이트

UNIX의 /etc에서 .profile 업데이트

UNIX 운영 체제의 /etc/security 폴더에 있는 .profile에 다음 텍스트를 추가하는 방법은 무엇입니까?

PS1='hostname -s':$LOGNAME'[$PWD]'

나는 시도했다:

print 'export PS1='hostname -s':$LOGNAME'[$PWD]' ' >> profile

내 결과는 다음과 같습니다.

export PS1='hostname -s':$LOGNAME[/etc]

[/etc.]로.

답변1

당신이 내린 명령은 거의 의미가 없습니다. 이 내용을 어딘가에서 읽었다면 더 주의 깊게 읽어보세요. 'hostname -s'실제로는 이어야 합니다 `hostname -s`. 즉, 작은따옴표 대신 역따옴표를 사용해야 합니다. 컴퓨터로 작업할 때 구두점은 종종 중요합니다. `hostname -s`다음과 같이 작성할 수도 있고 $(hostname -s)다음과 같이 작성해야 합니다(백틱이 포함된 구문은 역사상 처음이지만 덜 규칙적이므로 더 이상 사용되지 않습니다).

작은따옴표 안의 텍스트는 문자 그대로 해석됩니다. 백틱 안의 텍스트 는 다음 중 하나 $(…)입니다 .명령 대체: 명령의 출력으로 대체됩니다.

그래서 그 라인은

PS1=$(hostname -s):$LOGNAME'[$PWD]'

그러면 프롬프트에 컴퓨터 이름, 콜론, 사용자 이름, 괄호 안의 현재 작업 디렉터리가 설정됩니다.

다음 파일을 편집하면 안 됩니다 /etc. 이는 모든 사용자에게 적용됩니다. 여기에서 질문해야 하는 경우 모든 사용자에 대해 해당 설정을 편집하면 안 됩니다. PS1이는 아마도 홈 디렉토리에 있는 파일인 쉘 구성 파일에서 설정 해야 합니다 .kshrc(쉘이 ksh라고 가정 - 쉘이 bash 인 경우 사용하고 .bashrc쉘이 zsh인 경우 사용 .zshrc).

답변2

대신 \$PWD를 작성하여 $PWD를 이스케이프해야 합니다. 사용중인 쉘과 같은 컨텍스트를 제공하지 않았기 때문에 확실하게 말할 수 없습니다. Bash의 올바른 명령은 다음과 같습니다.

echo "export PS1='hostname -s':$LOGNAME'[\$PWD]' " >>profile

관련 정보