스트림, 리다이렉션, 파이프 스트림(Stream) • 대부분의 프로그램은 데이터를 입력받아 다시 출력하는 형태 • 하지만 유닉스 이전의 운영체제에는 데이터의 입출력 작업이 어려웠음. - 하드웨어 장치를 통해 입출력을 한다면, 각기 다른 장치마다 서로 다른 설정을 일일이 해주어야 했고, 프로그램끼리의 데이터 입출력을 위해서도 그 프로그램에 대한 환경 설정 등을 일일이 해주어야 했음. • 유닉스에서는 이런 점을 개선하여 프로그램들과 하드웨어 장치들 모두 파일 형태로 관리하고, 데이터의 입출력 작업을 파일 읽기, 쓰기 작업으로 통일 • 그리고 이런 파일에서 입출력되며 흐르는 데이터, 또는 그 데이터의 통로를 스트림이라고 정의하여, 사용자가 데이터의 입출력을 관리하고 싶을 경우 스트림을 통해 관리하도록 함. 표..
파일 디스크립터 (File Descriptor) ※ 유닉스의 모든 것은 파일로 이루어짐 • 유닉스의 모든 컨텐츠는 파일 형식으로 저장 및 관리 - 파일은 파일, 디렉토리도 파일, 하드웨어 장치(키보드, 모니터, 하드 디스크, 프린터 등...)도 파일, 소켓 & 네트워크 통신 및 기타 리소스 파일 등도 모두 파일 형태로 저장 및 관리 - 예를 들어, 디렉토리는 그 디렉토리에 있는 파일의 이름과 그 파일들에 대한 포인터가 내용으로 들어있는 파일 • 따라서 거의 모든 작업을 파일 읽기라는 방식을 통해 수행, 파일 쓰기라는 방식으로 작업 수정 및 설정 파일 디스크립터 • 유닉스 시스템에서 프로세스가 파일들을 접근할 때 사용하는 개념 • 유닉스는 모든 것이 파일로 관리되므로 일반 파일, 디렉토리, 소켓, 파이프,..
리눅스의 파일 관리 명령어 ※ 참고 • 리눅스에서는 현재 사용자의 홈 디렉토리를 ~ 로 나타낼 수 있음. - 즉, user1이 접속 중이라면 user1의 홈 디렉토리인 /home/user1 을 ~ 로 나타낼 수 있음. - 예를 들어, /home/user1/www 는 ~/www 로 나타냄. - 루트 계정의 경우 홈 디렉토리가 /root 이므로 /root 를 ~ 로 나타냄. • 리눅스의 프롬프트에는 현재 경로가 표시되는데, 이때 홈 디렉토리가 ~ 로 표시됨. - 현재 경로를 출력해주는 pwd 명령어를 입력해보면 현재 경로가 홈 디렉토리임을 알 수 있음. • 현재 경로는 . , 상위 디렉토리는 .. 으로 나타냄. 파일 관리 명령어 • cd - Change Directory - 경로 이동 • pwd - Prin..
리눅스의 디렉토리 구조 • 최상위의 루트 디렉토리 하위에 여러 디렉토리가 존재하는 트리 구조 • 파일의 종류와 용도에 따라 구분되어 있는 기본 디렉토리들이 존재 • 윈도우 환경에서 최상위에 C 드라이브가 있고, 그 하위에 기능 별로 'Users', 'Program Files' 등 다양한 디렉토리가 있는 것과 같음. / -- home/ -- user1 -- user2 -- user3 -- root/ -- bin/ -- sbin/ -- usr/ -- mnt/ -- media/ -- etc/ -- var/ -- tmp/ -- boot/ • home 디렉토리 - 윈도우의 Usesr 폴더 - 각 사용자 계정마다 자기들의 디렉토리가 있고, 이를 home 에 위치시킴. - 즉, user1은 /home/user1 디렉..
관리자 권한 (root 계정) 다중 사용자 • 유닉스는 다중 사용자를 지원 • 유닉스를 기반으로 한 리눅스도 마찬가지! • 리눅스를 처음 설치할 때 계정을 만듦. • 그 후, 리눅스를 접속할 때마다 로그인하여 사용함. 관리자 권한 계정 • 리눅스는 관리자 권한 계정과 일반 사용자 계정으로 구분 • 관리자 권한 계정을 루트(root) 계정이라고 함. • 루트 계정은 모든 권한이 있음. • 리눅스를 처음 설치할 때 만드는 계정은 일반 사용자 계정 • 보통은 일반 사용자 계정으로 사용하지만 관리자 권한이 필요할 때가 있음. • 일반 사용자가 관리자 권한으로 명령을 실행하고 싶으면 명령어 앞에 sudo (Super User Do)를 추가 사용자 전환 • su 계정명 명령어를 통해 사용자 계정을 전환할 수 있음...
운영체제, Shell, Bash 운영체제(OS) • 하드웨어와 사용자 사이에서, 사용자가 컴퓨터를 사용하기 쉽도록 관리해주는 시스템 프로그램 • 하드웨어 리소스 관리, 시스템 관리, 프로그램에 대한 일반적인 서비스 제공 • 운영체제가 없었을 땐, 프로그램을 실행하기 위해 프로그램이 담겨 있는 저장 장치 등을 직접 컴퓨터에 넣어 읽게 만들거나, 하드웨어를 직접 조작하여 실행하였다. Shell(셸) • 사용자가 운영체제를 통해 컴퓨터를 제어할 수 있도록, 운영체제가 제공하는 인터페이스 프로그램 • 사용자와 운영체제를 이어주는 역할 - 사용자는 운영체제에게 셸을 통해 명령어를 입력하고, 운영체제는 셸을 통해 사용자에게 결과를 출력 • 윈도우의 탐색기, CMD • 리눅스의 Bash Bash(배시) • 유닉스는 ..
리눅스의 역사 유닉스 • 대부분의 현대적 컴퓨터 운영체제의 기반이 되는 운영체제 • 다중 사용자, 멀티 태스킹을 지원 • 리눅스도 유닉스 기반 리눅스의 탄생 • 유닉스의 유료화 • 유닉스를 무료로 쓸 수 있도록, 유닉스 코드를 전체 다시 작성하여 새로운 유닉스를 만드려는 GNU 프로젝트가 등장. • 리누스라는 사람이 유닉스를 본인의 인텔 CPU에 돌리고 싶어서(원래 유닉스는 고가의 유닉스 전용 CPU가 필요했음) 유닉스를 개조해서 만든 유닉스 커널을 GNU 프로젝트 코어 부분으로 채용. • GNU/linux 탄생! 이 글은 유튜브 뉴렉처 리눅스(Linux) 서버 강의/강좌 for 개발자 강의를 듣고 공부한 내용을 바탕으로 작성되었습니다.
리눅스를 배우기 전 운영체제의 종류 • NT 계열 : Windows • Unix 계열 : IOS, Mac OS, Linux... 운영체제를 고르는 기준 • 용도에 따라 결정 - 사용할 프로그램이 돌아가는 지, 지원이 잘 되는지. • 그 후 남은 선택지에서 장단점을 보고 결정. 리눅스의 장점 • 유닉스 기반 - 개발자들에게 친숙 • 오픈 소스 - 비용 X - 보안성 - 안정성 • CLI - 빠른 속도 리눅스 종류 • 리눅스 베포본의 3대 계열 - Debian, Slackware, Red Hat - Red Hat 계열은 상용화가 될 정도로 아주 인기있었지만, 요즘엔 Debian 계열의 Ubuntu가 대세 - 2018년 기준 Debian이 70.5% 차지 • 우분투가 유명해진 이유 - 보통의 리눅스 배포판들은..