ysuekkom의 IT study note

[linux 기초] 명령어편 - 검색, 입출력 관련 본문

OS/linux

[linux 기초] 명령어편 - 검색, 입출력 관련

ysuekkom 2022. 10. 13. 22:11

[linux 기초] 명령어편 - 검색, 입출력 명령어 관련 //개인 공부를 위한 기록용으로 일부 과거 자료 이전

 

 

###검색/탐색 관련 명령어

find:  지정한 파일명이나 정규표현식을 이용하여 파일을 검색함

  정규표현식>>문자를 나열하는 규칙을 여러가지 특수문자로 표현함

  ex) ? : 하나의 문자를 대신 표현함, * : 0 이상의 문자에 대응 4등등 특수문자를 문자열 대신 사용하여 매칭

>find 옵션 찾기시작할path 익스프레션

어느 디렉터리부터 찾기 시작할건지 지정하는 , 파일을 이름으로 찾을건지, 날짜로 찾을건지 등에 대한 지정

 익스프레션: name, type(file = f, directory =d), perm(ission), empty( 파일)

 

which: 환경변수 PATH 등록된 디렉터리에 있는 명령어를 찾아주는 도구

스크립트를 작성할 명령어의 위치가 필요한 경우가 있음 그때사용

>which 명령어

위치를 알려줌

 

grep(Global / Regular Expression / Print) : 텍스트나 검색 기능을 가진 도구

 파일이나 표준 입력을 검색하여 지정한 정규 표현식과 맞는 줄을 출력

사용: grep 옵션 "찾을 문자열" 파일명, 파이프도 사용

 

시스템로그의 에러를 찾는 실습

>grep (노옵션) "error" /var/log/messages

참고: 리눅스는 대소문자를 구분하기때문에 Error != error

이때 사용하는 옵션이 -i : 대소문자 구분하지 않고 잡는 옵션

>gerp -i "error" /var/log/messages

 

디렉터리라서 찾지 못한다는 메시지 -> 하위 디렉터리까지 검색하는 옵션 -r

>grep -ir "error" /var/log/messages

 

 -i: 대소문자 구분없이 검색 옵션

 -r: 하위 디렉터리/파일까지 검색

 -c: 파일 안에 특정 문자열의 개수 카운트 옵션

 -v: 특정 문자를 제외하기 위한 옵션

 

history: 명령어를 수행한 목록을 출력/조작

/rood/.bash_history

>tail .bash_history

최근 수행한 명령어 히스토리 확인

 

참고: 히스토리 환경변수 설정 변경 날짜/시간 출력하도록

>>logout 재접속 설정 변경사항 반영됨

 


 

###입/출력 관련 명령어

redirection: 표준스트림(stdin, stdout, stderr) 부등호를 사용하여 지정한 위치로 보낼 있는 방향지정 옵션

>명령어  리다이렉션기호 파일명

지정한 파일명의 이름으로 저장됨

- ">" : 파일내용을 초기화하여 덮어쓰는

 

-">>" : 기존 파일 내용에 추가하는

 

-"| 파이프라인" : test라는 파일을 생성해줌, shell 스크립트 내부에서 생성할 , > 하나만 사용할 에러가 발생할 경우, 강제로 파일을 생성해주는 리다이렉션 기능

>echo kkk >| test

 

echo: 문자열을 출력하는 도구

>echo "문자열"

 


 

###USER관련 명령어

chmod(Change MODe): 파일이나 디렉터리의 모드(접근권한) 변경하는 도구

drwxr-xr-x. 2 root root 185 10 15 12:26 WORK

Directory/rwx/r-x/r-x

 >>디렉터리/파일의 소유자 권한/파일이 속한 그룹원의 권한/소유자, 그룹원 이외의 권한

 >>소유자: ls -al 봤을 user == root

 >>그룹원: user 그룹명 == root 보통은 유저명과 그룹명이 같으나 호스팅 회사의 경우 다르게 사용

 >>ls -al /home/ 확인하면 user 리스트와 그룹을 확인할 있음

 

사용

>chmod 권한정보 파일명

 >>권한 정보(2진수 자리숫자에 맞추어 입력) 해당 파일명에 부여한다.

 >> rwx rwx rwx  -> 421 421 421

 

소유자/그룹은 rw가능, 그외 r 가능 : rw-rw-r-- == 664

 

chown( change the owner of a file): 파일의 소유권을 바꾸기 위한 도구

소유자와 그룹을 변경하는 명령어

>chown 소유자명 :그룹명 파일/디렉터리 이름

 

sudo(Supersuser DO --> Substitude User DO): root 사용자의 보안 강화를 이용하여 명령 또는 프로그램을 실행하는 도구

Superuser == root 모든권한을 가진 유저

일반유저의 경우 명령어 실행 권한이 없는 경우가 많음, 일반유저에게 sudo권한을 주고 명령어를 실행할 있는 권한을 부여하기도

 

who: 현재 시스템에 로그인한 사용자의 목록을 출력

>who

>w : 상세한 정보를 담고 있음

 


 

###기타명령어

date: 현재의 날짜와 시간을 출력

  스크립트 내부에서 시간/날짜를 포함한 파일을 만들 경우,

 로그의 경우 날짜를 붙여서 저장하는 경우가 많음>날짜형식의 커스터마이징은 알아두는게 좋음

 

옵션

-d: 지금이 아닌 특정 날짜와 시간을 지정해서  보여줌

>date -d '-1 day' == date -d '1 day ago'

-//시간// 표현 가능: week/month/hour/minute/second

 

날짜 표현형식 변경

-- ::

>date '+%Y-%m-%d %H:%M:%S'

 

 

seq(SEQuence): 지정한 규칙으로 숫자열을 출력하는 도구

>seq 시작숫자 끝숫자

>seq 1 5

1

2

3

4

5

 실제 스크립트 작서 시 앞에 0 붙일때가 있음(01, 02, 03..)

-f, -w 옵션

 -w: 가장 숫자의 크기에 맞춰 작은자릿수 숫자 앞에 0 채워줌

 -f: 같은 자리수 배열 앞에 0 붙이고 싶을 사용

>seq - f %0자릿수g 시작숫자 끝숫자

 

 

>seq -f %10g 1 5

 -10칸을 공백으로 두고 출력함

 

more: 화면씩 지정한 파일의 내용을 출력하는 도구

 CLI 사용 유용함: 페이지가 넘어가는 출력이 있을 사용 , 현재 터미널 크기에 맞춰서 보여주고  key입력을 기다림

 

watch: 지정한 명령어를 지정한 시간()마다 재실행하여 화면에 출력하는 도구

 ctrl+c watch 프로세스를 종료할 때까지 실행함, 몇초마다 재실행할 지정

 일정시간마다 상태를 확인하거나, 명령을 반복적으로 실행할 사용하며 수동으로 확인하는 용도로 사용.

 

crontab: 리눅스의 스케줄러의 내용을 출력하거나 편집할 있는 도구

  스크립트에서 중요한 프로그램/명령어임

 지정한 시간에 지정한 프로그램을 실행하도록 해주는

 >모니터링 크론탭을 등록하여 실행하는 경우가 많음

 

옵션

 crontab -l :list, 등록한  cronjob 보여줌, 크론탭을 등록한 job

 crontab -e : edit, cronjab 등록할 있도록 편집할 있는 .

 -r: crontab 등록한 모든 job 지워버리는 옵션: 실수하지 않도록 주의

 


 

###실무 사용 옵션 팁

<ls활용법>

ls 옵션 활용

-al: 항상

-alh: 용량 보기 편하게

-alht: 시간별

-alhtr: 최근이 가장 아래로 오게

 

<watch 간단 모니터링>

 지정한 시간마다 지정한 명령어를 반복함, .시간 default: 2s

>watch -n 시간(초) "명령 옵션"

 모니터링의 가장 기본/기초: load average 모니터링에 유용함

 top load average(=서버 부하정도=서버에 걸리는 부하의 평균값) == uptime

 cpu 처리하지 못한 대기 프로스세의 평균 숫자가 높을 수록 cpu처리 속도보다 대기 큐에 쌓이는 프로세스가 많아진다는 == request 대한 response 늦어진다는

 load average 높아지면 서버가 느려진다고 생각할 있음(무조건적인 것은 아님)

 (I/O 바운드냐 cpu바운드냐에 따라 달라지기 때문)

>watch uptime