하드디스크 하나를 더 추가 한 후 실습 진행

전체적인 파티션 구성을 확인합니다. sdb가 추가된 것 확인

 

fdisk를 사용하여 sdb하드의 파티션을 나눠준다.

 

sdb1~3까지 모두 파일 시스템을 탑재해준다.

 

만들어준 파티션을 마운트 해준다.

 

마운트한 파티션들 확인

 

'리눅스' 카테고리의 다른 글

LVM 실습  (0) 2022.10.19
LVM (Logical Volume Manager)  (0) 2022.10.19
디스크  (0) 2022.10.18
권한  (0) 2022.10.17
사용자 계정 실습  (0) 2022.10.17

하드디스크의 물리적 구조

- 플래터와 헤드로 구성

- 플래터(platter)

     실제 자료가 저장되는 매체

     하나의 디스크에는 여러 장의 플래터가 들어있고, 하나로 묶여서 한 방향으로 회전

     플래터가 손상되면 배드 섹터(bad sector)가 발생하거나 플래터 전체를 사용할 수 없음

 

-헤드(head)

     플래터의 자료를 기록하는 펜

     플래터의 데이터를 입력/수정/삭제할/수정/ 수 있도록 만들어주는 도구

 

하드디스크의 논리적 구조

- 플래터는 트랙과 실린더라는 개념으로 나누고 트랙과 실린더가 교차되는 영역을 섹터라고 부른다.

- 하나의 하드디스크를 여러 개의 논리적인 영역으로 분할한 파티션이라는 단위로 장치를 사용

     > 경우에 따라 디스크 한 개 전체 용량을 하나의 파티션으로 생성하여 사용하기도 한다.

 

- 트랙(track)

플래터 전체 면적을 동심원을 기준으로 나눴을 때 나오는 영역

 

- 실린더(cylinder)

플래터 전체 면적을 반지름 선을 기준으로 나눴을 때 나오는 영역

 

- 섹터(sector)

트랙과 실린더가 교차되면서 나오는 영역

실제 자료가 저장되는 영역(1 sector = 512 byte)

 

- 파티션(partition)

연속된 섹터들의 집합체

실제로 사용되는 장치 영역(ex. c드라이브, d드라이브 등은 각각 하나의 파티션)

[ 출처 https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=cnd1417&logNo=220485877877 ]

 

Partition Table

MBR의 경우 파티션 테이블은 총 4개로 구성되어 있고, 각각의 파티션 테이블은 16byte씩 정의 되어 있다. (64 byte)

(, 확장 파티션을 이용할 경우 필요에 따라 마음대로 파티션을 생성할 수 있다.)

 

파티션의 종류

- primary partition(주 영역)

     - 실제 데이터를 저장, 운영체제 설치가 가능한 Partition.

     - Partition 생성 시 MBR Partition table 16byte가 소모.

     - 최소 1개부터 최대 4개까지 생성 가능.

 

- extended partition(확장 영역)

     - 실제 데이터 저장 불가, 부족한 Partition table 영역을 확장 시키는 용도로 사용.

     - 논리 영역을 담는 바구니 역할.

     - 1개만 생성 가능하며, MBR Partition Table 16byte가 소모.

 

- logical partition(논리 영역)

- 확장 영역을 갖는 범위 안에 생성되는 Partition

- 실제 데이터 저장 가능, 운영체제 설치 불가능.

- 제한 없이 생성 할 수 있음(확장 영역의 Disk 할당 용량만큼)

 

디스크/파티션 이름 붙는 방식

- 디스크가 추가되거나 파티션이 생성되어 운영체제가 그 장치를 인식하게 되면

   /dev 디렉토리 내부에 장치 이름으로 된 파일이 자동으로 생성되고, 그 파일을 장치 파일이라고 부른다.

 

- 해당 장치를 다루기 위해 장치의 이름이 어떤 식으로 부여되는지 알아야 한다.

 

- 디스크

     sd<?>

     sd 뒤에 알파벳 한 글자가 붙어서 디스크의 이름 구성(ex. sda, sdb, sdc )

     알파벳이 붙는 순서는 메인보드의 슬롯 번호를 따라서 system이 자동으로 할당

     * CD-Rom : sr0

 

- 파티션

     HDD이름<?>

     디스크 이름 뒤에 숫자가 붙어서 파티션의 이름 구섬

        > primary/extended : 1~4, 파티션 생성 과정에서 사용자가 지정

           logical : 5~ , 파티션 생성 과정에서 system이 순차적으로 할당

 

MBR

- 종합적인 정보를 가지고 있는 레코드

- 부팅되면 운영체제를 Load

- 각 파티션의 BR(Boot Record)영역에 가서 모두 부팅해준다.

- 512byte 크기를 갖는다.

 

File System

- 파일의 물리적 위치를 저장하여 Data에 빠른 Access가 가능하도록 도와준다.

- Meta 영역 / Data 영역으로 구분된다.

- Meta 영역 : 데이터의 물리적 위치정보를 기억하는 영역

- Data 영역 : 실게 데이터가 저장되는 영역

 

Format

- 파일 시스템을 구성하거나 재구성하는 행위

- Hiigh-Level

     > Quick : Meta영역 부분만 재구성

     > Normal: Quick + 물리적 디스크 오류 검사 (Bad Sector 검사)

- Low-Level

     > Factory Default : 공장 초기화 (모든 영역을 “0”이라는 값으로 채움)

HDD -> Partition -> File system 순서대로 작업을 해야한다.

'리눅스' 카테고리의 다른 글

LVM (Logical Volume Manager)  (0) 2022.10.19
파티션 실습  (0) 2022.10.19
권한  (0) 2022.10.17
사용자 계정 실습  (0) 2022.10.17
사용자 계정  (1) 2022.10.17

권한

- 파일/파일/디렉터리를 사용할 수 있는지 정하는 개념(or )

- 허가권과 소유권으로 구분

    > 허가권 + 소유권 = 권한

 

허가권

- ls -l 명령을 입력했을 때 나오는 출력 내용 중 개체 형식을 나타내는 첫 글자 뒤에 오는 9개의 글자가 허가권

- 8가지 문자로 권한을 표현 : r, w, x, -, s, S, t, T

        r, w, x, - : 일반 권한 표현 문자

        s, S, t, T : 특수 권한 표현 문자

- 일반 권한 표현 문자의 의미

 r : 읽기, w : 쓰기, x : 실행/접근, - : 권한 없음
r 파일 파일 내용 읽기 ; cat, head, tail, more, less, vi 열었을때 등
디렉터리 디렉토리 내부 목록 확인 ; ls, GUI환경에서 폴더 들어 갔을때 등
w 파일 파일 내용 수정 ; 문서 편집 후 저장, > 기호를 이용 하여 덮어쓰기/내용추가 등
디렉터리 디렉토리 내부 목록 수정 ; 디렉토리 내부 하위 파일/ 디렉토리 생성/삭제/수정 등
x 파일 실행 ; 파일에 x가 없으면 일반 문서 파일, x가 있으면 실행 파일 (ex. 명령어)
디렉터리 접근 ; 디렉토리에 x가 없으면 디렉토리 자체 및 내부의 항목들을 사용할 수 없다.

 

- 9자리의 권한 문자는 기본적으로 r w x 가 세 번 반복되는 형식이고, 없는 권한은 - 대체

 

9자리의 권한 문자를 3개씩 끊어서 Owner, Group, Other 영역으로 구분
Owner 소유자를 위한 권한(소유자 : 파일/디렉토리를 소유 중인 사용자)
Group 그룹 사용자를 위한 권한(그룹 사용자 : 파일/디렉토리를 소유 중인 그룹에 소속된 사용자)
Other 그 외 사용자를 위한 권한(그 외 사용자 : Owner, Group 둘 다 해 당되지 않는 사용자)

* 3개의 영역중 어느 영역의 권한을 적용받는지에 대한 내용은 소유권에 서 결정

 

ex> Owner | Group | Other

        r w x       r - x      r - x

 

- 권한 표현 방법

1. 문자를 이용한 방법

r, w, x, - : 문자를 차례대로 읽어주는 방법

 

 

2. 숫자를 이용한 방법

문자를 바탕으로 숫자 값을 계산

   * 계산 방법

     1) 영역 분리

     2) r = 4, w = 2, x = 1, - = 0이라는 값을 각 문자에 대입 후 영역별로 합 계산

     3) 각 영역에서 구한 합에 Owner : 100, Group : 10, Other : 1을 곱해 서 전체 합을 계산

 

ex)

1. rwx r-x r-x > 755

Owner Group Other
r w x r - x r - x
4 2 1 4 0 1 4 0 1
7 5 5
x100 x10 x1
700 50 5

 

2. rw- r-- r-- > 644

Owner Group Other
r w - r - - r - -
4 2 0 4 0 0 4 0 0
6 4 4
x100 x10 x1
600 40 4

 

- 허가권 변경

        chmod [옵션] 권한값 대상 [대상] ... [대상]

 

   * 권한 값을 숫자 or 문자로 입력

     숫자는 전체 권한 값을 입력 > numeric method

     문자는 영역을 의미하는 문자에 권한 문자를 +,- 연산 > symbolic method

        ** symbolic method에서 사용하는 영역 문자

             u : owner

             g : group

             o : other

 

소유권

- 파일이나 디렉터리를 어느 사용자와 그룹이 소유하고 있는지 나타내는 권한

     > ls -l 명령으로 출력되는 정보 중 링크 개수 뒤에 나오는 사용자명과 그룹명이 소유권

- 소유권을 두 개의 영역으로 구분

     > 앞에 나오는 정보가 계정명(UID), 파일/파일/디렉터리를 소유하고 있는 사용자

        뒤에 나오는 정보가 그룹명(GID), 파일/파일/디렉터리를 소유하고 있는 그룹

 

- 소유권 변경

          chown [옵션] 권한 값 대상 [대상] ... [대상]

 

   * 권한 값 작성 방식( : 기호 대신. 기호. 사용 가능)

          UID >> 소유권의 UID 지정

          UID:GID >> 소유권의 UID, GID 지정

          UID: >> 소유권의 UID,GIDUID, GID를 특정 사용자의 UID, GID로 변경

          :GID >> 소유권의 GID 지정

 

허가권과 소유권이 적용되는 방식(★★★★★)

1. 작업 주체와 작업 대상의 UID, GID확인

     작업 주체: 작업을 수행하는(명령을 입력받은) 사용자 >> 사용자 정보 중 UID, GID(/etc/passwd 파일, id 명령)

     작업 대상: 작업(명령)의 대상이 되는 파일/디렉터리/디렉터리>> 소유권 UID, GID(ls 명령의 -l 옵션이나 -n 옵션)

 

2. 작업 주체와 작업 대상의 UID, GID 비교

     1) UID 비교 >> UID 일치하면 허가권의 owner 영역 권한 적용, 일치하지 않으GID 비교

     2) GID 비교 >> GID 일치하면 허가권의 group 영역 권한 적용, 일치하지 않으면 허가권의 other영역 권한 적용

 

특수권한

- 특수한 동작을 하는 권한

   > 특수한 목적으로 사용하는 권한

 

- setUID, setGID, sticky bit 3가지의 특수 권한이 있다.

 

4777 r w s r w x r w x : setUID (안 쓰는 걸 강추)

2777 r w x r w s r w x : setGID

1777 r w x r w x r w t : sticky bit

   * x 위치의 문자가 s/t로 변경(x가 있는 상태였다면 소문자 s/t, x가 없는 상태였다면 대문자 S/T)

ex>

rws r-x r-x : 4755

rwS r-x r-x : 4655

 

sticky bit

- 디렉터리에 설정하는 특수 권한

- 디렉터리 내부에 파일/디렉터리 생성은 권한만 있으면 누구나 가능하지만

파일/디렉터리 삭제는 대상의 소유자(소유권의 UID)와 관리자만 가능

 

setUID

- 실행 파일에 설정하는 특수 권한

- 파일이 동작하는 동안 owner의 권한을 사용할 수 있도록 해주는 특수 권한

   > 동작하는 동안 owner가 된다라고 생각해도 큰 차이가 없다.

 

rpm

- redhat package manager; 패키지를 이용한 프로그램/서비스 관리

   * 패키지 : 프로그램을 나눠놓은 조각

- Linuxkernel부터 시작하여 모든 구성이 패키지로 이루어져 있고 패키지는 다른 패키지와 의존 관계에 놓여있는 경우가 많다.

   > 패키지 설치/삭제 과정에서 의존성 관련 오류가 굉장히 많이 나온다.

- rpmredhat에서 처음 만들어서 도입했고, redhat기반의 모든 Linux에서는 rpm명령어 사용

   > debian 기반의 Linux에서는 rpm이 아닌 dpkg 명령 사용

 

- 형식

   설치 : rpm -ivh 패키 지명-버전. 아키텍처. rpm

 

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

 

   삭제 : rpm -e 패키지명[-버전.아키텍처]

 

- 패키지 이름 구조

 

vim-filesystem-7.4.629-7.el7.x86_64

<----------------->|<----------->|<-------->

      패키지명          버전      아키텍처

 

1. 패키지명

- 패키지명은 한 단어이거나 - 기호를 이용한 여러 단어의 조합으로 구성

  (패키지명에 숫자만 단독으로 나오는 경우가 없기 때문에 버전과 구별 가능)

- 한 단어이면 해당 패키지로 설치되는 프로그램 or 서비스 이름을 나타낸다.

- 여러 단어이면 첫 단어가 설치되는 프로그램 or 서비스 이름이고 뒤에 이어지는 단어들이 세부 역할을 의미한다.

 

 

2. 버전

- 버전은 여러 가지 세부 버전으로 구성

7 major
4 minor
629 patch
7 release
el7 OS

* OS 버전 예시

el7 = CentOS 7 버전 전체

el7_9 = CentOS 7.9 버전

centos = 모든 버전의 CentOS

<생략> = 모든 종류/버전의 운영체제

 

3. 아키텍처

     CPUbit와 관계되어서 특정 수준의 CPU이상에서 사용 가능하다 라는 의미

        > CPU의 bit 수는 한 번에 처리 가능한 데이터의 bit

 

          32 bit : i386, i586 ,i686 (잘 사용하지 않음)

          64 bit : x86_64

          공용 : noarch

 

- 의존성 오류

1. 확인 방법

     A is needed by B : B에게 A가 필요하다.

 

1) 설치할 때

     (설치하려는 패키지가 B 위치에 출력)

     B를 설치하기 위해 A가 먼저 설치되어야 한다.

 

2) 삭제할 때

     (삭제하려는 패키지가 A 위치에 출력)

     B에게 A가 필요하기 때문에 A를 삭제할 수 없다.

 

2. 해결 방법

     1) 의존성 오류 메시지를 읽고 해당 내용 해결

 

     2) 의존성 오류를 무시하는 보조 옵션 --nodeps 사용

        > 패키지를 확인했을 때 중요 패키지이거나(삭제할 때) 찾을 수 없는 패키지라 (설치할 때) 의존성 오류를 무시한다.

 

3. 의존성 오류에서 패키지명이 아닌 다른 내용이 출력되면

     1) 파일의 절대 경로

        > 패키지에 해당 파일이 포함되어 있는 경우 (일반적으로 삭제할 때 출력)

           파일명을 패키지 이름처럼 읽으면 된다.

 

2) lib~~~.so.숫자(~~~)

     > ~~~ 부분이 패키지를 의미(설치/삭제 시 전부 출력)

        해당 의존성 오류를 검색하여 패키지명 확인

 

3) pkgconfig(~~~)

     > ~~~ 부분이 패키지를 의미(일반적으로 설치할 때 출력)

       해당 의존성 오류를 검색하여 패키지명 확인

 

yum

- Internet을 이용한 자동 패키지 관리

   > 반드시 Internet이 연결되어 있어야 사용 가능

 

- 의존성 오류까지 전부 해결

 

- 형식

yum [옵션] { install | update | remove } 패키지명
intstall  설치
update 업데이트
remove 삭제
history list 스냅샷과 같은 기능

* 옵션

-y : y/N 물어볼 때 자동으로 y 입력

 

※ yum clean all : 캐시 메모리를 삭제하는 명령어

     - 이전 작업이 중지되게 되면 캐시 메모리로 넘어가게 되는데 다른 명령어를 실행할 때 영향을 줄 수도 있기 때문에 캐시 메모리를 제거한 후 재연결을 한다.

'리눅스' 카테고리의 다른 글

파티션 실습  (0) 2022.10.19
디스크  (0) 2022.10.18
사용자 계정 실습  (0) 2022.10.17
사용자 계정  (1) 2022.10.17
VI 에디터  (0) 2022.10.13

# Useradd 실습

user1 계정은 아무 설정 없이 생성해주고 user2는 Test User라는 별칭을 넣고 계정을 생성 해준 후 tail을 사용하여 생성된 계정 정보를 확인 

 

backup 디렉터리를 생성 후 user3 계정의 디렉터리를 backup으로 설정 후 쉘까지 설정한 후 계정 생성

 

유저를 생성 할 때 skel은 myskel에 있는 파일을 사용하여 user4를 생성했을 때 myskel안의 파일들이 같이 생성

 

# Usermod 실습

-m을 사용하지 않으면 passwd에서는 이동이 되지만 실제 디렉터리는 이동되지 않는다.

 

# Userdel 실습

-r을 사용하지 않으면 계정은 삭제되지만 잔여물이 남는다.

 

user4의 흔적이 남아있는 것 확인

 

# Groupadd 실습

그룹을 생성하고 유저를 생성할 때 그룹을 지정하면 그 그룹 권한이 들어가는 것 확인

 

 

'리눅스' 카테고리의 다른 글

디스크  (0) 2022.10.18
권한  (0) 2022.10.17
사용자 계정  (1) 2022.10.17
VI 에디터  (0) 2022.10.13
기초 명령어  (0) 2022.10.12

사용자 & 그룹

- 사용자 계정이랑?

> 사람이 장치를 사용하기 위해 로그인하는 계정

> 운영체제를 사용하는 사람 개개인에게 생성해주는 계정

(각종 작업을 누가 했는지 식별하기 위해 사용자 개개인에게 생성)

> 사용자 계정을 이용하여 파일/디렉터리의/ 사용 권한 설정이 가능

(같은 파일을 a사용자는 열고 b사용자는 열 수 없게 지정 가능)

 

- 그룹이란?

> 사용자 계정을 묶어주기 위한 객체

(사용자 계정의 논리적인 집합체)

> 관리자가 주로 제어

(그룹 생성/수정/삭제, 그룹에 사용자 계정을 소속시키는 등)

> 그룹에 권한을 부여하여 그룹에 소속된 사용자들이 동일한 권한을 적용받을 수 있다.

 

사용자 계정

- 사용자 계정에 관련된 파일

1. /etc/passwd : 사용자의 일반 정보가 들어있는 파일

* 파일 내용 보는 방법 (구분자 ‘:’)

itbank:x:1000:1000:asd:/home/itbank:/bin/bash
itbank 사용자 ID, 뒤의 정보들이 어느 사용자의 정보인지 표시
x  암호, passwd 파일에는 비밀번호를 표시하지 않음
1000(왼쪽) UID, 이 사용자의 고유 번호
1000(오른쪽) GID, 이 사용자가 소속된 주요 그룹의 고유 번호
asd 사용자 별칭(계정명 혹은 ID로 사용 X, GUI환경에서 화면 에 표시 되는 이름)
/home/itbank 사용자의 홈 디렉토리의 경로와 이름을 절대경로로 저장
/bin/bash  이 계정이 사용하는 shell

 

* UID : User ID, 사용자에게 부여되는 고유번호

* GID : Group ID, 그룹에게 부여되는 고유번호

0 : root

1 ~ 199 : system or service

1000 ~ : 일반 사용자&그룹

* shell : 명령어 해독기, 사용자가 입력한 명령을 운영체제에 전달해주는 역

              shell에 따라 알지 못하는 명령어도 있다.

              현재 시스템에 설치된 shell/etc/shells 파일에서 확인 가능

 

            passwd 파일에 저장된 정보중 shell위치에 /sbin/nologin이 있다.

                > 명령어 사용 shell X, 로그인을 하지 못하게 만드는 shell(system or service 계정에 부여)

 

2. /etc/shadow : 사용자의 고급 정보가 들어있는 파일

* 파일 내용 보는 방법

 

itbank:$6~~:18978:0:99999:7:::
itbank 사용자 ID, 뒤의 정보들이 어느 사용자의 정보인지 표시
$6$~~$~~ 암호, 사용자가 로그인 시 사용하는 비밀번호를 암호화하여 저장 (!! : 패스워드가 없다)
18978 암호 생성 일자, 1970 1 1일을 기준으로 며칠째에 생 성된 암호인지 표시
(운영체제 설치 시 저장된 암호는 생성 일자가 표시 x)
0 암호 최소 사용 일자
99999  암호 최대 사용 일자(= 암호 만료 일자)
7  암호 만료 전 경고 일자

※ ** 이 뒤에 나오는 정보들은 거의 사용 X >> 생략

 

 

3. /etc/login.defs : 사용자 & 그룹 생성 및 삭제와 관련된 몇몇 정보들이 들어있는 파일

 

 

- 사용자 암호 변경

             passwd : 명령어를 입력한 사용자의 암호 변경(모든 사용자)

             passwd <계정명> : 해당 사용자의 암호 변경(관리자만 사용)

 

             *옵션

              -l : 패스워드 잠금 설정

             -u : 패스워드 잠금해제

 

- 사용자 계정 생성

useradd [옵션] [값] ... [옵션] [] 사용자명

옵션
-u UID 지정
-g GID 지정(주요 그룸으 다른 그룸으로 지정)
-c 별칭 지정
-s  shell 지정
-d 홈 디렉토리의 경로와 이름을 절대경로로 지정(홈 디렉토리가 만들 어질 경로는 미리 생성)
/etc/login.defs 파일의 CREATE_HOME 설정이 없거나 no이면 m 옵션과 함께 사용
-m make directory
-k skel 지정(기본경로인 /etc/skel이 아닌 다른 디렉토리를 skel로 지 ) 반드시 -m 옵션과 함께 사용
-D 사용자 생성 시 적용되는 기본 정보 확인 추가 옵션을 함께 사용하 여 기본 정보 변경(ex. -b 옵션을 함께 사용하면 홈 디렉토리 생성 위치 변경)
-D 옵션을 사용하면 사용자 계정 생성 기능이 없어진다.

* /etc/skel : 사용자 홈 디렉터리의 뼈대가 되는 디렉터리

                   사용자 생성 시 홈 디렉터리 내부에 /etc/skel/ 안에 있는 파 /디렉터리들을 복사

                           > 사용자 홈 디렉토리 내부에 특정 파일/디렉터리를/ 자동으로 생성 가능

 

  /etc/default/useradd

                 : 사용자 생성 시 적용되는 기본 정보가 저장된 파일

                   이 파일의 내용을 변경하면 useradd의 옵션을 사용하지 않아도 같 은효과 확인 가능

 

그룹

- 사용자 계정을 묶어주기 위한 객체

       > 그룹에 권한을 부여해서 그룹에 소속된 모든 사용자가 동일한 권한을 적용 받음

- 사용자가 그룹에 소속되는 방법을 두 가지로 분류

   1. 사용자가 그룹을 주요 그룹으로 사용(GID로 사용)

   2. 사용자가 그룹에 일반 소속되어 사용

 

- 그룹에 관련된 파일

         /etc/group : 그룹의 일반정보가 들어있는 파일

         * 파일 내용 보는 방법

 

itbank:x:1000:
itbank 그룹 이름, 뒤의 정보가 어느 그룹의 정보인지 알려준다.
x 암호, 그룹에는 별도의 암호를 지정하지 않는다.
1000 GID, 해당 그룹의 고유번호
<마지막 필드> 그룹에 일반 소속된 사용자들의 목록 운영체제 설치과정에 서 생성된 사용자들은 주요 그룹의 일반소속 목록에 함께 출력

 

- 그룹 생성

     groupadd [옵션] [] ... [옵션] [] 그룹명

 

     * 옵션

         -g : GID 지정

 

- 그룹 정보 수정

     groupmod 옵션 값 [옵션] [] ... [옵션] [] 그룹명

 

     * 옵션

        -g : GID 지정

        -n : 그룹 이름 지정

 

- 그룹 삭제

     groupdel 그룹명

 

* 사용자가 주요그룹(GID)으로 사용중인 그룹은 삭제 X

 

사용자 + 그룹

- 사용자를 생성하면 동일한 이름의 그룹이 자동으로 생성

   > 기본적으로 사용자는 함께 만들어진 그룹을 자신의 주요 그룹(GID)으로 사용

 

- 사용자가 일반 소속된 그룹과 사용자의 주요 그룹은 언제든지 변경 가능

   > 주요 그룹

        사용자 정보 수정(usermod)-g 옵션 사용

 

   > 일반 소속된 그룹

        사용자 정보 수정(usermod)-G 옵션 사용 >> 가급적 사용 X

        gpasswd 명령어 >> 그룹을 기준으로 일반 소속된 사용자 목록을 편집

 

 

gpasswd

- 그룹에 소속된 일반 사용자 목록을 제어

- 형식

     gpasswd 옵션 사용자명 그룹명

 

   * 옵션

      -a : 사용자를 그룹에 일반소속

      -d : 그룹에 일반 소속된 사용자 목록에서 특정 사용자 제거

 

id

- 사용자의 UID, GID, 소속된 그룹의 목록 확인

- 형식

id 사용자명

 

 

'리눅스' 카테고리의 다른 글

권한  (0) 2022.10.17
사용자 계정 실습  (0) 2022.10.17
VI 에디터  (0) 2022.10.13
기초 명령어  (0) 2022.10.12
프롬프트 출력 내용, 디렉터리  (1) 2022.10.12

VI

- Linux에서 기본적으로 제공하는 문서 편집기(CLI 환경에서 사용)

사용 환경

1) 명령 모드

     - 기본 사용 환경 : 커서 이동, 복사/잘라내기, 삭제, 입력/실행 모드 전환

 

2) 입력 모드

     - 문서의 내용을 변경하기 위한 환경, 내용 추가/수정/삭제, 명령 모드 전환

 

3) 실행 모드

     - 그 외 대부분의 기능들을 사용하기 위한 환경, 명령 모드 전환 (ex모드)

 

※ 입력 모드와 실행 모드 간의 전환은 불가능

 

vi 에디터 실행

vi                     : 빈파일 열기

vi <파일명>     : 해당 파일 열기

 

# 명령 모드 사용 방법

1. 커서 이동

1) 글자단위 커서 이동
h 한 글자 왼쪽으로 이동
j 한 글자 아래로 이동
k 한 글자 위로 이동
l 한 글자 오른쪽으로 이동
2) 단어 단위 커서 이동
     > 소문자로 눌러주면 특수문자를 별개의 단어로 인식
        대문자로 눌러주면 무조건 공백/엔터를 기준으로 단어 인식
w 다음 단어의 첫 글자로 이동
b 이전 단어의 첫 글자로 이동
e 다음 단어의 마지막 글자로 이동
3) 줄 내부 커서 이동
0 커서가 있는 줄 첫 글자로 이동
$ 커서가 있는 줄 마지막 글자로 이동
4) 화면 내부 커서 이동
L 현재 화면의 마지막 줄로 이동
M 현재 화면의 가운데 줄로 이동
H 현재 화면의 첫 줄로 이동
5) 문서 내부 커서 이동 ( ★ )
gg = [[ 문서의 첫 줄로 이동
G = ]] 문서의 마지막 줄로 이동
:숫자 숫자번째 줄로 이동

 

2. 입력 모드 전환

i 커서 왼쪽으로 내용 입력
I 커서가 있는 줄 왼쪽으로 내용 입력
a 커서 오른쪽으로 내용 입력
A 커서가 있는 줄 오른쪽으로 내용 입력
o 커서 아래 빈 줄 삽입 후 내용 입력
O 커서 위에 빈 줄 삽입 후 내용 입력
s 커서가 있던 글자를 지우고 내용 입력
S 커서가 있던 줄을 지우고 내용 입력

 

3. 실행 취소. 다시 실행 ( ★★★★★ )

u 실행 취소 (되돌리기)
ctrl + r 다시 실행

 

4. 삭제

x 커서 오른쪽 글자 삭제 ( =delete )
    > 커서 오른쪽에 지울 글자가 더 없으면 커서 왼쪽 글자 삭제 ( = backspace )
X 커서 왼쪽 글자 삭제 ( =backspace )
    > 커서 왼쪽에 지울 글자가 더 없으면 그대로 기능 종료

 

5. 복사/잘라내기/붙여 넣기 ( ★★★★★ )

yy 커서가 있는 줄 복사
숫자 + yy 커서가 있는 줄부터 숫자 만큼의 줄 복사
dd 커서가 있는 줄 잘라내기
숫자 + dd 커서가 있는 줄부터 숫자만큼의 줄 잘라내기
p 커서 아래로 붙여넣기
P 커서 위로 붙여넣기

 

# 실행 모드 사용 방법

1. 줄 번호 출력/숨기기

:set nu 줄 번호 출력
:set nonu 줄 번호 숨기기

 

2. 검색

/Pattern 위에서 아래로 Pattern검색
?Pattern 아래에서 위로 Pattern검색
n 검색 방향으로 다음 찾기
N 검색 방향 반대로 다음 찾기

 

3. 찾아 바꾸기 (치환)

:[범위]s/찾을내용/바꿀내용/[옵션]
범위
생략 커서가 있는 줄의 내용을 찾아서 변경
n1 n번째 줄에 있는 내용을 찾아서 변경
n1,n2 n1번째 줄부터 n2번째 줄까지의 내용을 찾아서 변경
% 문서 전체에 있는 내용을 찾아서 변경
옵션
g 한 줄에 찾는 내용이 여러 개면 전체를 다 변경

 

4. 현재 사용 중인 파일 확인

:f 현재 파일명과 커서 위치 확인

 

5. 리눅스 명령어 사용

:! <명령어> vi를 잠시 멈추고 리눅스 명령어 동작

 

6. 문서에 내용 삽입

:.! <명령어> 커서가 있던 줄의 내용을 지우고 명령어 동작 결과 입력
( 화면에 결과가 출력되는 명령어를 사용 )
:r! <명령어> 커서가 있던 줄 아래로 명령어 동작 결과 입력
( 화면에 결과가 출력되는 명령어를 사용 )
:r <파일명> 커서가 있던 줄 아래로 다른 파일의 내용 삽입

※ :r, :r!는 :과 r 사이에 숫자를 넣어서 특정 줄 아래로 삽입 가능

 

7. 저장/종료/불러오기

     > !를 붙여주면 강제로 진행(ex. :q! = 강제 종료)

:w 저장
:w <파일명> 다른 이름으로 저장
:wq 저장하고 종료
:wq <파일명> 다른 이름으로 저장하고 종료
:q 종료
:e <파일명> 기존 문서를 종료하고 다른 파일 불러오기
:enew 기존 문서를 종료하고 새 파일 열기

 

8.  vi 화면 분할

ctrl + w + n vi 화면 분할
ctrl + w + w 분할 화면간 커서 이동

'리눅스' 카테고리의 다른 글

권한  (0) 2022.10.17
사용자 계정 실습  (0) 2022.10.17
사용자 계정  (1) 2022.10.17
기초 명령어  (0) 2022.10.12
프롬프트 출력 내용, 디렉터리  (1) 2022.10.12

- 형식

명령어 옵션 보조옵션 대상
pwd      
clear      
cd     directory
mkdir     directory
ls -l    

 

pwd

- 내 현재 위치를 절대 경로로 출력

 

cd

- 내가 현재 위치한 디렉터리를 이동(변경)

- 대상

       directory : 해당 디렉터리로 이동

       . : 현재 디렉토리로 이동

       .. : 상위 디렉토리

       생략 : 명령어를 입력한 사용자의 홈 디렉터리(~)로 이동

       ~계정명 : 해당 사용자의 홈 디렉터리로 이동 (root 전용)

 

ls

- 대상이 파일인 경우와 디렉터리인 경우 각각 출력되는 정보가 다르다

   > 파일 : 파일 자체의 정보를 확인

      디렉터리 : 디렉터리 내부의 목록을 출력

      생략 : 현재 위치한 디렉터리 내부의 목록을 출력

-옵션

        -l : 자세한 정보를 출력

        -a : 숨겨진 개체들까지 출력

        -d : 대상이 디렉터리인 경우 대상 자체의 정보를 출력(file 대상으로는 적용 X)

        -R : 대상이 디렉터리인 경우 하위 디렉터리가 있다며 그 내부까지 출력

 

* -l 옵션 정보

   -rw-r--r--. 1 root root 511 1014 2020 /etc/inittab

        - : 대상 개체의 형식(- : 일반 file, d : directory , l : symbolic link file )

        rw-r--r-- : 허가권

        1 : link 개수

        root : 소유권

        511 : 크기(byte단위, directory의 경우 정확한 크기 출력 X)

        1014 2020 : 최종 수정된 날짜와 시간

        /etc/inittab : 대상의 경로와 이름

 

cp

- copy : 복사 + 붙여 넣기

- 기본적으로 파일만 복사가 가능

   > 디렉터리의 복사는 별도의 옵션이 필요

- 원본 파일과 같은 이름으로 복사뿐만 아니라 원본 파일과 다른 이름으로 복사도 가능

   > 이름을 바꾸면서 복사가 가능 ( 이때 원본은 하나만 입력; 1:1 복사만 가능 )

- 형식

   cp [옵션] 원본 [원본] ... [원본] 복사할 위치[+이름]

 

- 옵션

        -r : 디렉터리를 복사할 때 사용 ( 디렉터리 안의 파일까지 복사 )

        -i : 중복된 파일일 경우 실행 여부를 물어봄. ( 기본값으로 포함된 옵션 )

        -f : 강제로 복사

 

mv

- move; 잘라내기 + 붙여 넣기

- 파일/디렉터리 전부 이동 가능

- 원본 파일과 같은 이름으로 이동뿐만 아니라 원본 파일과 다른 이름으로 이동도 가능

   > 이름을 바꾸면서 이동이 가능( 이때 원본은 하나만 입력; 1:1 이동만 가능 )

- 이름 바꾸기 명령어로 사용 가능

 

-형식

mv [옵션] 원본 [원본] ... [원본] 이동할 위치[+이름]

 

mkdir

- make directory

- 경로가 없으면 디렉터리 생성 불가능( 옵션 사용하면 가능 )

* 옵션

        -p : 대상의 경로가 없는 경우 함께 생성

 

rmdir

- remove directory

- 디렉터리 내부에 다른 파일/디렉터리가 있다면 삭제 불가능

   > 빈 디렉터리만 삭제 가능

* 옵션

        -p : 대상 디렉터리는 삭제 후 상위 디렉터리가 비어있다면 함께 삭제

 

rm

- remove

- 기본적으로 파일 삭제 가능( 디렉터리는 옵션을 이용하여 삭제 )

* 옵션

        -f : 물어보지 않고 삭제

        -r : 디렉터리도 삭제

 

alias

- 임의의 키워드에 명령어 [+옵션] 등록

해당 키워드로 등록된 명령을 대체해서 사용

- 형식

alias : 등록된 키워드 확인

alias 키워드='명령어 [옵션]' : 키워드 등록

ex) [root@Linux-01 ~]# alias c='clear’

      [root@Linux-01 ~]# unalias c

 

cat

- 형식

cat : 입력한 내용을 그대로 화면에 출력 ( 일반적으로 사용 X )

cat 파일명 : 파일의 내용을 출력

   > : overwrite 덮어쓰기

   >> : append 추가로 쓰기

# 자동으로 파일이 만들어지는 것을 확인 가능하다.

 

 

# cat 명령어를 사용해서 파일의 내용을 채우기도 가능하다.

 

touch

- 대상이 없으면 빈 파일 생성

- 대상이 있으면 최종 수정된 날짜와 시간 변경

 

head

- 파일의 첫 줄부터 10줄 출력

*옵션

        -숫자 : 숫자만큼의 줄 출력

 

tail

- 파일의 마지막 줄부터 10줄10 출력

*옵션

        -숫자 : 숫자만큼의 줄 출력

 

more

- 출력되는 내용이 너무 많을 때 화면 높이에 맞춰서 내용을 나누어 출력

- 동작 후 추가 입력 키

        enter : 한 줄 넘어가기

        spacebar: 한 화면 넘어가기

        q : more 중간에 종료

- 지나간 내용을 다시 볼 수 없다.

- 디렉터리 대상으로 사용 X

- 일반적으로 | 기호를 사용하여 다른 명령어와 함께 사용

# ll 출력 결과물을 more 명령어로 출력하겠다.

   ‘|’ 기준으로 왼쪽은 만들고자 하는 결괏값에 해당하고 오른쪽은 결과물을 꾸며줄 수 있는 서식을 넣는다.

 

less

- more와 동일한 기능 + 지나간 내용을 다시 볼 수 있다.

- 동작 후 추가 입력 키

        enter : 한 줄 넘어가기 ( = j, 아래 방향키 )

        k : 한 줄 돌아가기 ( = 위 방향키 )

        spacebar: 한 화면 넘어가기 ( = page down )

        page up : 한 화면 돌아가기

        g : 문서의 첫 줄로 이동

        G : 문서의 마지막 줄로 이동

        q : 종료

        - 일반적으로 | 기호를 사용하여 다른 명령어와 함께 사용

 

nl

- 출력 내용에 줄 번호 붙여주는 명령

- 일반적으로 | 기호를 사용하여 다른 명령어와 함께 사용

 

wc

- 파일의 내용이 몇 줄, 몇 단어, 몇 글자인지 출력

* 옵션

        -l : 몇 줄인 지 출력( 줄은 enter를 기준으로 구분 )

        -w : 몇 단어인지 출력( 단어는 enterspacebar로 구분 )

        -c : 몇 글자인지 출력 ( 공백 문자와 각 줄의 마지막에 있는 안 보이는 마침표도 한 글자로 취급 )

 

cal

- 형식

        cal : 장치에 설정된 날짜를 기준으로 하여 현재 월의 달력을 출력

        cal 숫자 : 숫자를 연도로 사용하여 해당 연도 전체의 달력을 출력

        cal 숫자 1 숫자 2: 숫자 2를 연도로 숫자 1을 월로 사용하여 해당 년월의 달력을 출력

 

date

- 형식

        date : 현재 장치에 설정된 날짜와 시간을 출력

        date mmddHHMMyyyy : yyyy년 mmddHHMM분으로 날짜와 시 간 변경

 

rdate

- 인터넷에 존재하는 Time 서버(서버(시간 값을 제공해주는 서버)의 날짜와 시간을 출력

- 형식

        rdate [옵션] <Time서버 주소>

 

find

- 검색

- 형식

find 범위 [범위] ... [범위] 옵션 값 [옵션] [값] ... [옵션] []

   * 옵션을 검색할 내용으로 사용

* 옵션

        - name : 이름으로 검색

        - type : 개체 형식으로 검색 ( d: directory, f: file )

        - newer : 기준이 되는 대상보다 늦게 수정된 개체 검색 ex.( find . -newer test )

        - exec : 일반적으로 마지막 옵션으로 사용

                     검색 결과물들을 대상으로 특정 명령어를 적용

# root 소유자의 특수권한 setuid를 불러온다. 에러 발생 시 쓰레기통(/dev/null)에 버리는 명령어

 

man

- 명령어 or 파일에 대한 자세한 설명(매뉴얼)을 확인

- 동작 후 추가 입력 키

        enter : 한 줄 넘어가기 ( = j, 아래방향키 )

        k : 한 줄 돌아가기 ( = 위방향키 )

        spacebar: 한 화면 넘어가기 ( = page down )

        page up : 한 화면 돌아가기

        g : 문서의 첫 줄로 이동

        G : 문서의 마지막 줄로 이동

        /Patten : Patten 검색( 검색 후 n 눌러서 다음 찾기 )

        q : 종료

 

시스템 종료

- shutdown -h now

- poweroff

- halt

- init 0 (추천)

 

시스템 재부팅

- shutdown -r now

- reboot

- init 6 (추천)

 

기호

- . : 현재 디렉터리

- .. : 상위 디렉터리

- ~ : 모든 것

- > : 기호 왼쪽에 입력한 명령어가 동작하여 나오는 출력 내용을 기호 오른쪽에 저장

- (> : 덮어쓰기. >> : 내용추가)

- | : 파이프(pipe), shift + \

      CLI의 단점인 '한 줄에 명령어 하나'를 보완하는 기호

      하나의 대상에 여러 명령어를 적용

      - 사용 방식

            A | B : B(A)

            ls -l /etc/ | more : more ( ls -l /etc )

'리눅스' 카테고리의 다른 글

권한  (0) 2022.10.17
사용자 계정 실습  (0) 2022.10.17
사용자 계정  (1) 2022.10.17
VI 에디터  (0) 2022.10.13
프롬프트 출력 내용, 디렉터리  (1) 2022.10.12

[root@localhost ~]#

root : 접속한 계정의 ID

localhost : 접속한 장치의 이름

~ : 현재 위치한 디렉터리

디렉터리 : CLI에서의 폴더 개념

# : 사용 권한(#: 관리자 권한, $: 일반 사용자 권한)

 

기본 디렉터리

- 모든 운영체제는 디렉터리들의tree구조로 구성

> Linux/ 아래에 어딘가에 모든 파일과 디렉터리들이 존재

- 최초 설치 시 있는 디렉토리

* '->' 기호는 symbolic link file을 의미, 기호를 기준으로 왼쪽 이름이 오른쪽에 연결

( / 내부에 기본적으로 있는 /bin, /lib, /lib64, /sbin의 경우 예전 버전에 있던 디렉토리들이 다른 곳에 합쳐지면서 기존 버전을 사용하던 사용자나 서비스들이 잘못된 동작을 하지 않도록 사용자 편의성을 제공해주는 link)

 

/ : root dir, 모든 파일을 가지고 있는 디렉터리

/bin : 공용 명령어(관리자와 일반 사용자가 전부 사용하는 명령어)

들어있는 디렉터리로 연결되는 링크 파일

/boot : 부팅에 필요한 이미지 파일, 설정 파일들이 들어있는 디렉토리

/dev : 운영체제가 장치를 인식하여 장치 파일을 만들어주는 디렉터리

/etc : 각종 환경 설정 파일들이 들어있는 디렉터리

/home : 일반 사용자들의 홈 디렉터리가 만들어지는 기본 위치

* 홈 디렉토리 : 사용자 개인 디렉토리

/lib : 시스템 및 프로그램 동작에 필요한 각종 라이브러리가 모여있는 디렉 토리, 32bit + 64bit 공용

/lib64: 64bit 전용 라이브러리가 모여있는 디렉토리

/media: local device(내 장치에 물리적으로 연결된 장치)

사용할 수 있도록 연결해주는 디렉터리

/mnt : remote device(local 제외한 나머지)를 사용할 수 있도록 연결해주 는 디렉토리

/opt : 추가적인 어플리케이션(응용프로그램)들의 설치 경로로 사용되는

디렉토리(/usr에 들어가지 않는 프로그램)

/proc : 실행중인 프로세스의 정보와 CPU, 메모리 등의 시스템 정보가 가상 파일로 저장된 디렉토리

/run : 실행중인 서비스와 관련된 파일이 저장되는 디렉토리

/root : 관리자 root의 홈 디렉토리

/sbin : 시스템을 제어할 수 있는 명령어(관리자 전용 명령어)가 들어있는 디 렉토리로 연결되는 링크파일

/srb : 서버를 위한 디렉토리, 외부 사용자가 다른 디렉토리보다 비교적 쉽 게 접근이 가능

/sys : 시스템이 필요로 하는 각종 파일들(kernel 데이터에 대한 구조 속성 )이 들어있는 디렉토리

/tmp : 각종 프로그램이 실행되면서 생성되는 임시 파일/디렉토리들이 만들 어지는 디렉토리

/usr : 일반 사용자들을 위한 대부분의 프로그램이 들어있는 디렉토리

/var : 자주 변경되는 시스템 파일들(log )이 모여있는 디렉토리

'리눅스' 카테고리의 다른 글

권한  (0) 2022.10.17
사용자 계정 실습  (0) 2022.10.17
사용자 계정  (1) 2022.10.17
VI 에디터  (0) 2022.10.13
기초 명령어  (0) 2022.10.12

+ Recent posts