레이블이 shell인 게시물을 표시합니다. 모든 게시물 표시
레이블이 shell인 게시물을 표시합니다. 모든 게시물 표시

shebang bash version

# mac 에서 .sh 실행시 local -A (delclare -A) 옵션에서 다음과 에러가 발생한다.
line 5: declare: -A: invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...]

# 원인은 .sh 에서 shebang 으로 #!/bin/bash 를 사용하는데 bash 버전이 너무 옛날거라 local -A 옵션이 지원되지 않는다.
# bash 실행시 /opt/homebrew/bin/bash 가 실행되지만 
# 일반적으로 .sh 에서는 #!/bin/bash 으로 많이 사용한다.
type -a bash
bash is /opt/homebrew/bin/bash
bash is /usr/local/bin/bash
bash is /bin/bash

# 두 bash 버전차이가 있었다.
/bin/bash --version; echo "-----"; /opt/homebrew/bin/bash --version

# /bin/bash 는 brew 로 업그레이드 되지 않는다.
# 그리고 /bin/bash 는 x86_64, arm64 환경에서 동작하는 바이너리다. 
file /bin/bash
/bin/bash: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64e:Mach-O 64-bit executable arm64e]
/bin/bash (for architecture x86_64):    Mach-O 64-bit executable x86_64
/bin/bash (for architecture arm64e):    Mach-O 64-bit executable arm64e

# shebang 으로 다음과 같이 명시하면 현재 환경에 맞은 bash 로 실행할 수 있다.
#!/usr/bin/env bash

termux setup storage

폰(안드로이드폰)에서 downloads 에 파일이 너무 많다.
폴더를 생성해서 정리를 하려는데 폰앱으로는 힘든 작업이다.

# termux 를 사용하면 다음과 같이 쉘 커맨드로 처리할 수 있다.
# 다음 명령을 실행하면 ~/storage 위치에 폰 스토리지가 마운트 된다.
# 참고로 이 명령은 termux 설치 후 1번만 수행하면 된다.
termux-setup-storage

# 이제 일반 다음과 같이 파일을 쉽게 이동할 수 있다.
cd ~/storage/downloads
mkdir -p temp
mv *.mp3 ./temp

couchbase cli 사용하기

# couchbase 설치된 곳에 /opt/couchbase/bin/couchbase-cli 을 사용해
# 다양한 작업을 실행할 수 있다.
# 참고로 아래 예시는 couchbase 6.0 기준 이고 버전에 따라 조금 다를 수 있다.

# administrator 비번 변경
# administrator 는 couchbase 설치시 생성한것(이름은 이때 정함)으로 1개만 있다.
# sudo 를 사용하는 이유는 암호 변경을 위해서는
# 토큰(/opt/couchbase/var/lib/couchbase/localtoken)파일로 인증하는데
# couchbase 사용자,그룹만 권한이 있어서다.
sudo /opt/couchbase/bin/couchbase-cli reset-admin-password --new-password ysoftman

# 서버(노드) 추가
# 노드가 수십개 이상일 경우 어드민툴(:8091)->servers->add server 하기보다
# couchbase-cli 를 이용한 쉘 스크립트를 실행하면 편한다.
for ((i=1;i<=10;i++)); do
target="ysoftman-couchbase-$i"
echo "${target}"
/opt/couchbase/bin/couchbase-cli server-add -c ysoftman-couchbase-1 -u admin -p ysoftman --server-add-username=admin --server-add-password=ysoftman --server-add=${target}
done
/opt/couchbase/bin/couchbase-cli rebalance -c ysoftma-couchbase-1 -u admin -p ysoftman

# 서버 리스트 확인
/opt/couchbase/bin/couchbase-cli server-list -c ysoftman-couchbase-1 -u admin -p ysoftman

vscode 커맨드라인에서 실행하기

# vscode 를 mac 터미널 커맨드라인에서 실행하기
# vscode 1.0 이전까지는 
# 쉘 리소스에 (.bashrc, .zshrc ...) 에 다음 코드를 추가해야 한다.
code () {
    VSCODE_CWD="$PWD" open -n -b "com.microsoft.VSCode" --args $*
}

# vscode 1.0 부터는
# 명령 팔렛트(command + shift + p) -> install -> "쉘 명령: PATH 에 'code' 명령 설치" 를 수행

# 참고로 vscode 1.0 이후 부터는 위 코드를 사용하고 있다면 중복된다고 경고가 나오니 삭제하자.

# wsl 을 사용하는 경우 경로 추가가 필요하다.
# export PATH=$PATH:"mnt/c/Program/Files/Microsoft/VS/Code/bin/"
# 최신 버전은 경로가 다음과 같이 바뀌었다.
username=$(wslvar userprofile | tr '\\' ' ' | awk '{print $NF}')
export PATH=$PATH:"/mnt/c/Users/${username}/AppData/Local/Programs/Microsoft VS Code/bin"

# 이제 쉘에서 다음과 같이 바로 vscode 로 파일을 열어 실행할 수 있다.
code file.txt