-
리눅스 터미널 커맨드 간단히 둘러보기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 참조할파일 새로운파일
★ 내용 출처 동영상