인터넷, 네트워크, 서버라는 것에 대해서 이야기해보자. 일단 이런 것들에 대한 기초적인 소양을 먼저 확인해보자. 2대의 컴퓨터가 있다고 생각해보자. 1대는 내가 사용하는 컴퓨터이고 1대는 google회사 서버 컴퓨터라고 하자. 이제 내가 사용하는 컴퓨터에서 웹브라우저에 접속하여 google.com에 접속하려고 한다. 우편을 보내면 편지가 친구한테 갔다가, 그대로 돌아오는 것이 아니라 친구가 글을 써서 다시 돌려보내는 느낌. 구글 회사에 request 회사는 응답해서 다시 보내준다. response 이러한 것들을 컴퓨터들의 대화, 통신이라고 한다. 클라이언트는 요청하고 서버는 요청한 것에 대해서 보내준다. 이전까지는 클라이언트의 입장에서 배워왔다. 하지만 이제는 서버의 입장, 정보를 제공하는 생산자의 입장..
리눅스는 다중 사용자 운영체제이다. 그 중에서 특정 사용자를 묶어서 그룹화를 어떻게하는지에 대해서 공부해보자. 현재 3명이 로그인되어 있다. 같은 그룹에 속한 사람들은 egoing - 개발자 k8805 - 개발자 leezche - 디자이너 개발자들은 같은 그룹에 묶고 디자이너는 개발자 그룹의 파일을 못건들이게 하려면 그룹화해서 권한을 부여해주면 된다. 그룹같은 기능은 자주 사용할 일이 없어서 기억할 필요는 없다. 그냥 검색을 통해서 해결하면 된다! useradd -G {group-name} username 위와 같은 명령어는 아직 존재하지 않는 사용자를 만들어서 그룹화시키고 싶을 때 위와 같은 명령어를 치면 된다. groupadd {group-name} 위와 같은 명령어는 일반 사용자는 사용할 수 없다...
이번시간에는 권한에 대해서 공부해보자! 앞서서 말했던 것처럼 리눅스 처럼 다중 사용자 시스템이라면 권한이라는 시스템이 매우 중요하다. Permission 어떠한 사용자가 파일, 디렉토리에 대해서 어떠한 일을 할 수 있게 하거나, 할 수 없게 하는 것을 권한을 지정한다고 한다. 읽기, 쓰기, 실행에 대해서 권한을 지정하는 것을 말한다. 파일과 디렉토리에 대해서 사용자가 읽고 쓰고 실행할 수 있도록, 혹은 없도록 하는 것에 대해서 알아보자! 위의 사진에서 1 뒤에 있는 이름이 해당 파일의 주인을 나타내는 것이다. 위의 사진을 밑에 처럼 구분해봤다. 1. - // 해당 파일의 타입을 알려주는 부분이다. 해당 파일이 디렉토리면 d라고 표시가 된다. 2. rw- // 해당 파일의 주인의 권한에 대한 부분이다. r..
리눅스는 하나의 운영체제를 여러명의 사용자가 사용하기도 한다. 그래서 리눅스만의 사회가 만들어지는데, 이 사회만에 규칙이 존재한다. 예를 들어서 다른 사용자가 나의 파일을 함부로 수정하거나 삭제하면 안되기 때문에 권한이라는 개념이 생겼다. 다중 사용자 시스템에 대해서 확인해보자. 하나의 컴퓨터를 여러명이 사용하게 되면? 각자의 아이디로 로그인해서 사용, 다중 사용자 시스템이 되는 순간 시스템의 복잡도는 훨씬 높아진다. 어떤 행위에 대해서, 권한에 대한 체크가 들어가기 때문에 훨씬 복잡해진다. 유닉스 계열은 다중 사용자 시스템이다. 어떤 문제점이 생길 수 있을까? 여러 사람이 하나의 시스템을 같이 사용한다면 어떤 일들이 벌여질 수 있을까? 다중 사용자에 관련된 명령어 id라는 명령어. identify - ..
프로세스란 무엇인가?? 깊게 기계적인 차원에서 살펴볼 것이다. 프로세스를 모니터링 하는 방법. 우선적으로 하드웨어에 대한 공부를 해보자. CPU (중앙처리장치-프로세서) RAN (메모리) SSD, HDD (저장장치, 스토리지라고 한다) 실행되는 프로그램을 읽어서 메모리에 적재를 시킨다. 사용되지 않는 프로그램은 저장장치에 존재한다. 그렇다면 메모리에 올라와있느 상태의 프로그램은 cpu가 메모리에 적재되어있는 프로그램을 계산한다. 저장장치는 읽는 속도가 느리기 때문에 Ram을 사용하는 것이다. 실행되고 있는 상태의 프로그램을 프로세스, 프로세서가 처리하는 것이다. 프로세스 모니터링 프로세스의 리스트를 보는 방법. ps라는 명령은 현재 진행중인 프로세스의 리스트를 보여준다. top을 사용했을 때 나오는 화면..
이번시간에 알아볼 내용은 디렉토리이다. 디렉토리는 데이터, 실행할 수 있는 프로그램을 정리정돈할 수 있는 수단이다. 리눅스 디렉토리 구조는 어떻게 되어있을까? / 이 디렉토리가 최상위 디렉토리, 루트 디렉토리라고 한다. 실행가능한 프로그램을 bin, 바이너리라고 부른다. bin에서는 사용자들이 설정해둔 명령어들이 위치해 있다. sbin은 system binaries라고 한다. 시스템 관리자, 루트 유저가 사용하는 프로그램들이 있다. etc라는 디렉토리가 있다. 이 디렉토리는 설정이다. 프로그램이 있으면 프로그램이 동작하는 설정을 바꿀 수 있는 파일들이 있다. dev와 proc이 있다. var 디렉토리 - 변동 내용이 있는 파일들로 이루어 져 있다. 내가 하는 것에 따라서 안에 존재한 파일들이 달라진다. ..
SHELL 이 무엇인가? SHELL 과 KERNEL은 무엇인가? 이번시간에는 SHELL에 대해서 알아보는 강의이다. 단어의 뜻을 살펴보자면 SHELL은 껍데기 혹은 주변, KERNEL은 알맹이, 핵심이라는 뜻을 가지고 있다. 일단 이미지를 통해서 개념을 각각 어떤 느낌인지 확인하자! 우리가 컴퓨터를 사용한다는 것은 기계를 동작시켜서 원하는 일을 하는 것이다. 커널이 하드웨어를 감싸고 있다. 하드웨어 물리적인 기계를 직접적으로 제어하는 운영체제에서 가장 중심이 되는 코어가 바로 커널이다. 그렇다면 쉘은? 사용자라고 한다. 사용자는 우리가 될 수 있다. 우리가 리눅스에서 명령을 쉘에게 입력하면 쉘이 커널이라는 프로그램이 알아 들을 수 있게 명령을 재해석해서 커널에게 전달해주는 역활이다. 쉽게말해서 컴파일러 ..
본 강좌는 인프런에서 있는 생활 코딩 리눅스 강좌를 정리한 문서입니다. IO Redirection 이라는 주제이다. Input(입력), Output(출력) , Redirection(방향을 바꾼다) 현재 디렉토리에 목록을 출력해보자, ls -al 명령어를 치면 나온다. 그러면 쭉 화면에 파일 목록이 나온다. 그렇다면 이런 파일 목록을 화면에 통해서 보는 것이 아니라 파일에 넣고 싶으면 어떻게 해야할까? 기본적으로는 vi 편집기를 사용해서 붙여 넣기하는 방법이 있지만, 번거롭다. ls -l > result.txt 라고 하면 아무런 결과를 출력되지 않고 출력된 결과가 result.txt파일에 저장되어있다. 출력되는 방향을 다른 곳으로 돌려 파일에 저장하는 것이다. 이런것을 redirection이라고 한다. 이..