알아두면 유용한 리눅스 명령어 모음
description : 알아두면 유용한 리눅스 명령어 모음
author : 치킨5분컷
email : hgkim@repia.com
firstupdate : 2022-12-12 Mon
lastupdate : 2022-12-12 Mon
리눅스 명령어
리눅스의 기본 명령어 구조
확인해본 결과 (약어 사용 vs 풀네임 사용)
"-" : short option style
"--" : long option style
find 사용방법(find [옵션] [경로] [표현식])
find . -name “*log*” - 현재 위치에서 log가 들어가는 파일 모두 찾기)
(Log뒤 한칸 뛰고 2> /dev/null 입력시 에러 로그는 터미널에 출력되지 않도록 만들 수 있음 ex.권한획득 불가로인한 오류 표시 삭제)\\
1.경로
2.표현식
find - name 사용 예 | 명령어 | 명령어 역할 |
[NAME]이 포함되는 파일 찾기 | find . -name “test” | 현재 디렉토리에서 test가 포함되는 파일 찾기 |
확장자가 .txt인 파일 모두 찾기 | find . -name “*.txt” | 현재 디렉토리에서 .txt 확장자 모두 찾기 |
확장자가 .txt인 파일 검색 후 모두 삭제 | find . -name “*.txt” -delete | 현재 디렉토리에서 .txt 확장자 파일 검색 후 모두 삭제 |
[NAME]으로 시작되는 파일 찾기 | find . -name “test*” | 현재 디렉토리에서 test로 시작되는 파일 찾기 |
[NAME]으로 끝나는 파일 찾기 | find . -name “*test” | 현재 디렉토리에서 test로 끝나는 파일 찾기 |
find - type 사용 예 | 명령어 | 명령어 역할 |
디렉토리만 찾기 | find . -type d | 현재 디렉토리에서 모든 디렉토리 찾기 |
[NAME]으로 시작하는 디렉토리 모두 찾기 | find . -name “ test*” -type d | 현재 디렉토리에서 test가 들어가는 디렉토리 찾기 |
파일 검색 후 모두 삭제 | find . -type f | 현재 디렉토리에서 모든 파일 찾기 |
find - user사용 예 | 명령어 | 명령어 역할 |
[USERNAME]에 속한 파일 검색 | find . -user hgkim | hgkim이라는 유저에게 속한 모든 파일 찾기 |
find - empty 사용 예 | 명령어 | 명령어 역할 |
디렉토리만 찾기 | find . -type d | 현재 디렉토리에서 모든 디렉토리 찾기 |
[NAME]으로 시작하는 디렉토리 모두 찾기 | find . -name “ test*” -type d | 현재 디렉토리에서 test가 들어가는 디렉토리 찾기 |
파일 검색 후 모두 삭제 | find . -type f | 현재 디렉토리에서 모든 파일 찾기 |
find - delete 사용 예 | 명령어 | 명령어 역할 |
[FILENAME]에 해당하는 파일이나 크기가 0인 파일 삭제 | find . -name “test*” -empty -delete | 현재 디렉토리에서 test가 들어가는 빈 디렉토리이거나 크기가 0인 파일 검색하여 삭제 |
find - exec 사용 예 | 명령어 | 명령어 역할 |
[FILE]중 [조건내용]이 들어가는 파일의 상세정보 출력 | find . -name “test*” -exec ls -l {} \; | 현재 디렉토리에 “test”가 들어가는 파일을 찾아서 상세정보 출력 |
[FILE]중 [조건내용]이 들어가는 디렉토리 모두 찾기 | find . -type f -exec grep “test” {} \; | 현재 디렉토리에 있는 파일중 “test”가 들어가는 내용 찾기 |
[파일확장자]에 해당하는 파일 모두 삭제 | find . -name “.txt” -exec rm {} \; | 현재 디렉토리에 “.txt” 확장자를 찾아서 모두 삭제 |
find - size 사용 예 | 명령어 | 명령어 역할 |
현재 디렉토리에서 특정크기인 파일 검색 | find . -size 1024c | 현재 디렉토리에서 1024byte인 파일 검색 |
현재 디렉토리에서 특정크기보다 큰 파일 검색 | find . -size +1024c | 현재 디렉토리에서 1024byte보다 큰 파일 검색 |
현재 디렉토리에서 특정크기보다 작은 파일 검색 | find . -size -1024c | 현재 디렉토리에서 1024byte보다 작은 파일 검색 |
현재 디렉토리에서 특정크기보다 크고 10kb보다 작은 파일 검색 | find . -size +1k -size -10k | 현재 디렉토리에서 1kb보다 크고 10kb보다 작은 파일 검색 |
(|파이프)를 이용한 find 응용 방법
| 파이프라인이란 명령어1 | 명령어2 형태로 명령어1의 처리결과를 명령어2로 전달하는것
find | 사용 예 | 명령어 | 명령어 역할 |
find를 이용하여 특정 확장자 지우기 | find . -name '*.mp3' | xargs rm | 확장자가 mp3인것을 찾아 지우기 |
find를 이용하여 숨겨진 파일을 찾기 | find . -name “.*” -print | more | 숨겨진 파일을 찾아 more상태로 목록 출력 |
find를 이용하여 특정크기 이상인 파일 정보출력 | find . -size +100k | xargs ls -l | size가 100k 이상인 파일 정보를 리스트로 출력 |
find를 이용하여 변경시간이 특정일 이상인 파일 삭제 | find . -type f -ctime +7 | xargs rm -f | ctime이 +7인 파일을 찾아 지우기 |
디렉토리 밑으로 파일을 찾고 그 파일 내용에 특정 단어가 있는지 검색 | find /home -name “*.php” | xargs egrep -s “ftp” | /home 밑으로 확장자가 php인 파일의 내용에 ftp가 있는 파일 찾기 |
grep 사용방법 ([옵션] [패턴(단어)] [파일명]
grep 사용 예 | 명령어 | 명령어 역할 |
대상 파일에서 문자열 검색 | grep “STR” [FILE] | [FILE]에서 “STR” 문자열 검색 |
현재 디렉토리 모든 파일에서 문자열 검색 | grep “STR” * | 현재 디렉토리 모든파일에서 “STR”검색 |
특정 확장자를 가진 모든 파일에서 문자열 검색 | grep “STR” *.ext | .ext 확장자를 가진 파일중 “STR” 검색 |
단어(Word) 단위로 문자열 검색 | grep -w “STR” [FILE] | [FILE]에서 “STR”이라는 문자열(단어 단위) 검색 |
검색된 문자열이 포함된 라인 번호 출력 | grep -n “STR” [FILE] | “STR”이 포함된 라인 번호 출력 |
0-9 사이 숫자만 변경되는 패턴 찾기 | grep “STR[0-9]” [FILE] | FILE에서 STR0~STR9에 해당하는 패턴 찾기 |
옵션 | 옵션 역할 |
-r | 하위 디렉토리까지 검색 |
-l | 패턴이 포함된 파일의 이름 출력 |
-w | 패턴이 전체 단어와 일치하는 행만 출력 |
cat 사용법(cat [옵션] 파일명
cat 사용 예 | 명령어 | 명령어 역할 |
파일열기 | cat test1.txt | test1.txt를 화면에 출력(vi편집기랑은 다름)
결과화면
test1
test2 |
특정 확장자를 가진 파일 내용 출력 | cat *.txt | |
각 행에 번호 붙여 출력 | cat -b test1.txt | 1행 test1
2행 test2 |
빈행에도 번호 붙여 출력 | cat -n test1.txt | 1 test1
2 test2
3 |
서로 다른 파일 내용 연속출력 | cat FILE1 FILE2 | |
tail 사용법(tail [옵션] 파일명)
tail 사용 예 | 명령어 | 명령어 역할 |
파일의 마지막 10 줄 출력 | tail [FILE].log | [FILE].log를 화면에 출력(vi편집기랑은 다름)
내용10
…
내용1(최신) |
파일의 마지막 10줄을 실시간으로 출력 | tail -f [FILE].log | 마지막 10줄을 실시간 출력 |
원하는 라인의 수 만큼 출력 | tail -n 20 [FILE].log | 내용20
….
내용 1 |
vi/vim 사용TIP
vi/vim 사용예 | 사용법 |
라인 출력 | :set nu |
현재 커서에 있는 글자 바꾸기 | r키 |
insert모드로 변경 | i키 |
블록지정 | v키+드래그 |
복사 | y키 |
라인복사 | yy |
라인복사 후 붙여넣기(yy이용한것만 가능) | p키 |
ctrl+z 대신 사용 | u키 |
vim편집 사용중 :/{찾을 키워드} 찾을때 키워드 단위 이동 | n키 |
alias 사용법(alias [명령어 별칭]=’[명령어]’)
alias 사용예 | 명령어 | 명령어 역할 |
현재 등록되어 있는 별칭 보기 | alias | 등록되어 있는 별칭 확인 |
해당 경로 바로가기 | alias rsa=’cd /opt/search/RSA/bin’ | rsa입력시 해당경로로 바로이동 |
매번 반복되는 데이터 백업(tar)을 쉽게 하기 | alias backup='tar czvf webS_backup.tar.gz /var/www/html’ | backup입력시 해당 경로에 있는 디렉토리를
webS_backup.tar.gz 로 백업 |
패키지 설치 간단하게 바꾸기 | alias yum=’yum -y install’ | yum [패키지명] 만으로 간단하게 설치 가능 |
alias 명령어 삭제 | unalias [alias명] | alias 삭제 |
sed 사용법(sed [옵션] 파일명)
sed 사용예 | 명령어 | 명령어 역할 |
문자열 치환 | sed 's/원본문자열/바꿀문자열/g' 파일명 | |
특정 파일의 문자열을 변경 | sed 's/lim/kim/g' text ← kim/g | text파일에 lim이라는 문자열을 kim으로 변경 |
특정 파일의 치환한 내용을 지정한 파일에 저장 | sed 's/lim/kim/g' text > new-text | text 파일의 치환한 내용을 new-text에 저장 |
d명령 : 삭제 | sed /man/d 파일명 | 지정 파일에 man이 포함된 줄 삭제 |
s명령 : 치환 | sed 's/man/girl/g' 파일명 | 지정 파일에 man을 girl로 치환 |
tar 사용법(tar [옵션] 파일명)
tar 사용예 | 명령어 | 명령어 역할 |
현재 디렉토리의 모든 파일과 디렉토리를 tar로 묶기 | tar cvf T.tar * | T.tar라는 이름으로 모든 파일과 디렉토리 묶기 |
파일을 지정하여 tar 아카이브로 묶기 | tar cvf T.tar FILE1 FILE2 | FILE1,2라는 파일을 지정하여 T.tar라는 이름으로 묶기 |
tar 아카이브를 현재 디렉토리에 풀기 | tar xvf T.tar | T.tar를 현재 디렉토리에 풀기 |
tar 아카이브를 지정된 디렉토리에 풀기 | tar xvf T.tar -C [PATH] | T.tar를 PATH에 해당하는곳에 풀기 |
tar 아카이브의 내용을 확인 | tar tvf T.tar | T.tar의 내용을 확인 |
gzip으로 압축된 tar 아카이브를 현재 디렉토리에 풀기 | tar zxvf T.tar.gz | T.tar.gz을 현재 디렉토리에 풀기 |
특정 디렉토리를 제외하고 압축하기 | tar cvfz T.tar.gz –exclude “제외할 디렉토리” “압축할 디렉토리” | 제외할 디렉토리를 빼고 압축할 디렉토리만 골라 T.tar.gz으로 압축하기 |
xargs 사용법(xargs [옵션] 디렉토리)
xargs 사용예 | 명령어 | 명령어 역할 |
특정 디렉토리 아래 특정 파일을 찾아 삭제 | find /opt -name search -type d -print | xargs rm -rf | search라는 이름의 폴더를 찾아 목록을 출력후 삭제 |
ls를 이용하여 특정 확장자를 모두 읽어와 하나의 파일로 병합 | ls *.txt | xargs cat » abc.txt | txt확장자를 모두 찾은후 abc.txt라는 파일을 화면에 출력 |
디렉토리에서 특정 확장자를 찾은 다음
특정 이름을 포함하는 파일을 찾기 | find ~/ -type f | grep -H “*.txt$” | xargs grep -H “abcd” | 타입이 파일인것중 확장자가 txt인것을 찾고
그중 abcd라는 내용을 포함하는 파일명 찾기 |
파일안에 url이 있을 경우 해당 인자들을 모두 wget으로 넘겨 다운 | cat url-list.txt | xargs wget -c | url-list.txt를 화면에 출력후 url이 있을경우 해당
인자를 모두 wget으로 넘겨받음 |
특정 확장자를 찾아 tar.gz로 압축 | find / -name “*.jpg” -type -f -print | xargs tar -cvzf images.tar.gz | 모든 jpg파일을 찾아 images.tar.gz로 압축 |
옵션 | 옵션 역할 |
- a | 표준 입력 대신 파일에서 항목을 읽음 |
- O | 공백이나 특수문자를 찾을때 사용 |
- d | 입력된 문자를 그대로 사용(따음표, 백슬래쉬 같은 특수문자) |
- n | 지정된 숫자만큼 행을 출력 |
- p | 사용자에게 각 명령 행을 실행할지 여부와 터미널에서 행을 읽는거에 대한 여부 확인 |
- s | 한 라인에 들어갈 수 있는 문자열 수를 지정 |
- x | -s 로 지정한 크기가 초과되면 종료 |
—show-limits | xargs의 버퍼 크기 선택 및 -s 옵션에 대한 길이 제한을 출력 |
crontab 사용법(crontab [옵션] 경로+파일명)
crontab 사용예 | 명령어 |
crontab 작업 리스트 보기 | crontab -l |
crontab 모든 작업 삭제 | crontab -r |
crontab 작성 | crontab -e |
매분 test.sh 을 수행 | * * * * * /home/user/test.sh |
매주 일요일 23시 55분에 수행 | $ 55 23 * * 0 /home/user/test.sh |
backup crontab | 50 23 * * * crontab -l > /home/bak/crontab_bak.txt |
5월 17일 오후 3시 23분에 해당 스크립트를 돌리라는 명령 | 23 15 17 5 * source /home/dlit/work/pred_batch.sh |
chkconfig 사용법(chkconfig 데몬 --[옵션])
chkconfig 사용예 | 명령어 |
부팅시 자동 실행되는 데몬들을 확인 | chkconfig –list |
del 옵션을 통해 sshd의 자동부팅 서비스 해제 | chkconfig sshd –del |
add 옵션을 통해 sshd의 자동부팅 서비스 등록 | chkconfig sshd –add |
level 옵션을 통해 데몬의 원하는 레벨을 다룰 수 있음 | chkconfig –level 3 sshd on |
rpm 사용법(rpm[옵션] 패키지이름)
rpm 사용예 | 명령어 |
전체목록 확인 | rpm –qa |
RPM 설치 | rpm -ivh 패키지명 |
패키지 설치 확인 | rpm -qa | grep 패키지명 |
패키지 제거 | rpm -ev 패키지이름 |
업그레이드 | rpm -Uvh 패키지명 |
파일이 속한 패키지 찾기 | rpm -qf 파일 |
내부 파일 목록 보기 | rpm -ql 설치된패키지명 |
내부 설정파일 확인 | rpm -qc 설치된패키지명 |
설치된 패키지 상세 정보 확인 | rpm -qi 패키지이름 |
옵션 | 옵션 역할 |
-U | 설치되어있는 패키지 업그레이드 하는 옵션 |
-v | 진행 과정 확인하는 옵션 |
-e | 패키지 삭제 옵션 |
-h | 진행과정을 '#' 기호로 화면에 출력하는 옵션 |
-q | 패키지 정보 확인 옵션 |
-a | 시스템에 설치 된 전체 패키지 정보 확인 |
-i | 설치 된 패키지의 정보 확인 |
yum사용법(yum [옵션] 패키지이름)
yum 사용예 | 명령어 | 명령어 역할 |
패키지를 최신 버전으로 업데이트 | yum update | yum 업데이트 |
모든 패키지 목록을 보기 | yum list | yum으로 설치 가능한 패키지 목록 확인 |
특정 패키지와 관련된 패키지를 검색 | yum search http | http과 관련된 패키지를 검색 |
패키지 이름에 특정 이름을 포함하고 있는 것을 검색 | yum list *http* | 설치 가능한 패키지 목록중
http 이름을 가진 패키지 목록 확인 |
특정 패키지의 정보 보기 | yum info httpd | httpd 패키지의 정보 보기 |
특정 패키지 업그레이드 | yum upgrade httpd | httpd 패키지 업그레이드 |
특정 패키지 여러개 설치하기 | yum install httpd php | httpd와 php 설치하기 |
특정 패키지 여러개 삭제하기 | yum erase httpd php | httpd와 php 삭제하기 |
옵션 | 옵션 역할 |
-i | 패키지 설치 |
-U | 업그레이드 |
–version | -버전확인 |
-h | 명령어의 도움말 보여줌 |
-y | 모든 물음에 예를 진행 |
-q | 모든 작업이 종료 |
-skip-broken | 문제 있는 패키지는 자동으로 스킵 |
-t | 에러를 자동으로 잡아서 설치 |
systemctl 사용법(systemctl [옵션] 디렉토리)
service 명령어 | systemctl 명령어 | 명령어 역할 |
service name start | systemctl start name.service | 서비스 시작 |
service name stop | systemctl stop name.service | 서비스 중지 |
service name restart | systemctl restart name.service | 서비스 재시작 |
service name condrestart | systemctl try-restart name.service | 서비스가 구동중이었을 경우에만 재시작 |
service name reload | systemctl reload name.service | 설정 재구동 |
service name status | systemctl status name.service | 서비스 구동 여부 확인 |
service name –status-all | systemctl list-units –type service -all | 모든 서비스의 상태 표시 |
chmod 사용법(chmod [OPTION] [MODE] [FILE])
옵션 | 옵션 역할 |
-v | 모든 파일에 대해 모드가 적용되는 진단(diagnostic) 메시지 출력 |
-f | 에러 메시지 출력하지 않음 |
-c | 기존 파일 모드가 변경되는 경우만 진단(diagnostic) 메시지 출력 |
-R | 지정한 모드를 파일과 디렉토리에 대해 재귀적으로(recursively) 적용 |
문자열 | 문자열 역할 |
u,g,o,a | 소유자(u), 그룹(g), 그 외 사용자(o), 모든 사용자(a) 지정 |
+,-,= | 현재 모드에 권한 추가(+), 현재 모드에서 권한 제거(-), 현재 모드로 권한 지정('=') |
r,w,x | 읽기 권한®, 쓰기 권한(w), 실행 권한(x) |
X | “디렉토리” 또는 “실행 권한(x)이 있는 파일”에 실행 권한(x) 적용 |
s | 실행 시 사용자 또는 그룹 ID 지정(s). “setuid”, “setgid” |
chmod 명령어 | 명령어 역할 |
chmod g+x FILE | 파일이 속한 그룹 이 실행 할 수 있는 권한 추가 |
chmod a=r FILE | 시스템의 모든 사용자가 읽을 수만 있는 권한 지정 |
chmod go-rwx FILE | 파일을 소유한 그룹과 그 외 사용자의 모든 권한 제거 |
ls -l | 파일의 현재 권한을 확인 가능 |
파일 또한 디렉토리 권한 확인(ls -l)
chmod 명령어 | 명령어 역할 | chmod 명령어 | 명령어 역할 |
chmod u+x FILE | 파일 소유 사용자에게 실행권한 추가 | chmod ug=rw FILE | 파일 소유 사용자와 그룹이 읽기, 쓰기 가능 |
chmod u+w FILE | 파일 소유 사용자에게 쓰기 권한 추가 | chmod g=rw,o=r FILE | 파일 소유 그룹은 읽기, 쓰기 가능, 그 외 사용자는 읽기만 가능 |
chmod u=rwx FILE | 파일 소유 사용자에게 읽기, 쓰기, 실행 권한 지정 | chmod ug=rw,o=r FILE | 파일 소유 사용자 및 그룹은 일기, 쓰기 가능, 그외 사용자는 읽기만 가능 |
chmod u-x FILE | 파일 소유 사용자의 실행 권한 제거 | chmod 664 FILE | 사용자(읽기+쓰기), 그룹(읽기+쓰기), 그외 사용자(읽기) |
chmod g+w FILE | 파일 소유 그룹에 쓰기 권한 추가 | chmod 755 FILE | 사용자(읽기+쓰기+실행), 그룹(읽기+실행), 그외 사용자(읽기+실행) |
chmod g-x FILE | 파일 소유 그룹의 실행 권한 제거 | chmod 777 FILE | 모든 사용자에 모든 권한 추가 |
chmod o=r FILE | 파일 소유 사용자 및 그룹을 제외한 사용자는 읽기만 가능 | chmod -R g+x DIR | DIR 디렉토리 하위 모든 파일 및 디렉토리에 그룹 실행(x) 권한 추가 |
chmod a-x * | 현재 디렉토리의 모든 파일에서 모든 사용자의 읽기 권한 제거 | chmod -R o-wx * | 현재 디렉토리의 모든 파일에서 그외 사용자의 쓰기, 실행 권한 제거 |
chmod a-w FILE | 모든 사용자에 대해 쓰기 권한 제거 | chmod -R a-x,a+X * | 현재 디렉토리 기준 모든 파일 읽기 권한 제거, 디렉토리 실행 권한 추가 |
chmod u=rwx,g=r FILE | 파일 소유 사용자는 모든 권한, 그룹은 읽기만 가능 | chmod -R a-x+X * | 위(chmod -R a-x,a+X *)와 동일 |
chown 사용법(chown [옵션] [소유자].[그룹] [파일 및 디렉토리])
옵 션 | 옵션 역할 |
-c | 수정된 파일들만 자세하게 표시해주는 옵션 |
-t | 간략히 표시해주는 옵션 |
-v | 작업 진행 상태를 자세하게 표시해주는 옵션 |
-R | 지정한 디렉토리 포함하여 하위파일까지 변경할 경우 사용되는 옵션 |
명령어 | 명령어 역할 |
chown [소유자].[소유그룹] [파일이름] 또는 chown [소유자]:[소유그룹] [파일이름] | 소유자와 소유 그룹을 동시에 변경 |
chown member1 test.cnf | test.cnf 파일에 대해 소유자를 member1로 바꿈 |
chown :member1 test.cnf | test.cnf 파일에 대해 그룹명을 members1로 바꿈 |
chown member1: test.cnf | test.cnf 파일에 대해 소유자 및 그룹명을 members1로 바꿈 |
chown member1:member2 test.cnf | test.cnf 파일에 대해 소유자는 member1, 그룹명은 member2로 바꿈 |
file 사용법(file [옵션] [파일명])
옵션 | 옵션 역할 |
-C | 매직파일의 포맷을 검사하는 옵션 |
-f | 많은 파일을 한번에 확인하기 위한 파일리스트를 만들어서 여러개의 파일을 한번에 할때 사용되는 옵션 |
-m | 매직파일을 지정하는 옵션 |
-z | 압축된 파일에 사용되는 옵션 |
-L | 심볼릭 링크의 사용되는 옵션 |
wc 사용법(wc [옵션] [파일이름])
옵션 | 옵션 역할 |
-c | 바이트의 수(파일크기)를 출력하는 옵션 |
-l | 행의 개수를 출력하는 옵션 |
-w | 단어의 개수를 출력하는 옵션 |
split 사용법(split [옵션] [파일이름] [분할된 분할 파일 이름_])
옵션 | 옵션 역할 | 명령어 | 명령어 결과 |
-a | 분할되는 파일뒤에 붙을 길이를 지정 | split -a 3 tree tree_ | tree(원본파일)4MB
tree_aab-2MB
tree_aac-2MB |
–additional-suffix | 분할파일 자릿수 뒤에 확장자 설정 | split –additional-
suffix=.txt tree tree_ | tree(원본)
tree_aa.txt
tree_ab.txt |
-b | 분할되는 기준을 바이트 크기로 분할 | split -b 1 tree tree_ | tree_aa
tree_ab
tree_ac
tree_ad |
-c | 라인을 기준으로 지정 바이트가 넘지 않도록 파일을 분할 | split -C 50000 tree tree_ | |
-d | 분할 파일이름뒤에 영문이 아닌 숫자로 지정 | split -d tree tree_ | tree_00
tree_01 |
-numeric-suffixes | d 옵션과 동일하지만 시작값을 지정 | split –numeric-
suffixes=90 tree tree_ | tree_90
tree_91 |
-l | 라인수 기준으로 파일을 분할 | split -l 1500 tree tree_ | tree_aa |
-n | 파일을 균등하게 1/N 나누어 분할 | split -n 4 tree tree_ | tree_aa~ad |
man 사용법(man [옵션] [섹션번호] command)
옵션 및 섹션 | 옵션 및 섹션 역할 |
-k | 키워드를 포함하는걸 찾기 |
-s, -S | 특정 section을 지정할 때 사용 |
man | man 명령어의 매뉴얼 페이지를 출력. |
man1 | 실행가능한 프로그램 혹은 쉘 명령어 |
man2 | 시스템 호출 |
man3 | 라이브러리 호출 |
man4 | 스페셜 파일(장치, 장치 드라이버, Socket, /dev 디렉토리에 있는 형식과 관련된 규약 등) |
man5 | 파일 포맷과 컨벤션 (예를 들어 /etc/passwd의 데이터 구성은 어떻게 되어 있다.. 등) |
man6 | Games |
man7 | Miscellanea (리눅스 시스템 파일 관련 표준, 규칙, 프로토콜, 시그널 목록 등) |
man8 | 시스템 관리자를 위한 명령어 |
man9 | 리눅스 커널 루틴 |
top(table of processes) 사용법
필드 | 역할 | 필드 | 역할 |
PID | 프로세스 ID (PID) | SHR | 분할된 페이지, 프로세스에 의해 사용된 메모리를 나눈 메모리의 총합 |
USER | 프로세스를 실행시킨 사용자 ID | S | 프로세스의 상태 [ S(sleeping), R(running), W(swapped out process), Z(zombies) ] |
PRI | 프로세스의 우선순위 (priority) | %CPU | 프로세스가 사용하는 CPU의 사용율 |
NI | NICE 값. 일의 nice value값. 마이너스를 가지는 nice value는 우선순위가 높음 | %MEM | 프로세스가 사용하는 메모리의 사용율 |
VIRT | 가상 메모리의 사용량(SWAP+RES) | TIME+ | 프로세스 시작된 이후 경과된 총 시간 |
RES | 현재 페이지가 상주하고 있는 크기 | COMMAND | 실행된 명령어 |
* top 실행 후 사용할 수 있는 옵션
옵션 | 역할 | 옵션 | 역할 |
shift + t | :실행된 시간이 큰 순서로 정렬 | -P | 지정된 프로세스 ID들만 보여줌 |
shift + m | 메모리 사용량이 큰 순서로 정렬 | -i | 좀비(zombie) 또는 Idle 상태의 것들은 무시됨 |
shift + p | cpu 사용량이 큰 순서로 정렬 | space bar | 새로고침 |
ssh 사용법
네트워크 프로토콜 중 하나로 컴퓨터와 컴퓨터가 인터넷과 같은 Public Network를 통해 서로 통신을 할 때 보안적으로 안전하게 통신을 하기 위해 사용하는 프로토콜
셸로 원격 접속을 하는 것이므로 기본적으로 CLI 상에서 작업을 하게 되고, 기본 포트는 22번
주요 기능과 특징
보안 접속을 통한 rsh, rcp, rlogin, rexec, telnet, ftp 등을 제공
IP spoofing (IP스푸핑, 아이피 위/변조 기법중 하나)을 방지하기 위한 기능을 제공
X11 패킷 포워딩 및 일반적인 TCP/IP 패킷 포워딩을 제공
서버와 클라이언트 사이에 로그인하지 않고도 scp(원격복사 기능)를 통해 파일을 복사 할 수 있음
주요 명령어와 사용예
명령어 | 명령어 역할 |
ssh [호스트명 or ip주소] | ssh를 사용할 때 현재 사용중인 계정으로 다른 시스템에 접속을 시도하게 됨 |
ssh [계정명]@[호스트이름] | 클라이언트와 서버의 계정이 다를 때 계정이름을 명기하는 방법임 |
ssh 호스트네임 명령 | 원격으로 서버의 프로그램만 사용할 때, 접속하진 않고 명령만 내릴때 사용 |
ssh user@192.168.1.10 | user라는 계정으로 192.168.1.10 서버에 접속을 시도 |
ssh -p 180 192.168.1.10 | 기본포트는 22번 이지만 180번 포트로 192.168.1.10 서버에 접속을 시도 |
| |
sftp 사용법
명령어 | 명령어 의미 |
sftp [계정명]@[ip주소][파일경로] | 서버에 해당 계정을 이용해 파일을 클라이언트 측으로 가져오기 가능 |
sftp -P [포트번호] [계정명]@[ip주소][파일경로] | 특정 포트로 접속하여 서버에 해당 계정을 이용해 파일을 클라인트 측으로 가져오기 가능 |
sftp> get [파일이름] | 특정 파일 다운로드 |
sftp> get [다운받을경로] ex)get /home/pi/picture/a.png | 특정 경로로 파일을 다운로드 |
sftp> put [파일이름] | 특정 파일 업로드 |
sftp> get -r file_name | 파일이 아닌 폴더를 업로드 및 다운로드 하고 싶은 경우 |
scp 사용법
명령어 | 명령어 의미 |
scp [복사될 파일명][원격지id]:[원격지_ip]:[받는위치] | 서버와 클라이언트 사이에 로그인하지 않고도 scp를 이용해 원격으로 파일을 복사할 수 있는 기능 |
scp [옵션] [디렉터리 이름] [원격지_id]@[원격지_ip]:[보낼 경로] | 여러 파일을 포함한 디렉터리를 원격지로 보낼 때 |
옵션 | 옵션 역할 | 옵션 명령어 예 |
r | 디렉토리 내 모든 파일/디렉토리 복사 | scp -r |
p (소문자) | 원본 권한 속성 유지 복사 | scp -p |
P (대문자) | 포트 번호 지정 복사 | scp -P [포트번호] |
c (소문자) | 압축 복사 | scp -c |
v | 과정 출력 복사 | scp -v |
a | 아카이브 모드 복사 | scp -a |
telnet 사용법 - telnet [옵션] [호스트IP] [포트]
telnet 전용모드 명령어 | 의미 |
close | 현재 telnet연결을 종료 |
logout | 원격 접속된 사용자를 강제 로그아웃하고 연결을 종료 |
open | 원격서버로 연결을 시도 |
send | 특수문자를 전송 |
display | 텔넷 환경인수들을 출력 |
set | 텔넷 환경인수들을 설정 |
unset | 텔넷 환경인수들의 설정을 해제 |
status | 현재 상황정보를 출력 |
! | 서브쉘을 불러들여 실행 |
environ | 환경변수를 변경 |
quit | 텔넷을 종료하고 쉘로 빠져나오기 |
curl(client url) 사용법 - curl [options...] <url>
URL 로 데이터를 전송하여 서버에 데이터를 보내거나 가져올때 사용하기 위한 명령줄 도구 및 라이브러리
- 주요 옵션과 사용예
short | long | 설명 |
-k | –insecure | https 프로토콜에서 SSL 인증서에 대한 검증없이 연결 |
-l | –head | HTTP 헤더만 보여주고 컨텐츠는 표시하지 않음 |
-L | –location | HTTP 301(영구적 주소변경), 302(일시적 주소변경) 응답을 받은 경우 리디렉션 URL로 따라감 –max-redirs 옵션 뒤에 숫자로 몇 번의 리디렉션까지 따라갈 것인지를 적을 수 있음 |
-d | –data | HTTP POST 요청 데이터 입력 |
-v | –verbose | 동작하면서 세세한 내용을 출력 |
-J | –remote-header-name | 헤더에 있는 파일 이름으로 다운로드 파일을 저장 |
-o | –output FILE | curl로 받아온 내용을 FILE 이라는 이름의 파일로 저장 |
-v | –verbose | 동작하면서 자세한 헤더 통신 옵션을 출력 |
-C | –continue-at | |