나는 이렇게 학습한다/Etc

리눅스 #wget, git, 왜 CLI인가?(순차적으로 실행, 파이프라인)

daco2020 2021. 9. 11. 22:05

 오늘 배운 것 

 

wget : 파일을 다운 받을 수 있는 명령어 

ex. wget -O [파일명.확장자] [다운로드주소]

wget -O favoriteActor.jpg  https://news.nateimg.co.kr/orgImg/es/2021/03/29/PS21032900034.jpg

파일명.확장자 입력시 띄어쓰기는 안되더라. 띄어쓰기 하면 그냥 첫번째 단어로 다운로드 됨

 

git : 버전 관리 프로그램 (git clone : 오픈소스 복사해서 가져오기)

ex. git clone https://github.com/facebook/react.git react_src 

git clone [오픈소스주소] [내컴퓨터디렉토리명]

>>> 오픈소스주소에 나와 있는 버전 일체를 내가 설정한 디렉토리명으로 다운로드 받는다


왜 CLI인가?

CLI는 일반 소비자가 아닌 컴퓨터로 데이터를 다루는 경우, 적은 용량과 가성비 때문에 커멘드 라인 인터페이스를 쓴다.

GUI는 많은 리소스와 딜레이를 발생시킨다. 하나씩 하나씩 동작하기 때문에 순차적으로 진행되는 일을 자동화하는 것이 쉽지 않다

CLI는 여러가지 일을 순차적으로 자동화할 수 있다.

 

강력한 효과1. 순차적으로 실행

순차적인 명령을 한 번에 처리 가능! 단, 명령어 사이에 세미콜론 ; 을 넣어주어야 한다. 

ex. mkdir why2;cd why2;cd .. ;rm -r why2

>>> why2 폴더를 생성하고 why2 폴더에 들어가고, 다시 상위 디렉토리로 나와서 why2 디렉토리를 삭제한다. > 이 것을 한 줄로 처리

 

강력한 효과1. 파이프라인

하나의 결과를 다른 입력으로 준다. ( ' | ' ) 

nano [파일명.txt]

>>> 파일을 생성하고 편집할 수 있음

cat [파일명]

>>> 파일에 있는 내용을 터미널에 출력해줌

grep [찾는단어] [파일명.확장자]

>>> 파일 내에 찾는 단어가 있는 행을 모두 터미널에 출력해줌

 

파이프 >>> ' | ' (시프트+\)

ex. ps aux | grep usr

>>>  현재 실행중인 프로그램 목록에서 usr 이 들어간 행을 출력한다.

 

 

 


 

 오늘 느낀 것 

드디어 CLI를 사용하는 이유가 나왔다. 크게 두 가지로 설명하는데 바로 명령을 하나하나 실행하는 것이 아닌, 한번에 다중 명령을 순차적으로 수행할 수 있다라는 점, 그리고 파이프 라인이라는 것을 통해 두개의 명령어를 혼합하여 사용할 수 있다라는 것.

 

하지만 역시나 실무에서 얼마나 유용하게 사용되는지는 모르겠다. git 같은 경우에는 gui방식을 이용해서 업데이트 할 수도 있는데, 어찌보면 단순이 단어 몇개를 써서 업데이트 하는게 더 유용해보이기도 한다. 다운로드 받는 것도 마찬가지고, 그런점에서는 확실히 gui 보다는 cli가 더 나은 방법 같기는 하다. 

 

뭐가 되었든 익숙해지면 괜찮지 않을까 싶다. 최근에 '소셜 네트워크' 라는 영화를 봤는데 주인공이 마크 저커버그 가 코딩하는 장면이 나온다. 손놀림이 굉장히 빠르더라. 이얘기를 왜 하냐면 마우스로 클릭클릭 하는 것보다 그렇게 명령어로 프로그램을 돌리는게 뭐랄까. 더 멋이 난달까? 왠지 그 모습이 멋있어서 나도 그정도 수준의 프로그래머가 되고 싶다는 생각이 든다.