리눅스 기본 설명

Linux/Linux (CentOS) 2018. 7. 5. 01:20

 리눅스 특징


1. 권한을 갖는다. - 소유권, 허가권


2. 다중사용자 환경을 지원한다. - 멀티 유저 모드 및 멀티 테스킹 지원


3. 대/소문자를 구분한다.


4. 확장자는 무관하고 파일명의 일부로 사용한다. - 윈도우 확장자 개념과는 다름.







 리눅스 프롬프트의 구조


1. 프롬프트란? - 명령어를 입력받아 실행될수 있는 상태


2. 리눅스 프롬프트


 - 관리자 : [root@localhost ~]#


 - 사용자 : [user@localhost ~]$


 - [, ] : 프롬프트의 구분기호


 - root, user : 서버에 로그인한 계정명


 - @ : 계정명과 서버 이름의 구분기호


 - localhost : 서버의 이름(HostNAME)


 - ~ : 경로의 마지막 경로명을 출력


 - #, $ : 계정상태 출력(# 관리자, $ 유저)







-------------------------------------------간단한 명령어 -------------------------------------------------

fconfig : ip 확인


pwd : 현재 작업중인 디렉터리 출력


cd : 현재 디렉터리 변경


~ : 틸드, 접속한 계정의 홈디렉터리


cd ~ : 접속한 계정의 홈디렉터리로 변경


cd ~계정명 : 지정한 계정의 홈디렉터리로 변경


cd ~- : 이전 디렉터리로 변경


clear : 화면청소


ls : 작업중인 디렉터리의 목록 출력


ls -a : .(숨김)을 포함한 디렉터리의 모든 파일 및 디렉터리 출력


ls -l : 지정한 디렉터리의 내용을 자세히 출력


ls -n : 파일 및 디렉터리의 정보출력시 UID,GID(소유권)을 사용


ls -R : 하위경로와 그안에 있는 모든 파일들도 같이 출력(recursive)


ls -lF : 형식을 알리는 문자를 각 이름뒤에 추가


없다 : 파일(허가권 맨앞이 ~)


/ : 디렉터리 명칭 맨뒤에 /가 붙는다.(허가권 맨앞이 d)


->, @ : symbolic link file(바로가기) 사본 -> 원본(허가권 맨앞이 l, 허가권 모두가 활성화)


* : 파일에 *이 붙으면 실행파일


ls -d : 디렉터리의 정보 출력

----------------------------------------------------------------------------------------------------------





cp : 파일이나 디렉터리를 복사


 - 사용형식 : cp [option] 원본파일 사본파일


 - 원본파일명을 그대로 복사할 경우 복사할 경로에 원본파일명을 생략해도됨


 - 원본파일명을 복사할 때 원본파일명을 바꿔서 복사할 수 있음


 - 생성날짜와 시간을 복사 할 수 없음(-p 옵션을 사용하면 원본파일 그대로를 복사 할 수 있음)


 - 디렉터리를 복사할 때 파일처럼 복사할 수 없음(-r 옵션을 사용하면 디렉터리를 복사 할 수 있음)


 - -a : 원본 파일의 속성, 링크 정보들을 유지하며 복사




mv : 파일이나 디렉터리를 이동


 - 사용형식 : mv [option] 원본파일 목적지


 - 원본파일이 이동하는 것이므로 조심해서 사용해야 함


 - 파일이나 디렉터리 이름을 바꿀 때 사용


 - 생성날짜와 시간이 변경되지 않음




mkdir : 디렉터리를 생성


 - mkdir [option] 디렉터리


 - option p : 필요하다면 상위 디렉터리까지 생성


 


rmdir : 디렉터리를 삭제


 - mkdir [option] 디렉터리


 - option p : 필요하다면 상위 디렉터리까지 삭제


 


rm : 파일이나 디렉터리를 삭제(삭제시 대답은 y, n)


 - rm [option] 파일 or 디렉터리


 - option f : 물어보지 않고 진행(강제 삭제)


 - option r : 디렉터리 삭제


 


touch : 파일생성


 - touch [option] 파일명


 - option c : 현재시간으로 파일 생성 파일명이 있을시 무시


 - option r : 지정한 파일의 시간으로 변경(ex) touch -r AA BB(aa시간을 bb의 시간으로)


 - option t : YY:MM:SS (파일의 접근/수정시간을 원하는 시간으로 변경)


 - option m : 파일이 수정된 시간을 현재시간으로


 


cat : 파일의 내용 입/출력 및 생성.


 - 출력 : cat /etc/passwd


 - 입력 : cat /etc/passwd > /testfile


 - 생성 : cat > ./test => 내용 입력 => ctrl+d(정상 종료), ctrl+c(강제 종료), ctrl+z(강제 정지)


 - 추가 : cat >> ./test => 내용 입력 => ctrl+d


 - 병합 : cat ./a ./b > ./c


 


find : 파일 찾기


 - find [경로] [-옵션] [이름]


 - find . -name "파일명" -exec 명령어 {} \;


 - ex : find / -user root -perm /4000 2> /dev/null


 


vi : 파일 수정


 - vi [파일명]


 - gg, [[ : 문서의 맨 처음


 - G, ]] : 문서의 맨 마지막


 - $ : 문장의 끝


 - ^,0 : 문장의 마지막


 - I : 그 행의 맨 앞으로


 - A : 그행의 맨 뒤로


 - o : 밑칸의 공간


 - O : 빈행생성 ->insert


 - s : 글자 없애기 ->insert


 - S : 행 내용 삭제 ->insert


 - L : 화면의 끝


 - r : 커서의 딱 한단어 바꿔줌.


 - backspace : 이전으로 되돌려줌


 - x : delete -> backspace


 - X -> backspace


 - dd : 행삭제


 - 숫자 + dd: 숫자만큼 삭제


 - yy : 행을 복사


 - 숫자+yy : 숫자만큼 복사


 - p: 오른쪽에 붙여넣기


 - P: 왼쪽에 붙여넣기


 - d+w: 단어 삭제


 - d+$, D, 숫자+x 오른쪽 삭제


 - d+E : 단어의 맨 끝으로.


 - d+L : 화면의 끝까지 지움


 - d+G ]] : 끝까지 지움.


 - u : 되돌리기


 - U : 행에서 되돌리기


 - m + a~z, A~Z 총 52개의 책갈피.


 - ' +a~z, A~Z 책갈피로 이동


 - ''-> 마지막 위치로 이동


 - /찾는이름, 다음으로 넘어갈때 n, 이전으로 돌아갈때 N


 - ?찾는이름, 다음으로 넘어갈때 N, 이전으로 돌아갈때 n


 - :set(se) nu -> 행의 번호 출력


 - :set(se) nonu -> 행의 번호 없앰.


 - :[범위]s/[기존문자]/[새로운문자]


 - ex) :5s/passwd/itbank -> 5번째 행의 passwd를 itbank로 치환.


 - :20,23s/PASS/Tiger -> 20~23행의 PASS를 Tiger로 치환.


 - :%s/MIN/silver -> 문서 전체(%) 치환.


 - :62s/i/a/g -> 62번째 행의 i를 모두 a로 치환. --> g : 행의 중복 문자를 치환.


 - :.!ifconfig -> 현재 위치에 ifconfig 명령어 실행.


 - ctrl=^ 이라고 할때,


 - ^wn=창을 수평 나누기


 - ^ww=창 간 이동


 - ^wo=커서가 있는 창을 제외한 모든 창 닫기


 - :e file -> 파일열기


 - :enew -> 빈문서열기


 - :[n]r file -> 편집중인 문서의 n라인 다음줄 부터 file의 내용 삽입


 - :[n]r! cmd -> 편집중인 문서의 n라인 다음줄 부터 cmd의 결과 삽입 


 - :n -> 커서를 n행으로 변경






* 사용자계정관련 


 - 생성 : useradd 계정명


 - 수정 : usermod 계정명


 - 삭제 : userdel 계정명(-r 옵션 사용시 완전삭제)


 - 생성 및 수정 옵션 : -p 패스워드, -u UID, -g GID, -c 코멘트, -d 디렉토리, -s 쉘, -mk 뼈대경로


 - 비밀번호 : passwd (관리자는 뒤에 계정명 입력하여 계정 비밀번호 변경가능)


 - /etc/passwd -> 계정명:UID:GID:코멘트(닉네임):/home/계정명:/bin/bash


 - /etc/shadow


 - /etc/group


 - /etc/gshadow


 - /home/->$HOM


 - /var/spool/mail/


 


* useradd - D 명령어


 - 위치 :/etc/default/useradd


 - GROUP=100 : -g


 - HOME=/home : -b


 - INACTIVE=-1 : -f


 - EXPIRE= : -e


 - SHELL=/bin/bash : -s


 - SKEL=/etc/skel


 - CREATE_MAIL_SPOOL=yes


 


* 그룹관련 명령어


 - 생성 : groupadd 그룹명(-g 그룹번호)


 - 삭제 : groupdel 그룹명


 - 계정 그룹 확인 : id 계정명


 


* linux shells(# call /t /etc/shells)


 - /bin/sh : 최초로 개발된 쉘(bourne)본쉘, 복구 기본쉘


 - /bin/bash : 리눅스에서 가장 많이 사용하고 있는 쉘, 오픈소스 기본응용쉘(bourne-again shell)


 - /sbin/nologin: 로그인 되지 않는것, 시스템 쉘


 - /bin/csh : C 쉘, C language 전용 기능쉘


 - /bin/tcsh : 확장 C쉘, tomcat(java)확장 기능쉘


 

소유자권한(rwx)그룹권한(rwx)아더권한(rwx)

- 권한이 없을 경우에 사용된다.

r : 읽기 권한

w : 쓰기 권한

x : 실행 권한




파일에 대한 권한 : 

r : 읽기 권한 (cat, tac, head, tail, head, less, vi, view ...)

- 파일 내용을 볼 수 있는 권한

w : 쓰기 권한 (cat, vi ...)

- 파일 내용을 수정(삭제,추가)할 수 있는 권한

x : 실행 권한 

- 파일을 실행할 수 있는 권한

- 바이너리 파일 : 컴파일해서 나온 실행파일

- 쉘 스크립트 파일 : 텍스트 파일인 인터프리터 실행파일




디렉토리에 대한 권한 :

r : 읽기 권한 (ls)

- 디렉토리에서 파일 리스트를 볼 수 있는 권한

w : 쓰기 권한 (cat, touch, rm, rmdir, vi ...)

- 디렉토리에서 수정(생성,삭제)할 수 있는 권한 

x : 실행 권한 (cd, rm, cat, vi, touch ...)

- 디렉토리에 들어갈 수 있는 권한




* chmod 권한변경


 - 실행 : chmod [옵션]+[8진수 숫자] [파일명] [--추가옵션]


 - 옵션 : u = user, g = group, o = other, a = all


 - ▽권한값 표(r=읽기, w=쓰기, x=실행)


   [파일속성][소유자][그  룹][타  인]


   d,b,c,-,l  4 2 1   4 2 1   4 2 1


       -      r w x   r w x   r w x


 


* chown 소유권변경


 - 실행 : chown [소유자]:[그룹] [경로]


 - 옵션 : -R 하위폴더 전부 소유권 변경


 


* 특수소유권 관련


 - Set UID 4777 rws rwx rwx

파일 : o

디렉토리 : x

사용자가 실행파일을 실행 시 소유자의 권한으로 실행하는 권한


 - Set GID 2777 rwx rws rwx

파일 : o

디렉토리 : o

사용자가 실행파일을 실행 시 그룹의 권한으로 실행하는 권한


 - Set Bit 1777 rwx rwx rwt

파일 : x

디렉토리 : o

디렉토리에 stickbit 가 설정되어 있으면 공유디렉토리로 사용한다.

자신이 만든 파일에 대해서 자신만이 파일을 지울 수 있는 설정이다.

대표적인 디렉토리가 /tmp 디렉토리가 있다.



 


* UMASK


 - 파일 및 디렉터리 생성시 기본적으로 적용될 사용권한.


 - 폴더 777, 파일 666으로 시작.


 - 사용 umask 0000, 확인 umask -s


 


* acl 접근 제어 목록


 - 확인 : getfacl /dir/file


 - 설정 : setfacl -m u,g,o:user:perm /file/dir


 - 하나씩 삭제 : setfacl -x u,g,o:user /file/dir


 - 초기화 : setfacl -b /file/dir


 


* 압축하기


 - gzip, bzip2, xz : 용량 절약, 원본 유지가 안됨, 단일파일만 가능


 - tar : tar [option] [archiving-file_name.tar] [source]


 - tar 옵션 : c=생성, v=과정출력, z=gzip 압축 및 해제, f=파일 이름 지정, x=해제


 - 압축(ex) : tar cvzf /파일명.tar.gz /압축경로


 - 해제(ex) : tar xvzf /파일명.tar.gz -C /해제위치


 


* rpm


 - 확인 : rpm -qa | grep [패키지명]


 - 설치 : rpm -ivh [--nodeps] [패키지명... .rpm]


 - 삭제 : rpm -e [패키지명]


 


* rpm공식(유의사항)


 - 모든 작업은 반드시 동일한 버전이어야 한다.


 - 의존성 오류(Failed dependencies)를 절대 무시 하지 말자


 - 의존성을 제기한 패키지를 먼저 작업한다.


 - 가급적 의종선 무시(--nodeps)를 사용하지 말자


 - 'lib'로 시작하고 중간에 '.so'가 있는 경우는 무시해도 된다.


 - 디렉터리로 시작하는것들(/usr/bin/)은 패키지가 아니므로 무시한다.


 - 대표 패키지 부터 작업한다.


 - 나머지는 화면에 보이는 순서대로 작업한다.


 


*yum


 - 업데이트 : yum [-y] update


 - 설치 : yum [-y] install [패키지명][*]


 - 삭제 : yum [-y] remove [패키지명][*]


 - 삭제는 yum을 사용하지 말고 rpm으로 삭제하세요. 의존성 관련 pkg 삭제 우려있습니다.


 - 유의사항1 : 인터넷이 되야 사용가능


 - 유의사항2 : 설치파일명과 비슷한 이름이 없는 곳에서 명령어 실행


* HDD & 파티션


 - 작업 = 순차적, 삭제 = 역순


 - primary partition MAX = 4, extended partition MAX = 1, Logical partition MAX = 무한대


 - 4개 이상 파티션을 나눌 경우 프라이머리 파티션 한 개를 익스텐디드 파티션으로 잡은 후 익스텐디드 파티션 내에 로지컬 파티션으로 나눔.


 


* 시스템 종료 - shutdown -h now / init 0 / halt / poweroff


* 시스템 재시작 - shutdown -r now / init 6 / reboot


 


* fdisk


 - fdisk [옵션] [디스크]


 - 보기 : fdisk -l


 - 생성 : fdisk [디스크] => n


 


* 포맷


 - mkfs.xfs [디스크]


 - mkfs -t xfs [디스크]


 


* 마운트


 - mount [장치] [디렉터리]


 - umount [장치] or [디렉터리]


 - 확인 : mount, df -h


 - 유의사항1 : mount point는 임의의 디렉터리여야 한다.('사용자' 및 '시스템'과 관련된 디렉터리를 mount point로 지정해서는 절대 안된가.)


 - 유의사항2 : umount 명령시 경로는 현재 마운트된 디렉터리만 아니면 어떤곳이던 상관없다.


 - 유의사항3 : 한개의 파티션은 반드시 한개의 mount point만 사용한다.


 - 유의사항4 : 마운트시 작업할 대상은 반드시 파티션(primary, logical)만 대상이 된다.


 - 유의사항5 : 하드디크스와 확장 파티션(extended)은 작업 대상이 될수 없다.


 


* 분실된 비번 재설정


 1. 부팅시 or 재부팅시 grub mode에서 최신 kernel을 선택후 'e'를 누른다.


 2. 방향키로 linux16까지 간후 'end'키를 눌러 앞쪽에 있는 'rhgb'까지 지운 후 init=/bin/bash를 입력, 앞의 'ro'를 'rw'로 변경 후 ctrl+x를 눌러 부팅시킨다.


 3. passwd 명령어를 실행하여 비밀번호 변경


 4. exec /sbin/init 로 재부팅한다.


 


* grub에 암호 설정


 1. vi /etc/grub.d/00_header 후 파일 최하단 안에 아래와 같이 설정


cat << EOF


set superusers="grubadmin"


password grubadmin 1234


EOF


 2. grub2-mkconfig -o /boot/grub2/grub.cfg 실행


 3. 재부팅 후 확인


 /usr/lib/systemd/system/ctrl-alt-del.target



* 프로세스 관련


 - 확인 : ps -ef, top, pstree -pn


UID PID PPID     C     STIME TTY   TIME   CMD


      사용자  Process  Parent   CPU    Start  Terminal  작업시간  명령어


                ID       PID            Time


         1       4               6       2       3          5      4


 - 설명 : (1)사용자가 (2)시간에 (3)으로 접속 후 (4)명령어로 동작한시간이 (5)만큼이고 이때 CPU점유율은 (6)만큼이다.


 - 끄기 : kill [PID], 접속자 끄기 : killall -u [현재 접속한 계정명]


 


* 접속자 관련


 - 확인 : who, 자세히 : w


 - 내계정 확인 : whoami


 


* /etc/inittab


 - 실행 : init [숫자]


 - init 0 : /lib/systemd/system/runlevel0.target -> poweroff.target


 - init 1 : /lib/systemd/system/runlevel1.target -> rescue.target


 - init 2 : /lib/systemd/system/runlevel2.target -> multi-user.target


 - init 3 : /lib/systemd/system/runlevel3.target -> multi-user.target


 - init 4 : /lib/systemd/system/runlevel4.target -> multi-user.target


 - init 5 : /lib/systemd/system/runlevel5.target -> graphical.target


 - init 6 : /lib/systemd/system/runlevel6.target -> reboot.target


 


 - 정상 부팅상태


   확인 : systemctl get-default


   설정 : systemctl set-default TARGET.target


 


 - 안전모드


   확인 : ls -l /etc/systemd/system/default.target


   설정 : ln -sf /lib/systemd/system/target.target /etc/systemd/system/default.target

clear

   그래픽 : ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target




TUI 와 GUI 모드의 이해

- TUI 이해

주로 서버에서 많이 사용하는 환경이다. 

일반적으로 그래픽이 없는 텍스트 형태로 운영하는 서버의 인터페이스를 말한다.


- GUI Xwindow 이해

주로 클라이언트에서 많이 사용하는 환경이다. 

일반적으로 그래픽 형태로 운영하는 클라이언트의 인터페이스를 말한다.

리눅스에서의 그래픽을 Xwindow 라는 방식으로 제공한다.



장치명에 대한 이해

/dev/sda : 첫 번째 HDD

/dev/sdb : 두 번째 HDD



터미널 장치 이름 : 

/dev/tty1, /dev/tty2, /dev/tty3 ...

/dev/pts/0, /dev/pts/1, /dev/pts/2 ...



하드디스크 장치 이름 :

/dev/[디스크종류]d[하드순서][파티션순서]

ex) /dev/sda1, /dev/sdb2 ...



IDE 디스크 : 

 IDE 방식 : /dev/hda, /dev/hdb, /dev/hdc, /dev/hdd ...

 SCSI,SATA,SAS,SSD : /dev/sda, /dev/sdb, /dev/sdc, /dev/sdd ... 



파티션 번호 :

/dev/sda1, /dev/sda2, /dev/sda3 ...

/dev/hda1, /dev/hda2 /dev/hda3 ...



연결방식에 따른 차이 :

a부터 차례대로 붙게됨 /dev/sda, /dev/sdb, /dev/sdc



CD-ROM : 

/dev/hd, /dev/hdc 등등



fdisk : 용량 2T 까지만 인식

parted : 대용량 사용할 경우



쉘에 대한 이해와 명령어에 대한 이해

쉘이란 명령어 해석기로써 커널과 사용자 중간에 위치해서 사용자가 입력한 명령어를 해석해서 커널에 전달한다.

커널은 쉘에서 전달받은 명령어로 하드웨어를 제어한다.



사용자 > 쉘 > 커널 > 하드웨어



쉘의 종류 : Bash Shell, Bourne Shell, Korn Shell, C Shell, TC Shell



가장 많이 사용되는 리눅스 쉘

Bourne Shell 을 기반으로 하며 C Shell 과 Korn Shell 의 장점을 결합해서 명령어 히스토리,

명령어 완성기능 명령어 치환, 명령행 편집등을 지원하고 POSIX와도 호환된다.



- 명령행 편집 기능

^a : 명령행의 처음으로 이동

^e : 명령행의 끝으로 이동

^w : 명령행 왼쪽 단어 삭제

^u : 명령행 전체 삭제

^k : 명령행 오른쪽 전체 삭제

^r : 명령행 히스토리 검색



- 히스토리 기능

히스토리 저장 파일명 : $HOME/.bash_history

이전에 사용했던 명령어를 기억하는 기능으로 방향키로 이전 명령어를 확인할 수 있다.

위 방향키  : 이전 명령어

아래 방향키 : 다음 명령어

history : 기억하고 있는 명령어 전체 출력

history 번호 : 기억하고 있는 명령어 최근 개수만큼 출력 

ex) history 5 : 최근 명령어 5개 출력

!! : 이전 명령어 실행

!번호 : 번호에 해당하는 명령어 실행

^r : (reverse-i-search)`': 명령어 



환경변수 : 쉘에서 특수하게 쓰이는 변수



히스토리 관련 환경변수

HISTCONTROL : 중복되는 명령어 기록 유무

HISTFILE : 히스토리 파일 경로

HISTFILESIZE : 히스토리가 저장되는 파일 크기

HISTSIZE : 히스토리에 저장되는 명령어 개수


# set | grep HIST

HISTCONTROL=ignoredups

HISTFILE=/root/.bash_history

HISTFILESIZE=1000

HISTSIZE=1000



명령어에 대한 옵션 이해와 도움말 이해

내용 : 명령어의 이해


명령어 :  <tab> <tab> 을 두번 치면 사용할 수 있는 명령어의 전체 개수가 나온다.  a ~ z 


명령어가 들어있는 디렉토리 :

/bin 

/sbin 

/usr/bin 

/usr/sbin 

/usr/local/bin 

/usr/local/sbin 

/usr/X11R6/bin


프롬프트 : 사용자의 명령어를 기다리면서 대기하는 표시 

프롬프트의 구조

[root@localhost ~]#

  |             |        |    |

  |             |        |     +- 계정종류 (# -> 관리자, $ -> 일반유저) 

  |             |        +--- 디렉토리 경로명

  |              +--------- 호스트명(FQDN : hostname.domainname ex)www.naver.com, ftp.daum.net )

  +----------------- 로그인 계정명



프롬프트 변경하기

프롬프트는 환경변수 PS1에 담겨있다.

\u : 계정명

\h : 호스트명

\W : 현재 위치 (마지막 경로만 표시)

\t : 시간

\H : 호스트명.도메인명

\w : 현재 위치 (경로 전체 표시)

\\$ : 계정에 따라 # or $ 로 표시



- 디렉토리 구조의 이해

디렉토리 구조 

/               최상의 루트디렉토리

|-- bin         기본적인 실행 명령어가 있는 디렉토리 (일반유저가 실행할 수 있는 명령어가 들어있다.)

|-- boot        부팅에 관련된 파일을 저장하고 있는 디렉토리  

|-- dev         장치(device) 파일을 저장하고 있는 디렉토리

|-- etc         환경설정 파일을 저장하고 있는 디렉토리

|-- home        일반 사용자의 홈디렉토리가 모여있는 디렉토리

|-- lib         프로그램(C, C++등)에 필요한 각종 라이브러리가 있는 디렉토리 (32bit)

|-- lib64       프로그램(C, C++등)에 필요한 각종 라이브러리가 있는 디렉토리 (64bit)

|-- lost+found  부팅시 파일시스템에 문제가 생길 경우 fsck명령어로 복구할 때 사용되는 디렉토리, 파티션 마다 하나씩 존재

|-- media       USB / DVD 마운트를 위한 디렉토리  

|-- misc        시스템 아키텍처에 독립적인 자료들이 저장되는 디렉토리 

|-- mnt         플로피, CD-ROM등 마운트를 위한 디렉토리

|-- net

|-- opt         애드온 소프트웨어를 설치할 수 있는 디렉토리

|-- proc        가상 디렉토리로써 실행중인 프로세스나 현재 시스템의 정보를 보여준다. (HDD 에 존재하지 않고 메모리에 있는 것임)

|-- root        관리자(root 사용자)의 홈디렉토리

|-- sbin        시스템관리자용 명령어가 들어있는 디렉토리 

|-- selinux     SELinux 에 관련된 디렉토리 (보안 관련)

|-- srv         서비스 디렉토리로 ftp,http,cvs 등의 데이터 존재

|-- sys         시스템이 필요로하는 파일들이 있는 디렉토리

|-- tmp         임시 파일들이 저장을 위한 디렉토리

|-- usr -- bin  <-- 명령어 (일반유저 실행 O)

|       -- sbin <-- 명령어 (일반유저 실행 O,X)

|       -- local  <-- 소프트웨어 설치시 이 디렉토리에 저장

|       -- bin  <-- 명령어 (일반유저 실행 O)

|       -- sbin <-- 명령어 (일반유저 실행 X)

|       -- X11R6/bin <-- Xwindow 실행 명령어

`-- var         log파일등 수시로 업데이트 되는 파일들이 있는 디렉토리

        -- log  각종 log파일이 저장되는 디렉토리




- 절대경로와 상대경로

파일을 표현하는 방법으로 두 가지가 존재한다.

절대경로 :  / 디렉토리에서 시작해서 파일을 표현

상대경로 : 현재 디렉토리에서 시작해서 파일을 표현

.  : 현재 디렉토리를 표현하는 문자

.. : 상위 디렉토리를 표현하는 문자

/  : 최상위 디렉토리를 표현하는 문자




- 파일 종류의 이해

- : 일반 파일 (txt, jpg, gif)

b : 블록 장치(block device) 파일(주로 디스크, /dev/sda )

c : 문자 장치(character device) 파일(주로 입/출력에 사용, /dev/console 등)

d : 디렉토리 

p : 파이프 (통신용)

s : 소켓 (통신용)

l : 심볼릭 링크 (윈도우 바로가기)




- 파일 MAC time 확인

ls -l  : 파일의 수정시간

ls -lu : 파일의 접근시간

ls -lc : 파일의 변경시간

stat   : 파일의 정보 확인



- 특수 파일 만들기

mknod

Usage: mknod [OPTION]... NAME TYPE [MAJOR MINOR]




mkfifo

Usage: mkfifo [OPTION]... NAME...




APM 연동 시 설정파일들

서로 설정파일의 확장자가 틀린 것을 확장자 conf 로 통일할 수 있다.

아파치 웹서버 설정파일 : /etc/httpd.conf

PHP 설정파일 : /etc/php.ini

mysql 설정파일 : /etc/my.cnf




- 파일 심볼릭 링크 걸기 

ln -s (LiNk)

사용법 : ln -s 원본파일 링크파일 

심볼릭 링크를 쓰는 이유

명령어의 호환성을 유지하기 위해 심볼릭 링크를 사용한다.



심볼릭 링크와 하드 링크의 차이점


                  하드링크              심볼릭링크

----------------------------------------------------------------

ln 옵션           없음                   -s 

하드링크 개수     링크마다 1 증가       링크 개수 증가 안함. 

원본 파일 용량    용량 X                용량 있음(파일명이 용량)

다른 파일시스템   링크 불가             링크 가능

원본 파일 내용    접근 가능             접근 가능

파일 내용 수정    원본파일 내용이 수정  원본파일 내용이 수정

원본 파일 삭제    접근 가능             접근 불가 (고아링크)

디렉토리          링크 불가             링크 가능

퍼미션            퍼미션 의미있음       의미없음(원본의 권한을 따름)

링크 생성         권한이 있어야 함      권한이 없어도 링크가 가능





파이프와 리다이렉션

- 파이프의 이해

파이프는 프로세스(명령어끼리) 통신하는 하는 방법이다.

아래는 명령어1의 출력 결과를 명령어2가 입력으로 받고 다시 명령어3으로 

출력해서 명령어3이 입력으로 받는 과정이다.


파이프 사용법 : 명령어1 | 명령어2 | 명령어3 ...




'Linux > Linux (CentOS)' 카테고리의 다른 글

Linux 에 HDD 추가하기  (0) 2018.07.05
심볼릭 링크 하드링크  (0) 2018.07.05
쉘스크립트  (0) 2018.07.04
패키지 관리  (0) 2018.07.04
프로세스  (0) 2018.07.04

설정

트랙백

댓글