2014年7月23日水曜日

OSX: ターミナルとフォルダ

ターミナル(Terminal)アプリケーションとは、GUI(グラッフィカルユーザインターフェイス)と相違し、CLIといってOSレベルのコマンドを入力し、OSや場合によってはアプリケーションを操作する為のアプリケーションです。

Terminalコマンドを使って様々な事ができます。
例えばファイル名を変更したい場合は、「rm」コマンドです。そしてこのコマンドの詳細が不明な場合はmanコマンドとrmコマンドを組み合わせて実行する事でコマンドの詳細が画面に表示されます。manの詳細については参考リンクから参照ください。

Terminal画面について
  • Terminalを起動すると以下の内容が表示されます。
    • your_pc_name:~ your_id$ 
  • 「~ your_id」と表示されるという事は、今ログインしているユーザIDのユーザフォルダのパスの配下(パスが通った状態)にアクセスできる状態であって、lsコマンドで表示されたフォルダがそうです。TerminalコマンドでDocuments(書類)などのユーザフォルダへアクセスするには~/を付加して操作する必要があります。以下がそのコマンドです。
    • cd ~/Documents です。
OSXのフォルダ種類:
  1. ユーザフォルダ
    • 「~/」で始まるフォルダ
    • Terminalから「cd ~」でユーザフォルダへ移動でき、以下のようにTerminal内の左側の表示が変わります。
      • your_pc_name:~ your_id$ 
  2. システムフォルダ 
    • 「/」 で始まるフォルダ 
    • Terminalから「cd /」でシステムフォルダへ移動でき、以下のようにTerminal内の左側の表示が変わります。
      • your_pc_name:/ your_id$ 
参考リンク:
環境変数(PATH)について
manコマンドの使い方

OSX: Bashscriptを作成し、実行する方法

バッシュスクリプトとは:

ターミナルで利用できるコマンドを実行可能形式のTextファイルに羅列し記述することで、一括で実行できるようにする為のスクリプトである。
この場合、外部パラメタ、グローバルまたはローカル変数、条件式を用いてそれに応じたTerminalコマンドを実行するように記述する為のものです。更なる詳しい事についてはGoogle検索してください。

作成方法:

コマンドによるバックアップ方法の内容に基づきbashscriptを作成する方法を説明する。

作成場所:~/Documents (書類)フォルダ
  1. 標準搭載の「TextEdit」などのエディターを起動する。
    • TextEditをテキストエディターとして使うにはTextEditアプリのTextEditメニューのPreferences(設定、「⌘+,」を押下)を表示させ、Plain Textを設定する必要があります。
  2. 以下の内容をその新規作成するファイルに記載、次の行からそれぞれのコマンドをTerminalで起動するときと同様の形式で記載する。
    • #!/bin/bash
  3. 任意のファイル名をつけ保存し、拡張子をshとする。
  4. Terminalを起動し、実行権限を以下のコマンドで作成したファイルに付与する。
    • $ chmod +x ~/Documents/backup.sh
  5. Terminalから実行し動作を確認する。
    • $ ~/Documents/backup.sh
   上記、$表示はコンソール内の表示であって無視。
 途中停止する場合、Control + Cで停止できます。

shファイル内容:
以下の内容はデスクトップにBackupフォルダを作成して個別バックアップ及びリストアするスクリプトです。なお、コマンド実行時にパラメターとしてディレクトリを入力を促すようにする事もできます。

------------------------------------------------------------------
Backup:

------------------------------------------------------------------
#!/bin/bash

echo Put your favourite path except the path to be backed up. Otherwise, it’ll be loop.
echo recommend to use external mount point such /Volumes

SUBVAR1=/Volumes/G-DRIVE
SUBVAR2=/Backup0728

if [ -z “$SUBVAR2” ]
then
VAR=$SUBVAR1
else
VAR=$SUBVAR1$SUBVAR2
mkdir $VAR
fi

mkdir $VAR
mkdir $VAR/System
mkdir $VAR/System/var
mkdir $VAR/System/Library
mkdir $VAR/User
mkdir $VAR/User/Mail
mkdir $VAR/User/Library
mkdir $VAR/User/Library/Application\ Support/

rsync -av -u ~/Desktop $VAR/User/
rsync -av -u ~/Documents $VAR/User/
rsync -av -u ~/Movies $VAR/User/

echo $VAR

rsync -av -u cp -R ~/Music $VAR/User/
rsync -av -u ~/Pictures $VAR/User/
rsync -av -u ~/Downloads $VAR/User/
rsync -av -u ~/Library/Logs $VAR/User/Library/

rsync -av -u ~/Library/Mail/V2 $VAR/User/Mail/
rsync -av -u ~/Library/Application\ Support/AddressBook $VAR/User/Library/Application\ Support/
rsync -av -u ~/Library/Calendars $VAR/User/Library/
rsync -av -u ~/Library/Safari $VAR/User/Library/
rsync -av -u ~/Library/Keychains $VAR/User/Library/
rsync -av -u ~/Library/StickiesDatabase $VAR/User/Library/
rsync -av -u ~/Library/Preferences $VAR/User/Library/
rsync -av -u ~/Library/Logs $VAR/User/Library/

sudo rsync -av -u /Library/KeyChains $VAR/System/Library/
sudo rsync -av -u /var/log $VAR/System/var/
sudo rsync -av -u /Library/Logs $VAR/System/Library/




-------------------------------------------------------
Restore: 


-------------------------------------------------------
#!/bin/bash

echo put your favourite path except the path to be backed up. Otherwise, it’ll be loop.
echo recommend to use external mount point such /Volumes

SUBVAR1=/Volumes/G-DRIVE
SUBVAR2=/Backup0728

if [ -z “$SUBVAR2” ]
then
VAR=$SUBVAR1
else
VAR=$SUBVAR1$SUBVAR2
fi

echo Documents
echo cp -R $VAR/Documents ~/

echo Desktop
echo cp -R $VAR/Desktop ~/

echo Movies
sudo cp -R $VAR/Movies ~/

echo Music
sudo cp -R $VAR/Music ~/

echo Mail
sudo cp -R $VAR/User/Mail/V2 ~/Library/Mail/

echo Pictures
sudo cp -R $VAR/User/Pictures ~/

echo Downloads
sudo cp -R $VAR/User/Downloads ~/

echo user LibraryApplication Support
sudo cp -R $VAR/User/Library/Application\ Support/AddressBook  ~/Library/Application\ Support/

echo user Library Calendars
sudo cp -R $VAR/User/Library/Calendars ~/Library/

echo user Safari
sudo cp -R $VAR/User/Library/Safari ~/Library/

echo User Keychains
sudo cp -R $VAR/User/Library/Keychains ~/Library/

echo User Stickies
sudo cp -R $VAR/User/Library/StickiesDatabase ~/Library/

echo User Preferences
sudo cp -R $VAR/User/Library/Preferences ~/Library/

echo User Logs
sudo cp -R  $VAR/User/Library/Logs ~/Library/

echo System Library Keychain
sudo cp -R $VAR/System/Library/KeyChains /Library/

echo System var
sudo cp -R $VAR/System/var/log /var/

echo System Library

sudo cp -R $VAR/System/Library/Logs /Library/

参考リンク:


2014年7月13日日曜日

Mac: アプリケーションのインストールパスをGUIから確認する方法

インストール後、アプリケーションのインストールパスがわからない場合、以下の手順で確認する事ができます。

手順:
  1. Finderを起動して、アプリケーション(英語の場合はApplication)フォルダを開く
  2. 特的のアプリケーションのアイコンをControlキー + クリックする事でパッケージ詳細(Package Contents)を表示する。その配下のファイルが表示されます。
  3. どれか適当にファイルなどのアイテムを選択し、情報をみる(Command+iキーをクリックする)でパスを確認できる。





Mac: コマンドによるThunderbird のバックアップとリストア

以下の手順によりコマンドでバックアップとリストアする方法を説明します。なお、バックアップ対象は以下の通りでこれらの手順でリビルド時等にバックアップしたときの状態に復旧できます。

バックアップ対象:

プロファイルをバックアップする事で以下の対象がバックアップできます。
  • すべてのメールアカウントのプロファイルとそのパスワード
  • メールコンテンツ(ローカル)

バックアップ手順:
概要:
  • Thunderbirdのプロファイルディレクトリの確認
  • 指定パスへのプロファイルのバックアップ

詳細:

Thunderbirdのプロファイルディレクトリの確認
  1. Run Terminal
  2. cd ~/Library/Thunderbird/Profiles
  3. ls
  4. .defaultと拡張子がついたファイルがプロファイルとそのローカルコンテンツを含んだファイルになります。例:pr1cde0f.default

指定パスへのプロファイルのバックアップ
以下の場合は、Documentsフォルダへ上記の例であげたプロファイルをバックアップする方法です。
  1. cp -R ~/Library/Thunderbird/Profiles/ab7cde1f.default ~/Documents/pr1cde0f.default


2014年7月12日土曜日

OSX: man コマンドの使い方

manコマンドによって該当のコマンドの詳細やオプション表示できます。

例:


終了: q、または、ctrl+vを押下
画面スクロール: コマンドキー(⌘)+上または下矢印キーを押下

Mac: コマンドによるバックアップ方法 〜 TimeMachineを使わずに

TimeMachineなどでバックアップする以外に、以下の項目を個別にバックアップする事が可能です。そのときのOSXの最新バージョンで説明しています。

バックアップ対象一覧:

個人データおよびファイル
  • ~/Desktop
  • ~/Documents
  • ~Movies
    • iMovie, etc
  • ~/Music
    • iTunes, etc
  • ~/Pictures
    • iPhoto, etc
  • ~/Downloads
セキュリティ設定(キーチェン)
  • ~/Library/KeyChains
    • サイトへログインし正常にKeychainsへ保存されたパスワード
    • Wi-Fi(SSID)のセキュリティキー
コンソールログ
  • /var/log
  • /Library/Logs
  • ~/Library/Logs
メール設定とメール
ブラウザのBookmark
  • Safari
  • Chrome
ユーザ辞書
  • 方法:ユーザ辞書を開き選択してデスクトップへドラッグするとファイル(plist)が作成され、そのファイルの内容をドロップして戻せば復元できる。
その他アプリの設定
  • 各アプリケーションなどのplistをバックアップする

バックアップコマンド一覧:

外部ドライブの方は、LaunchPadのその他のDiskUtilityからマウントポイントを確認し/your_backup_path/ の部分を任意のフルパスへ変更してください。私の場合、マウントポイントは、/Volumes/External1/です。そしてその外部ドライブに作成したバックアップの為のフォルダが、Backupという名称のフォルダーなので、/Volumes/External1/Backup/です。そして、私の場合わかりやすく、UserとSystemのフォルダを分けています。そのため、User/とSystem/を付加しています。権限の関係でSystemフォルダはエラーが発生しますので、「sudo cp -R」 で実行する必要があります。

フォルダの区分
  • ユーザフォルダ 「~/」
  • システムフォルダ 「/」
バックアップコマンド一覧:

cp -R ~/Desktop /your_backup_path/User/
cp -R ~/Documents /your_backup_path/User/
cp -R ~/Library/Mail/V2 /your_backup_path/User/
cp -R ~/Movies /your_backup_path/User/
cp -R ~/Music your_backup_path/User/
cp -R ~/Pictures /your_backup_path/User/
cp -R ~/Downloads /your_backup_path/User/
cp -R ~/Library/Application\ Support/AddressBook /your_backup_path/User/Library/Application\ Support/
cp -R ~/Library/Calendars /your_backup_path/User/Library/
cp -R ~/Library/Safari /your_backup_path/User/Library/
cp -R ~/Library/Keychains /your_backup_path/User/Library/
cp -R ~/Library/StickiesDatabase /your_backup_path/User/Library/
cp -R ~/Library/Preferences /your_backup_path/User/Library/
cp -R ~/Library/Logs /your_backup_path/User/Library/

sudo cp -R /Library/KeyChains /your_backup_path/System/Library/
sudo cp -R /var/log /your_backup_path/System/var/
sudo cp -R /Library/Logs /your_backup_path/System/Library/

リストアコマンド一覧:

cp -R /your_backup_path/Desktop ~/

cp -R /your_backup_path/Documents ~/
cp -R /your_backup_path/Movies ~/
cp -R /your_backup_path/Music ~/
cp -R /your_backup_path/User/Mail/V2 ~/Library/Mail/
cp -R /your_backup_path/User/Pictures  ~/
cp -R /your_backup_path/User/Downloads ~/
cp -R /your_backup_path/User/Library/Application\ Support/AddressBook  ~/Library/Application\ Support/
cp -R /your_backup_path/User/Library/Calendars ~/Library/
cp -R /your_backup_path/User/Library/Safari ~/Library/
cp -R /your_backup_path/User/Library/Keychains ~/Library/
cp -R /your_backup_path/User/Library/StickiesDatabase  ~/Library/
cp -R /your_backup_path/User/Library/Preferences  ~/Library/
cp -R  /your_backup_path/User/Library/Logs ~/Library/
sudo cp -R /your_backup_path/System/Library/KeyChains /Library/
sudo cp -R /your_backup_path/System/var/log /var/
sudo cp -R /your_backup_path/System/Library/Logs /Library/

上記の全てのコマンドを一括実行したい場合には、bashscriptという実行可能なファイルを作成し、Terminalから実行する事ができる。その方がTerminalのコマンドヒストリーが雑然にならなくてよいと考えます。またTerminalのCommandヒストリーは削除できる方法がありますが、複雑のようです。
bachscriptの書き方はこちらから参照してください。

補足:
  • 開発者はAndroidStudioなどに保存したプロジェクトファイルのバックアップなどお忘れなく。
参考リンク:

    Mac: ネットワークブート時のローカルディスクアクセス

    ネットワークブートした場合にローカルディスクの~/Libraryなどへアクセスするには、そのブートした画面からFinderメニューのGo To Folderから以下のパスを入力することでアクセスできる。

    /Volumes/VolumeName/Users/UserName/Library

     VolumeNameは通常Macintosh HD