1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

zsh zshenv zshrc

Last updated at Posted at 2020-06-17

zshの環境設定を書いておく

bashだけど必読。
Linux: .bashrcと.bash_profileの違いを今度こそ理解する|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社

注意
zshenv内のパス設定は出来るだけ文字列だけにする。
どうしてもクォーテーションで囲みたい時は変数展開出来るダブルクォーテーション。

aliasはシングルクォーテーションのみ。コマンドとして出力する為。

.zshenv
export ZDOTDIR=$HOME/.zsh
export HISTFILE=${HOME}/.zsh/.zsh_history

export LD_LIBRARY_PATH=/usr/local/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/lib
#unset DYLD_LIBRARY_PATH
 
export LDFLAGS=-L/usr/local/lib
export LDFLAGS=-L/usr/local/stow/gettext-021/lib:$LDFLAGS
export LDFLAGS=-L/usr/local/stow/gettext-021/lib/gettext:$LDFLAGS

export CPPFLAGS=-I/usr/local/include
export CPPFLAGS=-I/usr/local/stow/gettext-021/include:$CPPFLAGS

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
 export PKG_CONFIG_PATH=/usr/local/stow/openssl/lib/pkgconfig:$PKG_CONFIG_PATH

export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:~/bin
 export PATH=/usr/local/stow/gettext-021/bin:$PATH
 export PATH=/usr/local/stow/ruby/bin:$PATH # for execute gem
##  export PATH=/usr/X11/bin:/usr/local/sbin:$PATH
#export CONFIGURE_OPTS=--with-opt-dir=/usr/local/stow/openssl --with-readline-dir=/usr/local/stow/readline --enable-shared
#export SSL_CERT_FILE=/usr/local/stow/openssl/ssl/cert.pem

export MANPATH=/usr/local/share/man:/usr/share/man
#export MANPATH=/usr/share/man/ja_JP.UTF-8:$MANPATH
# /etc/man.conf
# export LD_RUN_PATH=/usr/local/lib:$LD_RUN_PATH
.zshrc
# Created by newuser for 5.9
# --------
# ZSH
# --------
# ZSH Ctrl+Dでログアウトしてしまうことを防ぐ
setopt IGNOREEOF
# 補完機能
#autoload -Uz compinit
#compinit
autoload -Uz compinit && compinit -i
# 選択中の候補を塗りつぶす
zstyle ':completion:*' menu select

# home brew install zsh-completions
# To activate these completions, add the following to your .zshrc:
#
  if type brew &>/dev/null; then
    FPATH=$(brew --prefix)/share/zsh-completions:$FPATH

    autoload -Uz compinit
    compinit
  fi
#
# zsh IFSをbashと同一に
setopt SH_WORD_SPLIT


# --------
# ZSH history
# --------
alias hi='history -50000'
# 履歴ファイルの保存先
export HISTFILE=${HOME}/.zsh_history
# メモリに保存される履歴の件数
export HISTSIZE=10000
# 履歴ファイルに保存される履歴の件数
export SAVEHIST=100000
# 重複を記録しない
setopt hist_ignore_dups
# 開始と終了を記録
setopt EXTENDED_HISTORY
# --------
# ZSH prompt
# --------
# promptinitを使う場合はこちらを読み込む
# 利用可能なpromptの設定を見る
# $ prompt -l
# promptを設定する
# $ prompt [prompt名]
# promptを独自で変更
# PROMPT='%m:%F{green}%c%f %n%# '
PROMPT='%F{yellow}%c%f $ '
# Linux
# PROMPT='%F{cyan}%n@%m %F{green}%~ %F{yellow}$ %f'

# --------
# ZSH prompt
# --------
# zsh 専用コード

# 重複するパスの除去は zsh では typeset -U を使うだけで簡単に実現できます。typeset -U は重複値を除くための属性で、配列または : 区切りを使う PATH などの変数に付けることがでます。

# PATH='/usr/bin:/bin:/usr/bin:/bin:/usr/bin:/bin'
# typeset -U path PATH
# echo "$PATH" # => /bin:/usr/bin

# 上記のコードは path 配列と PATH 環境変数の 2 つに属性を付けています。zsh では path 配列は PATH 環境変数と紐づいており : で区切られた値が path 配列に反映されます。その逆もしかりですが、path と PATH のどちらから代入しても重複値を省くために両方に属性を付けています。
typeset -U path PATH


# --------
# BASH ZSH 共通
# --------
umask 027
# ------
# EXPORT
# ------
export TZ=JST-9
export LC_TIME=ja_JP.UTF-8 #日時形式
# alias date='LC_TIME=C.UTF-8 date'
# alias date='LC_TIME=ja_JP.UTF-8 date'
# date '+%Y/%m/%d (%a)'
#
export LANG=ja_JP.UTF-8
export LC_ALL=C
#export LC_ALL=ja_JP.UTF-8
#export MAKEFLAGS=-j4 $MAKEFLAGS
export MAKEFLAGS=-j4 

# ------
# # LANG=C
# ------
#export LANG=C
#export LC_ALL=C

# export LC_MESSAGES=ja_JP.UTF-8 #メッセージの言語
# export LC_CTYPE=ja_JP.UTF-8
# export OUTPUT_CHARSET=UTF-8
# NG? export OUTPUT_CHARSET=ja_JP.UTF-8
# export LDFLAGS='-L/usr/local/lib'
# export TERM='xterm-256color'
#

# ------
# vim neovim
# ------
if [ -f /usr/local/bin/vim ]; then
  alias vi=/usr/local/bin/vim
  alias vim=/usr/local/bin/vim
  export EDITOR=/usr/local/bin/vim
elif [ -f /usr/bin/vim ]; then
  alias vi=/usr/bin/vim
  export EDITOR=/usr/bin/vim
fi

# --------
# less more
# --------
#export PAGER=lv
export PAGER='less -R'

# export LESS='-r'
# 最低限でもこれくらいは設定
# export LESS='-i -M -R'
# 全部付けてます(-L 以外)
export LESS='-g -i -M -R -S -W -z-4 -x4'
export LESSCHARSET=UTF-8
# export LESSCHARSET=
#Source-hilight with less
# export LESSOPEN='| /usr/local/bin/src-hilite-lesspipe.sh %s'
# export LESS='--RAW-CONTROL-CHARS'
# alias more='more -r'
# alias more='more -R'

# ------
# Linux
# ls --color
# ls --color=auto
# alias ls='ls -Fh' #--show-control-chars' linux
# ------

# ------
# ls color
# ------
# Mac
# export LSCOLORS='exfxcxdxbxegedabagacad' #デフォルト
 export LSCOLORS='gxfxcxdxbxegedabagacad'
# ------
# ALIAS
# ------
alias stow="stow --ignore='dir|gschemas.compiled|icon-theme.cache'"
alias ls='ls -Gh' #h is show-control-chars. G is color. #Mac
alias lsg='ls -gh' #g is userID hiding #Mac
alias lo='ls -lo'
alias loa='ls -loa'
alias ll='ls -l'
alias llm='ls -l | more'
alias la='ls -la'
alias lam='ls -la | more'
alias lo='ls -lo'
alias loa='ls -loa'
alias lt='ls -lt'
alias ltr='ls -ltr'
alias ltra='ls -ltra'
alias lraT='ls -lraT'
alias cp='cp -iv'
alias rm='rm -iv'
alias mv='mv -iv'
alias clr=clear
alias lv='lv -Ia -Ou8'
#
alias soz='source ~/.zshrc'
# alias soz='source ~/.zsh/.zshrc'
alias soze='source ~/.zshenv'
alias ress="rename -v -X -S ' ' _ -S - '' -S . '' ~/Desktop/スク*.*"
#alias ress="rename -v -X -S ' ' _ -S - '' -S . '' ~/Desktop/Screen*.png"
#alias ress="rename -v -X -s スクリーンショット SS -S ' ' _ -S - '' -S . '' スク*.*"

# --------
# find grep
# --------
 alias grep='/usr/bin/grep --color=always '
#alias grep_ca='/usr/bin/grep --color=always '
 alias grep_cn='/usr/bin/grep --color=never '
#  (ex ggrep -r 日本語 */* | less -R
 alias ggrep='ggrep --color=always '
 alias gegrep='gegrep --color=always '
# NG alias ggrep='ggrep --color=auto '
# NG alias grep='/usr/bin/grep --color=auto '
alias figr='~/bin/figr.sh'
alias fna='~/bin/fna.sh'
# gfind . -name "*.cc" | xargs grep "hoge" -n

# 関数でbash/zshどちらでも可
# function fna() {
#   sh -c 'find . -name "$1" -type f -print' -- "$1"
# }

# function figr() {
#   sh -c 'find . -name "*$1*" -type f -print0 | xargs -0 grep --color -Hn "$2"' -- "$1" "$2"
# }

# findを使ったファイル内検索を強くしてみた
# https://qiita.com/naotoh0811/items/be96b1c0be08f049ba91
# Mac
  function ff_orig(){
	# 正規表現による条件指定で、拡張子が.ccまたは.hであるファイルについて検索
	find -E . -type f -regex ".*\.(rb|py)" | xargs grep "$1" -n | nl | grep $1
}

  function ff(){
	# 第一引数:検索ワード
	# 第二引数:エディタ(=vim)で開きたいファイルのindex
	if [ $# -eq 1 ]; then
		ff_orig "$1"
	elif [ $# -eq 2 ]; then
		vim `ff_orig "$1" | sed -n $2p | cut -f 2 | cut -d: -f 1`
	else
		echo "error"
	fi
}

# GNU find # Findutils
  function fid_reg(){
    # GNU find
    gfind . -type f -regextype posix-egrep -regex ".*\.(rb|py)" | xargs grep "$1" -n | nl | grep $1
}
  function fid(){
	if [ $# -eq 1 ]; then
        fid_reg "$1"
	elif [ $# -eq 2 ]; then
		vim `fid_reg "$1" | sed -n $2p | cut -f 2 | cut -d: -f 1`
	else
		echo "error"
	fi
}

# https://www.rasukarusan.com/entry/2019/04/30/000000
function func() {
    unalias grep
    local func=$(
       typeset -f \
       | grep ".*() {$" \
       | grep "^[a-z_]" \
       | tr -d "() {"   \
       | fzf --height 100% --preview "source ~/.zshrc; typeset -f  {}"
   )
    if [ -z "$func" ]; then
        return
    fi
    typeset -f $func
}

# Mac
 alias psaeo='ps -aeo user,pid,lstart,tty,time,comm'
#alias psaeo='ps -aeo user,pid,ppid,lstart,tty,time,comm'
# Linux
# ps -eo user,pid,ppid,c,lstart,tty,time,cmd

# ------
# macのターミナルから、同じディレクトリで新規ターミナルを開く
# open -a Terminal .
# macの iterm2 から、同じディレクトリで新規ターミナルを開く
 alias newt=' open -a /Applications/iTerm.app .'
# ------

# ------
# atool 圧縮:atool <Archive>.<拡張子> -a <Filename1> <Filename2>
# ------
 alias unat='atool -x '
 alias lsat='atool -l '

# ------
# MACINTOSH
# CD TRAY
# ------
alias tra_close='drutil -drive 1 tray close'
alias tra_eject='drutil eject'
alias tra_open='drutil -drive 1 tray open'


# ------
# MAN
# ------
# alias man='LANG=ja_JP.UTF-8 man -C $HOME/.man/man.conf'
alias man='LANG=ja_JP.UTF-8 man -C /etc/man.conf'
#alias man='LANG=ja_JP.UTF-8 /usr/bin/man'
alias eman='env LANG=C /usr/bin/man'
#alias man='LANG=ja_JP.UTF-8 /usr/local/jman/bin/man'
#alias eman='env LANG=C /opt/local/bin/man'

ShellScriptのダブルクォートとシングルクォートの違い - ぴよぴよ.py

シェルにおけるシングルクォート、ダブルクォート、バッククォートで囲った場合の挙動の違い

シェルのエイリアスで環境変数を使うときはクォーテーションに気をつけよう - Qiita

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?