Poppy Console:GUIを超えて

良い一日、愛するhabravchane-makovody!



今日は、コンソールを使用してMac OS Xの効率を向上させる方法を説明します。



叙情的な余談



Mac OSがUnixベースのシステムであることは誰にも秘密ではないと思いますが、ほとんど認識されないほど再設計されています。 彼らはコンソールを地獄に突き刺しさえしました-あなたはすぐにそれを見つけることはありません。 また、システム全体はデフォルト設定でGUIを使用することを目的としており、タブのボタンを切り替えても機能しません。 それにもかかわらず、Macはウィンドウだけでなく、ドックとランチャーでもあります。 Macは、シェルスクリプトとコンソールのすべての力でもあります。



M $の世界から来たのであれば、まずはこのチュートリアルで一般的なシェルコマンドを教えるといいでしょう。 少なくとも、ディレクトリナビゲーションコマンドと、プログラムとスクリプトの実行方法を学習する必要があります。



LinuxとFreeBSDの世界からMac OSの世界に来たのであれば、少なくともシェルスクリプトの基本を知っているでしょう。 しかし、ポピーには知っておくと便利なユニークなコンソールコマンドがあるため、この記事は興味深いものになるかもしれません。



Mackコンソールのいくつかの機能をさらに詳しく説明します。



さあ始めましょう



最初に、標準端末を取り除きます。 まあ、より正確には、別のものを入れます-より良い。 私は個人的にiTerm2を好みます 。これはシステムのものよりはるかに優れています。 ただし、彼には興味深い瞬間もあります(上の写真を参照)。



さらに、追加のツールが必要になる場合があるため、 MacPortsをインストールします(もちろん、別のパッケージマネージャーを使用することもできます)。 これで、簡単なコマンドを使用して必要なコンソールユーティリティをインストールできます。 たとえば、Midnight Commanderを配置し(どのような場合でも便利です)、iTerm2を入力します。



sudo port install mc
      
      







パスワードを入力し、依存関係とmc自体をインストールした後、 mc



コマンドを使用して推測できます。



怖い! ファンクションキーが必要で、それらはFn+F15



を介してのみ押されるので、どうしますか? まあ、そのように-システム設定に入り、それをオフにします。 そうしないと、mcでの作業が困難になります。



もう1つの重要なポイント:明確でないことがある場合はマニュアルをスモークし、コンソールにman



を入力すると、 man



の詳細な説明が表示されます。 (ところで、手動表示を終了するには、Qを押してください)。



私たちは引き続きコンソールに精通しています。 open



コマンド



mcにはFinderよりも多くのファイルとフォルダーが表示されることが簡単にわかります。 もちろん、そのようなファイルを表示するためにハックをかけることはできますが、誰もがそれを気に入っているわけではありません。 したがって、残っているのは、 Cmd+Shift+G



を使用して、手動でフォルダー名を入力することです。 ただし、この方法は特に便利ではありません。オートコンプリートはなく、隠しファイルを表示する方法もありません。 ターミナルに戻ります。 Mac OS Xには、ユーザーがFinderでファイルまたはフォルダーをダブルクリックしたときのように機能するすばらしいopen



コマンドがあります。関連プログラムでファイル、バンドル、またはリンクを開き、Finderでフォルダーを開きます。 このコマンドを使用した簡単な例を次に示します。mcを使用して隠しフォルダー(たとえば、/ etc /)に移動し、次のように入力します。



 open .
      
      







ウアラ! Finderはシステムフォルダーを表示しました! しかし、隠しファイルはまだ表示されていないため、それだけではありません。 たとえば、 .profile



開きます。



 open .profile
      
      





そして-おっと! -TextEditで隠しファイルを開きました! すべてが非常に簡単です。



バンドルに関するいくつかの言葉



誰もがこれを知っていますが、念のため繰り返しますが、Mac OS Xの通常のプログラムは、実際には.app拡張子と特別に配置されたコンテンツを持つフォルダーです。 これは簡単に確認できます。Finderでフォルダ/アプリケーション/を開き、任意のプログラムでCtrl+Click



(または必要に応じてRight-Click



)を実行し、[パッケージの内容を表示]を選択します。



コンソールからも非常に明確に表示されます。mcはこれらのプログラムをフォルダーとして正確に表示します。 そして、コンソールからGUIプログラムをどのように実行しますか? 非常にシンプルで、2つの方法さえあります。



最初の方法、最も簡単な方法:



 open /Applications/Safari.app
      
      





プログラムが起動し、コンソールは追加のアクションのために無料になります。



2番目の方法は興味深いものです。



 /Applications/Safari.app/Contents/MacOS/Safari
      
      





プログラムは起動しますが、コンソールは解放されません。プログラムが終了するまで待機し、プログラムが出力したいすべてのものを表示します。 つまり、この方法でいくつかのプログラムの作業ログを見ることができます。



これら2つの方法のもう1つの非常に重要な違い:2番目の方法では、プログラムの2つのインスタンスを実行できます。 したがって、コンソールを使用すると、この問題を解決できます(機能ではありますが)。マコシ:Finder、ドック、ランチャーを介してプログラムの2つのインスタンスを実行することはできませんが、コンソールからは少なくとも22



スクリプト?



シェルスクリプトとは何かを簡単に説明します。 基本的に、実行する一連のコマンドを含むプレーンテキストファイルです。 最も単純なスクリプトは、すべてのコマンドを順番に実行するだけです。 より複雑なスクリプトは、条件、ループ、および関数を持つことができます。つまり、スクリプトは非常に大きくて複雑なプログラムになる可能性があります。 このようなスクリプトの主な利点は、Unixの世界のコンソールユーティリティのフル機能であり、言語構成の貧困を補う以上のものです。 現在のディレクトリにあるすべての.pngファイルを変換して、サイズを幅または高さ200ピクセルに縮小するスクリプトの簡単な例を示します。



 #!/bin/bash for img in *.png; do fname=${img%.*} fext=${img##*.} sips -Z 200 ${img} --out ${fname}_200.${fext} done
      
      





この例は単純ですが、主なことを示しています。スクリプトには大きな力が隠されています。



AppleScripts



Mac OS Xには、いくつかの組み込みの自動化メカニズムがあります。 非常に一般的なものの1つにAppleScriptがあり、これにはグラフィカルなエディタランチャーもあります。 しかし、コンソールからこのようなスクリプトを使用できます。これには特別なユーティリティosascript



。 次のように使用できます。



 osascript myscript
      
      





どちらか

 osascript -e " "
      
      





AppleScriptには深く入りませんが、別の記事に値するものであり、1つでもありません。 だから私はヘルプを読むか、それについてグーグルをお勧めします



主なもの:シェルスクリプトとAppleScriptスクリプトを組み合わせて、最大限の柔軟性を実現できます! たとえば、ここでこのような混合スクリプトを使用して、ディスクイメージを自動的にスタイル設定します。ディスク自体はシェルを使用して作成され(以下を参照)、イメージ内の要素の背景と場所はAppleScriptを使用して設定されます。



Automatorもありますが、完全にGUIに対応しているため、この記事ではそれを考慮することは無意味です。 もちろん、それは便利ですが、コンソールの力には達しません。



その他の便利なMac OS Xコマンドについての簡単な説明



makoshiに固有のコマンドの完全な(ほぼ)リストは1つの良い記事で見つけることができます(情報は少し時代遅れですが)が、最も興味深いものについて簡単に説明します。



ディスクイメージを操作するために、コンソールユーティリティhdiutil



ます。 彼女と協力するいくつかの例:



 #       mydata (   ) hdiutil create -ov -srcfolder mydata -format UDRW -volname "My Data Image" myimage.dmg #      hdiutil convert myimage.dmg -format UDZO -imagekey zlib-level=9 -o myimage_ro.dmg
      
      





man hdiutil



から機能の詳細を学ぶことができます。



あなたがmakoshiプログラムの開発者なら、おそらくInfo.plistのような素晴らしいこと、そして実際にはplistsについて知っているでしょう。 そのため、.plistを.bplistに、つまりリストのより高速で簡単なバイナリ形式に変換できる非常に便利なユーティリティがあります。



 #   plutil -convert -format bin1 -o Info.bplist Info.plist #  XML plutil -convert -format xml1 -o Info.plist Info.bplist
      
      







ナンセンスを解決したい場合は、コンソールから任意のテキストを話すことができます。 これにはsay



ユーティリティがあります。



 #   say Hello Habr! #      say -f coolstory.txt
      
      





ポピーが私たちに話す声を設定することもできます:

 say -v Bad habr habr habr habr habrahabr habr habrahabr
      
      







1つの問題-デフォルトでは、このことは英語しか話せません。



次に、コンソールからコマンドのスクリーンショットを撮ります。



 #    ,  -    screencapture -Wco #     -      screencapture shot_`date "+%Y-%m-%d_%H:%M:%S"`.png
      
      





また、コンソールから、異なるフォーマット間でテキストを変換できます。 たとえば、.docファイルをHTMLに変換できます。



 #   html       textutil -convert html myfile.doc && open myfile.html
      
      





また、textutilはエンコードを変換できます。



システム設定(だけでなく)を変更するには、 defaults



コマンドを使用できます。 私たちは善のためにそれを使用します! 最後に、Finderで非表示のファイルとフォルダーの表示をオンにします!



 defaults write com.apple.Finder AppleShowAllFiles 1 && killall Finder
      
      





ファインダーは自動的に再起動し、非表示のファイルとフォルダーが表示されます! 繰り返しになりますが、誰もがそれを好むわけではないので、誰かの両親が怖がるまで、または必要なファイルを削除するまで、それをオフにしましょう。 既に指定されたコマンドで非表示にするには、1の代わりに0を入力します。たとえば、このコマンドを使用した多くの微調整について説明した記事へのリンクです。



結論のようなもの



もちろん、Mac OS Xのコンソールのいくつかの興味深い機能を調べました。もちろん、この記事は完全なふりをするものではなく、シェルスクリプトと実際にコンソールにmakovodovを関与させる「誘惑」です。



そして、Unixの力があなたと共にありますように!



All Articles