基本
端末とシェルの設定
使うシェルの変更、.bashrc / .zshrc の設定、補完、端末の色やサイズ、作業の記録など。
設定ファイル
| ファイル | 読まれるとき |
|---|---|
~/.bashrc | bash を対話的に起動するたび(エイリアスや関数はここに) |
~/.profile / ~/.bash_profile | ログインしたとき(環境変数はここに) |
~/.zshrc | zsh を対話的に起動するたび |
/etc/profile・/etc/bash.bashrc | 全ユーザー共通 |
export EDITOR=vim
export PATH="$HOME/.local/bin:$HOME/go/bin:$PATH"
alias ll='ls -alF'
alias ..='cd ..'
alias gs='git status'
HISTSIZE=10000
HISTCONTROL=ignoreboth:erasedups # 空白で始まるコマンドと重複を履歴に残さない
mkcd() { mkdir -p "$1" && cd "$1"; }変更したら source ~/.bashrc か、新しい端末を開くと反映されます。
chshログインシェルを変える
ログインしたときに使うシェルを変えます。
$ chsh -s "$(which zsh)" # zsh に変える(ログインし直すと反映)
$ chsh -s /bin/bash
$ echo $SHELL # 今のログインシェル
$ cat /etc/shells # 使えるシェルの一覧zsh高機能なシェル
bash とほぼ同じ書き方で使え、補完や履歴がより強力です。
autoload -Uz compinit && compinit # 補完を有効にする
zstyle ':completion:*' menu select # 補完候補を矢印で選ぶ
setopt AUTO_CD # ディレクトリ名だけで cd
setopt HIST_IGNORE_DUPS SHARE_HISTORY # 重複を残さない・端末間で履歴を共有
bindkey -e # emacs 風のキー操作
PROMPT='%F{green}%n@%m%f:%F{blue}%~%f$ '| zsh ならではの書き方 | 意味 |
|---|---|
ls **/*.md | サブディレクトリまで一致(設定なしで使える) |
ls *(.) / ls *(/) | ファイルだけ / ディレクトリだけ |
ls *(om[1,5]) | 更新日時の新しい順に5個 |
cd -<Tab> | 最近のディレクトリから選ぶ |
complete補完を足す
Tab キーの補完候補を追加します。
$ complete -W "start stop restart status" myctl # 候補を固定で指定
$ complete -F _git g # 別名 g にも git の補完を使う
$ source <(kubectl completion bash) # ツールが用意している補完を読み込むbindキー操作を変える(bash)
bash のキーの割り当てを変えます。
$ bind '"\e[A": history-search-backward' # ↑ で入力途中に一致する履歴だけたどる
$ bind '"\e[B": history-search-forward'
$ bind -P | head # 今の割り当ての一覧tput端末の情報と色
文字の色や太字、端末の幅などを扱います。
$ tput cols; tput lines # 端末の幅と高さ
$ echo "$(tput setaf 2)成功$(tput sgr0)" # 緑の文字(sgr0 で元に戻す)
$ echo "$(tput bold)太字$(tput sgr0)"
$ tput colors # 使える色の数直接エスケープシーケンスで書く方法もあります。
$ printf '\e[31m赤\e[0m \e[1;32m太い緑\e[0m \e[38;2;255;160;0mオレンジ(24bit)\e[0m\n'stty端末の設定
端末の設定を表示・変更します。
$ stty size # 行数と桁数
$ stty -echo; read pw; stty echo # 入力を表示しない
$ stty sane # おかしくなった端末を元に戻すreset表示が崩れた端末を直す
バイナリを cat して文字化けしたときなどに実行します(入力が見えなくても打てば効きます)。
$ resetscript端末の操作をまるごと記録する
端末での操作と出力を、まるごとファイルに記録します。
$ script -q session.log # 以降の入出力を記録(exit で終了)
$ script -T timing.log -q session.log
$ scriptreplay timing.log session.log # 記録を再生するdircolorsls の色の設定
ls で表示される色を設定します。
$ dircolors -p > ~/.dircolors # 設定を書き出して編集する
$ eval "$(dircolors ~/.dircolors)"kittyGPUで描く高速な端末
Ubuntu には最初から入っていません。 で入れられます。
GPU で描画する高速な端末アプリです。
$ kitty +kitten icat photo.png # 端末の中に画像を表示
$ kitty +kitten themes # 配色を選ぶ
$ kitty +kitten ssh user@host # 相手側でも kitty の機能が使える ssh
$ kitty @ launch --type=tab # 新しいタブ(allow_remote_control が必要)設定は ~/.config/kitty/kitty.conf に書きます。Ctrl+Shift+F2 で設定ファイルを開けます。