640 likes | 991 Views
Linux 개요 , 명령어와 디렉토리. Suckzoo. Linux. 다중 사용자 , 멀티 태스킹 , 다중 스레드를 지원하는 네트워크 운영 체제 (NOS ) 자유 소프트웨어와 오픈 소스 개발의 가장 유명한 표본. Linux 의 특징. 멀티유저 시스템을 지원 가볍고 안정적 서버로서 많이 선택 받는다 . 무료 , 소스코드가 공개되어 있음. 배포되는 Linux. Fedora, Ubuntu, CentOS , BSD, Debian 등 다양한 OS 가 무료로 배포되고 있다 .
E N D
Linux 개요,명령어와 디렉토리 Suckzoo
Linux • 다중 사용자, 멀티 태스킹, 다중 스레드를 지원하는 네트워크 운영 체제(NOS) • 자유 소프트웨어와 오픈 소스 개발의 가장 유명한 표본
Linux의 특징 • 멀티유저 시스템을 지원 • 가볍고 안정적 • 서버로서 많이 선택 받는다. • 무료, 소스코드가 공개되어 있음
배포되는 Linux • Fedora, Ubuntu, CentOS, BSD, Debian등 다양한 OS가 무료로 배포되고 있다. • 거울을 통해 CentOS, debian, fedora, bsd, ubuntu가 미러링되는중.(chicken도?)
Linux 구조 - Linux Kernel • 운영체제의 핵심 부분. • 세부적인 기능은 아래와 같다. • 프로세스 관리 • 메모리 관리 • 파일 시스템 관리 • 디바이스 관리 • 네트워크 관리 • 지속적으로 이용되므로 보호된 메모리에 적재된다.
Linux 구조 – Linux Shell • Shell : 껍데기 • OS를 둘러싼 껍데기라고 할 수 있다. • 사용자와 OS사이의 층 • 명령어를 입력 받아 컴퓨터가 이해할 수 있는 0과 1로 된 명령어로 바꾸어 커널에 전달해주는 역할을 한다.
리눅스의디렉토리 구조 /bin /sbin /boot /tmp /dev /usr /etc /var /home /lib /media /proc /opt /root
/home, /root • /home은 일반 사용자들의 홈 디렉토리. • /root는 루트의 홈 디렉토리.
/bin, /sbin • /bin • 일반사용자가 리눅스를 사용할 때 쓰는 각종 유틸리티가 들어있는 디렉토리 • (ex : cat, chmod, ls) • /sbin • 루트유저가 시스템 관리에 필요한 유틸리티가 들어있는 디렉토리
/boot, /dev • /boot • 부팅에 필요한 필수적인 파일들이 모인 디렉토리 • 부트로더, 커널이 위치한다. • /dev • 장치 파일, 특수 파일이 들어있는 폴더
/etc, /lib • /etc • 시스템의 전반적인 관리 파일이 들어있는 디렉토리 • 계정 정보, 비밀번호, 스케줄링 등에 관련된 파일이 있음 • static file이어야 한다. • static file : 사용자 권한 없이 변경할 수 없는 파일. • /lib • 시스템을 부트 하거나 혹은 그 외에 root에 관련된파일을 이용할 때 자주 쓰이는 라이브러리 파일을 담고 있다. • 라이브러리 : 하위 프로그램들의 모임
/media, /proc • /media • 외부 저장매체(ex : usb memory)를 mount하여 하위 디렉토리인 것 같이 사용할 수 있는 디렉토리 • /proc • 실행되고 있는 프로세스, 사용중인 디바이스, 커널이 수집한 하드웨어 정보가 저장된다. • /proc/meminfo – 메모리 사용 현황 • /proc/stat – 시스템 상태 • /proc/uptime – 부팅 후 흐른 시간 • /proc/version – 실행되고 있는 커널 버전 • 각 프로세스는 고유의 식별자(PID)를 가진다. • PID를 이름으로 갖는 디렉토리들이/proc의 하위 디렉토리로 존재하며, 그 안에 각종 정보가 저장됨.
/opt, /tmp • /opt • 기본적으로 설치되는 프로그램을 제외한 소프트웨어들과 애드온들이 설치되는 디렉토리이다. • bit에는 scala가 깔려있는 듯 • /tmp • 임시파일들이 저장되는 장소 • linux종료 시 모든 파일이 삭제됨.
/usr • /usr • 시스템에 빌드하는 프로그램들의 소스나 매뉴얼 등을 포함하고 있는 디렉토리이다. • /usr/src : 시스템에 빌드하는 프로그램들의 소스 • /usr/share : 매뉴얼 등의 자료 • /usr/local : 잡다한 것들 • /bin, /usr/bin, /usr/local/bin의 차이 • /bin은 리눅스를 돌리기 위한 최소한의 것들을, • /usr/bin은 콘솔에서 확장된 것이나 Xwindow관련 프로그램등이, • /usr/local/bin은 잡다한 프로그램들이 위치해있다.
/var • 자주 바뀌는 데이터들을 모아놓은 디렉토리 • /var/lib • 시스템 운용 시 계속 바뀌는 파일들이 담김 • /var/log • 각종 로그들 저장 • /var/run • 시스템 정보를 담음. 부팅시 초기화된다. • /var/tmp • /tmp보다 좀 더 오래 유지되야 하는 것들이 담긴다. • 부팅시 초기화되지 않는다.
Commands • 파일 관련 • cp, rm, mv • mkdir, rmdir • tar • 출력 • cat, more, less, wc • grep • touch, vi • 계정 관련 • passwd • Shell 관련 • chsh • 매뉴얼 • man • Path 관련 • pwd • cd • ls
Commands • 시스템 • halt, reboot, shutdown • init • 원격 접속 • ssh, scp • 와일드카드 • pipe(|) • 리디렉션 • 히스토리 • 권한 • chmod, chown, chgrp • su, sudo • 프로세스 • signal • ps, kill • jobs, bg, fg • background process(&)
passwd (password) • 계정의 비밀번호를 바꾼다. • 사용법 • passwd를 친다 • 원래 비밀번호를 친다 • 새 비밀번호를 친다 • 끗
chsh (change shell) • 사용하는 shell을 바꾸어 준다. • 기본으로 사용하는 shell은 /bin/bash • 비밀번호 입력 후 shell 위치 입력 • echo $SHELL : 현재 이용중인 shell 출력
man (manual) • 프로그램의 사용방법을 출력해주는 명령어 • 용법 : man [command] • man ls • ls의 사용법을 알려준다.
pwd (print working directory) • 현재 작업중인 디렉토리를 표시해준다. • 예 : /home/suckzoo에서 작업 중이면
cd (change directory) • 작업중인 디렉토리를 다른 디렉토리로 변경한다. • 용법 : cd [target]
ls (list) • 파일들을 나열하는 명령어 • option • -l(long) • 권한, group, owner 등 자세한 정보 표시 • -a(all) • 숨겨진 파일까지 다 보여짐 • -R(recursive) • 디렉토리 안의 디렉토리 안의 … 디렉토리 까지 전부 나온다. • -d(directory) • 디렉토리 내부 컨텐츠가 아니라 디렉토리 그 자체의 정보를 출력한다. • ls –d public_htmlvslspublic_html
cp (copy) • 파일을 복사한다. • 사용법 : cp [option] [source] [target] • option • -r(recursive) : 해당 파일과 그 하위파일까지 전부 복사 • 디렉토리 복사 시 사용 가능.
mv (move) • 파일을 이동(잘라내기+붙이기)한다. • 사용법 : mv [option] [source] [target] • option • -r(recursive) : 해당 파일과 그 하위파일까지 전부 이동 • 디렉토리 옮길 때 쓸 수 있음.
rm (remove) • 파일을 삭제한다. • 사용법 : rm [option] [source] • option • -r(recursive) :해당 파일과 그 하위파일까지 전부 삭제 • 디렉토리 통으로 삭제시 이용 가능. • 조심조심 쓰자. 잘못 쓰다 날라가면 죽슴다ㅠㅠ
mkdir (make directory) • 디렉토리를 새로 만든다. • 사용법 : mkdir [option] [target] • option • -p : 해보세요 • mkdir –p h/e/l/l/w/o/r/l/d • cd h • cd e • cd l • cd l • …
rmdir (remove directory) • 비어있는디렉토리를 지울 때 쓴다. • 사용법 rmdir [option] [target] • option • -p : 하위 디렉토리를 모조리 지운다. • 단, 모든 하위 디렉토리가 비어있어야 한다. • rm –r a vsrmdir –p a
tar • 여러 파일을 모으고 압축한다. • 사용법 : tar [cvxzf] filename file1 file2 … • option • -c(create) : 압축 하기 • -v(verbose) : 진행상황 화면에 보여주기 • -x(extract) : 압축 풀기 • -z(gzip) : gzip으로 압축/해제 • -f(file) : 압축 결과를 파일로 저장하기
tar • 파일 모으기 • alzip.tar 파일로 a.a, b.b, c.c, d.d를 모으는 방법 • tar cvf alzip.tar a.ab.bc.cd.d • 모으고 압축까지 한번에(tar.gz) • alzip.tar.gz 파일로 a.ab.bc.cd.d를 모으고 압축 • tar cvzf alzip.tar.gz a.ab.bc.cd.d • tar.gz 풀기 • gunzip alzip.tar.gz -> tar xvf alzip.tar • 를 한방에! tar xvzf alzip.tar.gz
cat(concatenate) • 파일 내용 읽기, 합치기 할 때 쓴다. • 사용법 • cat [filename] • 파일을 읽는다 • cat [a] [b] > [c] • a와 b의 파일 내용을 합친 것을 c로 저장한다. • cat –n [filename] • 줄 번호가 나오게 파일 내용을 출력한다.
more • 내용을 앞에서부터 화면에 꽉 차게 출력시킨다. • 엔터를 눌러서 한 줄씩 이동 • 스페이스바를 통해 한 페이지씩 이동 • q로 나간다.
less • more보다 더 많은 기능 지원 • 사용법 : less [filename] • less로 파일을 불러와보자. • /[keyword] : [keyword] 찾기 • n으로 이전, N으로 다음 키워드 찾기. • :[line] : [line]번 줄로 이동 • 무려 편집기능도 제공한다. v를 눌러보세요 • q로 나간다. • 그 외 • http://linuxaria.com/howto/bash-linux-less?lang=en
wc(word count) • 줄 수, 단어 수, 바이트 수를 세준다. • wc[filename]
grep(global/regular expression/print) • 텍스트 검색 기능을 가진 명령어 • 주어진 정규표현식(regular expression)과 맞는 줄을 찾아 출력 • grep [option] [keyword] [file] • option • -i : 대소문자 구분 엑스 • -w : 독립적인 단어로 검색 • -w로 apple을 찾으면 pineapple을 가진줄은 출력이 안된다.
touch • 만진다. • 수정 시간을 손대는 명령어 • 용법 : touch [option] [file/time] • option • -r [file1] [file2] • file2의 수정시간을 file1과 같게 한다. • -t [time] [file] • file의 수정시간을 time이 되게 한다.
vi • 편집기이다. • 다들 한번쯤은 써봤을 것이므로 패스한다. • vi의 사용법 • http://vim-adventures.com/
권한 • 말 그대로 권한. • 파일을 접근할 수 있는지 여부를 • 사용자/그룹/그외 • 로 나누어 8진수로 표현.
권한 설정에 8진수 쓰기 • ls –l 해보면 • 요기에 –rwxrwxrwx이런애들이8진수에 대응 • ex) catAndDog.c • -rw-r—r-- : (4+2)(4)(4) -> 644 • ex2) catAndDog • -rwxrwxr-x : (4+2+1)(4+2+1)(4+1) ->775
sticky bit • 모든 사용자가 사용할 수 있는 디렉토리에 적용 • 이 디렉토리 내의 파일을 others가 임의로 삭제할 수 없음 • 소유자만 삭제 가능 • 예 : /tmp • 팔진수 세자리 앞에 1을 붙여 표현
SetUID, SetGID • SetUID가 걸린 파일을 실행시키면 파일 소유자의 권한으로 프로그램을 실행한다. • 8진수 세자리 앞에 4를 붙여 표현 • SetGID가 걸린 파일을 실행시키면 파일 소유그룹의 권한으로 프로그램을 실행한다. • 8진수 세자리 앞에 2를 붙여 표현
chmod • chmod • 파일의 권한을 바꾼다. • 용법 : chmod [permission] [file] • permission은 앞에서 말한 8진법을 이용 • 혹은, +, -, r, w, x 등을 이용하여 설정 가능 • u : user, g : group, o : others, a : all • ex : chmodug+wx a • 유저, 그룹에게 a의 쓰기/실행 권한 부여
chown, chgrp • chown • 파일 주인을 바꾼다. • 용법 : chown [owner] [file] • 루트밖에 못한다. • chgrp • 파일 소유 그룹을 바꾼다. • 용법 : chgrp [group] [file]
su (subsituteuser) • 유저 전환하기. • 용법 : su[username] • username이 비면 root로 전환 시도. • password 필요.
sudo(substitute user do) • /etc/sudoers에 유저가 기록되어 있어야 함. • 다른 유저의 권한으로 어떤 프로그램을 실행시킴. • sudo [option] [process] • option • -u [username] : username의 권한으로 실행 • -u가 없으면 root로 인식.
Signal • 프로세스간 의사소통을 위해 보내는 신호
jobs, ps • jobs • 현재 작업중인 프로세스들을 출력한다. • ps • 마찬가지로 현재 작업중인 프로세스들을 출력한다. • 용법 : ps [option] • option • -u : CPU, memory 점유율 등 보다 다양한 정보 표시 • -a : 모든 유저가 사용하는 프로세스 표시 • -U [user] : [user]가 사용하는 프로세스 표시