오늘은 리눅스 기초에 대한 내용을 배웠다. 리눅스는 리누스 토르발스(Linus Benedict Torvalds)라는 사람이 개발하였다. 참고로 깃도 이사람이 만들었는데 미닉스라고 하는 유닉스 기반의 운영체제이며 운영 체제의 원리를 학습하고자 한 학생들과 다른 사용자들을 대상으로 만들어졌다. 그러나 이 미닉스의 라이선스에 대해 실망한 리누스 토르발스는 오픈소스로 리눅스를 만들었다. (사실 버전관리프로그램인 깃(git)도 무료였던 SCM이 유료로 변경되서 다른 걸 찾던 리누스 토르발스가 마땅한게 없어 스스로 만든 거다 대단..👍)
위키백과https://ko.wikipedia.org/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4
https://ko.wikipedia.org/wiki/%EA%B9%83_(%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4)
리눅스를 서버로 많이 사용하는 이유
요즘엔 클라우드 컴퓨팅 서비스를 많이 제공한다. AWS나 Google, 등등의 회사에서 대량의 서버컴퓨터를 설치하고 사용자들에게 비용을 받고 대여해준다. 수만대의 컴퓨터의 운영체제를 유료 운영체제로 쓰게 된다면 굉장히 많은 비용이 발생할 것이다. 그래서 오픈 소스인 리눅스를 많이 사용하고 또 여러모로 최적화가 잘되어있어 성능이 좋은 리눅스를 사용한다.
CLI ( Command-Line Interface )
리눅스의 터미널은 CLI 이다. 해커 영화 같은거나 드라마 보면 아래 같은 화면을 본적이 있을 거다.
명령어 한줄을 통해 파일을 삭제,이동,설치 등등의 많은 일들을 할 수 있다. 우리에게 익숙한 것은 GUI (Graphic User Interface) 환경이다. 마우스를 통해서 아이콘을 드래그 해서 이동하고 클릭해서 폴더를 여는 등등의 그래픽을 통해 사용자와 상호작용하는 것을 말한다.
리눅스 서버가 많고 거기에 파일을 업로드하고 환경을 세팅하기 위해서는 리눅스 터미널을 통해 여러가지를 조작할 줄 알아야한다. 리눅스가 UNIX 기반이기 때문에 같은 UNIX 기반인 Mac OS를 개발자들이 많이 쓰기도 한다. 상대적으로 훨씬 오류가 적고 환경설정이나 여러가지 오류에 대한 커뮤니티들이 Mac에 대한 내용이 많기 때문이다. 그러나 마이크로소프트에서도 이러한 것을 개선하기 위해 WSL (Windows Subsystem for Linux)를 만들어서 윈도우 환경에서도 가상으로 리눅스를 설치하고 사용할 수 있도록 한다. (물론 여러가지 설치 오류가 많은 것은 함정..) 그래도 한국에서는 회사마다 윈도우 혹은 맥환경 등등 다르다고 하니 일단은 개발 자체가 중요한 것 같다
알아둬야할 기본 리눅스 터미널 기본 명령어
- pwd: 현재 위치를 확인하는 명령어
- mkdir: 새로운 폴더를 생성하는 명령어
- ls: 폴더나 파일의 목록을 출력하는 명령어
ls -l ## 현재 디렉토리에 있는 파일의 상세 내역까지 출력 (권한, 작성자, 변경일자 등)
ls -a ## 숨김파일까지 리스트에 출력
ls -al ## 옵션 a와 l을 합침 , 디렉토리 내에 있는 모든 파일의 상세 내역 출력
- open (macOS): 현재 폴더를 파일 탐색기로 여는 명령어
- explorer.exe . : 현재 폴더를 윈도우 탐색기로 여는 명령어
- cd <폴더명> : 폴더에 진입하는 명령어
- touch <파일명.확장자>: 새로운 파일을 생성
- cat <파일명> : 파일의 내용을 터미널에 출력
- rm <파일명> : 파일 삭제
- rmkdir: 빈 폴더 삭제
- rm -rf: 폴더의 숨겨진 폴더, 파일 모두 다 삭제 (신중히 사용해야함)
- mv: 폴더나 파일의 위치를 이동하거나, 이름을 변경하는 명령어
mv <파일명> <디렉토리> ## 해당 디렉토리로 파일 이동
mv <파일명> <변경하고 싶은 파일명> ## 파일명 변경
- cp: 폴더나 파일을 복사하는 명령어
- sudo: 최고 관리자 권한으로 실행하는 명령어 (비밀번호를 입력해야 한다)
오늘의 한줄평
처음에는 낯설고 어렵게 느껴지지만 익숙해지면 편할 것 같다 물론 직관적이지는 않지만 명령어 한줄로 할 수 있는 것이 많기 때문에 유데미 강의도 사놨으니 추가적으로 배워야겠다.
동기가 추천해준 무료 리눅스 강의
'개발일지' 카테고리의 다른 글
[TIL] Java 기초 - If 조건문, 에러 해결 (0) | 2023.02.21 |
---|---|
[TIL] Java 변수, 데이터 타입, 문자열 (0) | 2023.02.18 |
[TIL] Git, GitHub 기초 (1) | 2023.02.17 |
[TIL] 컴퓨터 및 프로그래밍의 기초 이해, 웹 (0) | 2023.02.15 |
국비지원 백엔드 44기 코드스테이츠 합격후기 및 OT 회고 (0) | 2023.02.14 |