쉘 확장
사용자가 입력한 명령행을 리눅스의 쉘이 해석하는 과정으로 사용자가 입력한 명령행은 쉘 확장 과정을 거쳐 쉘에 의해 실행됩니다.
$cd; touch test42 && echo it worked || echo it failed
이런 식으로 사용됩니다.
bash
리눅스에서 가장 널리 사용되는 셀로 기존의 sh에서 csh와 ksh의 장점을 추가한 것입니다.
명령 인자(command argument)
$echo Hello world!
echo명령이 사용된 예시로 인자로 전달되는 텍스트를 화면에 출력해주는 역할을 합니다.
인자들의 공백문자는 모두 제거되며 따음표 또는 쌍따음표로 묶인 문자열은 단일한 인자로 처리되며 내부의 공백도 그대로 유지됩니다.
이렇게 -e를 주고 하면 \n을 인식해서 처리해주는 모습을 볼 수 있습니다.
리눅스 명령의 종류
빌트인 명령
쉘이 자체적으로 해석하는 명령
외부 명령
/bin, /sbin과 같은 파일 시스템에 존재하는 바이너리 파일에 해당하는 명령으로 환경변수 PATH에 등록된 순서에 따라 외부 명령을 찾습니다.
$type cd
$type cat 같은 명령이 있습니다.
이름이 동일한 명령의 경우 내부 명령이 외부 명령에 우선하여 실행됩니다.
$type -a echo # echo 명령의 종류를 모두 나열
$/bin/echo "Hello World!" 는 외무 병령 /bin/echo를 실행
which 명령을 사용하면 입력된 외부 명령에 해당되는 바이너리 파일의 위치를 알려줍니다.
앨리아스 (alias)
기존의 명령을 다른 이름으로 사용할 수 있게 하는 것입니다.
$cat/etc/passwd
$alias show=cat
$show /etc/passwd
$unalias show
$show /etc
작업 제어 연산자
다수의 명령으로 이루어진 작업을 제어하는 연산자
semicolon(;)
왼편 오른편의 순서로 명령을 차례로 수행하는 것입니다.
$echo Hello; echo World
double vertical bar (||)
논리합 (logical or)로 해석, ||의 왼편 명령이 실패할 때만 오른편 명령을 실행합니다.
$echo first || echo second; echo third
ampersand(&)
쉘은 명령을 background로 실행하고 그것이 종료할 때까지 기다리지 않습니다. 대신 쉘은 다음 명령의 입력을 대기합니다. $sleep 20 &
프로세스 아이디는 21603이 나왔습니다.
dollar question mark($?)
이전 명령 종료 코드로 반환합니다. Linux명령은 성공적으로 종료하면 0을 반환하고 그렇지 않으면 0이 아닌 값을 반환합니다. 이것은 exit code 혹은 return code라고 불릴 수 있습니다.
$touch file1
$echo $? 이런 식입니다.
double ampersand(&&)
논리곱(logical and)로 해석, &&의 경우 왼편 명령을 성공적으로 종료하면 오른편 명령을 계속해서 실행합니다.
$echo first && echo second
$echo first && echo second
double vertical bar (||)
논리합(logical OR)로 해석됩니다. ||의 왼편 명령이 실패할 때만 오른편 명령을 실행합니다.
작업 제어 연산자
pound sign (#)
쉘 주석을 나타내며 쉘이 해석하지 않습니다.
escape character(\)
escape 문자입니다.
이런식으로 ;을 문자로 인식해주는 것을 볼 수 있습니다.
줄이 바뀌어도 명령이 계속 이루어지는 것을 볼 수 있습니다. \는 이런 기능을 합니다.
'IT 프로그래밍 > 오픈소스소프트웨어' 카테고리의 다른 글
[오픈소스소프트웨어] 쉘 임베딩 (0) | 2024.09.25 |
---|---|
[오픈소스소프트웨어] 쉘 변수 (0) | 2024.09.25 |
Linux 파일 (0) | 2024.09.19 |
리눅스 ls 명령, 디렉토리 추가 및 삭제 명령 (0) | 2024.09.13 |
리눅스의 구성, 파일구조, 관련 명령어 (0) | 2024.09.13 |