LINUX 23

[생활코딩 리눅스 강의 정리] 섹션 11.rsync ~ 섹션 12. ssh key

해당 글은 생활 코딩 이고잉님의 강의를 듣고 일부만을 정리한 글입니다. rsync rsync는 remote sync의 줄임말로 네트워크를 통해 파일을 동기화하기 위한 리눅스 유틸리티이다. rsync 라는 디렉토리에 source 디렉토리(src), destination 디렉토리(dest)가 있고 src 디렉토리를 dest 디렉토리에 동기화시키고 싶은 상황이라고 하자. 이때 rsync -a src dest와 rsync -a src/ dest의 차이점은 전자는 src 디렉토리를 dest 안에 동기화시키는 것이고 후자는 src 디렉토리 밑에 있는 모든 파일을 dest에 동기화시키는 것이다. rsync의 또다른 장점은 증분을 한다는 것으로, 동기화를 시킬때 모든 파일에 대해서 하지 않고 변경이 된 파일에 대해서만..

[생활코딩 리눅스 강의 정리] 섹션 10. 도메인

해당 글은 생활 코딩 이고잉님의 강의를 듣고 일부만을 정리한 글입니다. 도메인 기본 개념 우리는 구글, 네이버 등의 웹 사이트에 접속하기 위해서 ip 주소가 필요하지만 실제로는 도메인(google.com, naver.com)으로 웹 사이트에 접속할 수 있다. 이는 DNS 서버가 도메인에 상응하는 ip 주소를 보내주기 때문이다. Hosts 파일 DNS 서버가 등장하기 전에는 각 컴퓨터마다 hosts 파일이 존재했다. Hosts 파일은 도메인 이름과 그에 상응하는 ip 주소를 가지고 있는 파일이다. 리눅스에서는 /etc/hosts 파일이 존재하면 DNS 서버에 쿼리를 날리지 않고 그 파일을 보고 ip 주소를 가져온다. 위의 파일에서 127.0.0.1 google.com 행을 추가후 elinks google...

[생활코딩 리눅스 강의 정리] 섹션 9. 인터넷, 네트워크 그리고 서버

해당 글은 생활 코딩 이고잉님의 강의를 듣고 일부만을 정리한 글입니다. 인터넷 클라이언트(Client)는 서비스를 요구하는 주체, 서버(Server)는 서비스를 제공하는 주체이다. 클라이언트가 서버에 접속하기 위해서는 도메인 이름(Domain Name) IP 주소 두 가지 중 하나를 알아야 한다. 도메인 이름으로 ip 주소를 알기 위해서는 ping 명령어를 이용한다. 도메인 이름을 ip 주소로 바꿔주는 역할을 하는 것은 DNS(Domain Name System) 서버이다. 자세한 내용은 https://en.wikipedia.org/wiki/Domain_Name_System를 참조한다. 자신의 ip 주소를 아는 방법으로는 ip addr 명령을 이용하거나 curl로 웹에서 요청을 보내는 방법이 있다. (맥에..

[생활코딩 리눅스 강의 정리] 섹션 7. 권한 ~ 섹션 8. 그룹

해당 글은 생활 코딩 이고잉님의 강의를 듣고 일부만을 정리한 글입니다. 권한 기본 유닉스 계열 시스템에서 권한의 대상은 파일과 디렉토리이다. 권한의 종류는 읽기(Read), 쓰기(Write), 실행(Execute) 세 가지가 있다. 위의 예시에서는 hello.txt 파일의 소유자가 root 유저이기 때문에 jeni 유저는 해당 파일을 지울 수 없다. ls -al을 했을 때 나오는 정보를 나누면 위처럼 나눌 수 있다. 1번 구획(-)은 타입(type)을 뜻하고 -는 파일, d는 디렉토리를 의미한다. 2번 구획(rw-rw-r--)은 access mode를 뜻한다. Access mode는 오너의 권한(rw-), 그룹의 권한(rw-), 나머지 사용자의 권한(r--)으로 나누어진다. r은 read, w는 writ..

[생활코딩 리눅스 강의 정리] 섹션 6. 사용자

해당 글은 생활 코딩 이고잉님의 강의를 듣고 일부만을 정리한 글입니다. 다중 사용자 리눅스는 기본적으로 여러 명이 같은 시스템을 사용하는 다중 사용자 환경을 가지고 있다. id 명령어를 통해 유저, 그룹의 구성 현황을 알 수 있고 who 명령어를 통해 현재 시스템에 접속한 유저에 대해 알 수 있다. Root User 유닉스 계열에서는 크게 두 가지의 사용자가 있다. 슈퍼(root) 유저 일반 유저 슈퍼 유저 권한으로 명령어를 실행시키기 위해서는 명령어 앞에 sudo를 붙인다. sudo는 일시적으로 슈퍼 유저 권한을 부여해준다. 물론 모든 사용자가 sudo를 사용할 수 있는 것은 아니다. 일반적으로 슈퍼 유저는 root라는 이름을 갖고, 명령어 콘솔에서 $가 아닌 # 프롬프트가 표시된다. 슈퍼 유저가 되기..

[생활코딩 리눅스 강의 정리] 섹션 5. 프로세스와 실행

해당 글은 생활 코딩 이고잉님의 강의를 듣고 일부만을 정리한 글입니다. 컴퓨터의 구조 컴퓨터는 크게 프로세서(CPU, GPU) 메모리(RAM) 스토리지(SSD, HDD) 세 가지로 구성되어 있다. HDD, SSD 등의 스토리지와 메모리의 공통점은 데이터를 저장한다는 것이다. 다만 HDD, SSD는 속도가 느리고 저장공간이 크고 메모리는 속도가 빠르고 저장공간이 작다는 것이다. 프로그램은 사용되지 않을 때 스토리지에 저장되어 있다가 메모리에 저장이 되어 프로세서에 의해 실행된다. 즉, 프로그램은 하드웨어에 기록된 명령어이고 프로세스(Process)는 프로세서에 의해 실행되고 있는 프로그램을 의미한다. 프로세스 모니터링(ps, top, htop) ps 프로세스 리스트를 보여주는 명령이다. 백그라운드에서 실행..

[생활코딩 리눅스 강의 정리] 섹션 4. 디렉토리 구조와 파일 찾는 법

해당 글은 생활 코딩 이고잉님의 강의를 듣고 일부만을 정리한 글입니다. 디렉토리 구조 디렉토리는 데이터/실행할 프로그램을 정리정돈하는 수단으로 볼 수 있다. 자세한 내용은 https://www.thegeekstuff.com/2010/09/linux-file-system-structure/를 참고하면 된다. /usr 디렉토리 밑에는 bin, sbin, lib 디렉토리가 따로 존재한다. 기본적으로 운영체제 설치되어 번들 형식으로 사용자에게 제공되는 프로그램은 /bin, /sbin 디렉토리 밑에 존재하고 유저가 따로 설치하는 프로그램은 /usr/bin, /usr/sbin 디렉토리에 존재한다는 차이점이 있다. 또한 /home 디렉토리는 /usr 디렉토리에서 사용자의 파일을 저장하기 위해 분리된 디렉토리이다. 파..

[생활코딩 리눅스 강의 정리] 섹션 3. 쉘과 쉘 스크립트

해당 글은 생활 코딩 이고잉님의 강의를 듣고 일부만을 정리한 글입니다. Intro 커널은 하드웨어를 직접적으로 제어하는 인터페이스 역할을 하고, 쉘은 커널과 애플리케이션/사용자를 연결하는 인터페이스이다. 사용자가 직접 커널 코드(OS 코드)를 제어하는 것은 매우 어렵기 때문에, 쉘이 대신 그 역할을 해준다. 쉘은 사용자가 입력한 명령어를 해석해서 커널에 전달하는 프로그램이다. 쉘에는 여러 종류가 있는데, 그 중 가장 대표적으로 쓰이는 것이 bash 쉘과 zsh 쉘이다. echo $0 명령으로 현재 기본적으로 사용하고 있는 쉘을 확인할 수 있다. 일반적으로 zsh쉘이 더 편리하다고 알려져있다. echo $0 # zsh쉘 설치 sudo apt-get upgrade sudo apt-get install zsh..

[생활코딩 리눅스 강의 정리] 섹션 2. IO Redirection

해당 글은 생활 코딩 이고잉님의 강의를 듣고 일부만을 정리한 글입니다. Intro 유닉스 프로세스에는 1개의 standard input, 2개의 output(standard output, error)이 존재한다. Output 1> 기호를 사용해서 standard output, 2> 기호를 사용해서 standard err를 리다이렉션 할 수 있다. # result.txt는 비어있고 error.log에 오류 메시지 출력 rm nofile.txt 1> result.txt 2> error.log >> 기호는 redirection한 결과를 append 한다. standard output을 모니터에도, 파일에도 보내고 싶지 않다면 /dev/null로 리다이렉션하면 된다. Input cat은 기본적으로 키보드 입력을..

[생활코딩 리눅스 강의 정리] 섹션 1. 리눅스 기초

해당 글은 생활 코딩 이고잉님의 강의를 듣고 일부만을 정리한 글입니다. --help와 man man 명령어를 통해 명령어의 사용법을 알 수 있다. 어떤 단어를 검색하고 싶다면 /를 입력 후 검색어를 입력한다. n을 통해 next occurrence로 넘어갈 수 있다. man을 종료하고 싶다면 q를 입력한다. sudo(super user do) 유닉스 계열의 운영체제들은 multi-user system이라는 특징을 가지고 있다. rm -rf /와 같은 심각한 명령을 처리하기 위해서는 super user 또는 root user의 권한을 가지고 있어야 한다. sudo는 잠시 super user의 권한으로 명령을 처리할 수 있게 해주는 커맨드이다. Package manager 패키지라는 것은 프로그램 또는 애플..