bxm's IT Story

Linux 이론#4 - Mount, Snapshot(복원지점), vi, cat 본문

서버/Linux

Linux 이론#4 - Mount, Snapshot(복원지점), vi, cat

bxmsta9ram 2021. 6. 22. 13:57

## 어제 하드디스크 추가한 것부터 Mount까지 된 것이 shutdown을 하면 다 풀리게 된다.

cd /hdd2

df -h  ## 마운트 된 것들 확인

shutdown -r now

## 재부팅중

## 마운트가 풀렸다!


## Windows에서의 Word 프로그램이, Linux에서는 vi 이다.

vi /etc/fstab

## 영문자 i 입력 후, 맨 아랫줄에 입력

 

<형광색!!> 부팅시 비상 백업용 덤프 생성 여부 = 0[생성 X], 1[생성 O]

<형광색 옆놈> 파일 검사 우선순위 = 0[swap], 1[첫번째 우선순위_거의 root임], 2[root검사 후에 차순위 검사순위]

/dev/sdb1[디바이스 파일명]

hdd2[마운트 포인트_마운트 대상 디렉토리] 

ext4[포맷 타입_파일 형식]   

default[자동 Mount 할 것이냐 말 것이냐 -> default = 자동 Mount 하겠다.]

1[부팅시 비상 백업용 덤프를 만들 것이며], 2[차순위 검사순위로 지정하겠다.]

 

esc - :wq  ## 저장

shutdown -r now

 

저기 defaul(s) 하나 안붙였다고 emergency mode로 들어왔음;; vi로 다시 들어가서 스펠링 수정해주었음. 리눅스 뻑킹~ 

shutdown -r now  # 해주면 재부팅되며 정상적으로 켜진다.

 

df -h  # hdd2에 정상적으로 mount 된 것을 확인할 수 있다.


교실 내 CentOS가 Error가 난 PC가 있어 재설치한 후 Snapshot 찍기

 

재설치가 모두 완료되었으면,

망가지면 'Go To' 누르면 된다. Windows의 '복원 지점'이랑 똑같음.


## Terminal 입성 후 Super User로 로그인.

현재 Super User 디렉토리에 들어왔음.

 

 

## VI Editor에 대해서 다시 한번 알아보자.

vi 편집기의 구조,  :명령어 입력,  /,? : 검색할 때

 

[root@localhost ~]# mkdir /temp
[root@localhost ~]# cd /temp
[root@localhost temp]# cp /etc/passwd ./
[root@localhost temp]# vi /etc/passwd

 

i - 현재 글자부터

a - 현재 글자 다음부터

o - 빈 줄 하나를 생성하고, 글자를 입력하게 된다.

 

w : 다음 단어의 처음으로

e :                  끝으로  (end의 약자)

b : 전 단어의 처음으로

0(숫자) : 행의 처음

$ : 행의 마지막

gg : 문서의 처음

G : 문서의 끝

 

H : 현재 화면의 제일 앞

M : 현재 화면의 중간

L : 현재 화면의 제일 아래

 

dd : 한 행이 전부 나라감. (행 삭제)

yy : 그 행을 버퍼에 저장.

p : 붙여넣기.

4yy p : 현재커서에서 4줄이 복사되고, 붙여넣기.

x : delete와 같은 기능

X : Back Space(지우기)와 같은 기능

/단어 : 그 단어 찾기.

         (그 다음 단어를 찾으려면 n을 누르면 된다.) 

         (그 이전 단어를 찾으려면 N을 누르면 된다.)

?단어 : /단어 와 정반대의 개념임. 역방향으로 찾기!

         (그 이전 단어를 찾으려면 n을 누르면 된다.)

         (그 다음 단어를 찾으려면 N을 누르면 된다.)

 

## 라인이 헷갈린다면, 라인 앞에 번호를 붙일 수 있다.

: set nu : 앞에 번호를 매길 수 있다.

: set nonu : 번호를 전부 지워버린다.

 

## 도움말을 보고 싶다면

:help

 

## 뭔가를 엄청~ 쳤다. 그리고 저장할 것이다.

ESC -> :w  ==] 저장하고        안 나가려면

ESC -> :wq ==] 저장하고        나가려면

ESC -> :q!  ==] 저장하지 않고, 나가려면


: s/root/master : root를 master로 변환

: %s/root/master : 전체 치환

VI_Editor.pdf
0.58MB



<CAT 명령어>

매번 vi 편집기를 통해 워드를 열 수는 없는 일이므로, 화면에 그냥 띄워주는 역할을 하는 명령어임.

cat < ./passwd | more

## 여기서 파이프는 '구분자' 역할임.

## 좌측 redirection은 생략이 가능하다. ==>        cat ./passwd | more

 

 

cat > ./testfile

## >(우측) : 입력 redirection

## <(좌측) : 출력 redirection


rm -rf ./testfile  ## 파일을 강제로 지워라.

cat > a            ## a라는 파일이 만들어지고, 그 곳에 작성할 수 있다.

cat >> a          ## a라는 만들어진 파일 뒤에 이어서 쓸 수 있다.

cat <               ## a라는 파일을 출력


cat a >> b       ## b의 내용에 a가 추가되었음.


cat a b > c     ## 먼저 써준 a의 내용이 위로 가고, 그 다음 b의 내용이 이어졌다.


cat -n c    ## 행 좌측에 줄번호가 표시된다.


cp ./a ./b ./c /temp2     ## 현재 디렉토리에 있는 a와 b와 c를 빈 디렉토리인 /temp2에 복사 붙여넣기를 하였다!

## 결과는 temp2에 전부 복사되었다.

 

 

## 그렇다면 temp의 파일들을 전부 지우고, temp2에 있는 파일들을 전부 temp로 복사 붙여넣기 해보자!

cd /temp

rm -rf /temp/*

ls                ## 모든 파일들이 다 삭제 되었음. 현재 /temp는 빈 디렉토리이다.

 

cp /temp2/* /temp

ls


## 현재 상황 : temp[a b c] , temp2[ ]

## temp2에 a의 내용을 가진 d, b의 내용을 가진 e, c의 내용을 가진 f를 복사

## 그리고 mv 명령어를 통해서 temp에 있는 a, b, c 모든 파일들을 temp2로 옮겨라

## 그러고 나서 temp[  ] , temp2 [a b c d e f] 이렇게 바뀌었다.

rm -rf /temp2/*

cp ./a /temp2/d

cp ./b /temp2/e

cp ./c /temp2/f

 

mv ./* /temp2/

ls

 

ls /temp2


## /temp2 디렉토리에 가서 /test라는 디렉토리 생성

## /temp2에 있는 모든 파일과 디렉토리를 /test로 이동

## 에러가 뜬다!! 왜냐하면 옮길 내용들에 /test 디렉토리가 있기때문에 /test는 복사되지 않음.

## ls ./test 를 통해 a b c d e f 가 모두 옮겨진 것을 확인할 수 있다.


cp -r ./* /temp       ## cp -r  ==> 하위 디렉토리까지 통째로 옮겨라.

 

temp로 하위디렉토리까지 모두 복사된 것을 확인할 수 있다.

 

 


rmdir ./test       ## rmdir은 디렉토리를 지워주세요. 라는 뜻이다.

지워지지 않는다!! 왜냐하면 비어있지 않기 때문에.

 

 

## 따라서 먼저 test안의 모든 파일들을 지우고 지워야함.

rm ./test/*      ## 현재 디렉토리 내에 있는 test 디렉토리 안에 있는 모든 파일들을 지워라.

rmdir ./test

rm -f ./g

 


과제!!] /temp 안에 있는 모든 파일과 디렉토리를 /temp2에 복사하고 난 후 /temp 안의 모든 내용을 삭제하세요.

temp = g, test

temp2 = 비어있음.

 

1) cp -r : 하위 디렉토리까지 모두 복사

2) rm -rf : -r 하위 디렉토리까지, -f 강제로

 

temp = 비어있음.

temp2 = g, test


<more 명령어>

 

cp /etc/passwd ./       ## /etc/passwd를 현재 디렉토리에 복사하자.

ls                           ## 복사완료.

more 파일명 == cat passwd | more : 해당 파일을 보여줘라.


<less 명령어>

less passwd : more와 똑같은 역할을 한다.

 

 

그렇다면 more와 less의 차이점은?

more : pgUp이나 pgDown, 화살표로 움직일 수 없음.

less : 가능함.


<touch 명령어>

touch a : 내용이 없는 a 라는 파일을 만들어 줌.

## touch a : 크기가 0인 a라는 파일을 생성.

## touch passwd : 마지막 갱신시점이 17:12 였던 passwd 파일을, 현재 시점인 17:18으로 갱신시켜준다.


<head 명령어>

head -행수 출력할파일명

head 파일명 : 파일의 첫 10번째 줄까지 출력.

head -5 passwd : 앞에 5줄만 출력.


<tail 명령어>

tail -행수 출력할파일명

tail 파일명 : 파일의 뒤 10줄을 출력

 

tail -6 passwd : 뒤의 6줄만 출력.


<nl 명령어>

nl 파일명

## nl 혼자서는 거의 안쓰고, less나 more와 같이 쓴다. 왜냐면 슉! 지나가버리기 때문에 단독으로는 쓰이지 않는다.

##                             주로 less를 같이 쓴다.

nl passwd | less 파일명

 

 


<date 명령어>

date

## date : 현재 날짜

## date mm:dd:시시:분분:yyyy


<clock 명령어>

clock 

clock -r : ROM BIOS가 들어있는 SimOS의 현재 시간 확인법

 

clock -w : SimOS의 시간을 내 시간으로 변경함.


<man 명령어>

메뉴얼처럼 책자 형태로 자세히 나옴.

man ls : ls에 대한 사용법들이 자세히 나옴.

 

ls -help : ls에 대한 사용법들이 간단히 나옴.

 


cat man ls > man_help : ls에 대한 메뉴얼들을 man_help 라는 파일 형태로 볼 것이다.

cat man_help | less : 페이지 up & down이나 화살표로 메뉴얼을 볼 수 있음.