지난 시간에 프로그램의 출력 방향을 리다이렉션으로 바꿨는데, 이번 시간에는 입력의 흐름을 다른 곳에 넣을 때 사용하는 파이프에 대해 알아봅시다 PIPE 란? 파이프는 프로그램 사이에 연결되어 있는 빨대라 생각하면 이해하기 쉽습니다 이렇게 프로세스 간에 연결된 파이프를 통해서 데이터가 흐르게 됩니다 또한 프로세스의 출력이 다른 프로세스의 입력으로 들어갈 수 있습니다 그래서 파이프는 프로세스의 출력을 다른 프로세스의 입력으로 넣어주고 싶을 때 사용합니다 예를 들어 A라는 명령어(프로세스)의 결과를 파일로 저장하지 않거나 화면에 출력하는 것도 아니라면 오로지 이 결과를 다른 명령어(프로세스)에 넘겨주고 싶을 때 파이프를 사용합니다 이제 PIPE를 칼리 리눅스에서 사용해 봅시다 PIPE 실습하기 PIPE를 가장..
지난 시간에 데이터 스트림을 알아보면서 데이터의 흐름이 있다고 했는데 이번 시간에는 이 데이터의 방향을 바꾸는 리다이렉션을 공부해 봅시다 리다이렉션 : Re / direction (다시 방향) 즉 방향을 바꾼다는 게 리다이렉션입니다 Redirection 리다이렉션 실습 실습 전 Text Editor 강좌 때 만든 mv_test 파일을 이용하겠습니다 (없으면 생성해 주세요) 현재 cat 명령어의 결과 데이터가 standard output(표준 출력)으로 화면에 표시된 겁니다 이제 출력의 방향이 터미널 화면이 아닌 다른 파일로 향하게 방향을 바꿨습니다 방향을 바꿀 때, 사용하는 문자는 > 입니다 리다이렉션을 사용하니 터미널 화면에 mv_test 파일 내용이 출력되지 않고 musa_file라는 파일로 방향을 ..
우리는 운영 체제와 쉘을 통해 컴퓨터와 대화합니다 이 대화 과정에서 명령을 전달받은 운영 체제는 컴퓨터로 명령을 내려 데이터를 보내고 다시 사용자에게 출력 데이터를 보내게 됩니다 이번 시간에는 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 명령어에서 디렉..