Linux🐧

리눅스 터미널 커맨드 간단히 둘러보기

생각 깎는 아이 2022. 11. 23. 00:24

출처 : https://www.freecodecamp.org/news/the-linux-commands-handbook/#the-linux-gzip-command

 

whoami

현재 터미널 세션에 로그인되어 있는 사용자의 이름을 출력

whoami

 

man

커멘드의 매뉴얼을 출력

man 커멘드

※ 메뉴얼에서 나올때는 'q'

 

clear

터미널에 떠있는 이전 컨멘드들을 모두 삭제

clear

 

pwd

현재 있는 폴더 경로 위치를 출력

pwd

 

ls

현재 위치한 경로상에 있는 모든 컨텐츠 목록을 출력

ls
  • 폴더에 있는 컨텐츠 목록 출력
ls foldername
  • ' / ' 뒤에 원하는 폴더 이름을 연달아 입력하면 해당 경로에 있는 컨텐츠 목록을 출력
ls foldername/folder1/folder2
  • -l 폴더에 존재하는 컨텐츠들의 상세 정보 출력
ls -l
  • -a : 숨겨진 컨텐츠도 표시
ls -a

 

cd

지정한 폴더로 이동 (전체 경로 입력시 해당 폴더로 이동)

cd foldername
  • 시작 지점으로 복귀
cd
  • 부모 폴더로 이동
cd ..

 

/

  • 루트 폴더로 이동
/

 ~

  • 사용자 폴더로 이동
~

 

mkdir

현재 경로상 새로운 폴더를 생성

mkdir 생성할폴더이름
  • 여러 폴더도 가능 
mkdir 만들폴더1 만들폴더2
  • 지정한 폴더안에 새로운 폴더를 생성
mkdir 지정폴더/만들폴더
  • 폴더를 만들 위치를 지정하는 경로중 필요한 폴더가 없을 경우 같이 만듬
mkdir -p 폴더1/폴더2/없는폴더/새로만들폴더

 

touch

파일의 접근,수정 시간을 현재 시간으로 변경

파일이 없을 시 현재 경로상에 새로운 파일을 생성 (확장자 지정 가능)

touch 파일이름

 

rmdir

지정한 폴더를 삭제 (삭제할 폴더는 비어있어야됨)

rmdir 지정폴더
  • 여러개의 폴더도 삭제 가능
rmdir 삭제할폴더1 삭제할폴더2

 

rm

지정한 파일을 삭제

rm 삭제할파일
  • 커멘드 -v : 커멘드에 대한 피드백 출력
rm -v 삭제파일 

removed '삭제파일'
  • rm -r 지정폴더 : 해당 폴더 하위에 있는 모든 컨텐츠를 삭제 (recursive)
rm -r 폴더이름
  • rm -ri 지정폴더 : 폴더의 컨텐츠를 재귀적으로 삭제할 때 각 컨텐츠마다 삭제 여부를 한번씩 물어봄 (recurisive + interactive)
rm -ri 지정폴더

 

open

지정한 폴더 또는 파일을 GUI에 연다.

open 열컨텐츠
  • 현재경로를 화면에 띄우기 
open .

 

mv

컨텐츠 이름이나 위치를 변경할수 있다.

  • 파일이름 변경
mv 원래이름 바꿀이름
  • 위치 변경
mv 옮길컨텐츠 옮길위치
  • 부모 폴더로 위치 변경 
mv 옮길컨텐츠 ..

 

cp

현재 경로에 지정한 파일을 복사한다.

cp 복사할파일 복사본이름
  • 지정한 폴더의 하위 컨텐츠까지 모두 복사한다. (recursive)
head 지정파일 -n 100
cp -r 복사할폴더 복사본이름

 

head

지정한 파일의 앞부분을 읽는다. 

head 지정파일
  • 지정한 숫자만큼 라인을 읽는다. 
head 지정파일 -n 100

 

tail 

지정한 파일의 뒷부분을 읽는다. 

tail 지정파일

 

date

현재 시간을 출력

date

 

터미널 커멘드 출력 결과를 파일에 덮어씀

ls -l > fileList.txt
date > Today.txt

>>

터미널 커멘드 출력 결과를 파일에 덧붙임

data >> Today.txt

 

cat

  • 파일의 전체 내용 출력
cat 파일이름
  • 여러 파일 내용 출력
cat 파일1 파일2
  • 여러 파일을 하나의 새로운 파일로 병합
cat 파일1 파일2 병합파일이름
  • 내용의 각 줄에 넘버링
cat -n 파일이름

 

less

터미널을 읽기 모드로 바꾸어 파일을 편하게 볼 수 있음

less 파일이름
  • less 모드에서 /찾을키워드 사용시 원하는 키워드를 찾을 수 있음
/찾을내용
  • g: 시작위치로 이동 /G: 마지막 위치로 이동 /스페이스바: 한장씩 내림

 

echo

입력한 내용을 출력

echo 출력할내용
  • 지정한 파일에 입력한 내용을 쓰기 (간단한 내용을 빠르게 쓸때 사용)
echo "입력할내용" > 파일
  • * : 특정확장자 파일만 출력하기 
echo *.확장자
  • P* : P 들어간 파일 모두 출력하기
echo P*
  • ? : ? 개수와 일치하는 파일명 출력 (확장자가 2글자인 파일만 출력)
echo *.??
  • { } : { }의 요소들과 나머지 부분의 결합을 출력
echo {a,b,c}.txt

a.txt b.txt c.txt
echo app.{txt,js,py}

app.txt app.js app.py
  • 1부터 99까지 출력
echo {1..99}
  • 1년치에 해당하는 텍스트 파일 만들기
touch {1..365}.txt

 

wc

파일의 라인수, 단어수, 바이트를 출력

wc 파일이름

라인수, 단어수, 바이트수 파일이름

 

 

Piping |

하나의 커맨드의 출력을 다른 커맨드의 입력으로 함

  • 파일의 리스트 세부내용 출력을 wc가 입력으로 받아 파일의 라인수, 단어수, 바이트수를 출력해준다. 
ls -l | wc
  • 두 파일의 연속된 출력을 wc가 입력으로 받아 파일들의 라인수, 단어수, 바이트수를 출력
cat 파일1 파일2 | wc
  • 두 파일의 출력을 wc가 입력으로 받아 각 개수를 세고 결과를 다른 파일에 쓰기
cat 파일1 파일2 | wc > 파일3

 

sort

파일의 내용을 정렬해서 출력해줌 (파일 내부적으로 정렬하지는 않음)

sort 파일이름
  • -r : 역정렬
sort -r 파일이름
  • -u : 파일내용중 중복되지 않는 내용들만 정렬(SET)
sort -u 파일이름
  • 정렬한 내용을 새로운 파일을 만들어 쓰기
sort 파일이름 > 파일이름
  • 여러파일 내용 정렬하기
cat 파일1 파일2 | sort

 

uniq

연속된 중복요소를 제거해서 출력해줌

uniq 파일이름
  • 보통 sort와 결합해서 사용 
sort 파일이름 | uniq
  • -d : 중복이 있는 요소만 출력
sort 파일이름 | uniq -d
  • -u : 중복이 없는 요소만 출력
sort 파일이름 | uniq -u
  • -c : 각 요소와 요소의 개수을 출력
sort 파일이름 | uniq -c
  • 파일을 중복되는 요소로 청킹 -> 요소 요소개수출력 -> 요소 개수를 기준으로 정렬
sort 파일이름 | uniq -c | sort -n

 

diff

두파일을 비교하여 다른 요소가 있을 시 출력

diff 파일1 파일2

 

find

  • 현재 폴더부터 모든 하위 컨텐츠를 찾는다. 
find .
  • 현재 폴더부터 이름에 '이글자'랑 매칭되는 컨텐츠를 찾는다.
find . -name '이글자'
  • 현재 폴더부터 이름에 '원하는글자'가 들어가는 컨텐츠를 찾는다.
find . -name '*원하는글자*'
  • 현재 폴더부터 지정한 컨텐츠 유형을 모두 찾는다.
    • 디렉토리 찾기
    • 파일 찾기
find . -type d
find . -type f
  • 지정한 타입과 이름으로 컨텐츠 찾기
find . -type d -name '*.py'
  • 특정 용량이상인 파일 찾기
find . -type f -size +100k
  • 1일 안에 수정된 파일 찾기
find . -type f -mtime -1

 

grep

  • 특정단어가 들어간 라인 찾기
grep 찾을단어 파일이름
  • 라인넘버까지 출력
grep -n 찾을단어 파일이름
  • 현재 경로부터 파일내용에 찾을단어가 있는 부분 모두 출력
grep -r "찾을단어" .

 

du

각 폴더 및 파일 용량 보기

du 컨텐츠이름
  • MegaBytes 단위로 보기
du -m 컨텐츠이름
  • GigaBytes 단위로 보기
du -g 컨텐츠이름
  • 단위 표시
du -h 컨텐츠이름
  • 파일목록을 용량 크기대로 나열한뒤 제일 큰 10개 컨텐츠 출력하기
du -h | sort -h | tail

 

df

파일시스템 확인하기 (배정된 용량, 사용량, 사용가능량 등)

df

 

history

커멘드 사용기록을 출력

history
  • 사용기록 라인을 찾아서 커맨드 사용하기
history | less
!사용할 커맨드 넘버
  • 사용기록에서 원하는 키워드가 들어간 커맨드 기록 찾기 
history | grep '키워드'

 

ps

현재 세션에서 작동중인 프로세스 목록을 출력

ps
  • 모든 프로세스 출력
ps ax
  • 모든 프로세스 출력(축약)
ps axww
  • 특정 프로세스 찾기
ps axww | grep "키워드"

 

top

현재 작동중인 프로세스 cpu 사용량 및 정보 보기

top
  • 메모리 사용량 순으로 보기
top -o mem

 

kill

프로세스에 여러 종류의 신호를 보냄

  • kill 신호종류 확인하기
kill -l
  • 프로세스 종료하기(기본 종료)
kill 프로세스id
  • 프로세스 강제종료하기 
kill -9 프로세스id

 

killall

파일명에 키워드가 있는 프로세스 모두 종료

killall 키워드

 

※ ctrl + c : 커맨드 종료, ctrl + z : 커맨드 중지

 

백그라운드에서 커맨드 실행

커맨드 &

 

jobs

현재 실행중인 커맨드 목록을 출력

jobs

fg

잡 목록 중 커맨드를 선택해서 Foreground에서 실행 

fg 커맨드

bg

잡 목록중 커맨드를 선택해서 Background에서 실행

bg 커맨드

 

gzip

파일 압축

gzip 파일이름
  • 원래파일은 유지하면서 압축본 만들기
gzip -c 파일이름 > 압축된파일이름.gz
  • 압축 풀기
gzip -xc 압축된파일이름.gz

 

tar

파일 묶기

tar -cf 묶음이름.tar 파일1 파일2
  • 현재 폴더에 묶음 풀기
tar -xf 묶음이름.tar

 

alias

커맨드 축약어보기

alias
  • 커맨드 축약어 등록하기 (현재 세션에만 유지)
alias 축약어 = '커맨드'
  • git 커맨드 축약어 등록하기
git config --global alias.st status

xargs

한 커맨드의 출력을 다른 커맨드의 인자로 넘기기

  • 파일내용에 들어있는 파일 목록 삭제하기
cat 파일이름 | xargs rm
  • 일정 크기이상 파일을 long formant으로 리스트하기
find . -size +1M | xargs ls -lh

 

ln 

파일이 다른 파일을 참조하도록 하기

  • 하드링크 (메모리 참조) : 참조하는 파일이 삭제되도(메모리 링크가 끓겨도) 메모리를 참조하여 새로운 파일은 내용이 유지
ln 참조할파일 새로운파일
  • 소프트링크(파일 참조) :  참조하는 파일이 삭제되면 새로운 파일 또한 참조가 끓김 
ln -s 참조할파일 새로운파일

★ 내용 출처 동영상