Mac で よく使う キーボードショートカット まとめ
Mac(OS X)で個人的によく使うキーボードショートカット(コマンド)を用途別にまとめてみました。
参考URL: OS X のキーボードショートカット
ターミナル
ターミナルでの操作
ショートカットキー | 説明 | 詳細 |
---|---|---|
control + A | 行頭に移動 | 現在の行/段落の先頭に移動 |
control + E | 行末に移動 | 現在の行/段落の末尾に移動 |
option + 右矢印キー | 単語の末尾に移動 | テキスト挿入ポイントを次の単語の末尾に移動 |
option + 左矢印キー | 単語の先頭に移動 | テキスト挿入ポイントを前の単語の先頭に移動 |
control + W | 単語先頭まで削除 | テキスト挿入ポイントから前の単語の先頭まで削除 |
control + D | 1文字削除、ログアウト | カーソル文字を1文字削除、ログアウト |
control + K | 右側全て削除 | カーソルの右側の文字から行/段落の末尾までを削除 |
control + U | 左側全て削除 | カーソルの左側の文字から行/段落の先頭までを削除 |
control + L | 再表示 | 画面をクリアしてカレント行を再表示する |
tab | 予測補完 | コマンドやディレクトリ名を補完する |
control + C | 処理中断 | 実行中の処理を中断する |
control + S | 出力停止 | 画面への出力を中断する |
control + Q | 出力再開 | 画面への出力を再開する |
control + Z | 処理一時停止 | 実行中の処理を一時停止する |
テキスト編集
テキストエディタで文章編集時の操作(viやemacsではない)
ショートカットキー | 説明 | 詳細 |
---|---|---|
command + A | 全選択 | 前面に表示されている Finder ウインドウ (ウインドウが開かれていない場合はデスクトップ) のすべての項目を選択 |
command + C | コピー | 選択した項目/テキストをクリップボードにコピー |
command + V | ペースト | クリップボードの内容をペースト |
command + X | 切り取り | 選択した項目/テキストをクリップボードにコピーしテキストは削除 |
command + Z | 動作を戻す | 取り消す/やり直す |
command + Y | 動作を進める | command + Zと反対の動作 |
command + S | 保存 | ドキュメントを保存 |
command + F | 検索 | 検索ウインドウを開く |
command + 上矢印キー | 先頭に移動 | テキスト挿入ポイントを現在のドキュメントの先頭に移動 |
command + 下矢印キー | 末尾に移動 | テキスト挿入ポイントを現在のドキュメントの末尾に移動 |
command + 左矢印キー | 行頭に移動 | テキスト挿入ポイントを現在のドキュメントの行頭に移動 |
command + 右矢印キー | 行末に移動 | テキスト挿入ポイントを現在のドキュメントの行末に移動 |
option + エリア選択 | 範囲指定エリア選択 | optionを押しながらトラックパッドで範囲指定出来る(行間にまたがって空白を削除したい時に便利) |
アプリケーション
常によく使う操作
ショートカットキー | 説明 | 詳細 |
---|---|---|
command + tab | アプリ切替え | 開いているアプリケーションのリスト (最近使った順番に表示されている) 内を順方向に移動 |
command + N | 新規立上げ | 最前面のアプリケーションで新規作成 |
command + W | 閉じる | 最前面のウインドウを閉じる |
command + Q | 終了 | 最前面のアプリケーションを終了 |
command + D | 保存しないで閉じる | 「開く」ダイアログと「保存」ダイアログで「デスクトップ」フォルダを選択・または、Mac OS X v10.6.8 以前で「保存しない」ボタンを含むダイアログから「保存しない」を選択 |
電源ボタン | スリープ | 電源が入ったら、タップしてスリープ解除/スリープ状態 |
Alfred
Alfredとは、Macで利用できるランチャーアプリです。(App Storeでダウンロードできます)
もっとキーボードだけで操作したい人向けです。
個人的には、標準のショートカットにシャットダウンがないのでAlfredで「S」で検索しシャットダウンしています。(電源ボタン長押しで強制終了は出来るのですが、強制終了は気が引けるので)
その他にもアプリケーションを起動する時に良く利用します。一度使うと手放せなくなると思います。
iPhoneアプリ を iPadアプリ に 対応させる 方法
iPhoeアプリをiPadアプリとしてもAppStoreに配布する方法について書いてあります。 iPad対応するには、Xcodeで「ユニバーサルに変更」するのと「iPad用画像の設定」が必要となります。
環境
Xcode 5.1.1
流れ
- ユニバーサル化
- プログラム修正(修正が必要な場合のみ)
- 申請手続き
1. ユニバーサル化
DeviceをiPhoneからユニバーサルに変更する事でiPadに対応されます。
iPadのTAGETSを作ることで、TAGETS別にプログラムを変更出来るようになります。(「2. プログラム修正」で利用する場合があります)
ユニバーサルにすることによって、既存のiPhone用のxibがそのままiPadでも使えます。
また、iPadでアプリ起動時にiPhoneアプリとして起動するのではなく、iPad用アプリとして起動します。
- 「TARGETS->MyApp」を右クリックで「Depulicate」を選択
- 表示されたダイアログで「Duplicate and Transition to iPad」を選択(TARGETSにMyApp-iPadが追加されます)
- 1で選択した「「TARGETS->MyApp」の「General->Deployment Info->Devices」を「iPhone」から「Universal」に変更(この対応だけで(Depulicateで追加しなくても)iPadに対応します)
- iPadで確認(実機の場合、右下に倍率を変更するボタンが表示されなければiPad用で開かれています)
2. プログラム修正(修正が必要な場合のみ)
iPad用のアプリアイコン画像や起動時画像の追加、iPad用に細かいプログラム修正を行います。
- アプリアイコンの追加
- 起動画像の追加
- 「TARGETS->MyApp->General->Launch Images」で起動画像画像(768X1024,1536X2048,1024X768,2048X1536)を設定
- プログラム修正(iPadで確認した時にレイアウト部分が崩れている場合は修正しましょう)
3. 申請手続き
- iTunes Connetで「Add Version」でバージョンアップ用アプリの追加手続きを行います。(iPhoneアプリと同じ手順)
- Xcodeでアーカイブ化しアプリをアップします。(iPhoneアプリと同じ手順)
- iTunes Connetでステータスが「Upload Received」に変更されると、iPad用のスクリーンショットを追加出来るようになるのでiPad用の画像(1536x2048 or 1536x2008)を設定しましょう。(iPadアプリで新しい手順)
※.1と2についてはわからない場合、App Store に iOSアプリ を 公開する方法の「3. 配布したいアプリの設定」を参照してください。
参考URL
iOS の アプリ内課金(In-App Purchase) 組込方法
概要
「iPhone」や「iPad」でのアプリ内課金(In-App Purchase)の実装方法について書きました。
iOSアプリ内で特定の機能を有料販売するための準備・開発・テストの説明中心です。
全体的な作業時間としては、1日は覚悟したほうが良さそうです。
(課金のタイプによってはサーバー側の開発がないから、APNsよりは少し楽かも??)
- In-App Purchase プログラミングガイド(50ページくらい)
- iTunes Connect In-App Purchase 設定ガイド(50ページくらい)
開発環境
OS : OS X 10.9.2
Xcode : 5.1.1
前提条件
プロダクト(次の2つ)が作成されていること。
- iOS Developer Centerでアプリの登録(Identifiersの登録時に「In-App Purchase」にチェックする(デフォでチェック入ってる))
- iTunes Connectでアプリを作成(ステータスをPrepare for Uploadまで進める)
作成方法はこちら(アプリの登録(1.証明書関連の作成)、アプリを作成(3. 配布したいアプリの設定))
アプリ内課金の種類
全部で5種類。
消費型はゲームの課金でよく使われます。購読型は電子書籍でよく使われます。
今回は、「非消耗型(Non-consumable)プロダクト」で作成します。
名称 | 説明 | 備考 |
---|---|---|
消耗型(Consumable)プロダクト | アプリケーションの実行に伴って消費されていく項目です。Voice over IPアプリケーションで通信できる残り分数や、音声の転送など一度限りのサービスが例として挙げられます。 | 消費アイテム |
非消耗型(Non-consumable)プロダクト | ユーザのすべてのデバイス上で無制限に使用できる項目です。ユーザのすべてのデバイスで使用可能になります。例としては、書籍やゲームレベルなどのコンテンツ、およびアプリケーションの追加機能などがあります。 | 無制限アイテム |
自動更新購読(Auto-renewable subscriptions) | エピソードで構成されるコンテンツです。消耗型プロダクトと同様に、自動更新購読は、ユーザのすべてのデバイスで無制限に利用可能になります。非消耗型プロダクトと異なるのは、自動更新購読には期限があるという点です。新しいコンテンツは定期的に信され、ユーザは購読が有効な期間中、発行されたコンテンツに対してアクセスできます。自動更新購読の期限が近づいてくると、ユーザに代わってシステムにより購読が自動的に更新されます。 | 期間で自動課金 |
非更新購読(Non-renewable subscriptions) | エピソードで構成されるコンテンツを含まない購読です。たとえば、歴史的な写真のデータベースに対するアクセス権や、フライトマップのコレクションなどがあります。ユーザのすべてのデバイスで購読を使用可能にし、ユーザの購入を復元するは、アプリケーション側で対応することになります。このプロダクトタイプは、ユーザのアカウントが既にサーバ上に存在し、このアカウントを使用してコンテンツの復元時にユーザを識別できる場合によく使用されます。購読の期限と期間もアプリケーション(またはサーバ)で実装し、実行することになります。 | 期間で課金(開発者が期間や期限をサーバーで管理) |
無料購読(Free subscriptions) | Newsstandに無料購読のコンテンツを置くための手段です。サインアップしたユーザは、Apple IDに関連付けられたどのデバイスからでも購読できます。期限切れになることはありません。また、購読にはNewsstand対応アプリケーションが必要です。 | 無料、Newsstand対応アプリケーション |
流れ
- 準備
1-1. iTunes ConnectでManage In-App Purchasesの追加
1-2. StoreKitフレームワーク追加
1-3. In-App PurchaseをON - 開発
2-1. チェック処理
2-2. 購入開始処理
2-3. トランザクション処理・リストア処理
2-4. 購入終了処理 - テスト
1. 準備
iTunes Connectの設定やプロジェクトにフレームワークや設定の変更を行います。
1-1. iTunes ConnectでManage In-App Purchasesの追加
iTunes Connectに接続し対象のアプリを開き、アプリ内課金のアイテム情報(Manage In-App Purchases)を登録します。(登録内容は「2. 開発」で利用します。)
「Type」は、今回は「Non-consumable」を選択します。
「Reference Name」は、アイテムの表示名を設定します。(Appleから毎月送信される売上レポートで表示名)
「Product ID」は、一意のグローバル識別子でドメイン名のスタイルを逆にして使用することを推奨しています(例: com.companyname.application.productid)。
「Screenshot」は、購入確認画面のスクリーンショットをアップロードします。(3. テスト実施時にスクリーンショットをキャプチャしアップロードしましょう。)
1-2. StoreKitフレームワーク追加
ライブラリに「StoreKit.framework」を追加します。
(TAGETS > Build Phases > Link Binary With Libraries)
1-3. In-App PurchaseをON
CapabilitiesのIn-App PurchaseをOFFからONに変更します。 (PROJECT > Capabilities > In-App Purchase)
2. 開発
アプリ内課金のプログラム。
参考URL:失敗しない iOS In-App Purchase プログラミング
サンプルコード:SampleInAppPurchase(swift)
2-1. チェック処理
課金イベントにアプリ内課金が使えるかチェックをします。
MyClass.h #import <StoreKit/StoreKit.h> // delegateにSKProductsRequestDelegateとSKPaymentTransactionObserverを追加 @interface MyClass : UIViewController <SKProductsRequestDelegate, SKPaymentTransactionObserver> { } MyClass.m // メソッド名は適当に - (BOOL)_checkInAppPurchase { if (![SKPaymentQueue canMakePayments]) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"エラー" message:@"アプリ内課金が制限されています。" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil]; [alert show]; return NO; } return YES; }
2-2. 購入開始処理
アイテム情報の取得と購入開始の処理を行います。
MyClass.m // メソッド名は適当に(チェック処理の結果がYESだったらこの処理を呼ぶ) - (void)_startInAppPurchase { // com.companyname.application.productidは、「1-1. iTunes ConnectでManage In-App Purchasesの追加」で作成したProduct IDを設定します。 NSSet *set = [NSSet setWithObjects:@"com.companyname.application.productid", nil]; SKProductsRequest *productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:set]; productsRequest.delegate = self; [productsRequest start]; } #pragma mark SKProductsRequestDelegate - (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response { // 無効なアイテムがないかチェック if ([response.invalidProductIdentifiers count] > 0) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"エラー" message:@"アイテムIDが不正です。" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alert show]; return; } // 購入処理開始(「iTunes Storeにサインイン」ポップアップが表示) [[SKPaymentQueue defaultQueue] addTransactionObserver:self]; for (SKProduct *product in response.products) { SKPayment *payment = [SKPayment paymentWithProduct:product]; [[SKPaymentQueue defaultQueue] addPayment:payment]; } }
2-3. トランザクション処理・リストア処理
App Storeがトランザクションを処理するのを待機し、購入が成功した場合アイテム購入の処理を行います。
MyClass.m // トランザクション処理 #pragma mark SKPaymentTransactionObserver - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions { for (SKPaymentTransaction *transaction in transactions) { switch (transaction.transactionState) { case SKPaymentTransactionStatePurchasing: // NSLog(@"購入処理中"); // TODO: インジケータなど回して頑張ってる感を出す。 break; case SKPaymentTransactionStatePurchased: // NSLog(@"購入成功"); // TODO: アイテム購入した処理(アップグレード版の機能制限解除処理等) // TODO: 購入の持続的な記録 [queue finishTransaction:transaction]; break; case SKPaymentTransactionStateFailed: // NSLog(@"購入失敗: %@, %@", transaction.transactionIdentifier, transaction.error); // TODO: 失敗のアラート表示等 break; case SKPaymentTransactionStateRestored: // リストア処理 // NSLog(@"以前に購入した機能を復元"); [queue finishTransaction:transaction]; // TODO: アイテム購入した処理(アップグレード版の機能制限解除処理等) break; default: [queue finishTransaction:transaction]; break; } } } // リストア処理結果 - (void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error { // NSLog(@"リストア失敗:%@", error); // TODO: 失敗のアラート表示等 } - (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue { // NSLog(@"全てのリストア完了"); // TODO: 完了のアラート表示等 }
購入の持続的な記録には次の方法があります。(消費型プロダクトは維持しません。)
// User Defaultsを使用した値の持続の例) MyClass.m // 購入の持続的な記録 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; BOOL rocketCarEnabled = [defaults boolForKey:@"enable_rocket_car"]; // 購入アイテム使用時 if (rocketCarEnabled) { // ロケットカーを使用 } else { // 普通の自動車を使用 }
非消耗型プロダクトはAppレシートが推奨ですが、余力がなかったので記述は割愛します。
2-4. 購入終了処理
トランザクションオブザーバの削除を行います。(トランザクションが終了すると呼び出される)
MyClass.m #pragma mark SKPaymentQueue - (void)paymentQueue:(SKPaymentQueue *)queue removedTransactions:(NSArray *)transactions { [[SKPaymentQueue defaultQueue] removeTransactionObserver:self]; }
3. テスト
テストユーザーの作成と実機で確認します。
参考URL:iPad上でアプリ内課金 (In-App Purchase) の実機テストをする方法メモ
- iTunes Connectでテストユーザを作成します。(10 Minute Mailを使うと10分だけ無料でメアドが貰えるので便利かも)
- 実機の端末App IDをサインアウトし、アプリをインストールします。
- 追加した課金のシステムをテストします。テスト実施(課金イベント)時にサインインを求められるので、テストユーザーでサインインします。
- 課金成功のメッセージが表示されれば、無事課金完了です。
テスト実施時の注意事項
参考URL: iOSのアプリ内課金(In App Purchase)での注意点
以上でアプリ内課金(In-App Purchase)の組込作業は終わりです。
お疲れ様でした!
.DS_Store とは
背景
以前書いた記事が自分の思わぬところで多くの人に見ていただけたので、もう少し「.DS_Store」について書きたいと思います。
「.DS_Store」ってなんとなく設定ファイルだと思っていたのですが、そもそもなんだっけ・・・
ということで「.DS_Store」について少し調べました。
過不足や誤記があればご連絡いただけると助かります。
- .DS_Storeとは
- コマンド(defaults write com.apple.desktopservices DSDontWriteNetworkStores true)を利用した場合の影響について
- コマンドを利用した場合の個人的な不具合体験談等
1. .DS_Storeとは
概要
OS Xで作成された独自の形式の隠しファイルです。
アイコンの位置や表示設定などのフォルダ表示オプションに関するメタデータを保持しています。
デフォルトでFinder上でもリモートシステム上でもアクセスするすべてのフォルダに.DS_Storeファイルが作成されます。
Apple側でも問題意識を持っていて、ネットワーク接続時に .DS_Store ファイルの作成を抑制する方法も紹介しています。(defaults write com.apple.desktopservices DSDontWriteNetworkStores trueコマンドの紹介)
作成されることによる問題点
- Macユーザー以外から苦情
- リビジョン管理時のファイル追加による負担
- アーカイブ構造が重要である場合の余計なファイルによる構造的問題
wiki .DS_Storeより抜粋
2. コマンド(defaults write com.apple.desktopservices DSDontWriteNetworkStores true)を利用した場合の影響について
影響範囲
SMB/CIFS、AFP、NFS、WebDAV サーバ
(USB、DropBox等はコマンドを実行しても作成されます。)
影響内容
Finderで予期しない動作が起こることがあります。
一例として、サーバボリューム上の項目の「情報を見る」のコメントを追加したり編集する場合、変更内容は他のクライアントやサーバ自体からは見えません。(ファイル本体ではなくメタデータに影響あり)
Mac OS X: リモートボリュームの「情報を見る」のコメントは表示されないことがあります
削除方法は色々なサイトに乗ってますが、.DS_Storeの説明や影響の記事が少なくて不安になる。。。
3. コマンドを利用した場合の個人的な不具合体験談等
ファイルサーバ上の大きめのサイズのExcelが開けない場合がありました。
ローカルにコピーして、サーバのファイルに上書きして更新は出来ます。
自分以外の人が更新する場合ファイルがデグレードする場合があるので注意が必要です。
私のファイルサーバ上のExcel更新頻度は、週に2〜3回位なので不具合が余りなかったのかもしれません。
私は、これからも.DS_Storeを作成しない方を選びます。
理由は、現在Excelを更新する業務は少ないし、会社の方針もGoogleDriveに移行していく予定なので今後も更新頻度は少なくなるからです。Macに変更した当初はExcelのマクロが使えない事に絶望を覚えましたが気にしないことにしました。
それ以上に、私の会社ではMacユーザーが少ない(1〜2人)ので何を見たのかが他の人に筒抜けの生活なんてもう耐えられないのです!
ファイルサーバ上で頻繁にファイルを変更するようなお仕事をされている方や重要なファイルを扱うような方は、事故を起こす可能性があるのでコマンドは利用せずにそのまま利用するのが良いのかもしれません。
Linux 基礎
概要
Linux(CeontOS)について昔まとめた資料です。
基礎なので、入門者や初心者向きです。
目次
1.Linuxの基礎知識
Linuxとは
1991年にフィンランドの大学生だったリーナス・トーバルスが作成。 その後開発者が改良を加え実用的なOSへと進化していく。
LinuxとはOSの一種で、厳密にはカーネルのみがLinux。 カーネルとは、OSの中核部分の事でカーネルにプログラムの実行ライブラリや、日常的に使うツール、コマンド、グラフィカルなユーザーインターフェースを追加してOSとして使えるようになる。
ディストリビューション
カーネルに様々なソフトウェアをまとめたのがディストリビューション。 (多数のオープンソフトウェアや商用ソフトウェアを組み合わせ、1つのOS製品としてまとめあげたもの)
- サーバーソフトウェア:webサーバー、メールサーバー、DNSサーバー、ファイルサーバー
- クライアントソフト:オフィスソフト、ブラウザ
- GUI:X Windows System、ウィンドウマネージャー
- シェル、コマンド、ライブラリ
- Linuxカーネル
ディストリビューションの代表的な系統は3つ
系統 | ディストリビューション | 代表的パッケージ |
---|---|---|
Red Hat | Fedora,Red Hat Enterprise Linux,CentOS | RPM |
Debian | Debian GNU/Linux,Ubuntu,Linux Mint,Edubuntu | Debian |
その他 | Slackware,opemSUSE,SUSE Linux Enterprise,Tiny Core Linux |
※パッケージについては、7.ソフトウェアのインストールを参照
2.Linuxの基本操作
ユーザー
大きく分けて3つのユーザーがある
- 管理ユーザ:システムの変更や実行、再起動など管理権限を持つ(root)(#で表記される)
- システムユーザー:システムプログラムを実行するための専用アカウント(apache,DB等サービスのアカウント)
- 一般ユーザー:作業用アカウント、通常は一般ユーザーでログインして他ではログインしない($で表記される)
※詳しくは6.ユーザー管理参照
コマンド
コマンドの正体はプログラム・ファイル。 シェル自身にもコマンドをもいくつかのコマンドをもっている。(内部コマンド、調べるにはtypeコマンドで内部コマンドか判断出来る。)
コマンド [オプション] [引数]
- ファイル操作系コマンド
概要 | コマンド | 備考 |
---|---|---|
ファイルの種類確認 | file [ファイル名] | |
最初の1画面だけ表示される | less [ファイル名] | |
所有者変更 | chown [-R] [所有者] [ファイル名] | ルート権限、Rオプションを変更すると配下のファイルも全て変更される |
所有グループ変更 | chgrp [-R] [所グループ] [ファイル名] | ルート権限、Rオプションを変更すると配下のファイルも全て変更される |
所有者所有グループ変更 | chown [-R] [所有者:所有グループ] [ファイル名] | ルート権限、Rオプションを変更すると配下のファイルも全て変更される |
ファイルを探す | find [ディレクトリ] [オプション] | 例) find ~/ -name "hogehoge.txt" |
ファイルの末尾を表示 | tail [オプション] | 例) tail -n 3 "hogehoge.txt"(下から3行) tail -f "hogehoge.txt"(監視し常に最新を表示する) |
- その他
概要 | コマンド | 備考 |
---|---|---|
使用中のシェルの確認 | ps | |
ネットワークの再起動 | /etc/init.d/network restart |
変数・エイリアス
- 変数
変数名=値
(変数に値を設定)
echo $変数名
(変数の値を確認)
- 環境変数(定義したシェル上に加え、子シェルも変数が参照できる)
alias [エイリアス='コマンド [オプション 引数]']
(エイリアスの設定)
unalias エイリアス名
(エイリアスの削除)
- サービスの自動起動
chkconfig サービス名 [on|off]
3.ファイルとディレクトリ
ファイルの種類
表記 | 概要 | 備考 |
---|---|---|
- | 通常ファイル | テキストファイルとバイナリファイルがある |
d | ディレクトリ | |
l | リンクファイル | |
b | 特殊ファイル(ブロックデバイスファイル) | 接続されているハードウェアも全てファイルとして抽象化して扱う。例えば、プリンターを表すデバイスファイルに文字列を書き込むとプリンターが印刷されて出力されたり |
c | 特殊ファイル(キャラクタデバイス) | 接続されているハードウェアも全てファイルとして抽象化して扱う。例えば、プリンターを表すデバイスファイルに文字列を書き込むとプリンターが印刷されて出力されたり |
lsでの例 -rw-rw-r-- 1 vagrant vagrant 151 6月 30 15:26 2013 test.html ① ② ③ ④ ⑤ ⑥ ⑦ ①ファイルモード(一番左はファイルの種類) ②リンク数 ③ファイルの所有者 ④ファイルの所有グループ ⑤ファイルサイズ ⑥最終更新日 ⑦ファイル名
ファイルシステム(ディスクファイルシステム)
ファイルを保存する物理的な装置には、ハードディスク、SSD、USBメモリ、ネットワークドライブ等様々ものがある。 それらに記録されたファイルを管理する仕組みをファイルシステムという。 主なファイルシステムは次の通り。
- ext4:Linuxの標準で使われる
- XFS:LinuxやUNIXで使われる(堅牢性の高い)
- FAT/VFAT:SDカードで使われる
- NTFS:Windowsで使われる
- ISO9600:CD-ROMで使われる
- UDF:DVDで使われる
ディレクトリ構成
/ | 概要 |
---|---|
bin | 一般ユーザーが実行できる基本的なコマンド |
boot | システムの起動に必要なファイル |
dev | デバイスファイル |
etc | システム設定ファイル |
home | ユーザーのホームディレクトリ |
lib | ライブラリ |
lost+foumd | 破損した |
media | DVDなどをマウントする場所 |
proc | プロセス情報 |
root | rootユーザー用ホームディレクトリ |
sbin | rootユーザーが実行できるシステム管理コマンド |
tmp | 一時的なファイル置き場 |
usr | 各種プログラムやライブラリ、ドキュメント等 |
var | ログファイル等更新されるファイル類 |
4.シェルとコマンド操作
シェル
コマンドを通してLinuxを利用する際に、ユーザーとLinuxの間を仲介しているプログラムをシェルという。 (ログイン時のデフォルトは/etc/passwdファイルで設定されている)
- 主なシェル
シェル | 概要 |
---|---|
sh(Bourne Shell) | UNIXの標準シェル。最低限の機能しか持たない |
bash(Bourne Again Shell) | shを改良して大幅に機能を拡張したシェル |
tsh(TENEX C Shell) | csh(C言語によく似た文法を使えるシェル)を拡張したシェル |
ksh(Korn Shell) | shを改良して大幅に機能を拡張したシェル |
zsh(Z Shell) | ksh,bash,tcshのいいところ取りをしたような高機能シェル |
- bashの主な内部コマンド
コマンド | 概要 | 備考 |
---|---|---|
alias | エイリアスの作成 | |
unalias | エイリアスの解除 | |
cd | カレントディレクトリの変更 | |
pwd | カレントディレクトのパスを表示 | |
echo | 引数を表示 | |
export | 環境変数を設定 | |
history | コマンド履歴を表示 | 「!履歴番号」でその履歴のコマンドが実行される |
kill | プロセスにシグナルを送る | 詳しくは8.システム管理参照 |
exit | シェルの終了 |
- bashの主なキー操作
コマンド | 概要 |
---|---|
[Ctrl]+[A] | カーソルを行の先頭へ移動 |
[Ctrl]+[E] | カーソルを行の末尾へ移動 |
[Ctrl]+[D] | カーソル部分を1文字削除 |
[Ctrl]+[H] | カーソルの左側を1文字削除 |
[Ctrl]+[L] | 画面をクリア |
[Ctrl]+[S] | 画面への出力を停止 |
[Ctrl]+[Q] | 画面への出力を再開 |
[Ctrl]+[C] | 実行中のコマンドを中断 |
コマンドの入出力
入出力は次の3つ
- 標準入力(入力元はキーボード)
- 標準出力(出力先は端末画面)
- 標準エラー出力(出力先は端末画面)
リダイレクト
「コマンド > ファイル名」 入力元をキーボードからファイルへと切り替えたり、出力を端末画面からファイルに切り替えたりすることが出来る。 リダイレクトを使うと標準出力を任意のファイルに切り替える事ができる。
例) cal > calendar.txt (画面には実行結果が表示されずファイルへ実行結果が出力される) (「コマンド >> ファイル名」だと上書きではなく追記される) (「コマンド 2> ファイル名」だと標準エラーのみファイルに出力される)
myprog < data1
(自作プログラムmyprogに、ファイルdata1からデータを入力する)
パイプ
「コマンド1 | コマンド2」 あるコマンドの実行結果を、別のコマンドで処理出来る。
バックグラウンド実行
「コマンド &」 コマンドを実行しながら端末の操作が出来る
オンラインマニュアル
man [セクション番号] [コマンド名またはファイル名]
ヘルプより詳しい使い方が出力される。 オンラインといってもシステムにインストールされているのでネットワーク経由でどこかに見に行くわけではない。 (一般的に、/usr/share/man配下に格納されている) マニュアルはいくつかのカテゴリーに分類されていて、それをセクション(章)という。
セクション | 概要 |
---|---|
1 | 誰でも実行できる一般ユーザーコマンド |
2 | システムコール(カーネルの関数) |
3 | ライブラリの関数 |
4 | デバイスファイル |
5 | ファイルの書式 |
6 | ゲーム |
7 | その他 |
8 | システム管理コマンド |
9 | Linux独自のカーネルルーチン用ドキュメント |
5.ネットワーク
ネットワークコマンド
- ifconfig
ifconfig
コマンドの主な出力
項目 | 概要 |
---|---|
HWaddr | MACアドレス |
inet addr | IPアドレス(IPV4) |
Bcast | ブロードキャストマスク |
Mask | サブネットマスク |
inet6 addr | IPアドレス |
ping [オプション] ホスト
ICMPパケットを送信し続けその結果を表示する。 反応が返ってくれば少なくともネットワークが繋がっていて接続先ホストも起動しているということが確認出来る。 (ICMP(Internet Control Message Protocol)とは、エラーメッセージや制御メッセージを伝えるためのプロトコル)
netstat [オプション]
送信先や送信元のアプリケーションを区別するために使われる番号がポート番号。 開いているポート番号を確認すれば、ローカルホスト上で動作しているサーバーソフトウェアや、通信中のソフトウェアを確認できる。
主なオプション
オプション | 概要 |
---|---|
-a | すべてのソケット情報を表示 |
-n | アドレスやポートを数字で表示 |
-t | TCPポートだけを表示 |
-u | UDPポートだけを表示 |
主なポート番号
ポート番号 | プロトコル | 概要 |
---|---|---|
20,21 | FTP | FTPサーバー(ファイル転送) |
22 | SSH | SSHサーバー(安全なリモート接続) |
23 | telnet | Telnetサーバー(リモート接続) |
25 | SMTP | メールサーバー |
53 | DNS | DNSサーバー |
80 | HTTP | Webサーバー |
110 | POP3 | メールサーバー |
443 | HTTPS | Webサーバー(SSL) |
ネットワークの設定
- 設定ファイル
/etc/sysconfig/network
主な設定項目
設定項目 | 概要 |
---|---|
NETWORKING | yesならネットワークサービスをシステム起動時に有効にする |
HOSTNAME | ホスト名 |
GATEWAY | デフォルトゲートウェイ(ルータ)のIPアドレス |
- ネットワークの再起動コマンド
/etc/init.d/network restart
ファイルダウンロード
- FTPでダウンロード
lftp 接続ホスト
(ホストに接続)
get ファイル名
(ファイルのダウンロード(mgetだと複数取得出来る))
quit
(lftpを終了)
- HTTP接続でダウンロード
wget [-R] 接続URL
例) wget -r http://example.com/
-rを付与すると配下のファイルもget出来る
リモート接続
主にリモート接続にはSSH(Secure SHell)が使われます。 SSHクライアント⇔SSHサーバー (通信経路が暗号化されます)
ssh [ユーザー名@]接続ホスト
- SCPコマンド(sshでファイルコピー)
scp [-r] コピー元 コピー先
例)scp sample.txt test.host.jp:/tmp
→sample.txtがホスト(test.host.jp)の/tmp直下にコピーされる
6.ユーザー管理
ユーザー情報
- ユーザー情報
/etc/passwd
(1ユーザーにつき1行で情報が格納される)
- パスワード情報
/etc/shadow
(暗号化されたパスワード情報が格納される。rootユーザーのみ閲覧可能)
- ユーザー切替え
su [ユーザー名]
- UID(ユーザーに割り当てらた固有の数値)
id [ユーザー名]
uid=500(vagrant) gid=500(vagrant) 所属グループ=500(vagrant),10(wheel)
ユーザーとUIDの対応
ユーザー | UID | 備考 |
---|---|---|
管理ユーザー | 0 | |
システムユーザー | 1~99 | |
一般ユーザー | 100以上 | CentOS等多くのディストリビューションでは500以上のUIDが使われている |
- グループ情報
/etc/group
(ユーザーは最低限1つのグループに所属しなけばいけない。
基本グループはプライマリーグループ、それ以外はサブグループと呼ぶ。
一般的なディストリビューションの場合、ユーザー追加時にユーザーと同じ名前のグループでプライマリーグループが設定される)
- グループ情報確認
groups [ユーザー名]
ユーザー情報変更
- ユーザー追加
useradd ユーザー名
(root権限が必要)
- パスワード変更
passwd [ユーザー名]
(ユーザー名を省略すると自分のパスワード変更が出来る)
- ユーザ削除
userdel [-r] ユーザー名
(-rオプションを指定すとホームディレクトリも一緒に削除される)
グループ情報変更
- グルプ追加
groupadd グループ名
- グループにユーザーを追加
usermod -G グループ名 ユーザー名
- グループ削除
groupdel グループ名
ユーザー環境変更
ユーザーに関わる情報は、Linuxのシェル上では変数に保存される。
ユーザー環境に関わる主な変数
変数 | 概要 |
---|---|
HOME | ユーザーのホームディレクトリ |
LANG | ユーザーの言語環境 |
PATH | コマンドを検索するディレクトリ |
UID | ユーザーID |
USER | ユーザー名 |
シェルは、ユーザーがログイン時にとくてのファイルを読み込むようになっている。 ユーザー環境を設定したい場合、その設定ファイルの定義を追加すればよい。 具体的には、/etc/profileファイルと~/.bash_profileファイルが読み込まれる。 /etc/profileは全ユーザー共通の設定で、~/.bash_profileはユーザー固有の設定。 (変更を出来るのは~/.bash_profileのみ)
7.ソフトウェアのインストール
パッケージ
パッケージとは、インターネットで配布されているソフトウェアを簡単にインストール出来るようにしたのもの。(ソフトウェアには実行ファイルやマニュアル、ドキュメントファイル、設定ファイル、関連ライブラリ等が含まれており、まとめてパッケージと呼ぶ) 大半のLinuxディストリビューションは、ソフトウェアをパッケージ単位で管理する。
- RPMパッケージのファイルの見方
emacs-23.1-21.el6_2.3.x86_64.rpm
- emacs=パッケージ名
- 23.1-21=ソフトウェアのバージョン
- el6_2.3=対応ディストリビューション
- x86_64=アーキテクチャ
重要なのはアーキテクチャ アーキテクチャが異なると同一ディストリビューション、同一バージョンでもRPMパッケージを使えない。
アーキテクチャ確認コマンド
- 高度なパッケージ管理システム
rpmコマンドだけでは、管理者が手動で依存関係を解決しなければならなく管理が大変。 CentOSではYUMを使ってパッケージ管理が出来る。 YUMを使うとパッケージとその情報が蓄積されたインターネット上のリポジトリを利用し、必要なパッケージをインストールでき、依存関係も自動で解決してくれます。
yum [-y] サブコマンド
主なサブコマンド | 概要 |
---|---|
update | システム(または指定したパッケージ)をアップデート |
check-update | アップデートされるパッケージ一覧表示 |
install | 指定したパッケージのインストール |
remove | 指定したパッケージのアンインストール |
list | パッケージ一覧表示 |
info | 指定したパッケージの情報を表示 |
serch | パッケージを検索 |
8.システム管理
プロセスとデーモン
- プロセス
プログラムを実行すると、メモリが割り当てられCPUによって処理される事をプロセスと呼ぶ。 (Linuxは、複数ユーザーが同時操作する事を前提としておりマルチタスクのOSとして設計されている。同時にプログラムが実行されているように見えるのは、CPUの処理を細切れにしてごく短い時間で切り替えながら処理をしている)
ps [オプション]
(オプションを付けずに実行すると、端末上で実行されているプロセス一覧が表示される)
(オプションにa及びxを付けて実行すると、システム上で実行されているプロセス一覧が表示される(uを付けるとユーザーも表示される)pstree
(プロセスの親子関係が確認できる)kill [-[SIG]シグナル] PID
(プロセスにシグナルを送る)
psコマンドの例) [root@localhost ~]## ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.3 19228 1508 ? Ss 01:03 0:00 /sbin/init root 2 0.0 0.0 0 0 ? S 01:03 0:00 [kthreadd]
psコマンドの主な出力項目
項目 | 概要 |
---|---|
USER | 実行ユーザー |
PID | プロセスID |
%CPU | CPU利用率 |
%MEM | メモリ利用率 |
TTY | プロセスを実行した端末 |
STAT | プロセスの状態 |
START | プロセスの実行日 |
TIME | 消費したCPU時間 |
COMMAND | コマンドまたはプログラム名 |
killコマンドの例) [vagrant@localhost ~]$ kill -TERM 1989
主なシグナル
シグナル | シグナル番号 | 概要 |
---|---|---|
HUP | 1 | ハングアップ(設定ファイルを再読み込みさせたいとき使う) |
KILL | 9 | 強制終了 |
TERM | 15 | 通常終了 |
CONT | 18 | 一時停止中のプロセス再開 |
STOP | 19 | 一時停止 |
- デーモン
メモリに常駐しているプロセスをデーモンと呼ぶ。 一般的なデーモン起動を起動するサービスは/etc/init.d/に格納されている。
(プロセスには、処理が終了すると消滅するものと、ずっとメモリ上に常駐し要求に応じてサービスを提供するものがあります。殆どのプロセスは前者で、システムサービスやサーバープログラムは後者となる。)
主な起動スクリプト
起動スクリプト | 説明 |
---|---|
/etc/init.d/network | ネットワークサービス |
/etc/init.d/crond | 定期的な処置をするcronサービス |
/etc/init.d/cups | 印刷サービス |
/etc/init.d/rsyslog | シスログサービス |
/etc/init.d/sshd | SSHサーバー |
/etc/init.d/postfix | Postfixサーバー |
/etc/init.d/httpd | Apachサーバー |
システム状況監視
topコマンドの例) [vagrant@localhost ~]$ top ①top - 05:38:52 up 4:34, 1 user, load average: 0.00, 0.00, 0.00 ②Tasks: 111 total, 1 running, 110 sleeping, 0 stopped, 0 zombie ③Cpu(s): 0.0%us, 0.0%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st ④Mem: 379532k total, 176224k used, 203308k free, 14520k buffers ⑤Swap: 786424k total, 0k used, 786424k free, 86204k cached ⑥ PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 19228 1508 1216 S 0.0 0.4 0:00.89 init
①top - 05:38:52 up 4:34, 1 user, load average: 0.00, 0.00, 0.00 ロードアベレージは平均的なシステム負荷の値で、一般的にはCPU数(コア数)以下であれば問題なし。(例えば2コアでCPUを2つ搭載しているマシンでは、4.0を下回っていれば、システム負荷は高くない)
② Tasks: 111 total, 1 running, 110 sleeping, 0 stopped, 0 zombie 実行中のプロセス数が表示される
③Cpu(s): 0.0%us, 0.0%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st CPUの負荷状況が表示される
④Mem: 379532k total, 176224k used, 203308k free, 14520k buffers ⑤Swap: 786424k total, 0k used, 786424k free, 86204k cached メモリやスワップについて表示される。(詳しくはfreeコマンド参照)
⑥ PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 19228 1508 1216 S 0.0 0.4 0:00.89 init
個々のプロセスが表示される。
CPUやメモリを多く消費しているプロセスを確認すると良い。(CPU利用率=%CPU、メモリ占有率=%MEM)
デスク使用量監視
df [オプション]
(ファイルシステムごとのディスク使用量や使用割合、空き容量を確認出来る)
(オプションにHを付けると見やすい単位で表示する)
メモリ監視
free [オプション]
(メモリの利用状況を確認できる)
(オプションにmを付けるとMバイト単位で表示する)
freeコマンドの例) [vagrant@localhost ~]$ free -m total used free shared buffers cached ①Mem: 370 172 198 0 14 84 ②-/+ buffers/cache: 73 297 ③Swap: 767 0 767 // トータル370Mバイトのうち、172Mバイトが使われ、空きが198Mバイト // しかし、一部バッファキャッシュに利用されているため、実際に使われているのは73Mバイト、空きは297Mバイトとなる。 // メモリに余裕があるためスワップは使用されていない
①Mem: 370 172 198 0 14 84 メモリの状況
②-/+ buffers/cache: 73 297 バッファキャッシュを引いた値 (空きメモリがあるとハードディスクへのアクセスを高速化するため、メモリの一部を利用する。これをバッファキャッシュという。 実際に使われているメモリは、バッファキャッシュの値を差をみる。)
③Swap: 767 0 767 スワップ状況 (メモリが不足すると一時的にディスクの一部を仮想メモリとして利用する。これをスワップという。 スワップが日常的に発生しているならメモリの増設が必要。)
freeコマンドの表示項目
行 | 項目 | 概要 |
---|---|---|
Mem | total | 前メモリの合計 |
used | 使用中のメモリ | |
free | 空きメモリ | |
shared | 未使用 | |
buffers | バッファ | |
cached | キャッシュ | |
-/+ buffers/cache: | used | バッファキャッシュ以外に使われているメモリ |
free | バッファキャッシュを含めた空きメモリ | |
swap | total | スワップ領域の合計 |
used | 使用中のスワップ領域 | |
free | 空きスワップ領域 |
ログ管理
/var/log
(システムやサービスプログラムの挙動、ユーザーのログイン状況等がログファイルに記録される)
主なログファイル
/var/log/ | 概要 |
---|---|
messages | システム一般記録 |
scure | 認証関連の記録 |
maillog | メール関連の記録 |
cron | cronによる自動処理の記録 |
rpmpkgs | インストール済みRPMパッケージの記録 |
また、CentOSにはlogwatchというソフトウェアが用意されており、一日に一度重要な項目をメールにまとめてレポートを送ってくれる。
9.Webサーバー
Apache
Apache Projectによって開発されたWebサーバーソフト。
Apache代表的な機能
- 静的なWebページの配信
HTMLと画像のみで構成されたwebページ等 - 動的なWebページの配信
掲示板やECサイト等、ユーザーのアクションで表示が変わる - モジュール構成
様々な機能がモジュールとして分割され必要に応じて本体に組み込み利用できる - SSl(Secure Socket Layer)
暗号化された安全な通信の提供 - ユーザ認証
ユーザー名とパスワードを使って特定のユーザーのみ公開できる - ホスト認証
特定のホスト名やドメイン、IPアドレスからのアクセスを拒否することができる - バーチャルホスト
一台のWebサーバーで異なるドメインを持つ複数のWebサイトを運用できる
Apacheの設定
httpd.confの内容
ディレクティブ | 概要 | 詳細 |
---|---|---|
ServerRoot | 設定等のトップディレクトリ | Apacheの設定ファイルが格納されているディレクトリを指定 |
Listen | サーバーの待ち受けるポート番号 | 通常は80番ポートで待ち受けるため変更不要 |
Include | 外部の設定ファイル | httpd.conf以外の外部ファイルのサブ設定ファイルを指定 |
User | Apacheの実行ユーザー | デフォルトはApacheになっており、作成されたファイルもApache権限で読み取りできるようにする必要がある |
Group | Apacheの実行グループ | |
Server Admin | サーバー管理者 | サーバー管理者のメールアドレス |
ServerName | サーバー名 | |
DocumentRoot | ドキュメントルート | webサイトのトップディレクトリ |
DiretoryIndex | インデックスファイルの指定 | URLでファイル指定されなかった時に、インデックスファイルとして返すファイル名を指定 |
Apacheコマンド
httpd -t
(httpd.confの構文チェック。「Syntax OK」と表示されたら構文上はミスはない) /etc/init.d/htppd start
(起動) /etc/init.d/htppd status
(確認) /etc/init.d/htppd stop
(停止)
おすすめ書籍
Linuxを全く分からなくても丁寧にわかりやすく解説されてます。
進み方も調度良く、分かりやすく書いてあるのでかなりオススメ!!
サーバー構築 サービスメモ
概要
サーバー構築サービスの備忘録メモです。
- サービスの種類
- VPS
- まとめ
1. サービスの種類
共有レンタル | VPS | クラウド(IaaS)※2 | |
---|---|---|---|
タイプ※1 | 共有 | 仮想 | 仮想 |
価格 | 0〜低 | 中 | 高 |
管理者権限 | ☓ | ◯ | ◯ |
管理者知識 | 不要 | 必須 | 必須 |
自由度 | ☓(webのみ) | ◯ | ◯ |
構成変更 | ☓ | ☓ | ◯ |
※1 共有サーバーは、1台のサーバーを複数のユーザーで共有。(他のユーザーの影響を受けるが専門知識が不要) (専有サーバーは、1台のサーバーを単独のユーザーで占有。(物理的なサーバを専用しているためメンテナンスやハード障害の影響を受ける)) 仮想サーバーは、1台のサーバー内に自分だけの専用領域を確保。(システム設定など)
※2 * IaaS:インフラ(仮想サーバやネットワーク) →AmazonEC2等 * PaaS:プラットフォーム(開発環境やアプリケーションの動作環境) →GoogleAppEngine、dotCloud等 * SaaS:アプリケーション →Gmail等
参考URL
2. VPS
2-1. メモリ2G前後のVPS
さくら | DTI | KDDI | お名前.com | KAGOYA | |
---|---|---|---|---|---|
サービス名 | さくらのVPS 2G | ServersMan@VPS Standard | CloudCore VPS | VPS(KVM)メモリ2GB | タイプA |
初期費用 | 0円 | 0円 | 0円 | 0円 | 0円 |
月額 | 1,480円 | 980円 | 2,100円 | 1,380円 | 840円 |
CPU | 2.40Ghz | 2.13Ghz | 2.20GHz | 3.06Ghz | 2.53Ghz |
メモリ | 2GB | 最大4GB | 2GB | 2GB | 最大2GB |
HDD | 200GB | 100GB | 100GB | 200GB | 200GB |
ネットワーク | 100Mbps共有 | 不明 | 100Mbps共有 | 100Mbps共有 | 不明 |
仮想化プラットフォーム | KVM | OpenVZ | KVM | KVM | OpenVZ |
対応OS | CentOS 5(32/64)CentOS 6(32/64)Scientfic Linux6(32/64)Ubuntu 10.04(32/64)FreeBSD 8.1(32/64)Debian 6(32/64)Fedora 16(32/64) | CentOS 5(32/64)CentOS 6(32/64)Ubuntu 10.04(32/64)Debian 5(32/64)Debian 6(32/64) | CentOS 5不明 | CentOS 6 (64)Scientfic LinuxFedoraDebianUbuntuFreeBSDArch Linux | CentOS 5(32/64)Ubuntu 10.04(32/64)Debian 5(32/64) |
SaaSesは2014年4月1日より法人向けクラウドに移行したようです。
参考URL:http://temog.info/archives/vps/vps-comparison-sakura-dti-saases-kddi-gmo-kagoya.html
2-2. 月額500円以下のVPS
DTI | ServerQueen | ABLENET | |
---|---|---|---|
初期費用 | 0円 | 0円 | 980円 |
月額 | 490円 | 480円(1年契約) | 480円 |
メモリ | 1GB | 256MB | 1GB |
HDD | 50GB | 10GB | 50GB |
ServerQueenは、この価格での新規提供終了したようです。
月額500円以下のプランがあるVPSまとめ
2-3. 無料のVPS
VPS.me | Host1Free | |
---|---|---|
CPU | 0.6G | ? |
メモリ | 384MB | 128MB |
Disk space | 5GB | 10GB |
備考 | 空きがない場合があり最後まで登録しないと空き状況がわからない(参考URL:http://yokoswork.blogspot.jp/2014/01/vps-vpsme.html) | 登録や設定に癖があり、ミスすると消される |
3. まとめ
個人的には、DTIの490円がオススメ!
レンタルサーバーだと、管理権限がなくて自由度が低い。クラウドだと遊びや勉強で使うには料金が高い。
無料のVPSだと空き状況や登録が厄介だし、何よりサーバーに詳しくないから英語が厳しい。
CocoaPods インストール 使い方 メモ
cocoapodsのインストールと使い方のメモです。
cocoapods概要:Mac アプリや iOS アプリ開発者向けのライブラリ管理ツール
実行環境 :OS X バージョン10.9
前提条件 :「Ruby」「Command Line Tools」がインストールされていること (MacOSはデフォでRubyが入っていると思います。)
「Command Line Tools」のインストール方法やcocoapodsの詳しい参考URL:http://www.iosjp.com/dev/archives/451
流れ
- インストール
- 使い方
- その他
1. インストール
次のコマンドを実行でOK
$sudo gem install cocoapods
2. 使い方
2-1. Podfileファイルを作成
2-2. ライブラリのインストール
2-3. Xcodeで実行
2-1. Podfileファイルを作成
作成したプロジェクトの「hogehoge.xcodeproj」と同じディレクトリに「Podfile」というファイルを作成します。
「Podfile」ファイルに、プラットフォーム(iOSのバージョン等)と追加したいライブラリ情報を記入します。
「Podfile」ファイルの例↓(1行目:プラットフォームがiOS7.1、2行目:iRateのライブラリ追加)
platform :ios, '7.1' pod 'iRate'
※ライブラリー名は、CocoaPodsホームページで検索できます。
2-2. ライブラリのインストール
次のコマンドを実行でOK
$ pod install
※Xcodeは閉じて実行しましょう。
2-3. Xcodeで実行
「xcodeproj 」ファイルではなく、「xcwordspace」ファイルで開きます。
(クラスをimportして使えるようになっています。)
3. その他
CocoaPodsのバージョンアップ
次のコマンドを実行でOK(コマンドはインストールと同じ)
$ sudo gem install cocoapods
メモ:ライブラリをインストールする時に次のようなエラーになる時に良く使います。
[!] The `master` repo requires CocoaPods 0.32.1 -
参考URL:http://qiita.com/snow_richisland/items/90132544d482a4668b7c