[리눅스] 명령어

bunny.log·2023년 3월 16일
0

ps

현재 실행중인 프로세스의 목록을 보는 명령어(process status에서 따온 이름)

[option]
-e : 실행중인 모든 프로세스의 정보를 출력한다.
-f : 프로세스에 대한 자세한 정보를 출력한다.
-u [사용자이름] : 특정 사용자에 대한 모든 프로세스의 정보를 출력
-p pid : pid로 지정한 프로세스의 정보를 출력

u : 프로세스 소유자의 이름. CPU 사용량, 메모리 사용량 등 상세 정보를 출력
a : 터미널에서 실행한 프로세스의 정보를 출력
x : 실행중인 모든 프로세스의 정보를 출력

cat

새 파일을 작성하고 터미널에서 파일 내용을 보고 출력을 다른 명령행 도구나 파일로 리디렉션하는데 사용

grep

특정문자 검색하기

touch

유효한 빈 파일을 작성하기 위한 명령어

alias

명령어 간소화

chmod

파일 권한 변경하기

df

파일시스템의 사용량 확인하기

echo

표준 출력하기

env

환경 변수 출력하기

exec

셸 명령어 실행하기

exit

종료하기

mv

파일 옮기기

rm

파일, 디렉토리를 삭제할 수 있습니다.
리눅스에서는 파일 복구가 안되거나 매우 어렵기 때문에 rm 명령어를 사용할 때는 조심 또 조심하세요.

rm *.dat
'.dat'로 끝나는 파일을 모두 삭제한다.

rm *
모든 파일을 삭제한다.

rm -r dir1/

  • dir1 디렉토리를 삭제한다.
  • 디렉토리를 삭제하기 위해서는 -r 옵션을 사용해야 한다. (recursive)
  • (rmdir 명령과는 달리 파일이 들어있는 디렉토리도 삭제한다.)

rm -rf dir1/

  • r 옵션과 함께 f 옵션을 사용하게 되면 경고 없이 모두 강제(force)로 삭제한다.
  • (rm -rf 명령은 아주 위험한 명령이니 조심해서 사용하시길)

Curl (Client URL)

curl [options] [URL...]

  • 서버와 통신할 수 있는 커맨드 명령어 툴
  • url을 가지고 할 수 있는 것들은 다할 수 있다.

가장 간단한 형태로 옵션 없이 호출될 경우, Curl은 지정된 리소스를 표준 출력에 표시합니다.

-k --insecure

  • https 사이트를 SSL certificate 검증없이 연결한다.
  • wget 의 --no-check-certificate 과 비슷한 역할 수행

-l --head

  • HTTP header 만 보여주고 content 는 표시하지 않는다

-D --dump-header < file >

  • < file > 에 HTTP header 를 기록한다.

-L --location

  • 서버에서 HTTP 301 이나 HTTP 302 응답이 왔을 경우 redirection URL 로 따라간다.

  • --max-redirs 뒤에 숫자로 redirection 을 몇 번 따라갈지 지정할 수 있다.

  • 기본 값은 50이다

  • curl -v daum.net 을 실행하면 결과값으로 다음과 같이 HTTP 302 가 리턴된다.

  • < HTTP/1.1 302 Object Moved

  • < Location: http://www.daum.net/

  • -L 옵션을 추가하면 www.daum.net 으로 재접속하여 결과를 받아오게 된다.

-d --data

  • HTTP Post data
  • FORM 을 POST 하는 HTTP나 JSON 으로 데이타를 주고받는 REST 기반의 웹서비스 디버깅시 유용한 옵션이다

-v --verbose

  • 동작하면서 자세한 옵션을 출력한다.

-J --remote-header-name

  • 어떤 웹서비스는 파일 다운로드시 Content-Disposition Header 를 파싱해야 정확한 파일이름을 알 수 있을 경우가 있다.
  • -J 옵션을 주면 헤더에 있는 파일 이름으로 저장한다.
  • curl 7.20 이상부터 추가된 옵션

-o --output FILE

  • curl 은 remote 에서 받아온 데이타를 기본적으로는 콘솔에 출력한다.
  • -o 옵션 뒤에 FILE 을 적어주면 해당 FILE 로 저장한다. (download 시 유용)

-O --remote-name

  • file 저장시 remote 의 file 이름으로 저장한다. -o 옵션보다 편리하다.

-s --silent

  • 정숙 모드. 진행 내역이나 메시지등을 출력하지 않는다.
  • -o 옵션으로 remote data 도 /dev/null 로 보내면 결과물도 출력되지 않는다
  • HTTP response code 만 가져오거나 할 경우 유리

vi

편집기 명령어로 들어가기 전에 전체적인 구조 살펴보기

cp

파일, 디렉토리를 복사

netstat

  1. 네트워크 접속
  2. 라우팅 테이블
  3. 네트워크 인터페이스의 통계 정보를 보여주는 도구

netstat [옵션] [| grep 포트 번호 or 서비스 명]

[option]
-l (listen) : 연결 가능한 상태
-n (number port) : 포트 넘버
-t (tcp) : tcp
-u (udp) : udp
-p : 프로그램 이름 / PID
-a : 모두
-i : 이더넷 카드별 정상/에러/드랍 송수신 패킷 수 확인
-r : 라우팅 테이블
-s : 네트워크 통계

[자주 사용 하는 옵션]
netstat -nap 연결을 기다리는 목록과 프로그램을 보여준다
netstat -an | grep 포트번호 특정 포트가 사용 중에 있는지 확인
netstat -nlpt TCP listening 상태의 포트와 프로그램을 보여준다

stats

컨테이너들의 resource 사용 집계를 라이브 스트림으로 보여준다.
docker stats [OPTIONS] [CONTAINER...]

top

컨테이너에서 실행되고 있는 프로세스 목록을 출력한다.
docker top <컨테이너 이름, ID> <ps 옵션>

[option]
-a 모든 사용자의 프로세스를 출력합니다.
-u 각 프로세스의 사용자(UID)를 표시합니다.
-s 시그널을 표시합니다.
-v 가상 메모리를 표시합니다.
-x 자신을 실행시킨 셸이 없는 프로세스를 출력합니다.
-c 커널에서 사용되는 프로세스 이름으로 표시합니다.
-e 환경 변수를 표시합니다.
-f 내용을 완전한 형태로 표시합니다.
-l 자세한 형식으로 출력합니다.
-n WCHAN 값을 숫자료 출력합니다.

tar

  • tar는 여러 개의 파일을 하나의 파일로 묶거나 풀 때 사용하는 명령입니다.
  • "테이프 아카이버(Tape ARchiver)"의 앞 글자들을 조합하여 "tar"라는 이름으로 명명됩니다.

"테이프 아카이버(Tape ARchiver)"의 "아카이버(Archiver)"는 통상적으로 "여러 개의 파일을 하나의 파일로 합치는 프로그램"을 의미합니다. 저장 장치에 파일을 저장하거나 네트워크를 통해 파일을 전송할 때 파일이 여러 개 있으면 관리가 복잡해지기 때문에, 여러 파일을 하나로 합쳐서 처리하기 위한 목적으로 만들어진 프로그램이죠. 그리고 "테이프(Tape)"에서 알 수 있듯이, 과거에 저장 장치로 사용되었던 테이프(Tape)에 파일을 백업하기 위해 만들어진 프로그램이라는 것을 유추할 수 있습니다.

보통 리눅스에서 파일을 압축 파일을 다룰 때, "tar로 압축(compress)한다"는 표현을 쓰는 경우가 많은데, 정확히 말하자면 tar 자체는 "데이터의 크기를 줄이기 위한 파일 압축"을 수행하지 않습니다. 앞서 설명했듯이, 여러 파일을 하나의 파일로 묶는 용도로 사용될 뿐이죠. 대신, tar를 통해 하나로 합쳐진 파일을 gzip 또는 bzip2 방식을 사용하여 압축할 수 있는데, 이 때 gzip 또는 bzip2 명령을 따로 수행하지 않고 tar 명령의 옵션으로 처리할 수 있습니다. 이런 이유로, "tar로 압축한다"는 표현이 통용될 수 있는 것이고, "tar 압축"이라는 말이 사용자 입장에서는 아주 잘못된 표현은 아니라고 할 수 있죠.

tar 명령을 통해 만들어지는 파일은 보통 ".tar" 확장자를 사용합니다. 그리고 gzip 또는 bzip2으로 압축된 경우, 파일 뒤에 ".gz" 또는 ".bz2" 확장자를 추가하여 ".tar.gz" 또는 ".tar.bz2"로 파일 이름을 지정하거나, 드물지만 좀 더 간략하게, tar + gzip을 ".tgz"로, tar + bzip2를 ".tb2", ".tbz", "tbz2" 등으로 지정하기도 합니다.

tar가 널리 쓰이게 된 이유 중 한 가지는, 단순 아카이버 기능에 더해, tar로 묶여지기 전 파일들의 속성과 심볼릭 링크, 디렉토리 구조 등을 그대로 가져갈 수 있는 특징 때문입니다. 그래서 최근에는 리눅스 용 프로그램, 데이터, 소스 및 라이브러리 등을 배포하는 용도로 많이 사용됩니다.

tar [OPTION...][FILE]...
-f : 대상 tar 아카이브 지정. (기본 옵션)
-c : tar 아카이브 생성. 기존 아카이브 덮어 쓰기. (파일 묶을 때 사용)
-x : tar 아카이브에서 파일 추출. (파일 풀 때 사용)
-v : 처리되는 과정(파일 정보)을 자세하게 나열.
-z : gzip 압축 적용 옵션.
-j : bzip2 압축 적용 옵션.
-t : tar 아카이브에 포함된 내용 확인.
-C : 대상 디렉토리 경로 지정.
-A : 지정된 파일을 tar 아카이브에 추가.
-d : tar 아카이브와 파일 시스템 간 차이점 검색.
-r : tar 아카이브의 마지막에 파일들 추가.
-u : tar 아카이브의 마지막에 파일들 추가.
-k : tar 아카이브 추출 시, 기존 파일 유지.
-U : tar 아카이브 추출 전, 기존 파일 삭제.
-w : 모든 진행 과정에 대해 확인 요청. (interactive)
-e : 첫 번째 에러 발생 시 중지.

profile
나를 위한 경험기록

0개의 댓글