Terminal
TIPS
- コマンドの強制終了=>
ctrl+c
- ターミナルの表示リセット=>
ctrl+l
- ESCキーの代用=>
Ctrl+[
- カーソルの位置から行頭までを削除=>
ctrl+u
- カーソルの位置から行末までを削除=>
ctrl+k
- シンボリックリンクの向き先変更=>
ln -nfs TARGET .
- ワンライナーで設定書き換え=>
sed -i -e "s/^upload_max_filesize = 2M$/upload_max_filesize = 500M/g" /etc/php.ini
- CURLでファイルダウンロードと権限付与=>
curl -sSLO https://path/to/f.sh && chmod +x f.sh
- DOSやWSLを見やすくする=>ColorTool
- Finder設定(隠しファイルの表示)=>
defaults write com.apple.finder AppleShowAllFiles true && killall Finder
- ファイルバックアップ=>
cp -f file.txt file.txt.org
Bashテンプレート
#!/usr/bin/env bash
#!/bin/bash
BASE="$(dirname "$(readlink -f "${BASH_SOURCE:-0}")")"
DIRNAME="$(cd "$(dirname "${BASH_SOURCE:-0}")"; pwd)"
FILENAME="$(basename "${BASH_SOURCE:-0}")"
DATEID=$(date +%Y%m%d%H%M%S)
[ -e $BASE/_.sh ] && source $BASE/_.sh
cd $BASE
Makefileテンプレート
#!/usr/bin/make -f
##
#SHELL=/bin/sh
#SHELL=/bin/bash
SHELL=/usr/bin/env bash
DIR:=$(realpath $(firstword $(MAKEFILE_LIST)))
BASE:=$(shell dirname ${DIR})
##
_readme:
@echo '--- Makefile Task List ---'
@grep '^[^#[:space:]|_][a-z|_]*:' Makefile
base:
@echo ${BASE}
gip: # global ip
curl ifconfig.io
cargo-make(Makfile.toml)テンプレート
#Makefile.toml
[config]
skip_core_tasks = true
[tasks.bash]
script = [
'''
#!/usr/bin/env bash
echo "Hello, World!"
echo "args:"
echo "->@:${@}"
echo "->\$0:$0"
echo "->\$1:$1"
echo "->\$2:$2"
echo "->\$3:$3"
'''
]
[tasks.python]
script = [
'''
#!/usr/bin/env python3
print("Hello, World!")
'''
]
# 導入ワンライナー
CARGO_MAKE="0.37.6" && curl -sSLO https://github.com/sagiegurari/cargo-make/releases/download/0.37.6/cargo-make-v${CARGO_MAKE}-x86_64-unknown-linux-musl.zip && unzip cargo-make-v${CARGO_MAKE}-x86_64-unknown-linux-musl.zip && sudo cp -f cargo-make-v${CARGO_MAKE}-x86_64-unknown-linux-musl/cargo-make /usr/local/bin/ && rm -Rf cargo-make-v${CARGO_MAKE}-x86_64-unknown-linux-musl && rm -f cargo-make-v${CARGO_MAKE}-x86_64-unknown-linux-musl.zip && cargo-make --version
# 実行(`--option`のようなオプションは`cargo-make`自体のオプションと解釈されるので`--`を挟むことに注意)
makers bash -- --ARG1 --ARG2
makers python
Anyenv導入
git clone https://github.com/anyenv/anyenv ~/.anyenv
exec $(SHELL) -l
anyenv install --init
anyenv install --list
anyenv install nodenv
anyenv install rbenv
anyenv install pyenv
PATHを通す
#vim ~/.zshrc
if [ -e "$HOME/.anyenv" ]
then
export ANYENV_ROOT="$HOME/.anyenv"
export PATH="$ANYENV_ROOT/bin:$PATH"
if command -v anyenv 1>/dev/null 2>&1
then
eval "$(anyenv init -)"
fi
fi
Mo導入
Mustache(Bash)の[ ! -e "./mo" ] && curl -sSLO https://raw.githubusercontent.com/tests-always-included/mo/master/mo && chmod 744 "./mo"
echo '{{NAME}}:["{{MSG}}"]' >> tmp.mo && NAME=MO MSG=Hello,Mo! ./mo tmp.mo && rm -f ./tmp.mo
tmux
- プロセスキル=>
tmux kill-server
#!/usr/bin/env bash
#tmux2
function tmux2() {
if [[ -z "$TMUX" && -z "$STY" ]] && type tmux >/dev/null 2>&1; then
tmux new-session -s s1 -n w1\; \
split-window -t w1.0 -v\; \
resize-pane -t w1.0 -U 99\; \
resize-pane -t w1.0 -D 4\; \
send-keys -t w1.0 "watch -n 2 free -m" C-m \; \
send-keys -t w1.1 "clear" C-m \; \
select-pane -t w1.1 \;\
&> /dev/null
fi
}
tmux2 "$@"
#!/usr/bin/env bash
#tmux3
function tmux3() {
if [[ -z "$TMUX" && -z "$STY" ]] && type tmux >/dev/null 2>&1; then
tmux new-session -s s1 -n w1\; \
split-window -t w1.0 -v\; \
split-window -t w1.0 -h\; \
resize-pane -t w1.0 -U 99\; \
resize-pane -t w1.0 -D 6\; \
send-keys -t w1.0 "clear" C-m \; \
send-keys -t w1.1 "clear" C-m \; \
send-keys -t w1.2 "clear" C-m \; \
select-pane -t w1.2 \;\
&> /dev/null
fi
}
tmux3 "$@"
#!/usr/bin/env bash
# tmux4
function tmux4() {
if [[ -z "$TMUX" && -z "$STY" ]] && type tmux >/dev/null 2>&1; then
tmux new-session -s s1 -n w1\; \
split-window -t w1.0 -v\; \
split-window -t w1.0 -h\; \
split-window -t w1.2 -h\; \
resize-pane -t w1.0 -U 99\; \
resize-pane -t w1.0 -D 6\; \
send-keys -t w1.0 "clear" C-m \; \
send-keys -t w1.1 "clear" C-m \; \
send-keys -t w1.2 "clear" C-m \; \
send-keys -t w1.3 "clear" C-m \; \
select-pane -t w1.0 \;\
&> /dev/null
fi
}
tmux4 "$@"