본문 바로가기
운영체제/Linux

리눅스 개념 및 명령어 1 - Linux CL tool

by Riverandeye 2020. 4. 16.

1. type <명령어>

type은 command가 정확히 어떤 프로그램이 실행되는건지 알려준다. 대신, built-in command인 경우엔 built-in 이라고 안내한다.

built-in 인 경우
type은 실행되는 파일의 경로를 알려준다

-a 태그를 붙이면 이름이 같은 모든 커맨드가 등장한다. built-in의 경우 bash에서 따로 구현한 구현체가 있을 수도 있는데, 서로 다른 것이다. 

이 둘은 같지 않다.

2. Stream

리눅스는 모든 프로그램에 대한 Input, output을 Stream이라고 칭한다. 이러한 Stream을 Linux 명령어로 제어할 수 있다. 이를 제어하는데 주로 Redirect와 Pipe가 사용된다. 

 

3. Redirect > 

프로그램의 출력을 포함하는 파일을 생성한다. 만약 기존 파일이 있다면 덮어씌여진다.

echo "hello"의 output을 hello.txt에 전달함

덮어쓰는 것이 아니라 추가하고싶으면 >> 를 사용하자. 

standard error를 덮어쓰고 싶으면 2> , 추가하려면 2>>를 사용하자.

&> 는 standard output과 standard error를 모두 저장한다.

< 는 input-redirection 으로 특정 file의 content를 standard input 으로 사용한다.

 

4. Pipe | 

pipe는 a | b 형식으로 작성되는데, a의 standard output이 b의 input으로 들어가게 된다.

좋은 예시는 netstat | grep 80 인데, 80번 포트에 켜져있는 네트워크의 프로세스를 알아낼 때 사용된다. 
grep은 입력된 패턴이 존재하는 line을 모두 출력한다. 

 

echo의 결과를 grep의 input으로 넣는 경우

 

5. realpath

입력된 파일의 절대 경로를 반환한다.

 

파일 c의 realpath를 반환

 

6. xargs

xargs는 pipe로 나온 모든 결과에 뒤에 나오는 command를 적용시켜준다. 예시를 보자.

 

ls로 나온 모든 대상들에 대해 realpath 명령어가 적용된 것을 확인할 수 있다.

이 xargs는 매우 유용한 명령어이므로 나중에 필요할 때 꼭 찾자.

댓글