티스토리 뷰
1. vim 기능에서 많이 사용하는 것들
1-1 여러 개 파일을 같이 열면서 화면 분할을 사용하고 싶을 때는 -O 옵션을 사용한다.
vim -O hello.c hello.py
1-2 위와 같이 열린 상태에서 ctrl + w를 누르면 위의 오른쪽 하단의 ^W 가 나타나고 좌우 화살표로 어떤 면을 수정할지를 결정한다.
1-2-1 처음에 실행될 때는 좌우의 넓이가 동일한데 창을 확대할 경우 오른쪽 창만 커진다.
1-2-2 동일하게 다시 맞출 때는 ctrl + w 후에 = 를 누른다. 높이를 변경할 때는 ctrl + w 후에 +, - 를 눌러서 조정한다.
1-3 vim에서 쓸 만한 설정은 /etc/vim/vimrc에서 정의할 수 있다. 기본적으로 : 을 누른 후 설정을 하면 된다.
1-3-1 set number 는 화면에 라인이 나오도록 한다.
1-3-2 set expandtab shiftwidth=2 tabstop=2 softtabstop=2 이렇게 설정하면 tab을 사용하면 2개의 space가 입력된다.
1-3-2-1 shiftwidth는 vim이 indent를 넣어 줄 때 사용할 space의 개수를 지정, tabstop은 tab을 대체할 space의 개수이다.
1-3-2-2 softtabstop은 tab이 눌러졌을 때 커서가 스페이스 몇 개 만큼 앞으로 갈지를 지정한다.
1-3-3 기존의 모든 tab을 space으로 변경하고 싶으면 retab 명령어를 실행한다.
1-3-4 syntax on 설정은 기본적으로 vimrc에 정의되어 있기 때문에 안해도 된다.
1-4 vim에서 프로그램을 수정하고 컴파일 하거나 실행을 한 후 다시 에디터로 돌아오는 것은 상당히 귀찮다.
1-4-1 위 처럼 :! 를 사용하면 외부 명령어를 실행할 수 있다. 위에서는 :!ls 가 되어 있는데 enter를 누르면 terminal화면으로 변경되면서 ls 명령어가 실행된다.
1-4-2 terminal 화면에서 한번더 enter를 치면 다시 에디터로 돌아가게 된다.
1-4-3 :!을 사용할 때 % 를 사용하면 현재 편집되고 있는 파일이름이 자동으로 들어가게 된다.
1-4-4 c프로그램을 컴파일 할 때 :!gcc % -o hello 를 사용하면 hello 실행 파일이 만들어 진다.
1-5 C로 작성된 프로그램은 종료 시에 정상일 경우 0, 정상 종료가 아닌 경우는 0이 아닌 수를 반환한다.
1-5-1 프로그램이 종료할 때는 환경변수 ?에 결과값이 들어가게 된다. 환경변수 같지는 않은데 echo $? 로 값을 읽어 올 수 있다.
1-5-2 $의 의미는 $ 뒤에 나오는 문자열과 일치하는 환경변수의 값을 대체하라는 의미가 된다.
1-5-3 아래를 보면 쉘이 실행 시 $를 만나면 환경변수에 정의된 USER 값을 그대로 가지고 와서 변환한다.
1-5-4 env 명령어는 현재 쉘의 환경변수의 값을 읽어와서 표출해 준다.
1-6 file 명령어는 파일의 정보를 알려준다. 실행파일은 어떤 방식으로 컴파일 되었는지, 어떤 라이브러리를 사용했는지 알 수 있다.
1-6-1 아래는 hello 실행파일, 소스코드, object 파일, python 소스코드에 대한 정보를 보여주고 있다.
1-7 whereis 명령어인데 현재 PATH에 설정되어 실행되는 실행파일의 위치를 알려준다.
1-7-1 사실 실행파일, 소스코드, 메뉴얼 파일 모두 찾아주고 리눅스의 표준 디렉토리를 검색한 후 PATH, MANPATH를 검색한다.
1-7-2 특정 파일을 특정 경로 내에서 찾아주는 find 명령어와는 다른 목적을 가진다.
1-7-3 아래 창에서는 gcc, java, dotnet 실행파일의 위치를 찾아보았다. gcc, java는 설치되어 있지만 dotnet은 설치되어 있지 않다.
1-8 실행 명령어의 위치를 찾기 위해 최적화 된 whereis와 차별화된 일반적인 검색을 위한 명령어로는 find가 있다.
1-8-1 다양한 기능을 가지고 있지만 가장 많이 사용되는 방법만 기억에 두어도 충분한다.
1-8-2 첫번째 인자는 검색을 시작할 최상위 디렉터리(생략시 '/') 두번째는 -type 옵션으로 file은 f directory는 d
1-8-3 세번째 는 -name으로 검색 대상의 이름이 들어온다. 정확하게 일치하는 파일만 찾아주기 때문에 wild card를 잘 활용해야 한다. '*', '?', '.', [] 등을 사용할 수 있다.
find /etc -type f -name vimrc
1-9 nl 명령어는 파일에 있는 내용물에 줄번호를 넣어주는 기능을 하지고 있다. 이 기능은 파일에 있는 특정부분을 찾아서 그 부분만 보는데 상당히 유용한 기능을 가지고 있다. 소스코드를 검색해서 특정한 부분을 표출하거나 로그에서 특정한 부분만 추출해서 사용할 때 기준 값으로 번호를 사용할 수 있다.
1-9-1 아래 처럼 .zshrc 쉘 설정파일에서 alias라는 것이 포함된 라인을 보고 싶으면 아래처럼 출력할 수 있다.
1-9-2 -b 옵션은 라인을 계산할 때 공백라인을 포함할지를 결정하는 부분인데 기본값은 공백라인을 계산하지 않는다. 그렇기 때문에 head, tail에서 -n + 옵션을 사용해서 특정라인 부터 보여주고 싶은 경우, 라인의 계산이 달라진다.
1-9-3 그래서 일반적으로는 -ba 를 항상 붙여주는 것이 좋다. 기본설정은 -bt (공백라인 제외) 이다.
1-9-2 만일 위에서 나오는 164라인 부터 10라인을 보고 싶은 경우는 아래 처럼 하면 된다.
1-9-2-1 우선 .zshrc에 라인을 붙여 출력한 것을 tail로 전송하여 164라인 부터 끝까지 필터링한다.
1-9-2-2 라인이 붙은 164에서 끝까지를 다시 head로 파이핑을 하여 처음 10줄만 출력하게 한다.
1-9-2-3 추가적으로 head, tail의 -n(--lines)은 동일하게 동작하는데 -n에 +가 붙으면 해당 줄을 시작점으로 한다는 의미가 된다. -n에 +가 없으면 처음부터 몇 개의 줄을 가지고 올 지를 설정하는데, 이것은 -10 이런 식으로 -n을 생략해도 된다.
nl .zshrc -ba | tail -n+164 | head 10
'Side Technologies' 카테고리의 다른 글
Oracle, MyBatis : 대용량 데이터 베이스 성능 개선 - Parameter binding 제거 (0) | 2021.12.02 |
---|---|
DB : DISTINCT 구문 메모, NULL 비교 (0) | 2021.10.21 |
Oracle : Where 절에서 (+)가 값과 비교할 때 사용된 경우 (0) | 2021.09.11 |
Docker : WSL, Docker 데이터 윈도우 10에서 저장공간 변경 (1) | 2021.06.21 |
VS Code: 여러 개의 자바버전 관리하기 (0) | 2021.05.05 |
- Total
- Today
- Yesterday
- 도커 개발환경 참고
- AWS ARN 구조
- Immuability에 관한 설명
- 자바스크립트 멀티 비동기 함수 호출 참고
- WSDL 참고
- SOAP 컨슈머 참고
- MySql dump 사용법
- AWS Lambda with Addon
- NFC 드라이버 linux 설치
- electron IPC
- mifare classic 강의
- go module 관련 상세한 정보
- C 메모리 찍어보기
- C++ Addon 마이그레이션
- JAX WS Header 관련 stackoverflow
- SOAP Custom Header 설정 참고
- SOAP Custom Header
- SOAP BindingProvider
- dispatcher 사용하여 설정
- vagrant kvm으로 사용하기
- git fork, pull request to the …
- vagrant libvirt bridge network
- python, js의 async, await의 차이
- go JSON struct 생성
- Netflix Kinesis 활용 분석
- docker credential problem
- private subnet에서 outbound IP 확…
- 안드로이드 coroutine
- kotlin with, apply, also 등
- 안드로이드 초기로딩이 안되는 경우
- navigation 데이터 보내기
- 레이스 컨디션 navController
- raylib
- 설정
- Spring Security
- 매핑
- hibernate
- one-to-one
- 외부파일
- one-to-many
- Rest
- 하이버네이트
- spring boot
- WebMvc
- Many-To-Many
- 상속
- Angular
- jsp
- 설정하기
- login
- XML
- Validation
- crud
- 로그인
- Security
- Spring
- MYSQL
- 스프링
- form
- mapping
- 자바
- 스프링부트
- RestTemplate