640 likes | 780 Views
LINUX. STUDY #01. SNUCSE GUARDIAN @ Mistrie 2012. 04. 23. 00. WHO IS Mistrie ?. WHO IS Mistrie ?. 컴퓨터공학부 11 학번 올해 19 세 가디언 신입회원 (?) 시간이 남아돌아서 (?) 스터디 진행중 ppt 잘 만드는 능력은 없음 스터디에 많은 걸 기대하지는 맙시다. 01. WHAT IS LINUX?. WHAT IS LINUX?. 그 전에 .. OS 가 뭔지 아시나요 ?.
E N D
LINUX STUDY #01 SNUCSE GUARDIAN @ Mistrie 2012. 04. 23.
00 WHO IS Mistrie?
WHO IS Mistrie? • 컴퓨터공학부 11학번 • 올해 19세 • 가디언 신입회원(?) • 시간이 남아돌아서(?)스터디진행중 • ppt잘 만드는 능력은 없음 • 스터디에 많은 걸 기대하지는 맙시다
01 WHAT IS LINUX?
WHAT IS LINUX? 그 전에.. OS가 뭔지 아시나요? OS(Operating System) - 하드웨어 자원을 편리하고 효율적으로 사용할 수 있도록 사용자-하드웨어 사이를 중계하는 프로그램 - 크게 서버계열 / 클라이언트 계열로 분류 - 서버계열 : Solaris, linux, FreeBSD, Win 2003 등 - 클라이언트 : Win 7, Mac OS 등
WHAT IS LINUX? Linux란? • 리누스토발즈개갞끼(?) • 1991년 개발, 무료 • unix와 유사한 환경을 제공하면서 개인컴퓨터에서 동작 • 오픈소스 형식 : 누구나 수정, 추가, 배포가 가능
WHAT IS LINUX? Linux란? • 현재 다양한 Linux 배포판이 존재 • 대표적으로 Ubuntu, Fedora, RedHat, Debian등
02 VIRTUAL MACHINE
VIRTUAL MACHINE 가상머신? • 하드웨어가 아니면서도 서버와 동일한 기능을 • 수행하는 소프트웨어 • 물리적 서버와 마찬가지로 OS와 어플을 실행하지만 • 이미지로 관리, 하드웨어 자원을 분배 가능 • - 대표적으로 VMWare, Virtualbox등이 있음
VIRTUAL MACHINE 가상머신의 특징과 장점 • 하드웨어에 대해 독립적 • 생성된 가상머신이 완전히 격리됨, 확실한 보안 유지 • 파일로 저장 : 신속한 구축, 이동이 가능 • 한 대의 서버에서 여러 VM을 동시에 실행가능
VIRTUAL MACHINE 왜 언급했을까? • 우리는 리눅스를 배워야 한다 • 그런데 게임도 해야 한다(?) • 그래서 윈도우를 밀어버릴 수는 없다 • 결론 : VM으로 리눅스를 깔자
03 SERVER : MARTINI
MARTINI - 컴퓨터공학부 숙제 서버 - 급할 때(?) 쓰기에 가장 좋음 - 성능 정말 좋아요 16 cores, 2.27GHz, RAM 12GB, Debian GNU Linux 2.6
MARTINI - putty로 접속가능 : martini.snucse.org - id/pw는 스누씨 id/pw와 동일 • root 권한이 필요한 경우를 제외하면 실습은 • 모두 마티니에서 이루어질 예정
04 FILE & DIRECTORY
FILE & DIRECTORY 파일? - 디스크에 데이터를 저장하는 단위 - 파일의 구성요소 파일명 inode : 파일에 대한 정보를 가지고 있음 storage : 실제 데이터가 저장되는 장소 - storage에 저장되는 데이터에 따라 종류 구분
FILE & DIRECTORY * 일반 파일 - 일반적으로 생기는 파일 - storage에 원하는 데이터가 들어있음 * 디렉토리 파일 • storage에 파일의 이름과 파일에 대한 정보를 • 저장하는 inode번호를 가진 파일 - mkdir명령어로 생성
FILE & DIRECTORY * 디바이스 파일 • 장치를 제어하는 커널의 디바이스 모듈과 • 연결되도록 설정된 파일 • 이 파일에 데이터를 저장하면 • 오디오 디바이스 – 소리로 출력 • 터미널 – 해당 터미널로 내용 출력
FILE & DIRECTORY * 심볼릭 링크 파일 • storage에 연결되어 있는 파일의 경로를 • 가지고 있는 파일 • 이 파일을 호출하면 실제 storage에 저장된 • 경로명을 이용하여 해당 경로의 정보를 읽어 • 저장된 내용을 가져오게 함
ls - 디렉토리 내의 파일을 확인할 수 있음 - ls –a : 숨겨진 파일을 확인할 수 있음 • ls –l : 좀 더 많은 정보를 확인할 수 있음
ls -l rynn5419@martini:~$ ls -al 합계 144 drwx------ 13 rynn5419 cseusers 4096 2012-04-23 13:21 . drwxr-x--x 1101 13018 13018 36864 2012-04-16 01:18 .. -rw------- 1 rynn5419 cseusers 3143 2011-04-23 08:43 .bashrc drwx------ 3 rynn5419 cseusers 4096 2012-03-09 00:46 .irssi -rw------- 1 rynn5419 cseusers 675 2011-03-05 00:45 .profile drwxr-xr-x 2 rynn5419 cseusers 4096 2012-01-18 18:43 .vim -rw------- 1 rynn5419 cseusers 23210 2012-04-23 13:15 .viminfo -rw-r--r-- 1 rynn5419 cseusers 452 2012-04-12 15:32 .vimrc drwxr-xr-x 2 rynn5419 cseusers 4096 2012-04-23 02:59 algorithm drwxr-xr-x 6 rynn5419 cseusers 4096 2012-02-07 16:09 cpr drwxr-xr-x 10 rynn5419 cseusers 4096 2012-03-06 12:50 java drwxr-xr-x 5 rynn5419 cseusers 4096 2012-03-13 15:41 study drwxr-xr-x 3 rynn5419 cseusers 4096 2012-04-18 16:17 tmp
ls -l • 어떤 파일이 실행 파일인지 디렉토리인지 • 데이터 파일인지 어떻게 구분할 수 있을까?
ls -l drwxr-xr-x 5 rynn5419 cseusers 4096 2012-03-13 15:41 study drwxr-xr-x : TypePermisson 5 : Links rynn5419 : Owner cseusers : Group 4096 : Size 2012-03-13 15:41 : Modify Time study : File name
ls -l * 1번째 필드(drwx r-x r-x) • 1번째 문자 : 파일의 종류를 표시 (-) : 일반 파일 / (d) : 디렉토리/ (l) : 심볼릭 링크 파일 (c) : 문자 디바이스 파일 / (b) : 블록 디바이스 파일 • 나머지 문자들은 3개씩 끊어서..
ls -l * 1번째 필드(drwx r-x r-x) • rwx, r-x, r-x로 세 분류의 사용자의 허가권 정의 첫 번째 rwx : 파일의 주인에 대한 허가권 설정 두 번째 r-x : 그룹에 대한 허가권 설정 세 번째 r-x : 그 외 사용자에 대한 허가권 설정 (r) : 읽기 / (w) : 쓰기 / (x) : 실행
ls -l * 2번째 필드(5) • 링크의 개수 : inode를 참조하고 있는 파일 수 • 디렉토리는 기본적으로 “.”와 “..”가 참조 • 디렉토리의 링크 개수는 2 이상 * 3번째 필드(rynn5419) • 이 파일의 소유자의 사용자명
ls -l * 4번째 필드(cseusers) • 이 파일의 소유자가 소속된 그룹명 * 5번째 필드(4096) • 파일의 크기 • 일반 파일 : 저장되어 있는 데이터의 바이트수 • 디렉토리: 512바이트 단위로 할당
ls -l * 6번째 필드(2012-03-13 15:41) • 파일이 최종 수정된 시간정보 * 7번째 필드(study) • 파일의 이름
chown - 파일의 소유권을 변경하는 명령어 • 변경 전과 변경 후의 계정의 권한이 있어야 가능 - chown <계정명]>[:그룹명] <파일명>
chmod - 파일의 허가권을 변경하는 명령어 - chmod <mode> <files> - 파일의 허가권은 3가지로 분류됨 파일의 주인, 주인의 그룹, 그 외의 사용자
chmod - mode 설정 <누구에게> <권한을 주거나 뺏는다> <어떤 권한을> 파일의 주인 (u) + 읽기(r) 그룹 (g) - 쓰기(w) 그 외 사용자 (o) = 실행(x) 전체 (a) ex) chmodug+x file1 file1에 대해 파일의 주인과 그 그룹에 실행 권한을 추가 ex) chmod o-rwx file2 file2에 대해 그 외 사용자에 모든 권한을 제거
05 LINUX COMMANDs
LINUX COMMNADs - 약 1000개 이상 - 모든 걸 가르치지는 않는다 - 리눅스 명령어 다 외워오면 빵 사드림(?) - 그래서 존재하는 것이 man
man - command[-option] <argument>의 형태 - 모든 걸 외울 수 없다 • man : 리눅스의 모든 명령어에 대한 사용법을 • 알려주는 온라인 매뉴얼 - man <command> 형식으로 사용가능
man - man grep으로 검색
man - man –f <command> command에 대해 어떤 매뉴얼이 제공되는지 매뉴얼 리스트를 확인할 수 있음 • http://man.kldp.org 한글화된 매뉴얼을 제공
pwd - pwd : 현재 디렉토리의 위치를 보여줌 - pwd –L : 상대경로 // pwd –P : 절대경로 • ex) rynn5419@martini:~$ pwd –P • /home/csehome/rynn5419
cd - cd : 다른 디렉토리로 이동할 수 있게 한다 ex) cd /usr/bin : /usr/bin 디렉토리로 이동 cd : 홈 디렉토리로 이동 cd .. : 상위 디렉토리로 이동 cd / : 루트 디렉토리로 이동
mkdir - mkdir<디렉토리명>: 새로운 디렉토리를 만든다 • mkdir –m <권한> <디렉토리명> • 권한을 설정해서 디렉토리를 만들 수 있음 • (현재 디렉토리 아래에 /linux가 없을 때) • mkdirlinux/hw1 안 된다 • mkdir –p linux/hw1 디렉토리가2개 만들어짐 • (linux디렉토리가 만들어지고 그 아래 hw1 생성)
rmdir - rmdir<디렉토리명>: 비어있는 디렉토리를 삭제 • 디렉토리 안에 파일이 있으면 rmdir을 쓸 수 없음 • 디렉토리 안의 파일까지 같이 지우고 싶다면.. • rm –rf<디렉토리명> 명령어를 사용
hostname, date - hostname : 접속하고 있는 호스트 이름 확인 rynn5419@martini:~$ hostname martini - date : 시스템의 현재 시간 표시 rynn5419@martini:~$ date 2012. 04. 23. (월) 04:41:55 KST - root 권한이 있다면 시스템 시간을 변경 가능
whoami, id - whoami : 현재 로그인하고 있는 계정명을 출력 rynn5419@martini:~$ whoami rynn5419 • id : 현재 로그인하고 있는 계정에 대한 계정명과 • 등록된 그룹명들을 출력 rynn5419@martini:~$ id uid=12345(rynn5419) gid=1234(cseusers) groups=123(cseusers)
who • who : 현재 시스템에 로그인하고 있는 전체 • 사용자 정보를 출력 rynn5419@martini:~$ who thsehgus pts/3 2012-04-13 08:12 (147.46.xxx.xxx:S.0) rynn5419 pts/45 2012-04-23 11:24 (147.47.xxx.xx) dandelin pts/38 2012-02-29 01:45 (14:S.0) - 계정명– 터미널명– 접속 시간 – ip - pts/xx 는 localhost의 desktop 환경에서 오픈된 터미널
cat - 파일 내용을 출력 - cat [-option] <filename> rynn5419@martini:~$ cat 1.c #include <stdio.h> int main(){ printf(“hello world!\n”); return 0; }
cat - cat > filename 으로 새 파일을 만들 수 있다 rynn5419@martini:~$ cat > 2.c #include <stdio.h> int main(){ printf(“hello world!\n”); return 0; } - 입력을 완료하면 ctrl + d를 입력해 입력을 끝낸다
cat - cat 명령어를 사용해 2개의 파일을 병합 가능 - cat 1.c 2.c > 3.c rynn5419@martini:~$ cat 1.c #include <stdio.h> rynn5419@martini:~$ cat 2.c int main(){ printf(“hello world!\n”); return 0; } rynn5419@martini:~$ cat 1.c 2.c > 3.c
cat - cat –n : 출력할 때 줄 번호를 같이 출력 - cat –b : 출력할 때 ‘비어있지 않은’ 줄 번호를 출력 rynn5419@martini:~$ cat –n 1.c 1 #include <stdio.h> 2 3 int main(){ printf(“hello world!\n”); 5 return 0; 7 8} rynn5419@martini:~$ cat –b 1.c 1 #include <stdio.h> 2 int main(){ 3 printf(“hello world!\n”); 4 return 0; 5}
more - 파일 내용을 화면크기 단위로 출력 - more [파일명] - more 상태에서 쓸 수 있는 명령 <spacebar>: 다음 페이지로 한 화면을 넘김 <enter> : 한 줄씩 뒤로 넘김 h : 사용할 수 있는 명령의 요약정보 확인 /pattern : 지정한 패턴을 포함한 페이지를 출력 q : more에서 빠져나옴
head, tail - head : 파일의 첫 줄부터 일부분을 출력 - tail : 파일의 끝 줄부터 일부분을 출력 - head(tail) [-라인수] [파일명] - [-라인수]를 입력하지 않으면 기본 10줄이 출력