[생활코딩] Linux - 왜 CLI를 사용하는 걸까?

Ian Choi·2022년 3월 5일
0

TIL

목록 보기
6/6

TIL

📌서론

리눅스를 쓰다보면 드는 생각이 있다.

왜 편한 GUI를 두고 CLI 환경에서 작업해야 하는거지?

사용자 친화적인 인터페이스인 GUI로 작업하면 단순한 일도 CLI로 작업하려고 하면 헷갈리기 쉽다.

예를 들어서 폴더 삭제를 할 때 윈도우는 끌어서 휴지통에 넣는 직관적인 방법이 있는데,

리눅스에서는 rm -rf foldername 과 같은 타이핑을 굳이 해야한다.

어떤 장점이 있길래 불편한 CLI 환경을 굳이 사용하는 건지 알아보자.

📌본론

단도직입적으로 말하면 CLI를 사용하는 가장 큰 이유는 GUI보다 가벼운 인터페이스이기 때문이다.

일반 용도가 아닌 서버 컴퓨터 같은 경우에는 메모리나 CPU를 서비스를 운영하는 데 대부분 사용하기 때문에 최대한 적은 리소스를 통해서 작업해야 한다.

CLI를 활용하면 작업 환경에 여유가 없더라도 안정적이고 빠르게 작업을 할 수 있다는 큰 장점이 있다.

두번째 이유는 CLI가 자동화 작업에 편리하기 때문이다.

리눅스에는 세미 콜론 ( ; )을 이용해서 다중 작업을 한 번의 명령으로 실행할 수 있다.

새로운 폴더를 생성하고 해당 폴더 안으로 이동하는 두 가지 명령을 한 줄로 실행했다.
ec2-user:~/environment $ mkdir newfolder ; cd newfolder
ec2-user:~/environment/newfolder $ 

이처럼 연속적인 실행을 명령할 수 있다는 건 작업을 자동화 시킬 수 있다는 뜻이다.

간단한 명령이라면 큰 의미가 없지만 만약에 첫 번째 작업이 4시간이 걸리는 일이라면 다음 작업을 실행하기 위해서 4시간 후에 컴퓨터로 돌아와야 한다.

하지만 세미 콜론을 통해서 다음 작업까지 명령 해둔다면 마음놓고 작업이 끝나는 걸 기다릴 수 있다.

이는 서버 업데이트 등 큰 시간이 소요되는 작업이 많은 서버 컴퓨터에서 효과적이다.

마지막 이유는 파이프라인을 이용하여 효율적인 작업을 할 수 있기 때문이다.

이번에는 파이프 (|)를 이용해서 파이프라인을 구성하여 강력한 효과를 낼 수 있다.

파이프라인은 이전의 결과를 이용해서 다음 작업을 진행하는 것이다.

예를들면, ls --help 명령어는 한번에 많은 정보를 보여주기 때문에 원하는 정보만 뽑아내기 어렵다.

ec2-user:~/environment $ ls --help
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

Mandatory arguments to long options are mandatory for short options too.
  -a, --all                  do not ignore entries starting with .
  -A, --almost-all           do not list implied . and ..
      --author               with -l, print the author of each file
  -b, --escape               print C-style escapes for nongraphic characters
      --block-size=SIZE      scale sizes by SIZE before printing them; e.g.,

여기에서 파이프라인을 이용하면 앞의 결과를 이용해서 다음 작업을 수행 할 수 있다.

아래처럼 grep sort 를 파이프로 연결하면 ls --help 명령어를 수행한 결과에서 sort 라는 단어를 포함하는 행들만 출력한다.

파이프라인이 강력한 이유는 여기에서 멈추지 않고 계속 파이프로 연결해서 결과물을 좁혀나갈 수 있다.

위의 결과물에서 name을 포함하는 행들만 출력해 보았다.
ec2-user:~/environment $ ls --help | grep sort | grep name
                               with -l: show ctime and sort by name;
      --sort=WORD            sort by WORD instead of name: none (-U), size (-S),
                               with -l: show access time and sort by name;

이처럼 CLI가 불편하지만 아직도 GUI 대신에 많은 환경에서 사용되는 이유에 대해서 알아보았다.

정리하자면,

GUI는 사용자 친화적으로 편하지만 컴퓨터 리소스를 많이 잡아먹고,
CLI는 컴퓨터 리소스를 적게 쓰지만 명령어를 외워야 하는 등 불편함이 있다.

따라서 사용하고자 하는 목적에 맞는 OS를 선택하여 효율적인 인터페이스를 이용하는 것이 좋다.

profile
신입 시스템 엔지니어

0개의 댓글

관련 채용 정보