Essential Linux Commands

명령

용법

--help

* 함께 사용하는 모든 플래그 반환

ls

디렉토리의 내용을 나열합니다.

  • ls -l : 파일 상세 정보 표시

    • ls -l {경로} : 심볼릭 경로 → 링크된 대상의 경로

  • ls -a : 숨김 파일을 표시

  • ls -t : 파일 만든 시간순(최신순)으로 표시

  • ls -rt : 파일을 오래된 시간 순으로 표시

  • ls -s : 파일 사이즈 출력

  • ls -sh : 파일 사이즈 깔끔하게 출력(K, M, G)

  • ls [pattern] : pattern에 해당하는 파일 혹은 폴더들을 검색(한줄로 출력)

  • ls | grep [pattern] : pattern에 해당하는 파일 혹은 폴더들을 검색

alias

별칭 정의 또는 표시

unalias

이미 정의된 별칭에서 alias 제거 명령어

pwd

현재 디렉터리 절대 경로 출력

  • L : $PWD 값을 출력하며 pwd 명령어의 기본 설정은 L option

  • P : 물리적 디렉터리를 출력.

cd

‘change directory’ 액세스 하려는 디렉터리로 전환

  • 앞에 ‘/’의 유무에 따라 절대경로와 상대경로 지정 가능.

  • cd ~ : 기본 디렉터리로 이동

  • cd / : 최상위 디렉터리로 이동

  • cd : 홈 폴더로 이동(’cd /’ 도 마찬가지)

  • cd .. : 한레벨 위로 올림

  • cd - : 이전 디렉토리로 복귀

cp

파일과 폴더 복사 명령어.

  • cp [option] [카피할 대상 파일/폴더 이름] [새로운 파일/폴더 이름]

  • 디렉터리 전체 복사 : cp -r dir_to_copy/ new_copy_dir/ <Linux에서는 폴더가 슬래시(/)로 끝남>

  • i : 복사 될 파일 이름이 존재하면, 덮어쓰기 여부 물음

  • b : 복사 될 파일 이름이 이미 존재하면, 백업 파일을 생성

  • f : 복사 될 파일이 이름이 이미 존재 할 경우, 강제로 덮어쓰기 함

  • r : 하위 디렉터리까지 모두 복사합니다.

  • a : 원본 파일의 속성, 링크 정보까지 모두 복사함

  • p : 원본 파일의 소유자, 그룹, 권한 등의 정보까지 모두 복사함

  • v : 복사 진행 상태를 출력

rm

파일 및 디렉터리 제거(rm -r 디렉터리삭제시)

  • rm -f filename : filename 파일을 강제로 삭제

  • rm -r [디렉터리] : 디렉터리를 삭제함. 폴더 삭제시 -r 필수

mv

파일 및 디렉터리를 이동(이름 바꾸기)합니다. mv [source_file] [destination_folder]/

mkdir

디렉터리를 생성합니다. 하위 디렉터리 생성 : mkdir -p movies/2004/

rmdir

비어있는 디렉터리를 삭제합니다. 파일이 들어있다면 'rm -r'을 실행해야 합니다.

man

다른 명령의 매뉴얼 페이지를 표시합니다. ex) man mkdir

touch

파일 생성 및 파일이 존재한다면 최종 수정 시간을 업데이트

  • touch file1 : file1 파일을 생성

  • touch -c file1 : file1의 시간을 현재시간으로 바꿈

  • touch -t YYYYMMDDhhmm file1 : file1의 날짜 정보를 설정과 같이 변경

  • touch -r [기준파일][갱신할파일] : 날짜 정보를 왼쪽의 기준파일과 동일하게 바꿈

chmod

파일 권한 변경 r(읽기), w(쓰기), x(실행)

./

명령 자체는 아니지만 쉘 터미널에서 직접 시스템에 설치된 인터프리터를 사용해 실행 파일을 실행할 수 있음.

exit

셸 세션을 종료. 해당 세션을 자동으로 닫음

sudo

‘superuser do’ 루트 사용자 역할을 할 수 있게 함.

shutdown

컴퓨터 전원을 끔. 중지, 재부팅시 사용 가능

htop

시스템 리소스를 관리할 수 있는 대화형 프로세스 뷰어 - sudo yum install htop (aws linux htop down)

unzip

.zip 파일 추출

apt, yum, pacman

패키지 관리자에 액세스하고 Linux 배포판에 따라 하나 또는 다른 패키지 관리자를 사용 Debian 기반(Ubuntu, Linux Mint) : sudo apt install gimp Red Hat 기반(Fedora, CentOS) : sudo yum install gimp Arch 기반(Manjaro, Arco Linux) : sudo pacman -S gimp

echo

정의된 텍스트 표시(출력)

cat

터미널에서 직접 파일을 만들고, 보고, 연결 가능.

  • 파일 내용 화면에 출력

  • cat > file1 : file1 생성 및 내용 작성.

  • cat file1 file2 : file1, file2의 내용을 출력

  • cat file1 file2 | more : file1과 file2의 내용 페이지별로 출력

  • cat file1 file2 | head : file1과 file2의 내용 1~10줄까지 출력

  • cat file1 file2 | tail : file1과 file2의 내용 끝부터 10줄까지 출력

ps

현재 셸 세션이 실행 중인 프로세스 확인

kill

프로세스 종료 명령어(-9:강제종료, -15:정상종료)

ping

해당 컴퓨터가 네트워크에서 응답하는지 확인하는 명령어이다. 상대 컴퓨터가 아무런 이상없이 작동되는지를 네트워크상에서 체크할 때 주로 사용 됨.

vim

오픈 소스 터미널 텍스트 편집기.

history

이전에 사용한 명령어들이 포함된 목록 출력

  • history n : 최근 사용한 명령어 n개 뽑기

passwd

사용자 계정의 비밀번호 변경

which

셸 명령의 전체 경로를 출력 ex) which ls

shred

파일 내용 복구가 어렵게 만드는 명령어. -u 를 같이 사용하면 파일을 즉시 삭제함

tail

파일의 마지막 줄을 출력. -n 명령어를 사용해 줄 갯수 범위 설정.

  • tail -10 [filename] : 뒷순서부터 10줄의 파일 내용을 출력함

  • tail -n +1 [filename] : file의 전체 내용을 거꾸로 출력함

head

-n 플래그를 사용해 파일의 윗쪽 줄 부터 출력

grep

정규표현식과 일치하는 줄을 검색하여 인쇄함. ex) grep “linux” long.txt ------------------------------------------- [options] -i : 대소문자 구분 없이 -v : 일치하지 않는 줄을 검색(부정 검색) -r 또는 -R : 디렉터리와 그 하위 디렉터리까지 재귀적으로 검색 -l : 일치하는 줄이 있는 파일의 이름 출력 -n : 일치하는 줄과 함께 줄 번호도 출력 -e : 여러 패턴을 검색할 때 사용 → -w : 패턴이 전체 단어와 일치할 때만 결과를 출력 -o : 일치하는 패턴만 출력 -c : 일치하는 줄의 개수만 출력

whoami

현재 사용중인 사용자 이름 표시

whatis

다른 명령에 대한 한 줄 설명을 인쇄 ex) whatis python, whatis whatis

wc

텍스트 파일의 “단어 수”를 반환 함 wc long.txt # 37 207 1000 long.txt 라인, 단어, 1000바이트크기, 파일이름 반환. 단어 수만 필요하면 wc -w long.txt

uname

‘Unix name’ 약어.유용하게 사용할 수 있는 운영 체제 정보를 인쇄

  • -s 또는 --kernel-name: 커널 이름을 출력합니다.

  • -n 또는 --nodename: 노드 이름을 출력합니다.

  • -r 또는 --kernel-release: 커널 릴리스 번호를 출력합니다.

  • -v 또는 --kernel-version: 커널 버전을 출력합니다.

  • -m 또는 --machine: 하드웨어 아키텍처를 출력합니다.

  • -p 또는 --processor: 프로세서 유형을 출력합니다.

  • -i 또는 --hardware-platform: 하드웨어 플랫폼을 출력합니다.

  • -o 또는 --operating-system: 운영 체제를 출력합니다.

neofetch

Linux 배포판의 ASCII 로고 옆에 커널 버전, 셸, 하드웨어 등 시스템 정보를 표시하는 CLI(명령줄 인터페이스) 도구

find

정규 표현식을 기반으로 디렉토리 파일 계층 구조를 검색함

  • file [flags] [path] -name [expression]

  • find ./ -name “long.txt” # long.txt 파일 검색

wget

(World Wide Web get) 인터넷에서 파일을 다운로드하는 명령어

less

파일을 페이지 단위로 나타냄. more보다 더 많은 기능이 있고 스크롤이 가능함

  • spacebar : 다음페이지

  • b : 이전페이지

more

텍스트 형식으로 작성 파일을 페이지 단위로 화면에 출력한다.

  • space bar : 다음 페이지로 이동

  • B : 앞 페이지로 이동

  • Q : 종료

  • more error.log #error.log 텍스트 파일을 화면에 출력

  • more +10 error.log #error.log 텍스트 파일의 10번째 행부터 출력

file

해당 파일이 어떤 종류인지 표시

clear

현재 사용 중인 터미널 화면을 깨끗하게 지워준다.

redirection

  • ‘>’ : 기존 파일 내용을 지우고 저장

  • ‘>>’ : 기존 파일 내용 뒤에 이어서 저장

  • ‘<’ : 파일 데이터를 명령에 입력(cat과 비슷)

  • java -jar -Dspring.profiles.active=prod "$PROJECT_ROOT/jungsuri-0.0.1-SNAPSHOT.jar" > "$APP_LOG" 2 > "$ERROR_LOG" & 를 해석해보면 prod환경의 java jar파일을 실행시키고 APP_LOG와 ERROR_LOG쪽에는 파일을 새로 작성하는 형태임

cal

달력을 출력함

nslookup [도메인주소]

DNS 서버에 질의하여, 도메인의 정보를 조회하는 명령어입니다.

pstree

부모 프로세스와 자식 프로세스의 관계를 트리 형태로 보여줍니다.

systemctl

  • 서비스 시작/중지/재시작 : systemctl start/stop/restart 서비스이름

  • 서비스 상태 확인 : systemctl status 서비스이름

  • 서비스 사용/안함 설정 : systemctl enable/disable 서비스이름

mount

lsof (List Of Files)

  • default

    • lsof path/to/file : 파일을 열고 있는 프로세스 확인

  • -i options 프로토콜 이름과 포트 번호를 명시하면 특정 포트를 사용하는 프로세스 정보를 얻을 수 있음

    • lsof -i 4 : IPv4로 오픈한 소켓에 대한 정보들이 나온다

    • lsof -i 6 : IPv6에 대한 정보를 얻을 수 있음

    • lsof -i : 현재 열려있는 모든 네트워크 포트 정보를 확인할 수 있음

    • lsof -i tcp/udp : tcp혹은 udp 포트 정보를 확인할 수 있음

  • -p options

    • lsof -p [PID] : PID에 해당하는 프로세스의 열린 파일 목록 보기

  • -u options

    • lsof -u [username] : 특정 사용자가 열어둔 파일을 확인할 수 있습니다.

PID로 process name 얻기

  • cat /proc/[PID]/status | grep Name

process name 으로 process 정보 얻기

  • ps -ef | grep [process name]

cut

  • 라인에서 필드를 추출하는데에 사용됨.

  • -f{몇번째열} ex)-f1(첫번째 열)

  • -d{구분자} : 열을 구분하는 구분자를 작성 ex) cut -f1 -d: /etc/passwd : /etc 경로에 passwd파일의 ‘:’(d:) 를 구분자로한 첫번째 열(f1)의 값들을 출력.

nslookup

DNS 서버의 작동을 테스트하는 명령어

netstat

네트워크 연결 상태, 라우팅 테이블, 인터페이스 상태 등을 보여주는 명령어입니다.

(netstat /an과 netstat -na 는 같은 것.)

-n : 호스트명, 포트명을 lookup하지 않고 그대로 IP, Port번호로 보여준다. -a : 모든 네트워 상태를 보여준다. -l : LINTEN 상태인 서비스 포트를 보여준다. -t : TCP 프로토콜만 보여준다. -u : UDP 프로토콜만 보여준다. -p : 해당 포트를 사용하는 프로그램과 프로세스ID(PID)를 보여준다. -r : 라우팅 테이블 출력 -s : 프로토콜별(IP, ICMP, TCP, UDP 등)로 통계를 보여준다 -c : 1초 단위로 결과값을 연속적으로 보여준다.

telnet

네트워크를 통해 다른 시스템에 접속하는데 사용하는 명령어. telnet [호스트] [포트]

  • 보안상의 이유 권장되지 않음. 대신 ssh 로 데이터를 암호화하여 접속하는 것을 권장함

hostnamectl

현재 시스템 호스트 이름 및 운영 체제 정보를 표시함

ss

SocketStatistics : 네트워크 소켓 정보를 확인하는 명령어(netstat와 비슷)

reference https://kinsta.com/blog/linux-commands

Last updated