まず $ vi ~/.bashrc
します.
現在のディレクトリーを表示する function を追加
function chpwd() { echo -ne "\033]0;$(pwd | rev | awk -F \/ '{ print "/"$1"/"$2 }'| rev)\007" }
環境変数 PROMPT_COMMAND に上記関数を追加
PROMPT_COMMAND=chpwd
まず $ vi ~/.bashrc
します.
function chpwd() { echo -ne "\033]0;$(pwd | rev | awk -F \/ '{ print "/"$1"/"$2 }'| rev)\007" }
PROMPT_COMMAND=chpwd
Neovim 用の yum リポジトリー登録
$ sudo vi /etc/yum.repos.d/neovim.repo
[dperson-neovim] name=Copr repo for neovim owned by dperson baseurl=https://copr-be.cloud.fedoraproject.org/results/dperson/neovim/epel-7-$basearch/ skip_if_unavailable=True gpgcheck=1 gpgkey=https://copr-be.cloud.fedoraproject.org/results/dperson/neovim/pubkey.gpg enabled=1 enabled_metadata=1
$ sudo yum install neovim
$ vi ~/.bashrc
alias vi='/bin/nvim'
$ mkdir -p ~/.cache/dein
$ cd ~/.cache/dein
$ curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh
$ sh ./installer.sh ~/.cache/dein
以下を ~/.vimrc or init.vim に貼り付け
"dein Scripts----------------------------- if &compatible set nocompatible " Be iMproved endif " Required: set runtimepath+=/home/ユーザー名/.cache/dein/repos/github.com/Shougo/dein.vim " Required: call dein#begin('/home/ユーザー名/.cache/dein') " Let dein manage dein " Required: call dein#add('Shougo/dein.vim') " Add or remove your plugins here: call dein#add('Shougo/neosnippet.vim') call dein#add('Shougo/neosnippet-snippets') " You can specify revision/branch/tag. call dein#add('Shougo/vimshell', { 'rev': '3787e5' }) " Required: call dein#end() " Required: filetype plugin indent on " If you want to install not installed plugins on startup. "if dein#check_install() " call dein#install() "endif "End dein Scripts-------------------------
$ vi -u ~/.vimrc or ~/.init.vim
:call dein#install()
以下のように .vimrc をカスタマイズ
$ vi ~/.vimrc
"dein Scripts----------------------------- if &compatible set nocompatible " Be iMproved endif " Required: set runtimepath+=/home/ユーザー名/.cache/dein/repos/github.com/Shougo/dein.vim " Required: call dein#begin('/home/ユーザー名/.cache/dein') " Let dein manage dein " Required: call dein#add('Shougo/dein.vim') " Add or remove your plugins here: call dein#add('Shougo/neosnippet.vim') call dein#add('Shougo/neosnippet-snippets') call dein#add('vim-scripts/bash-support.vim') call dein#add('tomasr/molokai') call dein#add('cseelus/vim-colors-lucid') " You can specify revision/branch/tag. call dein#add('Shougo/vimshell', { 'rev': '3787e5' }) " Required: call dein#end() " Required: filetype plugin indent on " If you want to install not installed plugins on startup. if dein#check_install() call dein#install() endif "End dein Scripts------------------------- " color scheme colorscheme molokai " syntax syntax enable " ---------- 基本設定 ---------- syntax enable " 構文ハイライト有効化 set number " 行番号表示 set showmatch " 対応括弧強調表示 set backspace=indent,eol,start " backspaceを有効化 " ---------- タブ設定 ---------- set expandtab " ソフトタブ有効化 set tabstop=4 " タブ文字幅はスペース 4 つ set softtabstop=4 " ソフトタブ幅はスペース 4 つ " set shiftwidth=4 " 自動で挿入されるインデントのスペース幅 " ---------- インデント ---------- " set autoindent " 改行時自動インデント set noautoindent " display settings set number set ruler set list " encoding set encoding=utf8 set fileencoding=utf8 " cursor set cursorline set cursorcolumn
$ mkdir ~/.config
$ mkdir ~/.vim
$ ln -s ~/.vim ~/.config/nvim
$ ln -s ~/.vimrc ~/.config/nvim/init.vim
以上です!! 快適な Vim ライフを!!
原因が分からないのだが,カラースキーマ molokai が使えなくなることがあった.
" colorscheme molokai colorscheme elflord
などとし,一旦別のカラースキーマを設定し,再度 molokai に戻すと直った.
エラーメッセージが埋もれてしまったので正確な原因は不明だが dein#recache_runtimepath()
を実行すればよかったのかもしれない.
どうせメモるならブログ書こうかと.
ssh ログインすると
-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
locale コマンド叩くと
locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory
色々調べて,/etc/sysconfig/i18n に以下を記述し再起動したけど直らない.
LANG=ja_JP.UTF-8 LC_CTYPE=ja_JP.UTF-8
結論
RHEL (CentOS) 7 系では,/etc/locale.conf
に設定するのでした.
(上記をそのまま書いて # source /etc/locale.conf
で O.K.)
あと localectl コマンドっていうのが追加されたようです.ctl 好きやなー.
$ localectl status
で現状確認
以上です!!
Chef Server の構築と運用についてブログを書こうと思っているものの、中々まとまって時間が取れないため、小ネタを 2 つほど紹介します。
knife の設定を正しく終えている Chef Workstation 環境で knife opc コマンドが使えずに困っていた。 具体的には以下のとおり。
$ knife opc user list ERROR: You authenticated successfully to https://CHEF_SERVER_NAME/organizations/CHEF_ORG_NAME as CHEF_ADMIN_NAME but you are not authorized for this action Response: missing read permission
knife.rb に chef_server_url も chef_server_root も正しく指定しているのに、だ。
以下を読むと分かるのだが、
chef/knife-opc https://github.com/chef/knife-opc
knife opc コマンド実行時は、pivotal という Chef Client 名で認証するようだ。
よって sudo chef gem install knife-opc しておいて、以下のコマンドで目的を達成できた。
$ sudo knife opc user list --key /etc/opscode/pivotal.pem --user pivotal
だが、上記のドキュメントにも書いてあるのだが、chef-server-ctl コマンドが knife opc コマンドの管理者としてのアクションのラッパーになっており、こちらを使用するのが推奨されている。 上記コマンドと同じことをしたいなら、以下のようにする。
$ sudo chef-server-ctl user-list
シェルでは以下のように grep できるとする。
$ grep 'export PATH="/opt/chefdk/embedded/bin:$PATH"' ~/.bash_profile export PATH="/opt/chefdk/embedded/bin:$PATH"
ところがこれを bash resource のガード条件として以下のように not_if で書くと syntax error になる(syntax error, unexpected tLABEL)。
not_if "grep 'export PATH="/opt/chefdk/embedded/bin:$PATH"' ~/.bash_profile
解消法は、単純に、ダブルクォーテーションをエスケープするだけ。
not_if "grep 'export PATH=\"/opt/chefdk/embedded/bin:$PATH\"' ~/.bash_profile
Chef実践入門 ~コードによるインフラ構成の自動化 (WEB+DB PRESS plus)
入門Chef Solo - Infrastructure as Code
以下のシェルスクリプトでサクっと調べることができます。
$ sh check_owner_symlink_and_entity.sh ターゲットディレクトリー
例
$ sh check_owner_symlink_and_entity.sh /var/www/html
#!/bin/sh set -u TARGET_DIR=$1 find ${TARGET_DIR} -type l > list while read LINE do TMP_ENTITY=`ls -l ${LINE} | cut -d '>' -f2 | sed 's/ //g'` ls -l ${TMP_ENTITY} > /dev/null 2>&1 if [ ${?} != 0 ]; then ENTITY_PREFIX=${LINE%/*} ENTITY=${ENTITY_PREFIX}/${TMP_ENTITY} else ENTITY=${TMP_ENTITY} fi SYMLINK_OWNER=`ls -l ${LINE} | cut -d ' ' -f3,4` if [ -d ${ENTITY} ]; then ENTITY_OWNER=`ls -ld ${ENTITY} | cut -d ' ' -f3,4` if [ "${SYMLINK_OWNER}" = "${ENTITY_OWNER}" ]; then echo 'OK' else echo "NG シンボリックリンク ${LINE} とリンク先の所有者が異なります" fi else ENTITY_OWNER=`ls -l ${ENTITY} | cut -d ' ' -f3,4` if [ "${SYMLINK_OWNER}" = "${ENTITY_OWNER}" ]; then echo 'OK' else echo "NG シンボリックリンク ${LINE} とリンク先の所有者が異なります" fi fi done < list rm -f list exit 0