기본 터미널 명령어 요약

최정은·2022년 10월 25일
0

Backend Roadmap

목록 보기
14/23
post-thumbnail

man 명령어 로 자세한 사용법 및 옵션을 확인하자.

grep

Global Regular Expression Print의 약자로, 특정 파일에서 지정한 문자열이나 정규표현식을 포함한 행을 출력해주는 명령어다.

형식 및 옵션

grep [옵션] [패턴] <파일명>
옵션설명
-c일치하는 행의 수를 출력한다.
-i대소문자를 구별하지 않는다.
-v일치하지 않는 행만 출력한다.
-n포함된 행의 번호를 함께 출력한다.
-l패턴이 포함된 파일의 이름을 출력한다.
-w단어와 일치하는 행만 출력한다.
-x라인과 일치하는 행만 출력한다.
-r하위 디렉토리를 포함한 모든 파일에서 검색한다.
-m 숫자최대로 표시될 수 있는 결과를 제한한다.
-E찾을 패턴을 정규표현식으로 찾는다. egrep 과 같은 결과다.
-F찾을 패턴을 문자열로 찾는다. fgrep 과 같은 결과다.

awk

awk는 파일로부터 레코드(record)를 선택하고, 선택된 레코드에 포함된 값을 조작하거나 데이터화하는 것을 목적으로 사용하는 프로그램이다. awk는 "awk programming language" 라는 프로그래밍 언어로 작성된 프로그램을 실행한다.

입력 데이터의 각 라인은 레코드라고 하고, 각 레코드에 들어 있는 텍스트는 공백 문자로 구분된 필드로 분류된다. awk 프로그래밍 문법에서 $0 은 한 행을 의미하고, $1 ~ $N은 각 필드를 나타낸다.

형식 및 옵션

awk [옵션] 'pattern { action }' <파일명>
옵션설명
-F공백 문자를 필드 구분자로 사용
-F '[:\t]'':'와 tab을 필드 구분자로 사용
-f [awk_file]awk 명령 스크립트를 파일에서 읽음

동작 방식

1) 입력 데이터로부터 주어진 패턴을 포함하는 라인을 찾기 위해 파일의 내용을 탐색한다.
2) 패턴에 일치하는 라인이 발견되면 해당 라인에 대해 지정된 액션을 실행한다.
3) 입력 파일의 끝을 만날 때까지 수행한다.

예시

sed

  • stream editor의 약자로, 편집에 특화된 비대화형 모드의 줄 단위 편집기다.
  • 주로 문자열 수정, 치환, 삭제 등 편집기 기능을 수행한다.
  • 이외에도 특정 라인까지 출력, 특정 패턴에 맞는 행들만 출력하는 기능을 지원한다.
  • 원본 파일에 변형을 주지 않고, 편집 결과를 출력한다.
연산자설명
/p출력
/d삭제
s/pattern1/pattern2pattern1을 pattern2로 치환

sed 연산자 및 정규표현식

lsof

list open files의 약자로, 열려있는 파일에 대한 정보를 출력해주는 명령어다. 일반 유저의 접근을 허용하지 않도록 permission을 700이나 100으로 변경하는 것이 보안상으로 유리하다.

lsof 명령어를 설치하지 않았다면 CentOS의 경우 sudo yum install lsof, Ubuntu의 경우 sudo apt-get install lsof 로 설치해주어야 사용할 수 있다.

옵션

옵션설명
-a여러 옵션을 사용할 경우 AND 연산으로 정보를 출력
-t동작하고 있는 프로세스들의 PID만 출력
-i [프로토콜이름/포트번호]특정 포트를 사용하고 있는 프로세스 정보 출력
-u [UID]특정 사용자가 오픈한 파일 출력
-c [서비스]특정 서비스(ssh)에 연결되어 있는 프로세스 목록 출력
-p [PID]특정 프로세스가 오픈한 파일 출력
+D [디렉토리]해당 디렉토리 내의 열린 파일 출력

curl

curl(client url)은 여러 프로토콜들을 이용해 URL로 데이터를 전송하여, 서버에 데이터를 보내거나 가져올 때 사용하기 위한 명령줄 유틸리티다. 대부분의 Linux 환경에 curl 패키지가 미리 설치되어 있다.

형식 및 옵션

curl [옵션] <URL>

옵션

wget

wget은 Web Get의 약어로, 웹 상의 파일 다운로드를 도와주는 리눅스 커맨드라인 유틸리티다. HTTP, HTTPS, FTP 프로토콜을 지원하며 이를 이영해 웹 서버에서 파일을 다운로드 받는다. wget 역시 대부분의 Linux 환경에 설치되어 있다.

형식 및 예시

wget [옵션] <URL>
# 웹에서 파일 다운로드
$ wget http://example.org/file.tar.gz

# ftp 서버에서 파일 다운로드
$ wget ftp://example.org/file.tar.gz

# 신뢰할 수 없은 https URL에서 파일 다운로드
# -no-check-certificate 옵션을 사용하면 인증서 유효성 검사를 무시할 수 있다.
$ wget https://example.org/file.tar.gz -no-check-certificate

# 다운로드 파일을 다른 이름으로 저장
$ wget -O [다른이름] https://example.org/file.tar.gz

# 웹사이트 미러링
# 미러는 컴퓨팅에서 자료 모음의 복사본으로, 미러링은 파일 동기화의 일종이다.
$ wget -m https://example.org/

# 파일 안에 저장된 URL 다운로드
$ wget -i filename

# 백그라운드에서 파일 다운로드
$ wget -b https://example.org/file.tar.gz

# 중단된 다운로드 재개
$ wget -c https://example.org/file.tar.gz

# 다운로드 속도 제한
$ wget -limit-rate=128k https://example.org/file.tar.gz

# wget 버전 확인
$ wget -version

head, tail

파일의 일부분만 확인하고자 할 때 사용한다. 텍스트 형식으로 작성된 파일의 앞 10행 또는 마지막 10행만 화면에 출력한다.

형식 및 옵션

head [옵션] <파일명>
tail [옵션] <파일명>
옵션설명
-n lines지정한 라인(행) 수만큼의 내용을 출력한다.
-c bytes지정한 byte만큼의 내용을 출력한다.
-q파일의 이름을 header에 출력하지 않는다.
-v항상 파일의 이름을 header에 출력한다.
-ftail 명령어에만 있는 옵션.
실시간으로 변경 사항을 모니터링하여 파일에 추가되는 정보를 출력한다.

less

파일의 내용이 많은 경우 cat 명령어로 확인하기 어려운데, less 명령어를 이용해여 텍스트 형식으로 작성된 파일을 페이지 단위로 확인할 수 있다. more 명령어와 비슷하지만 고급 기능이 있어 파일을 앞뒤로 탐색할 수 있다.

형식 및 키보드 제어

less [옵션] <파일명>
key동작
위 방향키한 줄 위로 이동
아래 방향키한 줄 아래로 이동
PAGE_UP 또는 b한 페이지 위로 이동
PAGE DOWN 또는 Space Bar한 페이지 아래로 이동
g텍스트 파일의 처음 부분으로 이동
G텍스트 파일의 마지막 부분으로 이동
/문자열입력된 문자열 찾기
n이전 검색어의 다음 찾기
q프로그램 종료

find

리눅스 파일 시스템에서 파일을 검색하는 데 사용되는 명령어다. 다양한 표현식을 사용하여 원하는 파일 목록을 추출할 수 있다.

형식

# 경로는 상대 경로, 절대 경로 모두 가능하다.
find [옵션] <경로> [표현식]

옵션 및 표현식

ssh

  • Secure Shell Protocol 의 약자로, 원격 접속을 이용하여 터미널 환경을 사용할 수 있도록 고안된 프로토콜이다.
  • ftp, telnet 등 보안적으로 취약했던 프로토콜을 대체하기 위해 설계되었다.
  • 네트워크로 연결된 두 호스트간 rsa 암호화 기술을 사용하여 통신 중 데이터 노출의 위험이 없도록 한다.

형식 및 예시

# ssh 접속 (원격지 접속)
$ ssh [계정명]@[서버주소, 원격지 IP] -p [포트번호]
$ ssh root@192.168.0.1 -p 4242

형식 및 예시 더보기

kill

보통 프로세스를 종료시키고자 할 때 사용한다. 내부적으로는 프로세스에 시그널을 보내 원하는 작업을 하게 하는 명령어다. ps 명령어를 통해 종료하고자 하는 프로세스의 pid를 확인할 수 있다.

형식 및 옵션

kill [옵션] <pid>
옵션설명
-l시그널 종류를 출력한다.
-s [signal_num/text]원하는 시그널을 지정한다.

주요 시그널

  • 시그널은 특정 이벤트 발생했을 때, 프로세스에게 전달하는 신호(메시지)다.
  • 리눅스에서 프로세스끼리 통신할 때 사용한다.
  • ps 명령어로 실행중인 프로세스의 PID를 확인할 수 있다.
  • s 옵션으로 시그널을 지정하지 않으면 기본 시그널 값(15, SIGTERM)으로 정상종료된다.
번호시그널설명
1SIGHUP종료 (연결 끊기, 실행 종료)
2SIGINT종료 (ctrl + c, 인터럽트)
9SIGKILL종료 (강제종료, 프로그램에서 핸들러를 만들 수 없는 시그널)
15SIGTERM종료 (정상종료)
20SIGTSTP정지 (ctrl + z)
profile
https://dolmeng22.tistory.com 로 이전했습니다~

0개의 댓글