20240403 리눅스 학습내용

2024. 4. 3. 17:30카테고리 없음

리눅스로 텍스트 파일 만들기

 

 

입력모드를 나가는 방법  ZZ 나가기 /  vi hosts 이동하기 / w 저장하기

cp / etc / hosts . 

글자 수정 U

글자 삭제 X

글자 입력 A

저장하고 나가기 - ZZ :wq

저장 안하고 나가기 - :q!

 

파일 상세정보 출력

 

읽거나 쓰고 실행하기

 

실행파일에 x가 붙음

심볼릭 ㄹ링므로 되어 비지박스에 가 있는 내용

일반컴퓨터가 아니라 터미널 기능만 제공하는 실습 사이트에서는 직접 이동불가함
이동 불가능 에러

 

바이너리파일이 아닌 실행파일

 

<실행파일 만들기>

vi exe

chmod +x exe 추가&nbsp; - file&nbsp; 생성

 

 

. . /exe

 

 

 

접근 권한 - 실행가능한 파일은 모두가 사용할 수 있음

 

기호모드-심볼릭 모드

기호를 이용한 접근 권한

 

chmod o-r hosts; ls -l hosts의 r 권한 없애기

chmod o+r hosts; ls -l hosts   r 권한 추가하기

 

 

 

라이트 펑션 모든 파일에 대해서 right 퍼미션을 주고싶다

 

a는 사용해도 되고 안해도 됨 / x 퍼미션 줄 수 있음 - 다른 모드도 접근 권한이 있다

 

숫자 입력 모드

110 100 100 - 기본모드

6 4 4 -----8진수로 읽음

execute permition을 지우고 싶을 때

chmod og-x exe------------ rwxrw-r--

2진수로 바꾸면

111 110 110 됨 -------------7 6 4

적용은 이하와 같음

 

8진수로 파일접근 권한을 설정함

 

많이 사용되는 패턴

755 rwx-xr-x          x: 실행권한                         rwxrwxr-x

644 rw-r--r--          텍스트 파일일 때 파일권한 rw-rw-r--

 

<기본 접근 권한>

touch a (파일생성) 파일 a의 파일접근 권한이 가장 기본 모습

 

<umask>

110110110 일반파일 - umask 0022

000010010 -> umask (일반파일에서 umask를 뺀 형태)

 

umask 0022, 0002 두 가지 종류 있음

0002일 때는 

110110100 'rw-rw-r--' umask가 0002일 경우에 '파일 기본접근권한'

 

110100100

 

 

umask 002

기본설정

 

마스크값 적용

<특이한 명령어 : 사용빈도낮음>

su 명령어 : 루트의 권한이 생김 rwx 모양이 rwxr-x-r-x 가 uid 가 변경되서  srwxr-xr-x 's'가 붙음

t 명령어 등

chown 명령어 : change owner - system call

chown.()

관리자 권한을 변경하여 실행

 

 

마스크값 적용 - 파일과 디렉터리에 대한 구너한설정과 해당모드의 마스크값을 표현

 

 

 

특수접근 권한

 

 

setUid 파일 소유자 권한으로 실행 - 초반에는 건드리지 않는게 좋다

 

setGid 더더욱 쓰이지 않음

 

파일에 특수 권한 부여

 

<centOs 8 리눅스 관리자 권한 실행>

root 계정 접속 root password 정확하게 기억하기

계정정보는 cp ect/passwd .

 

 

처음 시작 명령어

 

. pSS

vi passward

 

맨위에 0은 그룹 아이디

 

숫자를 정하는 것은 시스템 관리자가 정함

그룹에게 협업하는 사람들에게 줌

 

 

맨 윗줄의 앞이 id login 정보

x = 암호

3: 내부적으로 숫자 관리

4: 그룹아이디 shadow

5: 사용자에 대한 설명 - 어떤 부서다

6: 홈 디렉터리 - 로그인을 하면 어디로 갈거냐

7: 기본적으로 어떤 것을 사용할 것인가 (실습에는 bash shell이 없음)

 

사용자 계정관리는 지금 할 수 없음 useradd 명령어가 없기 때문 -- 나중에 설명

 

<리눅스 파일 시스템과 마운트 설정>

aws 를 쓸 때는  마운트 X

corab 에서는 마운트 사용

기술의 발달로 NFS Network file system : 구글 드라이브 접속 시 윈도우 or 맥 에서 들어가짐

맥- 리눅스 유닉스 계열

colab - 완전 리눅스

안드로이드 가능

모든 파일 시스템이 개별적으로 윈도우와 유닉스 파일 시스템이 구조가 다르나

네트워크 파일 시스템을 이용하면 어떤 운영체제이던지 쓸 수 있게 하는 시스템으로 발전했음

 

저널링은 알 필요 X

 

테라(현재:빅데이터) < 페타 < 엑사 < 제타 < 요타 

앞으로는 유투브와 같은 동영상이 계속 업로드 되는 한 파일의 크기는 커져갈 것

needs가 있으니 만들어질 것

 

시스템 구분없이 어떤 운영체제 에서든 읽을 수 있음 nfs

 

가상 파일 시스템도 있음

 

파일시스템 정보 열람 AWS 사용시 보기로 함

 

리눅스는 한개의ㅡ 단일 트리지만 모든 같은 파일 시스템일 필요없음

파일시스템 각각이 종류, 매체가 다를 수 있음

단위 트리에 합류 시켜야 함

합류를 시켜야 파일 시스템을 이용할 수 있음

그 용어가 '마운트'임

구글 드라이브에서 해볼 수 있음

 

어느 특정 디렉토리에 물리적으로 다른 파일 시스템을 가져다 놓아도 상관이 없는 것이 리눅스 특징

 

dos 가 극복하지 못한 것을 리눅스가 함

 

<마운트 포인트>

계층적 디렉토리 구조

시스템이 연결되지 않으면

사용자가 해당 파일 시스템에 접근 못함

그래서 마운트가 되야함

 

<마운트 포인트>

os 특정 지역 /dev라는 파일에 새로운 물리적 장치(dc, 하드 디스크)가 들어감

사용자가 단일 파일 시스템에서 접근을 할 수 있게됨

<마운트 설정 시기>

관리자라 일일이 마운트를 설정한다는 것은 상당히 번거로운 일

USB DVD CD 제외하고 설정은 리눅스 시스템이 부팅될 때 마운트 되도록 설정하는 것이 간편

부팅시 마운트 설정정보를 가지고 있음 (이하 사진으로 설명)

 

마운트 설정 파일

 

if : 하드 디스크 구매 = 설치 프로그램으로 연결 마운트 자동 설정해줌

 

 

마운트 설정 파일

 

덤프 : 백업을 받을 것인지 선택

fsck : 파일 시스템 체크를 할것인지 선택

mount 실행명령 / umount 실행 안함

현재 설정된 내용을 보여줌

 

<마운트 관리 명령>

 

USB 꽂으면 자동으로 mount 됨

 

pc 에서

f: 파일명 (드라이브 표시)

리눅스에서

/mnt/파일명 (/mnt 단일 포인트)

 

 

 

<colab>

리눅스

앤스컴 콰르텟&nbsp; : 데이터의 숫자만 보지말고 시각화로 꼭 확인해라

 

MNIST database 7만건 축약 2천건 가지고 있는 데이터 - 우편번호 수집

 

 

 

접속할 때마다 달라지는 것은 좋지 못함

구글드라이브는 나의 컴퓨터와 마운트해서 사용가능 - 코랩에서 대용량 데이터 처리는 매우 느려서 사용 효율이 떨어짐

 

rinux usb mount 만 알면됨

마운트 관리 명령 1

 

마운트 관리 명령 2

 

usb 장착 시 데이터를 버츄얼 하게 두개로 나눠서 root 밑으로 amtA or amtB로 올리는 용도로 사용가능

 

지금은 쓸 일 없어 pass - usb memory 에 쓸 수는 있음

 

디바이스를 mnt 마운트해서 올리는 명령어

 

 

마운트 후에는 내 PC에 있는 파일처럼 열람 가능

 

디스크 사용량

 

colab 사용량 체크

나의 아이디로 로그인하면

/content/drive on /content/drive type fuse.drive (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
 
 

 

!df&nbsp; 마운트 되어 있는 항목 열람

마운트 했을 때 (로그인 했을때)

drwx------ 5 root root 4096 Apr 3 05:08 drive

 

 

위: 드라이브에 있는 리스트가 나옴 / 할당된 디스크 사용량

 

55508 파일의 킬로바이트 총합
파일의 크기를 여기서 확인 (파일의 크기를 다 합쳐서 1024로 나누면 됨)

 

 

SD카드에 연습하는 것이 아니면 할일이 없다.피지컬한 대상에게만 하는 일

 

 

배드 블록

 

사용자 별로 쿼터를 줄 수 있다 - 거의 사용하지 않는 명령어

 

 

set uid 에 s 가 들어간 것을 확인할 수 있음 (super user 빠져나올때까지 유지)

 

특정 권한 하나만 지정할 때

<centOs 8 / chap.09 소프트웨어 관리>

설치

!apt-get install -y fonts-nanum 나눔 폰트 설치
apt-get : react의 npm install 과 같음

 

<colab java install>

!apt update : apt 파일 생성
!apt install openjdk-17-jdk : 자바 설치
!env - environment 변수 열람
 
iso 파일 생성

 

압출 해제

압축

 

 

파일크기 키우기

 

gzip해서 파일 크기 줄이기

 

파일 압출 해제

 

두 파일에 차이가 유무 / 결과: 없음
tar 명령 : 파일 묶음과 풀기

 

 

 

압축과정

1. tar > 여러 파일을 하나의 파일로 만듦

2. gzip > tar 파일을 압축

3. 파일을 이동

4. gzip -d > 압축된 tar 파일을 복원

5. tar x > 복원된 tar 파일을 원래 파일 구조로 복원

 

<! / % 차이점>

! shell escape == 내 프로그램에서 쉔을 하나 만들고 거기서 ls -l 이라는 명령을 실행 > 결과 도출

%cd 쉘을 띄우고 cd 로 이동했다가 되돌아오면 현재 나의 current directory 는 변함없음 = cd 는 결과를 받을 게 없어서

그래서 cd 를 쓸 때만 %를 사용함

 

 

<작업 예약 설정>

시스템 마다 다름

 

리눅스


유닉스 사용 장점
주기적으로 해야하는 작업
1. 백업 새벽 3~4시 (자동화)
2. 검색 사이트 운영 시 - 매일 크롤링 검색 데이터를 생성 (현황 데이터)
3. 소프트웨어 업데이트

 

cron.d

cron.daily

cron.weekly

 

backup을 받는 작업

 

현재 돌아가고 있는 프로세스들

 

Serial port : 영화 <접속>을 본적 있나요?
이 영화에서 사용된 기술이 comport 로 modem 기계를 써서 쌍방 데이터 통신 가능하게 한 것입니다.
속도는 9600bps -> be per second 10bit를 보내기 위해 1bite가 사용되었다고 할 수 있습니다. 
-1000글자 정도의 속도=10K(현재와 10만배 차이가 납니다. 어마어마하죠? 발전하는 속도가 상상이 안갑니다!)
com1
com2
usb 의 시초
universal serial bus
rx tx Gnd


<리눅스>
방향키 조작 가능한 스펠링 4개
- 게임 개발 (rogue, hack[special-ddudduble! than rogue])
h j k l
<아래위>

워드 단위 이동  앞으로 w 
뒤로 움직이고 싶다 b

Insert mode i 34w-wersdf  i는 문장의 앞에서 append / I 문장의 끝에서 append

Append mode a

Line mode ESC

아랫줄에 append 하고 싶으면 아랫줄에 below line insert o (small o)
upper line insert O ( Capital O)

입력모드를 끝내고 싶으면 ESC

shift+Z+Z

복붙 yy+p yank 

ctrl c : yy
ctrl v : p
ctrl x : dd 현재 커서 위치에서 끝까지 지우고 싶다 shift + d / 단어 하나만 지울 떄 d w / 한글자만 지울때 x
ctrl b  :반페이지씩 위로
ctrl y : p 가장 최근에 없앤 것이나 복사한 것 붙여넣기
대문자 U : 모드에서 방금전에 잘 못했던 명령어 취소 - 마지막 행위가 undo가 됨
forward 검색 / backward : ?mode 현재로부터 백으로 검색
c w : 단어를 바꾸고 싶을 때

끝내고 싶을 때 : line mode 가 됨 wq write quit : 쓰고 빠져라!
자신이 작성한 것이 나오고 끝남^^!

모바 MobaXtrem : access 쉽게 업로드 다운로드 할 수 있는 기능이 있음
vi editor 쓸일이 있을 때 쓸 것이니 강의는 여기까지 하겠음!




회사부서 영역별 작업진행관계
운영서버 production
test server QA - 개발서버와 동일한 환경을 갖춰놓고 운영을 하다가 ok 하면 프로덕션으로 이관
개발서버 개발자 사용
개발-QA-Production 과정

유닉스 사용 장점
주기적으로 해야하는 작업
1. 백업 새벽 3~4시 (자동화)
2. 검색 사이트 운영 시 - 매일 크롤링 검색 데이터를 생성 (현황 데이터)
3. 소프트웨어 업데이트




 

<수업 정리>

내일은 리액트네이티브와 스프링부트를 이용해 프로젝트를 위한 틀 제작