목차
1. Linux란
- 탄생
- 배포판 종류
2. Linux 루트(/) 디렉터리
3. Linux 기본 명령어
- 프롬프트
- 사용명
- ls
- mkdir
- rmdir
- 파일만들기
- rm
- cd
- cp
- mv
4. 링크(link)
- HardLink
- SoftLink
- HardLink, SoftLink 정리
- inode 삭제 방법
- 문제풀이
Linux
탄생
- 1990년 핀란드 헬싱키 대학의 리누즈 토발즈 개발
- Unix 교육용 운영체제 Minix를 x86시스템에서 구동 불가
=> Linux : Minix를 x86 cpu가 장착된 컴퓨터에서 사용가능하게 만든 버전
배포판 종류
- Kernel은 동일, 단 Application의 종류가 틀리다 : kernel.org에서 다운로드 가능
- Debian 계열(스마트폰과 관련)
- Debian : Debian.org
: Ubuntu.com
- Slackware 계열
- Slackware : slackware.com
: suse.com
- Redhat 계열
- Redhat : redhat.com
- Fedora : getfedora.org
- CentOS : wiki.centos.org
- Rockylinux : rockylinux.org (CentOS의 대안으로 각광)
Root(/) Directory
- boot : 부트
- bin : 명령어들의 모임
- sbin : 관리시스템 관련 명령어 모음
- etc : 리눅스 중요 설정파일
- home : 사용자의 홈 디렉터리
- var : 가변 디렉터리 / 시스템의 중요 로그파일
- tmp : 임시 디렉터리 / 파일 압축 해제할 때 임시로 풀어지는 파일들
- lib(64) : 함수의 모음(주로 링크해서 사용)
- root : 리눅스의 최고 관리자는 root디렉터리에 있게된다
- usr : 사용자가 새로 설치되는 프로그램 저장
- proc : 리눅스 커널의 메모리에 올라간 상태 정보 확인/ 메모리 정보 확인 가능
- dev : 리눅스에 필요한 각종 장치들
- mnt / opt : 외부장비 마운트, 광학 파일 / 보통은 비어있음
- media : 미디어 파일
Linux 기본 명령어
프롬프트
- [root @ centos7-1 ~] #
로그인사용자 컴퓨터이름(hostname) 현재디렉터리 관리자($면 일반 사용자)
사용명
- # 명령어 --help 롱옵션 : 옵션의 fullname
- # 명령어 -a 숏옵션 : 옵션 축약명
ls
- ls(list) : 디렉터리 내용 출력
- ls -a(all) : 모든(숨김) 파일 및 디렉터리 출력 / 공통 옵션
- 리눅스는 파일앞에 .을 붙히면 숨김파일이 된다
- ls -l : 파일 및 디렉터리의 속성정보(메타 데이터 정보) 출력
- ls -h : 파일이나 디렉터리의 사이즈를 가독성 좋게 변경해서 출력 / 공통 옵션
- ls -lh같이 옵션을 같이 조합해서 사용할 수도 있다
- ls -i : 파일이나 디렉터리의 inode number 출력
- inode number : 리눅스에서 파일이나 디렉터리를 관리하는 고유번호
- ls -R : 디렉터리의 하위 디렉터리 및 파일 목록 나열
- 예제를 위해 a 디렉터리와 b 디렉터리를 생성하였음
mkdir
- mkdir(make directory) : 디렉터리 생성
rmdir
- rmdir(remove directory) : 디렉터리 삭제
- p 옵션을 사용할 때 해당 경로에 파일이 존재하면 파일이 존재하는 디렉터리의 하위디렉터리까지만 삭제
파일 만들기
- touch : 파일이나 디렉터리의 시간정보 변경 / 0 byte짜리 파일 생성
- touch - t : 파일의 시간 정보 변경
- # touch -t 시간정보 파일명 / touch -t 202202151100.00 파일명
- touch -c : 파일 생성하는 건 동일하나 파일이 없는 경우에는 생성x
- cat > : cat은 파일의 내용을 출력하는 명령어이지만
redirection(>)를 추가하여 표준 출력 방향을 변경
- 컴퓨터 시스템의 표준 출력은 모니터이다
- cat > 사용 후, 내용을 작성이 끝나면 enter를 친 후 ctrl+d로 저장
- cat >> 를 통해 내용을 추가할 수 있다
- cat >> 파일 이름 << END
- 스크립스 사용시에는 ctrl+d를 사용할 수 있는 방법이 없으므로
- vi 편집기 : vi 편집기를 통해 파일을 만들 수 있다
rm
- rm : 파일 삭제 명령어
- rm -f(force) : 강제로 삭제 / 공통 옵션
- rm -r : 디렉터리까지 삭제(하위 디렉터리 포함)
- rm -rf로 결합해서 사용 가능(쓸 때는 항상 조심)
cd
- cd(change directory) : 디렉터리 이동
- 절대경로 : 최상위 디렉터리(/)부터 경로 지정, 사용자가 어느 디렉터리에 있던지 경로가 동일
- 상대경로 : 사용자가 위치하는 디렉터리에 따라 경로 지정
( . 는 현재 디렉터리 ..는 바로 위 상위 디렉터리로 이동)
- cd - : 바로 직전 작업 디렉터리 경로로 감
- cd ~ : login 한 사용자의 홈 디렉터리로 간다
cp
- cp(copy) : 파일 복사
- cp -a : 파일 속성(메타 데이터) 정보까지 복사
- cp -r : 디렉터리 복사
- 복사본의 이름을 지정할 경우 복사본은 이름이 변경되고, 원본 파일 및 디렉터리는 보존 된다.
mv
- mv(move) : 파일 및 디렉터리 이동
링크
- ln(link) : inode number가 동일한 완벽하게 같은 파일 생성
HardLink
- inode number까지 동일
- 사용 이유 : 리눅스 라이브러리 쓸 때 사용(애플리케이션 사이즈를 줄일 수 있다)
- 위험한 점 : 원본이건 사본이건 둘 다 수정이 된다
SymbolicLink(SoftLink)
- 바로가기
- inode number가 다르다
- 원본파일을 지우면 링크가 끊긴다
- 같은 이름의 파일을 또 만들면 살아난다
- 심볼릭 링크 시 사본 위치(뒤에 적는 위치)를 기준으로 원본 위치를 맞춰야 한다
하드링크, 심볼릭 링크 정리
- 리눅스엔 3가지 영역이 존재(Name, Inode, Data)
ex) 하드링크시,
name = a.txt / inode = 1 / data = a
name = aa.txt / inode = 1(공유) / data = a
-> a.txt를 지웠다고 aa.txt에 영향을 주지는 않는다. name만 지우는 것
- 심볼릭 링크는 원본파일과 inode도 다르므로 심볼릭 링크 한 것은
원본 파일의 포인터(주소)를 바라보는 것
- 주소를 가져오므로 원본파일이 깨지면 사용이 안되는 것
inode 삭제 하는 법
- 살짝 알아만 두자!
- 링크된 inode를 찾고
# find /1/2/3 -inum 356
# find /1/2/3 -inum 356 -exec rm {} \;
링크 문제 풀이
1. /a/b/c/d/e 디렉터리 생성
현재 여러분은 /a/b 디렉터리에 있습니다.
/a/b/c/test.txt 파일 생성합니다.
심볼릭링크 작성 합니다.
/a/b/c/test.txt 파일을 /a/test1.txt 로 단 절대경로 사용금지, 상대경로로만 작성하세요.
2. /1/2/3/4/5 디렉터리 생성
여러분은 /1/2/3디렉터리에 있습니다.
/1/2/3/4/a.txt 파일 생성
심볼릭 링크 생성 /1/b.txt 단 상대 경로로만 작성을 합니다.
3. /aa/bb/cc/dd/ee 디렉터리 생성
여러분은 /aa/bb/cc 디렉터리에 위치하고 있습니다.
/aa/bb/cc/dd/ee/1.txt 파일 생성
심볼릭 링크 작성 /aa/2.txt 로 단 상대 경로만 사용합니다.
4. a/b/c/d/e 디렉터리를 한번에 생성
여러분은 c 디렉터리에 위치합니다
a/b 디렉터리에 a.txt를 생성합니다
심볼릭 링크로 사본파일은 a/b/c/d/b.txt로 생성합니다