Engineering/Engineering
[Engineering Basic] 리눅스 Linux
iamzieun
2023. 4. 30. 17:53
1. Linux
1.1 Linux
- 운영 체제의 한 종류
- 1991년 9월 17일 리누스 토르발스가 처음 출시한 운영 체제 커널인 리눅스 커널에 기반을 둔 오픈 소스 유닉스 계열 운영 체제 계열 (wiki)
- 서버에서 자주 사용하는 OS
1.2 CLI, GUI
- CLI (Command Line Inteface)
- 터미널에서 텍스트를 통해 컴퓨터를 조작하는 명령어 기반의 인터페이스
- ex. window의 CMD window, Mac의 Terminal
- GUI (Graphical User Interface)
- 화면에서 마우스를 통해 컴퓨터를 조작하는 그래픽 기반의 유저 인터페이스
1.3 대표적인 Linux 배포판
- Debian: 온라인 커뮤니티에서 제작해 배포한 리눅스
- Ubuntu: 영국의 캐노니컬에서 만든 배포판으로 설치가 쉽고 편함
- Redhat: 레드햇에서 배포한 리눅스
- CentOS: Redhat에서 브랜드와 로고를 제거하고 배포한 리눅스
2. Shell Command
2.1 쉘의 종류
- 쉘 shell
- 운영체제 상에서 다양한 운영체제 기능과 서비스를 구현하는 인터페이스를 제공하는 프로그램
- 사용자와 운영 체제의 내부(커널) 사이의 인터페이스를 감싸는 층
- 쉘의 종류
- sh: 최초의 쉘
- bash: linux 표준 쉘
- zsh: mac 카탈리나 os 기본 쉘
- 터미널 terminal / 콘솔 console
- 쉘을 실행하기 위한 껍데기
- 쉘을 실행하기 위해 문자 입력을 받아 컴퓨터에 저장하고, 프로그램의 출력을 화면에 작성
⇒ 사용자는 터미널에 명령어를 입력 → 쉘은 사용자가 입력한 명령어를 해석하여 커널에 전달 → 커널은 전달받은 명령을 실행
2.2 기본 쉘 커맨드
https://iamzieun.tistory.com/19
2.3 Redirection & Pipe
- redirection
- stream
- unix에서 동작하는 프로그램(여기서는 리눅스)은 커맨드 실행 시 3개의 stream이 생성됨
- stdin: 0으로 표현. 입력(비밀번호, 커맨드 등)
- stdout: 1로 표현. 출력(터미널에 나오는 값)
- stderr: 2로 표현. 디버깅 정보나 에러 출력
- unix에서 동작하는 프로그램(여기서는 리눅스)은 커맨드 실행 시 3개의 stream이 생성됨
- redirection
- stream
- pipe: 프로그램의 출력(stdout)을 다른 프로그램의 입력으로 전달
- ex. ls | grep “vi”: ls를 통해 출력된 현재 폴더의 파일명 중 vi를 포함하는 파일들을 출력
2.4 서버에서 자주 사용하는 쉘 커맨드
- ps (process status): 현재 실행되고 있는 프로세스 출력하기
- -e: 모든 프로세스
- -f: full format으로 자세하게 보여줌
- curl (client url): 프로토콜들을 이용해 URL 로 데이터를 전송하여 서버에 데이터를 보내거나 가져올때 사용하기 위한 명령줄 도구 및 라이브러리
- df (disk free): 현재 사용 중인 디스크 용량 확인
- -h: 사람이 읽기 쉬운 형태로 출력
- scp (secure copy): SSH를 이용해 네트워크로 연결된 호스트 간 파일을 주고 받는 명령어
- nohup: 터미널 종료 후에도 백그라운드에서 계속 작업이 실행되도록 하는 명령어
- chmod: 파일의 권한을 변경
2.5 쉘 스크립트
- 쉘 스크립트: 쉘 커맨드의 조합
- 쉘 스크립트 사용법
- name.sh 파일을 생성하여 그 안에 쉘 커맨드를 추가
- → bash name.sh로 터미널에서 해당 파일의 쉘 커맨드 실행 가능