터미널을 열고 쉘 명령을 입력 / 실행했다고 가정 해 봅시다.
그러나 Bash 또는 다른 쉘을 명시 적으로 호출하지 않았습니다.
기본적으로 어떤 쉘이 사용 되었습니까?
터미널을 열고 쉘 명령을 입력 / 실행했다고 가정 해 봅시다.
그러나 Bash 또는 다른 쉘을 명시 적으로 호출하지 않았습니다.
기본적으로 어떤 쉘이 사용 되었습니까?
답변:
당신의 라인에 지정된 것 /etc/passwd( :분리 된 라인이고 쉘은 마지막 라인입니다).
예를 들어 광산 :
chris:x:1000:1000:Chris,,,:/home/chris:/bin/bash
여기 /bin/bash(우분투 기본값)
당신은 또한 사용할 수 있습니다 chsh:
$ chsh
Password:
Changing the login shell for chris
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]:
이것은 나에게 쉘이 있다는 것을 알려주고 /bin/bash그것을 바꾸게합니다.
마지막으로 echo $SHELL동일한 작업을 수행합니다.
$ echo $SHELL
/bin/bash
sudo netstat -an | grep LISTEN | grep -v ^unix. 나는 그것을 bash 서브 쉘에 넣을 이유가 없다.
sudo bash -c "..."경우 전체 파이프가 루트에 의해 실행되도록합니다.
commandA | sudo commandB | commandC, 당신은 sudo id처음으로 할 수 있습니다 (로 id명령을 실행 root하지만 (기본값) 15 분 동안 지속되는 " 암호 프롬프트없이 사용 sudo "토큰을
chsh 한 후 다시 로그인해야합니다 .
다음을 입력하면 터미널에서 어떤 쉘을 열 었는지 표시됩니다.
echo $SHELL
그러나 현재 사용중인 쉘을 찾으려면 (변경했을 수 있음) 유형
ps -p $$
예를 들어 예제 출력에서 쉘이 bash 임을 알 수 있습니다.
PID TTY TIME CMD
3500 pts/0 00:00:01 bash
다른 방법은
echo $0
이것은 단순히 현재 쉘의 이름을 반환합니다.
echo $0