사용자 도구

사이트 도구


wiki:os:알아두면_유용한_리눅스_명령어

알아두면 유용한 리눅스 명령어 모음

  • description : 알아두면 유용한 리눅스 명령어 모음
  • author : 치킨5분컷
  • email : hgkim@repia.com
  • firstupdate : 2022-12-12 Mon
  • lastupdate : 2022-12-12 Mon

리눅스 명령어

리눅스의 기본 명령어 구조

  • [명령어][옵션][인자]가 기본 구조
  • 옵션이 (-옵션, –옵션, 옵션) 3가지로 나누어짐

확인해본 결과 (약어 사용 vs 풀네임 사용)

"-" : short option style
"--" : long option style

find 사용방법(find [옵션] [경로] [표현식])

find . -name “*log*” - 현재 위치에서 log가 들어가는 파일 모두 찾기)

 (Log뒤 한칸 뛰고 2> /dev/null 입력시 에러 로그는 터미널에 출력되지 않도록 만들 수 있음 ex.권한획득 불가로인한 오류 표시 삭제)\\

1.경로

  • 상대경로, 절대경로 모두가능. 경로 인자값을 생략한다면 현재 위치(.)를 입력받은것으로 간주

2.표현식

  • name : 해당 이름의 파일을 찾음. 해당 이름에는 정규 표현식을 활용할 수 있음(가장 많이 쓰는 표현식)
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로 끝나는 파일 찾기
  • type:지정된 파일 타입에 해당하는 파일 검색(d : 디렉토리, f : 일반적인 파일, l : 심볼릭 링크)
find - type 사용 예 명령어 명령어 역할
디렉토리만 찾기 find . -type d 현재 디렉토리에서 모든 디렉토리 찾기
[NAME]으로 시작하는 디렉토리 모두 찾기 find . -name “ test*” -type d 현재 디렉토리에서 test가 들어가는 디렉토리 찾기
파일 검색 후 모두 삭제 find . -type f 현재 디렉토리에서 모든 파일 찾기
  • user : 해당 유저에게 속한 파일 검색
find - user사용 예 명령어 명령어 역할
[USERNAME]에 속한 파일 검색 find . -user hgkim hgkim이라는 유저에게 속한 모든 파일 찾기
  • empty : 빈 디렉토리 혹은 크기가 0인 파일 검색(b : 블록단위, c : byte, k : kbyte)
find - empty 사용 예 명령어 명령어 역할
디렉토리만 찾기 find . -type d 현재 디렉토리에서 모든 디렉토리 찾기
[NAME]으로 시작하는 디렉토리 모두 찾기 find . -name “ test*” -type d 현재 디렉토리에서 test가 들어가는 디렉토리 찾기
파일 검색 후 모두 삭제 find . -type f 현재 디렉토리에서 모든 파일 찾기
  • delete : 검색된 파일 혹은 디렉토리 삭제
find - delete 사용 예 명령어 명령어 역할
[FILENAME]에 해당하는 파일이나 크기가 0인 파일 삭제 find . -name “test*” -empty -delete 현재 디렉토리에서 test가 들어가는 빈 디렉토리이거나 크기가 0인 파일 검색하여 삭제
  • exec : 검색된 파일에 대해 지정된 명령 실행
find - exec 사용 예 명령어 명령어 역할
[FILE]중 [조건내용]이 들어가는 파일의 상세정보 출력 find . -name “test*” -exec ls -l {} \; 현재 디렉토리에 “test”가 들어가는 파일을 찾아서 상세정보 출력
[FILE]중 [조건내용]이 들어가는 디렉토리 모두 찾기 find . -type f -exec grep “test” {} \; 현재 디렉토리에 있는 파일중 “test”가 들어가는 내용 찾기
[파일확장자]에 해당하는 파일 모두 삭제 find . -name “.txt” -exec rm {} \; 현재 디렉토리에 “.txt” 확장자를 찾아서 모두 삭제
  • size : 파일 크기를 사용하여 파일 검색
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 [옵션] 파일명)

  • 입력파일의 마지막 10줄을 출력하는데 로그파일의 모니터링 용도로 사용 가능
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 이란 리눅스 편집기를 말함
vi/vim 사용예 사용법
라인 출력 :set nu
현재 커서에 있는 글자 바꾸기 r키
insert모드로 변경 i키
블록지정 v키+드래그
복사 y키
라인복사 yy
라인복사 후 붙여넣기(yy이용한것만 가능) p키
ctrl+z 대신 사용 u키
vim편집 사용중 :/{찾을 키워드} 찾을때 키워드 단위 이동 n키

alias 사용법(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로 묶기 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 사용예 명령어
전체목록 확인 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 [옵션] 패키지이름)

  • rpm 기반의 시스템을 위한 자동 업데이터 이자 패키지 설치/ 삭제 도구
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 [옵션] 디렉토리)

  • RHEL 7에 도입된 systemd를 관리하는 명령어 - systemctl 옵션 서비스명. service(.service는 생략 가능)
  • CentOS systemctl 과 service 명령어 차이점
    • 같은 동작을 수행하지만 CentOS6버전 이하에서 service구문으로 사용. 이상은 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])

  • 파일의 권한을 변경할 수 있게 만들어주는 명령어로 change와 mode의 앞 글자를 조합한 이름
옵션 옵션 역할
-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 [옵션] [파일명])

  • 리눅스 명령어 file은 파일의 종류 확인 및 파일 속성 값을 확인할때 사용하는 명령어
옵션 옵션 역할
-C 매직파일의 포맷을 검사하는 옵션
-f 많은 파일을 한번에 확인하기 위한 파일리스트를 만들어서 여러개의 파일을 한번에 할때 사용되는 옵션
-m 매직파일을 지정하는 옵션
-z 압축된 파일에 사용되는 옵션
-L 심볼릭 링크의 사용되는 옵션

wc 사용법(wc [옵션] [파일이름])

  • wc 명령어는 특정 파일내에서 존재하는 바이트(Bytes)수, 단어(Words)수, 행(Lines)수를 카운트하여 화면에 출력해 주는 명령어. 옵션을 사용하지 않고 사용할 경우 [행(Lines)수] [단어(Words)] [문자] [파일명] 순으로 출력
옵션 옵션 역할
-c 바이트의 수(파일크기)를 출력하는 옵션
-l 행의 개수를 출력하는 옵션
-w 단어의 개수를 출력하는 옵션

split 사용법(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) 사용법

  • 리눅스 시스템의 운용상황을 실시간으로 전반적인 상황을 모니터링하거나 프로세스 관리를 할 수 있는 유틸리티
    • 시스템의 상태를 전반적으로 가장 빠르게 파악 가능(CPU, Memory, Process)
    • 옵션 없이 입력하면 interval 간격(기본 3초)으로 화면을 갱신하며 정보를 보여줌
  • ps와 top의 차이점
    • ps는 ps한 시점에 proc에서 검색한 cpu 사용량
    • top은 proc에서 일정 주기로 합산해 cpu 사용율 출력
  • - 세부 정보 필드별 항목
필드 역할 필드 역할
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 사용법

  • FTP의 형태를 가지고 있지만 그 안에 내용물은 SSH를 이용해서 연결을 하는 것이 바로 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
/var/services/web/dokuwiki/data/pages/wiki/os/알아두면_유용한_리눅스_명령어.txt · 마지막으로 수정됨: 2023/01/13 18:44 (바깥 편집)