tjddndk17
Linux 정리 본문
리눅스 명령어는 커맨드라인 인터페이스 에서 이루어집니다.
그리고 터미널, 셸등과 같은 단어들과 혼용되어 사용됩니다.
커맨드라인 인터페이스?
- 구체적인 실체가 없는 추상적인 단어
- 문자열을 출력하거나 입력하는것만 가능
- 문자열로만 이루어진 인터페이스
터미널?
- 커맨드라인 인터페이스가 물리적/가상적 으로 구현된 기계
- 입력과 출력이 가능한 하드웨어 장비를 의미
( 현재 시점에서는 물리적 하드웨어를 소프트웨어로 구현 -> 가상터미널이 정확한 표현 ) - 여러가지 프로그램이 있음
셸?
- 커맨드라인 인터페이스로 구현된 터미널에서 실행가능한 대화형 프로그램
- REPL(read - eval - print - loop)이라고도 이야기됨
- 셸에는 다양한 종류가 있음 ( Bash셸은 리눅스 환경에서 표준이라 할 수 있음 )
3개의 단어는 구분이 되긴하지만 실제로는 구분없이 사용하는 경우가 더 많습니다.
- 리눅스에서 사용되는 명령어는 모두 대소문자를 구분합니다
- 리눅스에는 3가지 타임스탬프가 있습니다
- atime: 최종접근시간
- mtime: 최종수정시간
- ctime: 최종상태변경시간 - 옵션이 문자 하나인 경우 '-' 사용 ( 예외 있음 )
- '-' 에는 여러개의 옵션을 한 번에 지정 가능 ( ex: -ab 는 -a -b와 같습니다 )
- 옵션이 두 글자 이상의 문자열인 경우 '--' 사용 ( 예외 있음 )
- 비상 탈출 버튼 ( ctrl + c / ctrl + d / ctrl + \ / ctrl + z )
- 포그라운드(foreground) : 현재 터미널에서 입력을 받고있는 프로세스
- 백그라운드(background) : 보이지 않는 뒷편에서 실행중인 프로세스
- 표준입출력
- 입출력에는 3가지가 있습니다
- STDIN(0) : 표준 입력
- STDOUT(1) : 표준 출력
- STDERR(2) : 에러 출력 - 2>&1
- STDERR의 내용을 STDOUT으로 보내줍니다 - .으로 시작하는 파일들은 숨겨져있는 파일로 취급
★ 리눅스 명령어는 다중으로 실행 시킬수 있습니다.
세미콜론(;)
단순히 앞의 명령어부터 순차적으로 실행합니다
$ mkdir test; cd test
# test디렉터리를 만든후 test디렉터리로 이동합니다
앰퍼샌드(&)
앞의 명령어는 백그라운드로 실행하고, 즉시 뒤의 명령어를 실행하게 됩니다
$ mkdir test & cd test
# test디렉터리가 만들어지기 전에 뒤의 명령어가 실행되어 실패하게 됩니다
버티컬바(|)
앞의 명령어의 실행결과를 뒤의 명령어의 입력으로 넘기는 기능을 합니다
$ ls | grep test
# ls명령어를 통해 출력되는 파일 목록중에서 test가 포함된 파일만 출력
더블 앰퍼샌드(&&)
앞에 있는 명령어가 실패하면 뒤에 있는 명령어는 실행하지 않습니다
$ mkdir test && cd test
# 권한이 없는 이유등으로 test디렉터리를 만든는데 실패하면 cd명령어가 실행될 이유가 없습니다
더블 버티컬바(||)
앞에 있는 명령어가 성공하면 뒤에 있는 명렁어를 실행하지 않습니다
$ rm test.txt || sudo rm test.txt
# 앞의 rm명령어로 삭제가 되었으면 뒤의 rm명령어는 실행될 이유가 없습니다
'개발 > Linux' 카테고리의 다른 글
Linux 명령어 정리 (0) | 2021.05.11 |
---|
Comments