Skip to content
cover-devops

자주 사용하는 리눅스 명령어 정리 (1) - 기본 명령어

  • DevOps

📅 February 15, 2017

⏱️3 min read

리눅스는 리누스 토발즈가 1991년 처음 개발을 시작한 오픈소스 소프트웨어이다. 보통 윈도우를 오래 사용하다보면 터미널보다 GUI에 익숙해지기 마련이다. 하지만 최근 맥북으로 갈아타면서 커멘드라인이 편하다는 걸 알게 되었고, 앞으로 좀 더 생산성을 높이기 위해 몇 가지 유용한 명령어들을 정리해보려 한다.

생활코딩에 리눅스에 대해 잘 정리한 강의가 있어 참고하면 좋다. https://opentutorials.org/course/2598


패키지 매니저

리눅스는 패키지 매니저를 통해 설치되어 있지 않은 프로그램을 설치한다. 맥에서 사용하는 Brew를 떠올리면 이해하기 쉽다.

  • Ubuntu : apt-get
  • CentOS : yum
  • OS X : brew

위와 같이 리눅스 배포판에 따라 패키지 매니저가 조금씩 다르지만, 사용법은 대체로 비슷한 편이다. 예를 들어 패키지를 설치할 때는 apt-get install "package name" 이런 식이다. 모든 패키지 매니저가 설치/업데이트/삭제 명령어를 가지고 있으며, 설치된 패키지를 관리하기 위한 명령어도 존재한다.


alias 명령어

한번 설정해놓으면 이것만큼 편한게 없다. 바로 예시를 드는게 더 이해하기 편할거 같다.

예를 들어, 서버의 원격주소로 매일 접속해야 하는 상황이라고 가정해보자. 보통은 매번 ssh username@address -p port 이런식으로 입력해야 할 것이다. 하지만, alias를 설정해놓으면 커스텀 명령어로 지정하여 간단히 접속할 수 있다.

  1. 먼저 ~/.bashrc로 들어간다. (zsh를 사용한다면, ~/.zshrc로 들어가자)
  2. alias login = 'ssh username@address -p port' 한 줄을 추가한다.
  3. source ~/.bashrc로 업데이트 해준다.

이후에는 접속할 때 login 이라는 명령어만 입력하면 된다.


명령어 순차실행과 파이프라인

사용하다보면 여러 명령어를 연속적으로 실행해야하는 경우가 많다.

이럴 때는 Sequence와 Pipeline 개념을 알아두면 편하다. 예를 들어, commit과 push 명령어를 연속적으로 실행하고 싶다고 가정해보자.

git add -A;git push

위와 같이 중간에 세미콜론만 추가하면 된다.

이번에는 실행중인 특정 프로세스 번호를 찾아야 한다고 가정해보자. 처음이라면 ps -ef 로 프로세스를 직접 확인할 것이다. 하지만 파이프라인과 grep 명령어를 사용한다면 다음과 같이 한줄로 끝난다.

ps -ef | grep process_name

백그라운드 실행 - nohup

어떤 작업을 백그라운드로 실행을 하면 별도의 창으로 켜놓지 않아도 하나의 프로세스로 계속 돌아가는 것을 확인할 수 있다.

nohup name &

리눅스에서는 nohup 이라는 명령어로 실행할 수 있다. 실행하고 나면 nohup.out 이라는 파일이 생기는데 cat 명령어로 확인해보면 로그가 찍혀있는 것을 볼 수 있다. 실행중지 시킬 때는 kill 명령어로 프로세스를 죽이면 된다.


스케줄링을 통한 주기적인 실행 - cron, crontab

crontab은 일종의 리눅스 작업 스케줄러이다. 이 명령어를 사용하면 특정 시간에 내가 원하는 특정 명령어나 스크립트를 실행시킬 수 있다. 보통 주기적인 크롤링에 사용하기도 한다.

* * * * * /root/script.sh

이렇게 설정하면 1분마다 script.sh를 실행한다. 앞의 별 다섯개는 순서대로 "분,시,일,월,요일"을 뜻한다. 내가 실행중인 스케줄러를 관리하기 위한 명령어는 다음과 같다.

  • crontab -l : 실행중인 cron 확인
  • crontab -r : 사용자의 예약작업을 모두 삭제
← PrevNext →
  • Powered by Contentful
  • COPYRIGHT © 2020 by @swalloow