리눅스
리눅스는 진짜 리눅스가 만든것...연봉 7000...말도 안돼...
-시스템을 운영하는데 가장 널리 사용되는 운영체제.
-공개 소프트웨어로서 무료로 이용가능하다👉오픈소스 커뮤니티에 크게 기여
-일반인을 위한 운영체제가 아니기 때문에 익숙하지 않으면 사용하기 힘들다.
-커널: OS가 실행되기 위해 하드웨어와 밀접하게 붙어있는 공간
-원래는 CLI 기반 이었는데 사용자들을 위해 GUI기능을 추가했다 .
-서버에 설치된 리눅스 환경을 사용할 수 있다.
1.1리눅스의 구조
- 커널- 하드웨어를 제어한다.
리눅스의 핵심,프로레스 관리, 메모리 관리, 파일 및 장치 등 컴퓨터와 하드웨어를 모두 제어하는 능력
- 셀- 커널과 유저가 대화할 수 있도록 제공된다. 대표적인 셸은 BASH(Bourne-again Shell)이 있고 요즘은 zsh(Z shell)이 많이 쓰이고 있다.
- 응용 프로그램- 각종 프로그램 시스템을 위한 프로그램, 사용자의 문서편집 도구, 브라우저, 네트워크 도구 등 다양한 프로그램을 말한다.
1.2리눅스 파일 시스템 구조 (Filesystem Hierachy Standard)
거꾸로 된 나무형태로 트리구조로 되어있다.
루트 영역(최상위 경로)은 /로 경로를 표시하고 그 밑에 하위경로가 존재한다.
하위경로는 중첩되어 존재할 수 있다.
리눅스 시스템상 다양한 디렉토리가 존재하는데 중요한건 /홈디렉토리이다.
홈디렉토리는 사용자의 정보를 저장할 수 있는 공간을 제공하는 경로이다.
홈디렉토리로 이동하는 방법
- cd
- 루트 경로로 가서cd /
- cd ~
확인 방법: pwd을 치면 현재 자신이 위치한 경로를 반환
1.3Directory path
- /:root 디렉토리
- ~:home 디렉토리
- 절대경로- 말그대로 루트부터 시작해서 현재 위치(최하위)까지의 경로를 모두 적은 것.
- 상대경로-현재 위치를 기반으로 움직이는 경로
상대경로의 심볼인 .
과 ..
.
-현재경로로 이동
..
-상위경로로 이동
1.4 리눅스의 환경설정 파일(Config file)
Bash는 .bashrc
, zsh는 .zshrc
라는 설정 파일을 사용한다.
셸 설정 파일을 비롯한 많은 설정 파일들이 대부분 유저의 home 디렉토리에 있기 때문에 zsh도 마찬가지이다. 하지만 ls
명령어를 사용해도 .zshrc
파일을 찾을 수 없다. 이유는 .으로 시작하는 파일 및 디렉토리는 숨긴파일로 간주하기 때문이다.ls -a
를 입력하면 숨긴파일을 보여준다.
vim(리눅스 기본 편집 키) .파일 ->해당파일 보여줌.
1.5 PATH Enviroment Variable
:shell의 어떠한 설정 값을 가지고 있는 변수
환경 변수들은 shell이 돌아가는동안 계속 존재하며 사용된다. echo
를 사용하면 각각의 환경변수를 출력한다. echo $HOME
- HOME-유저의 home 디렉토리 경로를 저장한 환경 변수
- USER-유저의 아이디를 저장한 환경 변수
- PATH-PATH값을 저장한 환경 변수(아주 중요✏️)
ex)echo@PATH
whereis ls = ls가 어디있는지 알려준다.
하지만 ls명령어를 사용할때는 정확한 경로를 입력하지않고 ls만 입력한다. 그 이유는 PATH 환경 변수 때문이다.
echo $PATH
하나의 긴 경로처럼 보일 수도 있지만 실제로는 여러 경로를 담고 있고 각 경로를 : 을 사용하여 구분한다.
PATH 가 중요한 이유는, 새로운 package를 설치하거나 시스템을 설정하거나 할때 PATH가 설정이 제대로 안되면 실행이 제대로 안되는 경우가 많기 때문이다.
PATH는 shell 설정 파일에서 설정한다.
export PATH="/home/eun/bin/anaconda3/bin:$PATH"
<PATH에 추가하고자 하는 경로>:$PATH -> 기존의 PATH값의 맨 앞쪾에 새로운 경로가 추가된다.
1.6 Shell Commands
- cd-경로 이동
- ls- 현재경로에 위치하는 리스트들을 보여준다.
- mv- move의 약자, 데이터 이동, 이름을 바꿀 때도 사용
mv abc cba 는 abc 파일이름을 cba로 바꾼것.
- cp- copy의 약자, 파일과 디렉토리 복사 , 디렉토리 복사하려면 -r을 써야한다.
- cat- 터미널상에서 바로 프롬프트에 파일의 내용을 불러준다.
- rm - remove의 약자,파일이나 디렉토리를 지워줌. 디렉토리는 -r을 써야한다.
- rmdir -디렉토리 지우는 방법
- clear-현재 프롬프트상 화면을 정리하고 새화면을 보여준다.
이전 커맨드의 결과물을 이후 연결된 작업으로 추가 동장을 하고 싶을 때 사용
- mkdir =make directory =홈디렉토리에 특정 디렉토리 만들기
- | - pipe, 2개의 명령어를 이어주는 역할을 한다.
command1 | command2
command1의 결과값을 command2의 input으로 넘겨준다.
- man page = manual page
man ls
- 너무 길다.. 그래서
tldr ls
를 쓴다. 간략하다.