명령어 이해하다가 머리 터질뻔 했다..ㅋㅋ
\그만큼 유용하고 핵심적인 것들이라서 자주 사용하고 손으로 익혀놓자!
h,j,k,l (왼쪽 아래 위 오른쪽)방향키 한번 혁신적이네,,,
리눅스는 90년대 초반에 나왔다! -> 이때 키보드는 방향키가 없었다 -> 그래서 리눅스명령어는 문자 키로 조종하는게 많다.
(일반 파일인데 실행권한이 있다 => 그러면 바이너리 파일!!)
(ls -lF 로 확인해보면 알수있다!! )
텍스트 파일에 대하여 파일내용 확인 명령어 -> cat, more, less 다 명령 수정 불 가능!!
cat [옵션] 텍스트 파일
-n:줄번호 출력 -> 앞에 1부터 줄마다 번호를 붙여서 알아보기 쉽게 해줌
-A: 제어문자 출력 -> 실제 출력되지 않고 특정 기능을 갖는 문자!
\n이런거! -> line feed (줄바꿈)+ carriage return(해당 라인 홈위치로 이동), 엔터키 입력
\n은 터미널에서는 $라고 특수하게 표기함!
^I 는 \t를 표현한다
more <텍스트 파일> -> space가 한장씩, Enter가 한 줄씩 아래로 내려감!
q는 종료, /검색어 - 해당 검색어로 검색
파일 처음부터 끝방향으로만 가는게 가능!! -> 이전 으로 갈 수가 없다!!
spacebar - 페이지 단위이동
j키, 아래 방향키 - 다음 라인으로 이동
k키, 위 방향키 - 이전 라인으로 이동
ctrl + b키 - 예전 페이지로 이동
head <텍스트 파일> - 10줄 쌕 나옴
-<라인수>
tail <텍스트 파일> - 10줄 씩 나옴
-<라인수>
-f: 파일 내용 출력을 종료하지 않고 주기적으로 파일 내용 출력
-> log 파일 내용(서비스를 제공하는 서비스 상태를 저장, 내용을 추가할때 끝으로 추가되기 때문에) 확인시 유용
(바이너리 파일은 직접 생성하기 빡셈)
새로 생성시 0 byte 크기의 텍스트 파일 생성
기존 파일의 최종 수정 시간 변경, 파일 내용 변경은 없음
touch<텍스트 파일>
하드 링크(hard link)파일과 심볼릭 링크(symbolic link 또는 soft link)파일 생성
ln<원본파일명><하드링크 파일명>
원본 파일에 대한 복사본
원본과 동일한 내용을 갖는 파일
원본 파일과 inode 번호가 동일—>> 이게 세상 중요!!
하드 링크 파일이 생성되면 inode block의 하드 링크수가 증가
원본 파일에 변화가 생기면 하드링크 파일도 변화!
원본 파일 삭제 되도 하드링크 파일 그대로 존재
원본 파일에 대한 복사본 성격 여러개 생성 가능
하드링크파일을 변화 시키지 않음!! -> 변화는 가능함
하드링크 파일은 파일 생성할때 1로 표현 되어있는데 이건 하드링크가 없다는 뜻!!
원본 파일에 대한 링크 정보만 저장한 파일 ->> 이게 세상 중요!!
원본 파일과 inode번호가 다르다.
원본 파일 내용 변화와 관계 없다.
원본 파일이 삭제 되면 심볼릭 링크파일은 원본 파일에 대한 링크만 가지고 있으므로 원본 파일을 찾을 수 없다.
파일 종류 문자로 l 을 사용
windows O/S의 바로가기와 유사한 기능으로 사용한다.
파일의 사이즈가 작다!
ln -s <원본파일명><심볼릭 링크 파일명>
third/ls -lF => ./my-ls -lF 라고 심볼릭 링크로 바로가기를 해서 실행할 수 있다!
원본파일이 mv로 이동해버리면 오류가 뜬다 -> 찾을 수가 없어서!
-> 텍스트 파일은 문서편집기를 사용하고 바이너리 파일은 컴파일러를 사용하여 생성한다!
행(라인) 단위 편집기 - 라인 단위로 문서 내용 입력과 편집 수행
ed - 사용안함
ex - 사용안함
sed - 스트림 편집기
linux 기본편집기 다른 것들
nano - 배포판에 따라 설치 필요 - ^이게 ctrl임!!
emacs - GNU편집기, 설치 필요
TeX - 수식 편집기, 설치 필요
GUI편집기
GUI만 마우스 사용가능!!!!
gredit - linux GUI 기본 편집기 -> 메모장인듯
리눅스에서 터미널에 gedit이나 검색을 gedit하면 나옴!
linux 기본 편집기
실행 파일 크기가 작다
화면 단위 편집기능 제공
단축키를 이용하여 편집 및 에디터 기능 수행
명령 모드와 편집모드로 구분
단축키를 사용하여 편집함 으로서 편집속도 빠르다
처음에는 사용방법 익히는데 조금 걸림;;
vi- vi실행, 편집할 파일은 별도로 지정하지 않음
vi <파일명> - 지정한 파일을 vi로 읽어서 실행
명령모드 : 문서 편집이나 파일 관련 명령 입력 모드,
명령모드 진입은 esc로 가능-> : 적고 적으면 됨
편집모드 : 실제 내용 입력 및 편집 모드
vi 종료
:q -> 현재 편집내용에 대한 저장이 필요한 경우 종료 되지 않음
:q! -> 강제 종료
명령 모드에서 편집 모드 전환 -> 편집 모드에서 사용하는 단축키 입력
편집모드에서 명령모드 전환 -> esc입력후 :(colon) 또는 /(slach)누르고 명령 하기
편집하고 esc로 바꾸면 이 방향키가 먹는다!!!!
편집모드 상태에서 이동 -> 방향키를 이용하여 수행 , 키보드의 h,j,k,l키 사용
h -> 왼쪽
j -> 내려가기
k -> 올라가기
l -> 오른쪽
i 키 - 현재 커서 위치
a 키 - 현재커서 다음에 입력 -> 뒷 내용 안사라짐!
o 키 - 현재커서 다음줄에 입력 -> 엔터가 되버림!
I 키 - 현재 줄 Home위치에서 입력 -> 현재줄의 맨 처음으로 감!!
A 키 - 현재 줄 end 위치에 입력 -> 현재줄의 맨 마지막으로 감!!
O 키 - 현재 줄 이전 줄에 입력
r 키 - 현재 커서 위치 내용 수정, 한 번만 수정 한글자 수정! -> 자동으로 명령모드로 바뀜
R 키 - 수정 상태 진입, ESC 키 입력전까지 수정 상태 유지
x 키 - 한글자 삭제 <숫자> x 키 - 숫자만큼 글자 삭제
dd 키 - 줄 단위 삭제 <숫자> dd키 - 숫자 줄만큼 삭제
D 키 - 지금 키부터 앞에 전부를 다 삭제
yy 키 - 줄 단위 복사 <숫자> yy - 숫자 만큼 복사
v 키 - 범위 지정
y 키 - 범위 지정 내용 복사
d 키 - 범위 지정한 부분 삭제 후 저장해놓음
p 키 - 붙여 넣기
dd(잘라내고 저장) 키를 이용하여 삭제 후 원하는 위치로 커서 이동 후 p키
/<검색 문자열> - 현재 커서 위치 이 후로 검색
n 키 - 현재 위치에서 파일 끝 방향으로 다음 검색 결과 이동 -> 다 돌면 다시 처음으로 감
N 키 - 현재 위치에서 파일 처음 방향으로 검색 결과 이동
:s/<문자열1>/<문자열2> - 현재커서 위치에서 첫번째 찾은 문자열1을 문자열 2로 변경
:%s/<문자열1>/<문자열2> - 파일 전체에서 문자열1을 문자열 2로변경
u 키 - undo -> 되돌리기!!
ctrl + r 키 - redo
:w - 처음 vi 실행시 입력한 파일에 현재 편집내용 저장
:w<파일명> - 지정한 파일명에 현재 편집 내용 저장
:wq - 처음 vi실행시 입력한 파일에 현재 편집 내용 저장 후 vi 종료
:e <파일명> 파일명에 해당하는 파일 로드
:!<외부명령> - vi실행 상태에서 외부 명령 실행 결과 확인
:sh: 표준 shell실행, 표준 shell에서 exit 입력하면 다시 vi로 전환
:!bash: bash shell 실행, bash 에서 exit 입력하면 다시 vi로 전환
vi 실행 환경과 관련된 여러 내용을 환경 변수에 등록하여 vi 실행시 마다 환경 변수 내용을 기반으로 작동
set 명령을 통한 환경 변수 확인 및 변경
변수(variable) - 메모리 공간 의미, 원하는 값 저장 및 변경가능
환경변수(environment variable) - 명령 또는 응용프로그램 동작을 원할하게
수행하기 위해 미리 메모리에 저장되어있는 값
:set all - 전체 환경 변수 내용 출력
:set<환경변수>=값 - 환경변수 내용 변경 -> :set tabstop=4 바로 조정됨!!!
vi의 환경이 바뀐거다!!!!!! -> 그래서 main.html도 바뀐거임
:set number 하면 라인 번호가 나온다!
현재 vi상태에서 set명령으로 환경변수를 변경한다해도 나왔다가 다시 들어가면 감쪽같이 사라짐!
-> 별도로 환경 변수 파일을 만들어서 관리할 수 있다!
->사용자의 홈 디렉토리에 저장해두면 vi실행시 해당 환경 변수 기반으로 동작하니까
(히든파일! -> ls -a로 볼수있다!)
둘 중 아무거나 써도 상관없다
.vimrc - vi 환경 설정 파일
.exrc - vi 환경 설정 파일**
:e ~/.vimrc -> 무조건 사용자 홈 디렉토리 밑에 만들어야한다!!!!!
- 각각의 내용들
set number = 라인 번호 표시
set tabstop=4 = 탭 간격 4칸
set ai = 들여쓰기 —> 앞에서 탭 하면 그 다음줄도 자연스럽게 탭이 됨
set si = smart indent
set hlsearch = 검색시 하이라이트
set nocompatible = 방향키 이동 가능
set ruler = 상태 표시줄에 커서 위치 표시
set title = 제목 표시
set mouse=a = 커서 이동을 마우스로 가능하도록 설정
set bs=indent,eol,start = backspace사용가능
set show match = 매칭되는 괄호