
shell 개념
리눅스를 정상적으로 설치하고 부팅에 성공하면 가장 처음 만나는 것이 쉘이다.
과거 MS-DOS를 쓸 때 떴던 c:> 를 띄우던 검정 화면과 같은 녀석이다.
커널을 감싸고 사용자의 명령을 대기한다는 의미의 Shell이다.
커널을 감쌌다는 표현 때문에 특별하게 생각할 수 있지만 결국 shell도 수만은 프로그램 중 하나이다.
# 예시
whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
whereis cp
cp: /usr/bin/cp /usr/share/man/man1/cp.1.gz
whereis sed
sed: /usr/bin/sed /usr/share/man/man1/sed.1.gz
whereis ln
ln: /usr/bin/ln /usr/share/man/man1/ln.1.gz
echo $SHELL
/bin/bash
쉘도 하나의 어플리케이션이라 했다. 즉, 현재 bash를 사용 중일 경우 sh 이나 ksh 명령을 수행하면
bash 쉘 위에 sh 이나 ksh 응용 프로그램이 실행된다. 쉘 위에 쉘을 실행하면 두 개의 쉘을 거쳐 명령이 수행 되는 것과 같다.
PS1 에 쓸 ANSI 색상 변수 모음이다. 검은 배경에서 잘 보이도록 bright 계열(1;3x) 과 256-color 팔레트(`38…PG_USER 를 바꿨고 echo 로 찍으면 바뀐 값이 보이는데, 실제 쿼리는 계속 예전 계정으로 나간다. 인라인으로…> 로 바뀌고 계속 입력을 기다리는 것은, 셸이 아직 명령이 끝나지 않았다고 보고 있다는 뜻이다. 이 `>…set -u 를 쓰면 없는 변수를 참조할 때 멈춘다. 선택 인자는 기본값을 붙인다.EF BB BF 다. UTF-8 은 바이트 순서가 고정이라 BOM 이…/ 나…if 를 여러 번 잇는 대신 case 를 쓴다. 비교는 문자열 동등이 아니라 글로브 패턴 매칭…