Setting AWS Region

1
AWS_REGION='us-east-1'

전역 설정하기

git 의 사용자 정보 및 사용자별 다른 연결 정보등과 같은 공통의 설정들은 <home>/.gitconfig 파일에 설정할 수 있다.

이는 git config --global user.name = <USER_NAME> 등과 같은 명령어를 통해서도 가능하지만 파일에 직접 설정을 작성할 수 있다.

.gitconfig

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[core]
editor = "nvim"

[user]
name = <사용자 이름>
email = <사용자 이메일>
username = <USER_NAME>

[credential]
helper = cache # 비밀번호를 캐싱하여 계속 입력하지 않아도 되도록 한다.

[credential "<CODE_COMMIT_REPOSITORY>"] # 코드 커밋을 사용한다면 설정한다.
helper = !aws codecommit credential-helper $@
UseHttpPath = true

위 설정은 간단히 아래의 커맨드로도 가능하다.

1
2
3
4
5
git config --global user.name <USER_NAME>
git config --global user.email <USER_EMAIL>
git config credential.helper cache
git config --list # 설정한 내용 확인
git config --global core.editor "nvim" # git command 의 기본 editor 를 nvim 으로 지정.

ssh 기반 인증

만약 특정 레포지토리가 공개키 방식의 인증과정을 거치고 특정 키를 레포지토리에 등록시켜 두었다면, 해당 인증서를 통해 인증하여 레포지토리와 통신할 수 있다. 이때 여러 레포지토리들은 각각 다른 키를 사용할 수 있는데 이러한 ssh 연결 정보를 특정 레포지토리의 .git/config 파일에 설정해 둘 수 있으며, 그 명령어는 다음과 같다.

1
git config --local --add core.sshCommand 'ssh -i ~/your_key'

혹은 아래와 같이 직접 .git/config 파일을 수정할 수 있다.

1
2
[core]
sshCommand = "ssh -i ~/.ssh/keyfile"

가치투자란 기업을 분석하여 과거의 실적과 향후의 성장가능성을 예상하고, 그 예상치에 비해 현재 가격이 주식 시장에서 낮게 평가되어 있는 주식에 투자하여 수익을 거두는 투자 기법을 말한다.

가치투자를 위해서는 가장 먼저 어떤 기업을 평가하는 법을 알아야 한다.

기업을 평가하는 방법에는 여러 방법이 있겠지만, 다음과 같은 기준을 가지고 기본적인 평가를 할 수 있다.

  1. 기업의 영업 이익에 비해 시장에서 저평가 되었는가
  2. 기업이 하는 비즈니스가 내가 이해 할 수 있고 일반적인 기준에서 합리적인가?
  3. 기업이 하는 비즈니스에 다른 경쟁자가 들어올 진입장벽이 존재하는가?
    (기술기업이라면 기술력, 플랫폼 기업이라면 선점효과 혹은 네트워크 효과를 가지는가?)
  4. 향후 매출과 영업이익이 오를것으로 판단되는가?
  5. 매출의 증가에 비해 영업 이익의 증가율이 더 큰가?
    (고정 비용, 판관비(판매비 관리비) 의 증가율은 얼마나 상승할 것이고 그에 비해 매출은 얼마나 올라갈 것인가?)
  6. 위의 모든 조건에도 불구하고 시장에서 저평가되고 그 기조가 일정하게 유지되어 아래에 유리벽(더 이상 주가가 내려가지 않을 벽)이 존재하는가?

위의 각 평가 기준을 실제 판단함에 있어 보아야 하는 데이터는 다음과 같다.

1번의 경우 PER 를 통해 확인 할 수 있는데, PER 란 주가 수익 비율로 한 주당 가격을 주당 영업이익으로 나눈 값이다. 즉, 어떤 주식이 10만원이라 하고 전체 주식이 100,000주, 순이익이 10억이라 하면, 한 주당 순이익은 1만원이고 이 경우 PER 는 10만/1만 즉 10이 된다. 흔히 PER 는 기업의 순이익에 비해 시장이 기업을 평가하는 정도를 나타내며 PER 가 높으면, 고평가 되었고, 낮으면 시장에서 저평가 된 것으로 이해할 수 있다. 일반적인 주식의 PER 는 10 내외이고 6~7 이라 하면 순이익에 비해 기업이 상당히 저평가 되었다고 볼 수 있다.

2번의 경우는 전자공시 시스템에서 해당 기업의 사업보고서를 읽어보고 그 기업의 비즈니스를 내가 이해하고 합리적이어야 한다.

3번의 경우는 내가 투자하고자 하는 기업이 하는 비즈니스에 다른 경쟁사들이 쉽게 진입할 수 없는지를 알아보아야 하는데, 이것은 다양한 정보 검색을 통해 알아낼 수 있다. 가령 해당 기업의 브랜드 인지도와 시장 점유율 등을 보면 알 수 있다.

4번의 경우 또한 각종 기사와 사업보고서를 통해 알아낼 수 있다. 가령, 해당 기업의 현재 매출대비 영업이익이 얼마인데, 해외에서 장기 계약을 수주하고 그 규모를 안다면, 앞으로 해당 기업의 영업 이익이 10년간 얼마나 성장할지는 불보듯 뻔한 일이다. 이를 통해 몇년간 몇 % 의 영업 이익이 성장할지 구체적으로 점칠 수 있다.

5번의 경우는 기업의 매출이 증가함에 따라 영업이익이 가파르게 성장할 수 있는가이다. 가령 단순 제조업의 경우 제품을 많이 만들어도 기본적인 제조원가가 계속 들어가기 때문에 영업이익은 거의 일정하게 성장한다. 하지만, 지식 융합 산업의 경우 판관비는 그대로 인데, 매출이 늘어나면 영업 이익은 매우 가파르게 성장할 수 있다.

6번의 경우는 유리벽돌이 존재하는 가이다. 위의 모든 조건을 충족했음에도 불구하고, 주가 그래프가 우 하향을 하고있고, 그 하향이 매우 완만한 상황이라면, 기업이 저평가된 것을 시장이 모르고 안정적인 주가를 유지하고 있다는 것이기 때문이다. 해당 기업은 앞으로 기업 실적이 개선될 것이기 때문에 현재 주가 이하로 떨어지는 것은 확률이 매우 낮음을 의미한다. 이러한 정보는 기업의 배당률과 같은 지표로도 알 수 있는데, 가령 완만한 우 하향 곡선을 그리고 있음에도 배당률이 평균 1~2% 를 넘어 5% 가량이나 된다면, 매우 견실한 기업이라고 볼 수 있고, 배당률이 저렇게 높은데 우 하향이라면 곧 이 회사의 가치를 알아보고 투자하는 세력이 생길 것이기에 주가는 오를 것이라 예상할 수 있다.

추천 도서

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1. 가치투자가 쉬워지는 V차트
2. 한국형 가치투자 전략
3. 내일의 금맥
4. 단도투자<강추>
5. 왜 채권쟁이들이 주식으로 돈을 잘 벌까?<밸류에이션법>
6. 워렌버핏 바이블
- 주식시장을 이기는 작은책
- 가치투자의 비밀 (크리스토퍼 브라운)
- 돈, 뜨겁게 사랑하고 차갑게 다루어라
- 불황에도 승리하는 사와카미 투자법
- 위대한 기업에 투자하라
- 보수적인 투자자는 마음이 편하다
- 가치투자의 귀재 존 네프 수익률 5600% 신화를 쓰다.
- 전설로 떠나는 월가의 영웅 (피터린치)
- 가치투자를 말한다 (미국대표 펀드매니저 20인의 투자법)
- 작지만 강한 기업에 투자하라
- 현명한 투자자, 증권분석
- 금융투기의 역사
- 치과의사 피트씨의 똑똑한 배당주 투자

주변에 널린 투자 아이디어를 활용하라

우리는 일상 생활에서 많은 기업의 제품과 서비스를 사용하고 관찰할 수 있다.

가령 ‘허니버터 칩’ 처럼 히트 상품이 나오면 반드시 이는 그 기업의 영업이익을 막대하게 증가시킬 것이고 이는 주가에 반영될 것이다. 하지만, 주의할 점이 있다면, 그 히트상품이 그 기업의 전체 영업이익중 차지하는 비율을 알아야 전체 회사가 얼마나 성장할 지 알 수 있을 것이다. 가령, ‘허니버터 칩’ 의 매출이 차지하는 비율이 해당 회사의 전체 매출의 1% 에 불과하다면 해당 히트상품은 주가에 큰 영향을 줄 수 없다.

즉, 갑자기 많은 사람들의 입에 오르내리고 특히, 아이들과 여성 사이에서 인기가 있으며, 매스컴에서 발표하는 히트상품을 주의깊에 보라, 또 그 제품을 만드는 기업을 분석하고 그 기업에서 제품이 차지하는 비중이 얼마나 되는지 또 그 제품의 판매량 증대가 기업의 이익 증대로 연결되는지를 파악하라.

브랜드형 기업을 발굴하라.

강력한 브랜드 구축에는 많은 시간과 비용이 들어가지만, 일단 본 궤도에 오르면 다른 기업들이 접근할 수 없는 강력한 경쟁력이 된다.

만약 주변인들이 제품을 찾을 때 당연시 하는 브랜드가 있고, 그 브랜드가 대안을 찾을 수 없는 브랜드라면 그 기업은 브랜드 가치가 있는 기업이라고 볼 수 있다. 또 특정 제품이 기업과 동일 시 될 정도로 강력한 브랜드를 구축한다면(마치 박카스) 더할 나위 없다. 이 중에서 경쟁제품이 없고 시장점유율이 독보적이며 기업의 이름만 들어도 누구나 알법한 브랜드라면 그 기업은 앞으로도 쭉 흥할 것이다.

용어 정리

PER(Price Earning Ratio)

전체 주식 가격을 순수익으로 나눈 값으로, 순수익을 벌어들인 돈으로 몇년이면 그 회사를 살 수 있는가를 나타낸다.

가령 어떤 회사의 시총이 100억인데, 순수익이 20억이라면, PER 는 5배 즉, 5년이면 그 회사의 본전을 찾는다는 뜻이다.

ROE(Return On Equity)

Net income / Equity

순자산 대비 순 수익으로 자산이 얼마나 효율적으로 운용되고 있는가를 나타낸다.

ROA

순이익/평균 총 자산 * 100

부채가지 포함한 총 자산으로 얼마나 벌었는지를 보여주는 비율

EPS

주식 한 주가 벌어들이는 이익

경상이익

영업이익 + 영업외 수익 - 영업 외 비용

영업외수익

회사의 활동에서 생기는 수익 중 정규영업에 기인하지 않는 것.

수취이자, 유가증권이자, 유가증권매각수익, 유가증권평가수익, 매입할인, 잡수입

특별이익

영업활동 이외에 우발적 원인으로 발생하는 이익

투자자산이익, 채무면제이익, 보험차익 등

유보율

(자기자본 - 자본금 + 자기주식)/자본금 * 100

사업을 통해 창업 시기부터 지금까지 자본금으로 얼마를 벌었는가에 대한 비율

Create and Alter user

1
2
CREATE USER '<USER_NAME>'@'localhost' IDENTIFIED BY 'password'; --CREATE USER WITH PASSWORD--
GRANT ALL ON *.* TO '<USER_NAME>'@'%' WITH GRANT OPTION; --GRANT USER PERMISSION--

ALTER TABLE

1
2
3
ALTER TABLE <TABLE_NAME> CHANGE <COLUMN1> <COLUMN2> <DATATYPE> --change column name--
ALTER TABLE <TABLE_NAME> DROP <COLUMN_NAME>
ALTER TABLE <TABLE_NAME> MODIFY <COLUMN_NAME> <DATA_TYPE> NOT NULL PRIMARY KEY

INSERT STATEMENT

존재하지 않는 것만 추가하기

1
2
3
4
5
INSERT INTO <TABLE> (<COLUMN1>, <COLUMN2>) 
VALUES (<VALUE1>, <VALUE2>)
WHERE NOT EXISTS (
SELECT <COLUMN> FROM <TABLE2> WHERE id=<value>
)

SELECT STATEMENT

LIKE

1
SELECT * FROM <table_name> WHERE <COLUMN> LIKE "%<CONTENT>%";

ORDER BY

1
SELECT * FROM <TABLE_NAME> WHERE <CONDITION> ORDER BY <COLUMN1> DESC, <COLUMN2> ASC

LIMIT

1
SELECT * FROM <TABLE> LIMIT <INDEX>, <NUMBER>

GROUP BY

1
2
3
4
SELECT u.name, MAX(c.price)
FROM user u LEFT JOIN car c ON u.id = c.user_id
WHERE u.id = 4;
GROUP BY u.name

PROBLEM SOLVING

where 절 없이 업데이트 실패하는 경우
1
SET SQL_SAFE_UPDATES = 0;

ifconfig

configure or view the configuration of a network interface

1
ifconfig

eth0 => the first ethernet interface

wlan0 => the name of the first wireless network interface on the system

find

1
find -name "pattern"

ln

존재하는 파일에 대한 hard link 혹은 symbolic link 를 만들기 위한 명령어이다.

여기서 har link 란 같은 파일에 대해 여러 파일명을 가질 수 있게 해주며, hard link 는 특정 파일의 inode 를 가리킨다.

symbolic 링크란 다른 파일을 특정 이름으로 가리키는 특별한 종류의 파일이다.

hard link 의 경우 file system 을 훼손을 위험이 있으며 보통의 경우 다음과 같이 symbolic 링크를 만드는데 사용된다.

1
ln -s <source file> <link file>

less

Less is a terminal pager program on unix, window

1
less [options] [file_name]

First line: g <

last line: G >

Search: /<search keyword>

go to line: <number of the line>g

dd

On Unix-like operating systems, the dd command copies a file, converting the format of the data in the process, according to the operands specified.

Operand description
if=FILE input file
iflag=FLAGS sync
likewise, but also for metadata

example

1
dd if=blockchain/block_log iflag=nocache count=0

Brief explanation

Binary: /usr/bin/bitcoind
Configuration file: /etc/bitcoin/bitcoin.conf
Data directory: /var/lib/bitcoind
PID file: /var/run/bitcoind/bitcoind.pid (OpenRC and Upstart) or /var/lib/bitcoind/bitcoind.pid (systemd)
Lock file: /var/lock/subsys/bitcoind (CentOS)

Run node with bitcoind

아래 명령어를 통해 bitcoin node 를 백그라운드에서 실행시킨다.

1
bitcoind -daemon -rpcuser=<user_name> -rpcpassword=<user_password> -rpcport=<port>

additional bitcoind options

Interact with chain with bitcoin-cli

1
2
3
4
5
6
bitcoin-cli getinfo
bitcoin-cli getnetworkinfo # 네트워크 정보 받아옴.
bitcoin-cli getblockchaininfo # 블록체인 정보 받아옴.
bitcoin-cli listtrasactions # 트랜잭션 목록 나열
bitcoin-cli getrawtransaction <transaction_id> true
bitcoin-cli stop # stop bitcoin daemon

Account

기본적으로 public-private key pairs 를 사용한다.

사용자는 owner key와, active key 세팅을 통해서 여러 계정 시스템을 관리할 수 있으며, 이는 새로운 permission 을 추가하고 관리방식을 customize 할 수 있다.

IOST 에서 계정은 id와 permissions 를 가지고 만들어지며, 복수개의 permissions 를 가질 수 있다. 각 permission 은 여러개의 item 을 등록하는데, 각 item 은 base58로 encode 된 public key 이거나 account_name@permission_name 형태의 permission pair 이다.

각 permission은 threshold 를 가지는데, 만약 사이닝한 transaction item 의 weight 의 합이 threshold 보다 큰 값을 가지면 transaction 은 승인되는 것으로 본다.

Javascript SDK

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
const IOST = require('iost')

// use RPC
const rpc = new IOST.RPC(new IOST.HTTPProvider("http://localhost:30001"));
rpc.blockchain.getChainInfo().then(console.log);

// init iost sdk
let iost = new IOST({ // will use default setting if not set
gasRatio: 100,
gasLimit: 2000000,
delay:0,
}, new IOST.HTTPProvider('http://localhost:30001'));

let account = "abc";
let kp = new IOST.KeyPair(/* your private key in type Buffer */);

iost.setPublisher(account, kp);

// send a call
let handler = iost.callABI("iost.token", "transfer", ["iost", "form", "to", "1000.000"]);

handler
.onPending(console.log)
.onSuccess(console.log)
.onFailed(console.log)
.send()
.listen(); // if not listen, only onPending or onFailed (at sending tx) will be called

Command line wallet tool

iwallet 설치

1
go get github.com/iost-official/go-iost/cmd/iwallet

Operating node

Deployment of full node

스크립트로 설치하기

아래처럼 환경변수를 사용자의 기호에 따라 설정할 수 있다.

1
curl https://raw.githubusercontent.com/iost-official/go-iost/master/script/boot.sh | PREFIX=/data/iserver bash

위 스크립트를 실행하면 필요한 도커 이미지를 받아오고 아래 커맨드로 도커 이미지를 실행시킨다.

1
2
3
4
5
6
7
8
9
10
## start
docker start iserver

## stop
docker stop iserver

## restart
docker restart iserver

docker run --rm -p 30000-30003:30000-30003 -d iostio/iost-node

Checking node

로그는 $PREFIX/logs/iost.log 에 기록되며 도커 컨테이너 로그 확인을 다음과 같이 수행 할 수 도 있다. docker logs -f isserver

블록체인 데이터는 $PREFIX/storage 에 저장된다.

Create IAM User

Using AWS CLI

다음과 같은 AWS CLI 를 확인하여 Administrators 유저 그룹을 만들고 루트 계정을 생성한다.

1
2
3
4
5
brew install aws # install aws cli
aws iam create-group --group-name Administrators # create iam group
aws iam list-groups # list groups
aws iam attach-group-policy --group-name Administrators --policy-arn arn:aws:iam::aws:policy/AdministratorAccess # AdministratorAccess Policy 적용
aws iam list-attached-group-policies --group-name Admins # 적용된 Policy 확인

Create Lambda function

함수의 확인

1
aws lambda list-functions

Serverless Application Management(SAM)

Lambda Function 을 작성하고 배포하는 일련의 과정을 위해서 SAM 을 사용한다.

1
2
3
brew install aws-sam-cli # install SAM
sam init # initialize sam
sam local start-api # test locally

local test

아래 함수를 실행하면 로컬의 3000번 포트에서 lambda 함수들이 동작된다.

1
sam local start-api

create package

람다함수가 클라우드 환경에서 실행되기 위해서는 S3 버킷에 배포되어야 하고 이를 위해 package 화를 시켜야 한다.

1
2
3
sam package \
--output-template-file packaged.yaml \
--s3-bucket <bucketname>

위 명령어를 실행하면 sam-app/hello_world 디렉토리를 압축하여 .zip 파일을 만들고 amazon s3 에 업로드 한다. 여기서 새롭게 생긴 packaged.yaml 파일은 template.yaml 파일과 동일한 내용을 가지지만 차이가 있다면, packaged.yaml 파일의 경우 codeUri 가 실제 클라우드 uri 를 가진다는 것이다.

Deploy AWS lambda

패키지화를 다 시키고 s3 를 업데이트 했다면 lambda 함수를 배포할 차례이다.

1
2
3
4
5
sam deploy \
--template-file packaged.yaml \
--stack-name samp-app \
--capabilities CAPABILIY_IAM \
--region ap-northeast-2

npm serverless

SAM 이 아니라 serverless 는 npm 패키지로 좀 더 쉽다.

아래와 같이 설치하고

1
npm install -g serverless # install serverless

serverless.yaml

1
2
3
4
5
6
7
8
9
service: my-app

provider:
name: aws
runtime: nodejs8.10

functions:
helloWorld:
handler: handler.js

handler.js

1
2
3
4
module.exports.run = (event, context, callback)=>{
console.log("Debugging...");
callback(null,"hello world");
}

deploy

1
2
sls deploy # deploy project
sls deploy function --function helloWorld # deploy function

invoke

1
sls invoke --function helloWorld --log

What is AWS Lambda

CLI Tool

Prerequisites

Gradle requires Java JDK or JRE

in Mac

1
2
3
4
brew tap caskroom/cask && # only if you didn't install cask
brew cask install java &&
brew cask info java &&
brew tap caskroom/cask

###

install gradle

1
brew install gradle

Create new Gradle Project

Initialize

1
gradle init

Directory

1
2
3
4
5
6
7
8
├── build.gradle  
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle

build.gradle: Gradle build script for configuring the current project

gradlew: Gradle wrapper script for unix-based system

gradle.bat: Gradle wrapper script for Windows

settings.gradle: Gradle settings script for configuring the Gradle build

Create a task

하나의 Project 는 여러개의 Task 를 포함하며, 각 Task 는 기본적인 연산을 수행한다.

Gradle 은 task 라이브러리들을 가지고 있으며, 이를 통해 프로젝트를 설정할 수 있다. 가령 COPY 라는 type 은 특정 파일을 특정 위치로 복사해 준다.

example) build.gradle

1
2
3
4
task copy(type: Copy, group: "Custom", description: "Copies sources to the dest directory") {
from "src"
into "dest"
}

여기서 groupdescription 은 하드코드된 값으로 프로그래머가 원하는 값을 지정하면 된다.

실행하기

1
./gradlew copy

Apply a plugin

Gradle 에는 다양한 종류의 plugin 이 존재한다.

예를 들어 base 플러그인의 Zip type을 활용하여 zip archive 를 생성할 수 있다.

1
2
3
4
5
6
7
8
plugins{
id "base"
}

task zip(type: Zip, group: "Archive", description: "Archive sources in a zip file"){
from "src"
setArchiveName "basic-demo-1.0.zip"
}

실행

./gradlew zip

Command

Show tasks

아래 명령어를 통해 존재하는 task 들을 확인할 수 있다.

task 들은 group 별로 정렬되어 나타나며, 각 task 마다의 description 이 명시되어 있다.

1
./gradlew tasks

Analyze and debug build

gradle 은 build scan 이라는 웹 기반의 build 상태 확인을 제공한다.

아래 명령어는 gradle 에서 확인한다.

example)

1
./gradlew zip --scan

Discover available properties

아래 명령어를 통해 gradle 의 다양한 property 들을 확인할 수 있다.

property들이란 gradle 을 통해 빌드하는 과정에서 설정되는 다양한 속성들을 의미하며, 가령 build directory, project directory 같은 중요한 사항들이 포함된다.

아래 명령어를 통해 property 들을 확인할 수 있다.

1
./gradlew properties

The name of the project matches the name of the folder by default. You can also specify groupand version properties, but at the moment they are taking their default values, as is description.

The buildFile property is the fully-qualified path name to your build script, which resides in the projectDir — by default.

You can change many of the properties. For example, you might try adding the following lines to your build script file, and re-execute gradle properties.

Installation

Git, node.js, aws-cli 를 설치해 준다.

1
2
3
4
5
6
7
8
9
sudo apt update &&
sudo apt install git &&
sudo apt-get update &&
sudo apt-get install nodejs &&
sudo apt-get install npm &&
sudo apt update && # install python to install aws-cli
sudo apt install python3-pip && # install pip
sudo pip3 install awscli && # install aws-cli
sudo apt install awscli

Setup Terminal

installation

1
2
3
4
5
6
7
8
9
10
11
sudo apt-get install terminator &&
sudo apt-get update &&
sudo apt upgrade &&
sudo apt-get install zsh &&
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" &&
chsh -s /usr/bin/zsh root&& # update default shell
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | zsh && # download template
sudo su&&
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc ## copy .zshrc template
source ~/.zshrc &&
npm install --global pure-prompt --allow-root --unsafe-perm=true

install plugin

1
2
3
4
5
# zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

# zsh-autosuggestions
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

~/.zshrc

1
2
3
4
5
6
7
plugins=(
git
zsh-syntax-highlighting
zsh-autosuggestions
)
autoload -U promptinit; promptinit
prompt pure

install fzf

1
2
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

update vs code default terminal

vscode setting

1
"terminal.integrated.shell.linux":"/usr/bin/zsh"

shortcuts

split terminals horizontally: ctrl shift o

split terminals vertically: ctrl shift e

close current panel: ctrl shift w

move terminal: alt + arrow

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×