일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- aws따라하기
- linux명령어
- 리눅스명령어
- opt/anaconda3/bin/jupyter_mac.command
- 직무분리
- terraform기초
- 주피터노트북 설치
- aws terraform
- AWS실습
- aws기초
- AWS CodeDeploy
- AWS 공격테스트
- terraform기본
- GDPR
- AWS구축
- cissp
- blue/green배포
- 리눅스기초
- 쉘스크립트
- 리눅스
- Cissp sdlc
- aws기본
- Linux
- aws
- AWS CI/CD
- 리눅스기초명령어
- terraform with aws
- 최소권한
- terraform따라하기
- AWS배포자동화
ysuekkom의 IT study note
[linux 기초] 명령어편 - 검색, 입출력 관련 본문
[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
'OS > linux' 카테고리의 다른 글
[linux 기초] 명령어 실습편 - 초간단 쉘 스크립트 작성IIII -대화식 쉘스크립트 구성 (1) | 2022.10.15 |
---|---|
[linux 기초] 명령어 실습편 - 초간단 쉘 스크립트 작성III -함수/배열 (0) | 2022.10.15 |
[linux 기초] 명령어 실습편 - 초간단 쉘 스크립트 작성II - 조건문/반복문 (0) | 2022.10.14 |
[linux 기초] 명령어 실습편 - 초 간단 쉘 스크립트 작성 (1) | 2022.10.13 |
[linux 기초] 명령어편 - 네트워크 관련 (1) | 2022.10.13 |