GUI vs CLI

  • Resouce사용
    • GUI는 그래픽하게 사용할 수 있기 때문에, 사용성이 높지만 Resource를 많이 많이 잡아먹는다
    • CLI는 컴퓨터 용량, CPU, 메모리를 적게 쓰는 장점이 있다
  • 순차적인 작업
    • GUI는 프로그램을 실행시킬 때, 순차적으로 진행되는 일을 자동화하기가 어렵다
    • CLI는 프로세스를 실행시켜 놓으면, 알아서 동작한다는 장점이 있다

CLI의 강력한 효과

  • 순차적으로 실행이 가능하다

    • 우리가 명령어를 통해서 얻을 수 있는 중요한 효과는 우리가 어떤 명령어(프로그램)을 실행했을 때 그 프로그램이 끝나는 것을 확인하고 나서, 그 다음 것을 실행할 필요가 없다는 것입니다.
      순차적으로 내가 해야될 일을 쭉 적어서 컴퓨터에게 보내주면 컴퓨터는 순서대로 그 명령들을 실행하고, 최종적인 결과만을 알려줍니다. 그렇기 때문에 우리는 우리는 그 중간 과정을 지켜보고 있을 필요가 없습니다.
      바로 이것이 우리가 명령어를 통해서 컴퓨터를 제어했을 때의 굉장히 중요한 요소이고, 어떻게 보면 우리가 컴퓨터 프로그래밍이라고 하는 것을 배우고 쓰는 이유라고도 할 수 있습니다.

      프로그램이란 말은 "순서대로 명령이 실행된다"라는 말이거든요.

    • # 명령어 한줄씩 실행
      [root@cookie ~]# mkdir why
      [root@cookie ~]# cd why
      
      # 한번에 실행(WOW!!)
      [root@cookie ~]# mkdir why;cd why
      

파이프(|)

  • 파이프의 특성 : '무언가를 어느 한 곳에서 다른 곳으로 전송한다'
  • 이를 아래와 같이 표현할 수 있다.
    • 하나의 명령의 실행 결과를 다른 명령의 입력으로 준다
    • (= 하나의 프로그램의 결과를 다른 프로그램의 입력으로 준다)
    • (= 하나의 프로세스의 출력의 결과를 다른 프로세스의 입력으로 준다)
  • 이런 기능을 통해서 굉장히 강력한 효과를 만들어 낼 수 있다

예제

[root@cookie ~]# ls --help | grep sort
  1. ls --help가 실행되면서 ls의 사용설명서가 화면에 출력된다
  2. 그렇게 출력된 결과를 파이프로 연결해서
  3. grep sort라고 하는 명령에 입력으로 준다
  4. grep은 그 입력에서 sort라는 텍스트가 포함되어 있는 텍스트만 검색해서 화면에 표시해준다
[root@cookie ~]# ls --help | grep sort | grep file
  • 이런 방법으로 계속 파이프로 연결 가능
[root@cookie ~]# ps aux | grep apache

results matching ""

    No results matching ""