Linux University of Seoul Computer Science Park Jong wook E-mail: niceilm@gmail.com MSN: niceilm@hanmail.net
로그인 Login telnet vs ssh 계정과 암호 인증을 통해 로그인 로그인할 때 ssh 특정 프로그램을 사용 – zterm, SecureCRT 등 telnet vs ssh telnet 포트번호: 23 보안에 취약 내부 네트워크 상에서 사용 ssh 포트번호:22 패킷을 암호화하여 전달 -> 보안 방화벽이 설정되어 있는 네트워크 상에서 접속을 시도할 때 사용
패스워드 변경 & 로그 아웃 패스워드 변경 로그아웃 passwd 쉘 상에서 logout 혹은 exit입력 자신의 패스워드를 바꿀 때 사용 영문자와 숫자의 특수문자의 조합을 사용 가능 로그아웃 쉘 상에서 logout 혹은 exit입력 ctrl + d 키를 누른다.
쉘(Shell) 명령어를 해석하는 기능 Shell을 통해 운영체제와 사용자가 대화 사용자의 입력을 받아 해석하여 이를 실행하고 그 결과를 화면에 보여줌 사용자는 엄격하게 분리되어 있으므로 각 사용자의 작업영역, shell을 통해서 분리 보호 받음 Shell은 사용자와 운영체제 내부의 kernel을 연결해주는 역할
쉘(Shell) (Cont.)
쉘(Shell)의 종류 Bourne Shell (sh) Bourne Again Shell (bash) C-program style shell (csh) korn shell (ksh)
Manual Page man [instruction] man ls
파일 리스트 출력 ls 현재의 디렉토리 내에 있는 파일과 디렉토리의 리스트를 출력 DOS의 dir명령과 유사 ex) ls –als
디렉토리 변경 cd 디렉토리 이동할 때 ex) 디렉토리 내에서의 . 과 ..의 의미 / 의 의미 cd .. cd ./public_html 디렉토리 내에서의 . 과 ..의 의미 .. : 부모 디렉토리 . : 현재 디렉토리 / 의 의미 맨 처음에 나오는 / 는 루트 디렉토리를 의미 경로의 중간에 나오는 / 는 디렉토리의 구분을 하는 역할
리눅스 디렉토리 구조 / bin dev home lib lost+found proc sbin etc tmp var usr … bin etc local src include lib man
절대 경로 vs 상대 경로 pwd 절대 경로 상대경로 현재의 위치를 절대 경로로 표시 디렉토리의 경로를 루트로부터 전부 적어주는 것 ex) /home/mickey1226/public_html/bbs/install.php 상대경로 현재의 디렉토리에서의 경로를 적어준 것 ex) 만약 현재의 디렉토리가 /home/mickey1226 이라면 /home/mickey1226/public_html/index.html의 위치는 ./public_html/index.html로 나타낼 수 있음
디렉토리의 생성과 삭제 mkdir rmdir 디렉토리를 생성 ex) mkdir public_html 디렉토리를 삭제 디렉토리 안에 내용이 비어있지 않을 때는 삭제가 안됨 ex) rmdir Mail
파일의 생성, 내용 편집 & 삭제 파일만 생성 파일 내용 편집하기 파일 삭제 touch [파일명] 파일 존재: 마지막 수정 시간을 현재의 시간으로 수정 파일 존재하지 않으면 내용 없는 빈 파일 생성 ex) touch atlas.txt 파일 내용 편집하기 에디터 사용: vi, emacs, pico, nano 파일 삭제 rm [파일명] : 삭제 여부 확인 rm –rf: 삭제 여부 미확인 디렉토리가 빈 디렉토리가 아닌 경우에도 삭제 가능
소유권과 권한 root만이 할 수 있음 소유권 권한 각 파일, 디렉토리는 각각 소유자가 있음 소유자변경(chown) 그룹변경(chgrp) 권한 파일, 디렉토리에 대한 읽기, 쓰기, 실행을 할 수 있는 권한 파일 혹은 디렉토리 소유자는, 동일 그룹내의 사용자, 그 밖의 사용자에 대해 각각 다른 권한을 설정 가능 권한의 변경은 파일, 디렉토리의 소유자나 관리자(root)만이 할 수 있다. root만이 할 수 있음
권한 설정 chmod user group other rwx chmod [퍼미션] [파일명] r : 읽기 권한 (read) (4) w : 쓰기 권한 (write) (2) x : 실행 권한(execute) (1) ex) rwx r-x r-x 755 rwx --x r-x 715 user group other rwx
파일 내용 출력 cat head tail 파일의 모든 내용을 화면에 출력 ex) cat atlas.txt 파일의 처음 몇 줄을 출력(Default :10줄) ex) head atlas.txt head –n 5 atlas.txt tail 파일의 마지막 몇 줄을 출력(Default : 10줄)
파일 복사 cp [원본 파일명] [복사 파일명] 원본 파일의 위치에 대상 파일로 복사 경로 이름 뒤 파일명은 써줘도 되고 쓰지 않아도 된다. ex) cp atlas.txt ./public_html/ cp atlas.txt ./public_html/atlas.txt
파일 이름 바꾸기 & 파일 이동 파일 이름 바꾸기 파일 이동 mv [현재 파일명] [대상 파일명] mv 파일명이 바뀐다. ex) mv atlas.txt Atlas.txt 파일 이동 mv 같은 디렉토리의 경우 : 파일 이름 변경 다른 디렉토리의 경우 : 파일 이동
리다이렉션 출력 리다이렉션 입력 리다리렉션 명령이 수행된 결과를 파일에 저장할 때 사용 > >> 명령의 수행 결과를 파일에 저장 >> 명령의 수행결과를 파일에 추가 입력 리다리렉션 명령의 인자를 파일로 지정 < 파일의 내용이 명령의 입력값이 된다.
복수 명령어 사용 순차적으로 수행 파이프 라인 ( | ) 각 명령어를 ;로 구분 ex) mkdir temp; mv atlas.txt ./temp; cd temp 파이프 라인 ( | ) 앞의 명령어의 결과를 뒤의 명령어 입력으로 사용 ex) cat /etc/passwd | grep mickey1226
압축과 압축 풀기 tar 여러 개의 파일을 하나의 아카이브 파일(파일들의 묶음)으로 만들 수 있음 압축을 하는 것은 아니다. ex) tar cvf temp.tar temp ----> 아카이브 파일 생성할 때 tar xvf temp.tar ----> 아카이브 파일 풀 때
압축과 압축 풀기 gzip zip 리눅스에서 가장 자주 사용하는 압축 형태 보통 tar와 함께 쓰이는 것이 일반적 gzip tmp.tar.gz tmp.tar gzip –d tmp.tar.gz tar와 같이 사용할 때 tar cvfz tmp.tar.gz ./tmp tar xvfz tmp.tar.gz zip 윈도우에서 자주 쓰는 zip 압축 파일을 풀 때 사용 ex) zip tmp.zip ./tmp/* unzip tmp.zip
사용자에 대한 정보 du –sh 파일[디렉토리] df –h 파일 혹은 디렉토리의 용량 알려줌 아무것도 지정하지 않으면 현재 디렉토리 안의 모든 파일과 디렉토리의 용량 알려줌 df –h 시스템의 총 사용 용량을 알려줌 마운트 되어 있는 파티션마다의 사용 용량을 알려줌
사용자에 대한 정보 who w finger 현재 서버에 접속한 사용자의 정보를 알려줌 현재 서버에 접속한 사용자가 수행하고 있는 작업들을 보여줌 finger
Switch User (su) su [계정] whoami 패스워드를 입력하면 다른 사용자가 될 수 있음 계정명을 사용하지 않았을 때 root로의 계정 변환 su vs su – 계정마다 환경 설정 파일이 있는데 su는 현재 로그인된 환경설정 상태에서 다른 사용자로 계정 변환하여 사용하고 su – 는 사용하려 하는 계정의 환경설정 파일을 다시 읽어 들여 환경 설정 상태가 바뀐다. whoami 현재 내가 무슨 계정으로 사용하고 있는지 확인해 줌
프로세스 관리 ps top kill 프로세스의 상태의 리스트를 보여줌 현재 시스템의 사용량을 알 수 있음 각 프로세스의 CPU 사용량, 메모리 사용량을 알 수 있음 kill 자신의 권한의 프로세스를 죽일 때 사용 단 관리자(root)는 모든 프로세스를 죽일 수 있다.
다른 서버로 접속 telnet ssh ftp telnet [서버명(아이피주소)] ssh –l 아이디 서버명(아이피주소)
시스템 종료 shutdown reboot halt 시스템을 일정 시간 이후 동작을 멈추게 하는 것 시스템이 완전히 꺼지는 것은 아님 Single mode로 전환되는 것이 보통 reboot 시스템을 다시 부팅시킬 때 사용하는 명령 halt 시스템을 완전히 끌 때 사용하는 명령
네트워크 관련 명령어 ping traceroute netstat Send ICMP ECHO_REQUEST packets to network hosts 네트웍 계층을 통해 검사 ping [해당호스트의 주소] Ex) ping www.yahoo.com traceroute Print the route packets take to network host 최종 목적지 노드까지의 라우팅 경로 정보를 출력 tracerout [해당호스트의 주소] Ex) tracerout www.yahoo.com netstat 시스템에서 사용중인 네트워크 정보 출력
RPM(Redhat Package Manager) 패키지란 배포본 시스템의 상황에 맞게 프로그램을 컴파일하고, 설정 파일에 기본적인 설정을 마무리하여 하나의 파일로 묶어 놓은 것 리눅스 사용자는 이 패키지 파일만 다운로드 받아서 시스템에 설치하면 적절한 디렉토리에 파일 설치 설치된 패키지에 대한 정보도 제공 Tar에 비해 사용자에게 매우 편리하고 강력한 기능 제공
RPM의 용도 쉬운 패키지 설치 및 제거 쉬운 업그레이드 기능 시스템 검증 질의 지울 때에도 디렉토리를 일일이 검색하여 삭제하지 않아도 간편하게 삭제 쉬운 업그레이드 기능 기존의 패키지를 제거하지 않고도 업그레이드 가능 (-U 옵션) 시스템 검증 패키지들이 제대로 설치되었는지 검증 가능 사용자 실수로 인한 파일 삭제 시 해당 패키지만 재설치 가능 질의 RPM을 통해 패키지에 대한 자세한 정보를 구할 수 있음 어떤 파일이 어떤 패키지로 설치되었는지도 알 수 있음
RPM의 구조
RPM 설치 및 제거 & 업그레이드 RPM 제거 RPM 설치 RPM 업그레이드 rpm –e [패키지명] Ex) rpm –e foo RPM 설치 rpm –ivh [패키지명] Ex) rpm –ivh foo-1.0.2-i386.rpm RPM 업그레이드 rpm –Uvh [패키지명] Ex) rpm –Uvh foo-1.0.2-i386.rpm
RPM의 기타 옵션 -v 옵션 -vv 옵션 -h 옵션 설치되는 패키지의 메시지를 보여줌 설치과정의 상세 정보를 보여줌 연속적인 해쉬(#)문자로 설치과정을 보여줌
RPM의 기타 옵션(Cont.) replacepkgs 옵션 replacefiles 옵션 force 옵션 nodeps 옵션 이미 패키지가 설치된 경우에도 재설치가 가능 설치된 패키지에 이상이 생긴 경우 주로 사용 rpm –ivh --replacepkgs [패키지명] replacefiles 옵션 패키지 파일의 버전이 다른 경우에도 설치 가능 rpm –ivh –replacefiles [패키지명] force 옵션 기존의 설치된 패키지를 무시하고 강제로 설치 “--replacepkgs” + “--replacefiles” rpm -ivh --force [패키지명] nodeps 옵션 패키지의 의존성 검사를 무시하고 강제로 설치 rpm -ivh --nodeps [패키지명] 의존성 문제로 설치 및 삭제 되지 않는 경우 활용
패키지 정보 알아보기 rpm –q [옵션] [패키지 목록] 설치된 모든 패키지 출력 해당 파일을 포함하는 패키지 알아보기 rpm –q –a (rpm –qa) 해당 파일을 포함하는 패키지 알아보기 which [패키지명] ; 패키지의 위치를 알아냄 rpm –qf [패키지가 설치된 경로명] rpm –qf `which [패키지명]` rpm –qif `which [패키지명]` -f옵션은 해당 파일 포함 패키지 출력 -qi옵션은 패키지에 대한 자세한 설명 -ql옵션은 패키지의 파일 목록
패키지 정보 알아보기(Cont.) 패키지 파일 상태 점검 패키지 설정 파일 알아보기 의존성을 갖는 파일 살펴보기 패키지의 검증 rpm –q –s [패키지명] 패키지 설정 파일 알아보기 rpm –qc [패키지명] 의존성을 갖는 파일 살펴보기 rpm –qRp [패키지명] 패키지의 검증 rpm –V [패키지명]