bashで1時間前以降のmessagesを表示
OVAファイルをHyper-Vの形式に変換する
OVA形式のファイルをHyper-VのVHDX形式のファイルに変換する
1. Microsoft Virtual Machine Converter をつかう
- ovaファイルを解凍して
vmdk
ファイルを取り出す - Microsoft Virtual Machine Converter をインストールする
https://www.microsoft.com/en-us/download/details.aspx?id=42497
※サポート終了 - Powershellを管理者で起動する
- モジュールをインポートする
import-module "C:\Program Files\Microsoft Virtual Machine Converter\MvmcCmdlet.psd1"
- 変換する
convertto-mvmcvirtualharddisk -sourceliteralpath file.vmdk -destinationliteralpath file.vhdx -vhdformat vhdx -vhdtype fixedharddisk or dynamicharddisk
エラーになったとき
The entry ○○○ is not a supported disk database entry for the descriptor.
と表示されたときは、dsfokツールを使用して修正する
2. vboxmanage(VirtualBox)をつかう
- ovaファイルを解凍して
vmdk
ファイルを取り出す - VirtualBox をインストールする https://www.virtualbox.org/wiki/Downloads
- Powershellを起動する
- 変換する
c:\Program` Files\Oracle\VirtualBox\vboxmanage clonehd file.vmdk file.vhd -format VHD
vhdをvhdxに変換するときは、Hyper-V マネージャーをつかう
- ディスクの編集で仮想ハードディスク編集ウィザードを起動
- ディスクの場所でvhdファイルを選択
- 操作の選択で変換ををチェック
- ディスクフォーマットの選択でVHDXをチェック
- ディスクの種類で容量固定 or 容量可変をチェック
- ディスクの構成で出力ファルパスを入力
Ubontoのviの配色を変更する
Ubontoのviのデフォルトの配色が見づらい。
特にコメント。
:colorscheme
でカラースキームを設定できる。
個人的には↓が見やすいと思った。
- elflord
- industry
- murphy
- ron
ホームディレクトリに.vimrc
をつくって設定すれば
自動的に設定されるようになる。
$ ed -s ~/.vimrc i :colorscheme murphy . wq
shでの数値の計算
shでは(( exp ))
で計算できる
$ a=100 $ a=$((a+1)) $ echo $a 101 $
数字以外を指定するとエラーになる
$ a=abc $ a=$((a+1)) sh: 2: Illegal number: abc $ echo $? 2 $ echo $a abc $
計算を関数にした場合、数値以外を指定すると、
エラーになった箇所で止まってしまう。
(a+1の次の行、ここではb=$?以降が実行されない)
f1() { echo f1 a="abc" a=$((a+1)) 2>/dev/null b=$? echo $a return $b }
※計算の標準エラー出力をすてる場合、Ubuntoのshは上の方法で可能だが、
HP-UXではできない。HP-UXでは { a=a=$((a+1)); } 2>/dev/null
計算をexpr
で実施するとエラー以降の行も実行される
a=$(expr $a + 1 2>/dev/null)
(( exp ))
形式でのエラーのときも処理を止めないようにする方法はあるのだろうか。
bashで自分のファイル名をとる
bashのスクリプトで自分自身のファイル名を取得するときは
BASH_SOURCE[0]
をつかう。
sample1.sh
#/bin/bash . $(dirname $0)/sample2.sh function f1 { f2 } f1
sample2.sh
#!/bin/bash function f2 { echo $0 basename ${BASH_SOURCE[0]} }
sample1.shを実行すると、f2の$0
には sample1.shが、
${BASH_SOURCE[0]}にはsample2.shが設定されている
ファイル名を取得するときに basename
をつかわないで
${BASH_SOURCE[0]##*/}
としてもファイル名だけが取得できる。
(先頭から*/と一致する部分を削除するので、ファイル名のみになる)
ディレクトリパスはdirname
以外の簡単な方法は思いつかない。
${BASH_SOURCE[0]%%${BASH_SOURCE[0]##*/}}
で取得できるけど
これならdirname
のほうが良い。
(後方からファイル名と一致する部分を削除するのでディレクトリパスになる)
ディレクトリの絶対パスを取得するときはこんな感じ。
$(cd -- $(dirname -- ${BASH_SOURCE[0]}) && pwd -P)
cdしてpwdしてディレクトリパスを取得する。
--
はディレクトリ名の先頭が-
でも良いようにつけている。
(先頭が - だとコマンドのオプションと判断されてしまうため)
pwdに-Pオプションをつけると、シンボリックリンクではなく、
実際のパスが表示される。
VS Codeでタブが消えてしまったとき
Visual Studio Code(Windows)で画面上部のタブが消えてしまったときは
Ctrl+Windows+w