우리는 운영 체제와 쉘을 통해 컴퓨터와 대화합니다 이 대화 과정에서 명령을 전달받은 운영 체제는 컴퓨터로 명령을 내려 데이터를 보내고 다시 사용자에게 출력 데이터를 보내게 됩니다 이번 시간에는 Data Stream에 대해 알아봅시다 Data Stream 이란 사용자가 컴퓨터에게 명령을 내릴 때 명령을 전달받은 운영체제가 컴퓨터 기계 장치로 향하는데 이를 입력 데이터라고 합니다 반대로, 컴퓨터 기계 장치에서 운영 체제를 통해 우리에게 전달되는 데이터를 출력 데이터라고 합니다 이때 입력되는 방향과 출력되는 방향의 데이터가 흘러가는데 이를 Data Stream이라 표현합니다 데이터 스트림은 크게 2가지가 있습니다 Input Stream, Output Stream 우리는 쉘을 통해 데이터를 주고받기 때문에 입력..
리눅스는 파일 권한 설정으로 사용자의 행동을 제한할 수 있습니다 그렇기에 각각의 파일과 디렉터리에 권한을 설정하는 방법이 중요합니다! chmod 명령어를 이용하여 권한을 설정하자 rwx 권한 강좌 때 만든 test_permission 파일에서 소유자 권한을 추가해 보겠습니다 기본적으로 권한을 변경할 때 사용하는 명령어는 chmod입니다 chmod [변경할 권한] [변경할 파일 또는 디렉터리] 권한 추가 + 권한 제거 - 소유자 u 소유 그룹 g 기타 사용자 o 이런 식으로 표현합니다 만약 소유자 권한에 실행 권한을 추가한다고 하면 (소유자 권한(u)에 실행 권한(x)을 추가(+)한다) : u+x 이렇게 소유자 권한에 x 기호가 생긴 걸 알 수 있습니다 여기서 다시 소유자 권한에서 실행 권한을 빼려면 (소..
지난 시간에 r, w, x 권한을 알아봤는데 이 외에 3가지 특별한 권한에 대해 공부해 봅시다 특별한 권한 3가지 (1) setuid : setuid가 설정되어 있다면, 파일을 실행했을 때 이 파일의 소유자 권한으로 실행됩니다. 대표적으로 passwd 명령어에 setuid가 설정되어 있는데 확인해 봅시다 ls -l /usr/bin/passwd passwd 경로에 권한 정보를 보면 소유자 권한이 rws라고 설정되어 있습니다 마지막 x(실행) 권한이 있는 자리에 특수 권한을 설정해두는데 소유자 권한에 s라고 표시되어 있는 게 setuid가 설정되었다는 의미입니다 만약에 x(실행) 권한이 있는지 없는지 확인이 안될 때가 있는데 s를 표현할 때, 대소문자를 구분합니다 소문자 s로 쓰면 실행 권한이 있으면서 se..
리눅스는 파일들로 운영되는 운영체제이기 때문에 파일의 접근과 이용만 통제해도 사용자의 행동을 제한할 수 있습니다 이번 시간에는 계정 별로 리눅스가 어떻게 권한을 부여하는지 알아봅시다 rwx 란? 파일과 디렉터리에는 3가지 권한이 있습니다 (1) r : read 권한으로 파일을 읽을 수 있는 권한입니다 파일의 내용과 디렉터리의 내용을 보는 것에 해당합니다 (2) w : write 권한으로 파일을 쓸 수 있는 권합니다 파일이라면 데이터를 수정할 수 있는지에 대한 권한이고, 디렉터리라면 디렉터리에 파일 또는 디렉터리를 생성할 수 있는지에 대한 권한입니다 (3) x : execute 권한으로 파일을 실행할 수 있는지에 대한 권한입니다 파일이라면 파일을 실행하는지에 대한 권한이고, 디렉터리면 디렉터리의 접근과 디..
지난 시간에 uid/gid를 공부하면서 모양이 다른 쉘을 접하게 되었는데, 오늘은 이 쉘에 대해 알아봅시다 passwd 파일을 알아보자 모양이 다른 쉘을 알기 전에 /etc/passwd 파일을 확인해 봅시다 /etc/passwd 파일은 리눅스 시스템에 등록된 계정 정보가 담긴 파일입니다 명령어를 실행해 보니 계정이 엄청 많습니다 /etc/passwd 파일에는 리눅스 계정 하나당 한 줄씩 정보가 저장됩니다. 그래서 사진과 같이 한 줄씩 계정이 존재하는 겁니다 맨 위에 있는 root 계정에서 각각 어떤 의미를 가지는지 알아봅시다 각 줄은 : (콜론)을 기준으로 데이터를 구분합니다 (1) 계정 이름 : 우리가 만든 계정 아이디입니다 (2) 비밀번호 : 현재 비밀번호 자리에 x라고 표시되어 있는데, 예전 리눅스..
컴퓨터는 어떤 특정한 사람만 쓰는 게 아니라, 여러 사람이 공유해서 사용할 수 있습니다 그러면 기본적으로 그 컴퓨터에 각 사람의 계정이 필요하게 됩니다 그래서 컴퓨터를 켜면 각자의 계정으로 로그인해서 컴퓨터를 쓸 수 있습니다 만약 이런 계정이 없다면 나의 민감한 정보나 파일들을 다른 사람들이 컴퓨터를 사용하면서 몰래 볼 수 있습니다 그래서 여러 사람이 하나의 컴퓨터를 같이 쓰기 위해 계정이 존재하는 겁니다 추가로 계정마다 특정 파일을 열지 못하게 하거나, 특정 명령어를 실행하지 못하게 할 수 있습니다 이렇게 각각의 계정 별로 권한을 부여할 수 있습니다 만약 계정이 root라는 글자라면 컴퓨터는 이 계정을 어떻게 인식할까요? 컴퓨터는 우리 눈에 보이는 글자를 실제로 컴퓨터 내부에서 처리될 때 전부 숫자로 ..
이번 시간에는 파일을 이동시키는 명령어 mv를 알아봅시다 우리가 복사와 삭제 명령어를 배웠는데 mv 명령어는 사실 cp 명령어로 파일을 복사한 뒤에, rm 명령어로 현재 경로에 있는 파일을 삭제하는 방식과 똑같습니다 직접 실습을 통해 mv 명령어를 다뤄봅시다 move 명령어로 파일 이동 방법 우선 이동시킬 파일을 vi를 실행해서 생성 후 이동시킬 디렉터리도 만들어 주세요 파일 이동 명령어 : mv [src] [dst] mv 첫 번째 인자는 전달한 대상을 적고, 두 번째 인자는 도착지를 적어주시면 됩니다 지난 시간에 배운 cp 명령어와 동일합니다 추가로 mv 명령어도 cp 명령어처럼 파일명을 바꿔서 사용할 수 있습니다 직접 파일을 이동시키면서 이름도 바꿔봅시다! 우리가 만든 디렉터리 안에 파일을 옮겼는데 ..
이번 시간에는 실습 때 만든 디렉터리와 파일들을 제거할 수 있는 remove 명령어에 대해 알아봅시다 remove 명령어로 파일 삭제 방법 지난 시간에 만든 vi_test 파일을 삭제해 보겠습니다 삭제 명령어는 rm입니다 remove(제거하다)의 약자입니다 명령어의 전달 인자는 삭제할 파일명을 지정해 주면 됩니다 rm 명령어도 cp 명령어와 동일하게 상대 경로와 절대 경로 2가지로 표현할 수 있습니다 명령어가 정상적으로 작동됐다면 파일이 삭제된 걸 확인할 수 있습니다 이번에는 musa_dir이라는 디렉터리를 삭제해 봅시다 remove 명령어로 디렉터리 삭제 방법 위에 명령어와 동일하게 전달 인자를 삭제할 디렉터리 명을 지정했는데 해당 디렉터리를 제거할 수 없다고 나옵니다 지난 시간에 cp 명령어에서 디렉..
컴퓨터를 쓰면서 복사와 붙여넣기 기능을 접해봤을 겁니다 이 copy 기능을 리눅스에서 사용해 봅시다 리눅스에서 copy 명령어 사용법 복사 기능을 사용하기 앞서 홈 디렉터리에서 musa_dir 디렉터리를 생성해 주세요 (파일명은 자유롭게 지정해도 됩니다) 디렉터리 생성 명령어 : mkdir [파일명] 디렉터리 생성이 끝난 후 지난 시간에 만든 vi_test 파일을 musa_dir 디렉터리에 복사할 겁니다 복사 명령어 : cp [src] [dst] cp는 전달 인자를 2개 받습니다 첫 번째 인자는 복사할 대상, 두 번째는 인자는 복사로 저장되는 경로입니다 전달 인자는 파일 경로로 적어주기 때문에 절대 경로와 상대 경로 2가지로 표현할 수 있습니다 복사 명령어 cp ./vi_test ./musa_dir를 상..
기본적으로 컴퓨터에는 어떤 데이터를 저장할 수 있습니다 메모장 켜서 텍스트 내용을 저장하는 것처럼 말이죠 이 텍스트 데이터를 처리하기 위한 프로그램을 Text Editor라고 합니다 이번 시간에는 리눅스에서 사용하는 Text Editor 중 유명한 vi 에디터를 다뤄봅시다 vi Text Editor 실행 Windows 운영체제에서는 GUI 방식으로 메모장에 텍스트 데이터를 저장하지만 리눅스에서는 CLI 기반의 텍스트 에디터를 사용하여 데이터를 읽고, 쓰고 할 수 있습니다 vi 명렁어를 입력하시면 이런 화면이 나올 겁니다 vi : (visual editor) 간결하면서 강력한 기능으로 사용자가 많습니다 VIM 은 "Vi IMproved"의 준말로 vi 편집기의 확장판으로 생각하면 됩니다 여기까지 Windo..