1. 리눅스
높은 안정성과 강력한 보안 기능을 제공하여, 지속적인 서비스 운영과 데이터 보호가 중요한 웹서버 환경에 적합하다.
다양한 개발 도구와 소프트웨어를 지원하며, 가상화 및 컨테이너화(예: Docker)와 잘 통합되어 현대적인 애플리케이션 배포에 이상적이다.
2. 쉘
사용자와 하드웨어 또는 운영체제 간 인터페이스 (사용자의 명령을 해석에서 커널에 명령을 요청해주는 역할)
리눅스에서 쉘은 사용자가 시스템과 상호 작용하고, 스크립트를 통해 작업을 자동화하는 중요한 도구로 활용됩니다.
리눅스의 대표적인 쉘은 bash다.
3. 리눅스 명령어
✔️whoami
로그인한 사용자ID를 알려줌
✔️ root
슈퍼관리자 아이디
--> 슈퍼관리자로 로그인하여 사용하는건 권장하지 않는다.
어떤 명령을 하더라도 바로 실행되고 복구되지 않을 가능성이 높다.
✔️ sudo
root 계정으로 로그인 하지 않았어도 root 권한이 필요한 명령을 실행할 수 있도록 한다.
✔️ pwd
현재 접속되어있는 폴더가 어디인지 확인
✔️ cd..
상위 디렉토리로 이동
✔️ ls
파일 목록 출력
-al 을 붙이면 숨김 파일도 볼 수 있다.
숨김파일은 파일명앞에 .이 붙는다.
✔️ chmod
파일 권한 변경
ex1 ) chmod 755 파일명
-소유자에게 r,w,x 권한 / 그룹에게 r,x권한 / 기타 사용자에게 r,x권한으로 변경
ex2 ) chmod -R 777 doc
- docs라는 디렉터리와 docs 하위디렉토리에 대해 모든 권한을 허용하도록 한번에 바꾼다.
✔️ cat
파일 내용 출력
✔️ rm
파일 및 폴더 삭제
- r옵션: 하위 디렉토리 포함한 모든 파일 삭제
- f 옵션: 강제로 파일이나 디렉토리 삭제
※복구하기 까다로우니 신중하게 써야하는 명령어다.
4. 리다이렉션과 파이프
Standard Stream에는 세가지가 있다.
표준 입력 스트림 stdin
표준 출력 스트림 stdout
오류 출력 스트림 stderr
✔️리다이렉션
: Linux에서 입력 또는 출력을 파일이나 다른 프로그램으로 변경하는 방법.
(표준스트림의 흐름을 바꿔줄 수 있다.)
echo "Hello, World!" > hello.txt
#이 명령은 "Hello, World!" 문자열을 hello.txt 파일에 저장합니다.
#만약 파일이 이미 존재한다면, 내용을 덮어씁니다.
echo "Another line." >> hello.txt
# "Another line." 문자열을 hello.txt 파일의 끝에 추가합니다.
wc -l < hello.txt
#hello.txt 파일의 줄 수를 세어 출력합니다.
#여기서 wc -l 명령은 줄 수를 세는 명령입니다.
✔️ 파이프
: Linux에서 한 프로그램의 출력을 다른 프로그램의 입력으로 전달하는 데 사용.
cat file.txt | grep "search term"
#이 명령은 file.txt의 내용을 cat으로 출력하고,
#그 출력을 grep 명령에 파이프하여 "search term"이 포함된 줄만 필터링합니다.
ls | wc -l
#이 명령은 현재 디렉토리의 파일 리스트를 ls로 출력하고,
#그 출력을 wc -l 명령에 파이프하여 파일의 총 수를 세어 출력합니다.
cat access.log | cut -d ' ' -f 1 | sort | uniq
#이 명령은 access.log 파일의 내용을 출력하고,
#cut -d ' ' -f 1으로 각 줄의 첫 번째 필드(공백으로 구분)를 추출하여 IP 주소를 가져온 다음,
#sort로 정렬하고
#uniq로 중복을 제거하여 고유한 IP 주소 목록을 생성합니다.
5. 프로세스 관리
✔️foreground process
사용자가 터미널에서 명령을 실행할 때 기본적으로 시작되는 방식이다.
명령 수행이 완료될 때까지, 다른 명령을 입력하지 못한다.
✔️background process
사용자가 터미널에서 다른 작업을 계속할 수 있다.
백그라운드 프로세스를 실행하기 위해, 명령어 맨 뒤에 &를 붙여준다.
✔️프로세스 상태확인
ps
- e: 모든 프로세스를 보여줍니다.
- f: 풀 포맷으로 보여줍니다. 프로세스 간의 관계(부모 프로세스 등)를 포함한 상세한 정보를 표시합니다.
- a: 모든 사용자의 프로세스를 보여줍니다.
- u: 사용자별 프로세스 상세 정보를 함께 보여줍니다.
- x: 일반적으로 터미널에 연결되지 않은 모든 프로세스를 보여줍니다. 주로 데몬 프로세스까지 확인하기 위해 사용.
- j: 프로세스의 작업(job) 관리 정보를 보여줍니다.
✔️프로세스 중지시키기
kill [PID]
ps aux | greb 프로세스명
#이 명령어는 시스템에서 실행 중인 모든 '프로세스명'에 대한 정보를 출력한다.
✔️파일 복사
cp
cp -rf * 폴더명
#-r은 디렉토리와 그 안의 모든 내용(하위 디렉토리와 파일 포함)을 복사
#-f는 강제로 복사하는 옵션
6. 하드링크와 소프트링크
파일 시스템의 다른 위치에서 동일한 파일에 대한 참조를 제공하는 데 사용한다.
✔️하드링크
In A B
In a.txt b.txt
#a와 b 텍스트파일을 생성.
동일한 파일을 가진 이름을 하나 더 만든다.
A를 삭제해도 B는 남는다.
하지만, A를 수정하면 B도 수정된다.
💡활용
1) 여러 웹 애플리케이션이 공통의 설정 파일을 공유
2) 실제 데이터를 중복 저장하지 않고도 여러 경로를 통해 동일한 콘텐츠에 접근
✔️소프트링크
In -s A B
In -s b.txt c.txt
A를 삭제하면 B는 해당 파일 접근 불가하다.
A를 수정하면 B도 수정된다.
💡활용
1) 웹 애플리케이션의 다양한 버전을 관리
2) 웹서버 설정에서 특정 파일이나 디렉토리의 경로가 자주 변경되는 경우 유연하게 파일 경로를 관리할 수 있다.
(수동으로 변경하지 않고 소프트링크 대상만 변경함)
7. 우분투 패키지 관리
우분투(Ubuntu)는 데스크톱, 서버, 클라우드 환경에 널리 사용되는 리눅스 기반의 운영 체제.
#패키지 설치
sudo apt-get install 패키지명
#패키지 삭제
sudo apt-get remove 패키지명
8. VIM 에디터 사용법
설정파일을 수정해서 설정을 변경하기 위해 에디터 사용법을 알아야한다.
: - 명령모드
i - 입력모드
esc - 일반모드
x - 내용 삭제 (한 문자씩)
:q! - 강제 종료
:wq - 저장 후 종료
G - 가장 마지막 줄로 이동
gg - 첫번째 행으로 이동
111G - 111행으로 이동
$ - 행의 마지막으로 이동
^ - 행의 시작으로 이동
yy - 현재 위치한 행을 복사
p - 아래쪽에 붙여넣기
P - 윗줄에 붙여넣기
u - 직전 상황으로 돌아간다.
dd - 한줄 삭제
o - 한 줄 추가
/: 검색 ( n 다음 키워드로 이동 )
'Cloud' 카테고리의 다른 글
[도커 익숙해지기] Dockerfile (0) | 2024.10.28 |
---|---|
프리온보딩 백엔드 챌린지 1일차 복습 - Docker의 주요 구성 요소 (0) | 2024.05.16 |
프리온보딩 백엔드 챌린지 - 1일차 기록 (0) | 2024.05.09 |
AWS EC2 우분투 서버 구축하기 | windows (0) | 2024.03.18 |