imhamburger 님의 블로그
리눅스(Linux) - 빔(Vim) 에디터 명령어 배우기 - 01 본문
오늘은 데이터엔지니어 부트캠프 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 '\' 를 추가하면 '.' 이라는 문자를 읽는다.
'리눅스(Linux)' 카테고리의 다른 글
리눅스(Linux) - 특정 파일 내용을 여러 파일에 복사하기, 파일명이 -l 파일 삭제하기 (2) | 2024.07.22 |
---|---|
리눅스(Linux) - 맥 Vim autoindention 추가하기 (0) | 2024.07.20 |
리눅스(Linux) - nohup과 '&' 개념과 사용법 (0) | 2024.07.17 |
리눅스(Linux) - 쉘스크립트로 코드 작성하기 (0) | 2024.07.13 |
리눅스(Linux) - 빔(Vim) 에디터 명령어 grep 실습 - 02 (0) | 2024.07.09 |