imhamburger 님의 블로그

리눅스(Linux) - 빔(Vim) 에디터 명령어 배우기 - 01 본문

리눅스(Linux)

리눅스(Linux) - 빔(Vim) 에디터 명령어 배우기 - 01

imhamburger 2024. 7. 8. 22:20

오늘은 데이터엔지니어 부트캠프 1일차에 배운 내용 중 헤맸던 부분과 이해가 가지 않았던 부분을 정리해보았다.

 

우선 빔(Vim) 이라는 명령어를 이용해 터미널에서 파일과 폴더를 만들고 수정하는 것을 배웠다. 전에 터미널 명령어에 대해 조~금 공부했어서 cd / mkdir / rm 등 기본적인 것은 익숙하였다.

 

파일을 수정하고 저장하는 명령어는 :wq 이다. 그런데 다음과 같은 오류메세지를 받았다.

E45: 'readonly' option is set

 

이 오류가 나타나는 이유는 내 지금 현재 권한이 readonly로만 되어있기 때문이다. 권한을 변경해도 상관없지만, 이미 내용을 수정해버렸다. 그래서 아래 위 메세지에 (add ! to override) 라길래 :wq 옆에  ! 만 추가해주었다.

그랬더니 오류없이 잘 수정되었다. 오류가 날 때는 당황하지 않고 메세지를 잘 읽으면 답이 있노라니.

 

근데 권한? 이란게 뭐지?

우리가 우리 컴퓨터의 터미널에서 폴더 삭제하고 파일 수정하는 등 가능한 이유는 내가 바로 주인장이기 때문이다. 보통 회사에서는 모든 권한을 다 줄 수도 혹은 안 줄 수도 있다. 특정 파일에 대해 권한을 수정하기 위해선 아래와 같이 입력을 하면된다.

 

chmod 700 (파일명)

 

chmod는 change + mode 의 줄임말이다.

 

근데 갑자기 웬 숫자인가?

터미널에서 입력하고 뭐 하다보면 'rw-r--r--' 이런식의 코드?를 많이 본다. 이건 아래 표를 보면 된다.

그럼 700을 해석해보자면, 소유자는 읽기 + 쓰기 + 실행 모두 가능 & 소유그룹은 권한없음 & 모든 사용자는 권한없음

r read 4
w write 2
x execute 1
- no permission 0

 

그래서 만약 모든 권한을 갖고 있다면 7 이 된다. 그리고 이 '7'을 이진법으로 나타낸다면 '111'이다.

Permission Value Binar Represention Permission Description
0 000 No permissions
1 001 실행만 가능
2 010 쓰기만 가능
3 011 쓰기 + 실행만 가능
4 100 읽기만 가능
5 101 읽기 + 실행만 가능
6 110 읽기 + 쓰기만 가능
7 111 읽기 + 쓰기 + 실행 모두 가능

 

*부록

vim 명령어 중 c(change) 와 d(delete) 의 차이

c는 변환으로 단어가 삭제됨과 동시에 insert 모드로 바뀐다. 그래서 바로 수정이 가능하다. d는 삭제만 해주는 명령어이다.

 

grep 이라는 명령어는 문자열을 검색할 때 사용할 수 있으며, 단순 문자열뿐만 아니라 정규표현식을 이용하여 다양하게 활용할 수 있다.

다음은 grep을 사용하는 예시이다.

cat 파일명 | grep 찾을단어

cat me.html | grep 'bbbbb' #bbbbb란 단어를 찾아준다.
cat me.html | grep 'bbbbb' | wc #(words count)문자를 카운트한다.
cat me.html | grep 'bbbbb' | wc -l #(words count -line)해당되는 문자가 몇줄인지 카운트한다.

 

grep 을 정규표현식으로 사용 시 주의해야할 점

grep 't.st' example.html #'.'은 임의의 문자를 나타낸다. test / tfst / tast 등이 올 수 있다.

 

그러나 말 그대로 't.st'를 찾고싶을 땐

grep 't\.st' example.html #t.st 를 찾는다.

 

grep '\'  를 추가하면 '.' 이라는 문자를 읽는다.