投稿

ラベル(HOWTO)が付いた投稿を表示しています

GNOMEでDockランチャーのアプリアイコンが複数出来てしまう場合の対処

Dockランチャーでアプリアイコンが複数出来てしまう状況  GNOMEデスクトップ環境のDockランチャーで、まれにアプリアイコンが複数出来てしまうことがある。複数出来てしまう状況としては、アプリをお気に入り(favorite)として登録(ピン止め)してそこからアプリを起動するとお気に入りの他に別にアプリアイコンが出来てしまうことなど。  原因としては、起動したアプリウィンドウのグループ化がうまくいっていないことによるらしい。調べても理解が難しそうだったので解説は割愛。  この現象が起きるのは特定のアプリに限られるようなので、通常はまったく問題が起きないことの方が多いと思われる。自分でカスタムアプリアイコンを作ったりする場合には起こりやすいのかなと思う。 対策(***.desktopファイルを編集する)  アプリ起動に用いる ***.desktopファイル(***は任意の名前。firefoxならfirefox.desktop)に以下の項目を作成することで避けられる模様。 StartupWMClass この項目を設定するにはアプリ毎の設定値が必要で、その設定値は以下のコマンドで得ることが出来る。ここで調べたいアプリを起動してウィンドを前面に出しておく。 $ xprop WM_CLASS このコマンドを実行するとマウスカーソルが変化するので、調べたいアプリウィンドウ上でクリックすると WM_CLASS(STRING) というカタチで設定値が得られる。この設定値を先程の ***.desktopファイルの StartupWMClassに設定する。 (設定値が複数取得される場合、どちらか一方でもいいかも。詳しくは不明)

Bash(シェル)のキーボードマクロ機能

Bashのキーボードマクロ機能  Bashのドキュメントを読んでいるとき、キーボードマクロという機能があることに目が止まりました。マクロというとおそらくはコマンド操作の自動化が出来そうなので、これは便利そう。ということで、このキーボードマクロについて簡単な説明と実際に使ってみた感想を書いていきます。 GNU Bash manual Keyboard Macros (Bash Reference Manual) キーボードマクロとは  キーボードマクロと言ってもBashのこの機能はテキストを打ったり編集したときのキーストロークを再現するものではなく、実行したコマンドを再現する機能となってます。 キーボードマクロの操作  キーボードマクロに関する機能のうち、主に使うものは以下の3つ。 C-x e : 記録したキーボードマクロの実行 C-x ( : キーボードマクロ記録の開始 C-x ) : キーボードマクロ記録の終了 以下、キーボードマクロはマクロもしくはマクロ機能と省略して書いていきます。 使い方  マクロを使うには、まずどこからのコマンドを記録するかを指定してやる必要があります。この場合「C-x (」というキーバインドによりマクロ記録が開始されます。なお、このとき画面上には記録中などとは表示されないです。その状態で記録したいコマンドをいくつか実行していきます。記録させたいコマンドが終わったら「C-x )」でマクロ記録を終了します。  そして「C-x e」で記録したマクロのコマンドが実行されます。 マクロを使う利点  いくつかのコマンドを自動で実行するときにマクロ機能は便利に使えると思います。コマンドを打つ毎にヒストリーを遡ってコマンドを探してくるという手間も減らせるでしょう。 注意点  マクロ機能を使う上での注意点としては 記録の開始、終了が分かり難い 記録されているマクロの内容が確認出来ない 他の端末で使っているBashにはマクロは引き継がれない Bashを終了すると記録したマクロは消える 「C-x e」と間違えて「C-x C-e」を押すとエディタが立ち上がってしまう  ただドキュメントを読むと記録したマ...

Firefoxで検索エンジンで検索し結果を新しいタブで開く方法(キーボードショートカットにて)

Firefoxで何かしらを検索したい場合、新しいタブを開いてアドレスバーなり検索ボックスなりに検索ワードを打ち込んで検索します。 (その他にGoogleやYahooなどのブックマークを新しいタブで開いて検索するという場合もありますが、今回はそれは考えないことにします) それ自体は特に難しい話ではないですが、同様の操作をキーボード・ショートカットを用いてもう少し効率化しようというのが今回紹介する話です。 アドレスバーに検索語を入力してから、結果を新しいタブで開く方法 さて検索エンジンで検索しようと思うときはどういう時でしょう? ふとした思いつきで検索する場合もあるでしょうけど、何かしらのサイトを見ていて検索したいことが頭に浮かぶことが多いのではないでしょうか。 さて、そうした場合に何を検索したいか考えながら検索ワードを入力する場合、常にそのサイトを見ながら検索ワードを考えていくのがスムーズかと思います。その場合、新しいタブを開いてから検索ワードを入力するのでは、そこで一旦思考が途切れることになる場合もあるのではないでしょうか(何かしら思いついて検索しようとしたら、ふとした拍子に何を調べたいのか忘れてしまう場合など)。 そうした場合、そのサイトは開いたままアドレスバーに検索ワードを入力して、検索結果のページを新しいタブで開くことで解決します。 まずアドレスバーにフォーカスを合わせるキーボード・ショートカットは Ctrl + k (もしくはCtrl + j) です。キーボード・ショートカットを押した状態ではまだアドレスバーにそのサイトのURLが表示されたままですが、何かしら文字を入力すればURLはそっくり消えます。 さて検索ワードを入力し、そのままエンターキーを押すとそのタブに検索結果のページが開かれます。いま見ているサイトは残したまま新しいタブで検索結果を開くには以下のキーボード・ショートカットを用います。 (アドレスバーにて) Alt + Enter これで新しいタブで検索結果のページを開くことが出来ます。 まとめると Ctrl + k (もしくはCtrl +j) でアドレスバーにフォーカスを当てて、検索ワードを入力 Alt + Enter で新しいタブで検索結果のページを開く という手順になります。...

アプリケーション毎に異なるテーマを適用して起動する方法(GNOMEデスクトップ環境)

ちょいちょい調べものをしていた最中に、アプリケーション毎に異なるテーマ(ウィンドウとかボタンの配色など)を適用して起動する方法があったので書き記しておきます。ちなみにタイトルにはGNOMEデスクトップ環境って書きましたが、GTK+アプリケーションなら通用する方法かと思います。Qtアプリだと意味ないかもです。 (単にGNOME環境でしか試していないため、このようなタイトルにしてます) まぁアプリケーション毎に異なるテーマを適用する必要はそれほどあるとは思えませんが、以前ブログに書いたようなEmacsのスクロールバー表示がおかしいというケースを回避するのに使えたりします。後は自作アプリをいろいろなテーマで表示テストするときのデバック用とか。 Emacsのスクロールバーの表示がおかしい件(Ubuntu 18.04) 前置きはこんなところで方法としては、コマンドラインからアプリケーションを起動するときに「GTK_THEME」という環境変数に適当なテーマを指定します。 geditをHighContrastのテーマで起動する場合は $ GTK_THEME=HighContrast gedit とします。なおgnome-terminalではこの方法によるテーマの変更は出来ませんでしたので、全てのアプリケーション(GTK+を利用した)で使えるというわけではなさそうです。 またコマンドラインからではなく、アプリケーションランチャーからこの方法を使いたい場合は.desktopファイルをうまいこと作ってやります。なお.desktopファイルに上に書いたコマンドをそのまま書いても認識されないようで、アプリケーションランチャーに表示すらされませんでした。認識させるには環境変数の書き方に手を加えてExecの行を Exec=env GTK_THEME=Adwaita gedit のように書けばいいようです。 参考サイト gnome - GTK - Enable/set dark theme on a per-application basis - Unix & Linux Stack Exchange Running GTK+ Applications: GTK+ 3 Reference Manual

[ソフト] nano(テキストエディタ)の基本的な使い方

イメージ
ターミナル上で使うテキストエディタで、初めて使う場合でも比較的使いやすいものとして 「nano」 というソフトがあります。 GNU nano ターミナルで使えるテキストエディタとしてはVimやEmacsあたりが有名なのですが、どちらも操作方法が独特なので習得するのに時間がかかります。主にデスクトップ環境でLinuxを使っている場合には必要がない限りはターミナルでテキストエディタを使う機会はあまりないでしょう。しかし、システムの設定ファイルを書き換える場合、GUIのテキストエディタをスーパーユーザーで起動してしまうと結構それに伴うトラブルが生じることが多いです。そもそもGUIのソフトはスーパーユーザーで起動することを前提としていないことがほとんどなので、トラブルを起こさないためにもなるべくならターミナルで使えるテキストエディタを1つ押さえておくといいかと思います。 そして、nanoはターミナル上のテキストエディタの中でも比較的使いやすいので、少し使い方について紹介しておきます。より詳しくはヘルプやオンラインマニュアルを読んで下さい。 まずnanoはターミナル上で動作するので、基本としてはマウス操作はほぼ出来ないものと思って下さい。 (デスクトップ環境で仮想端末で操作する場合にはマウスからテキストのコピー貼り付け程度は出来ますが、あくまでもそれは端末で使える機能に留まります。 ここでほぼ出来ないと言っているのはnanoの編集操作に関してになります。また後述しますがnanoでもマウス操作が出来る機能があります) nanoはテキストエディタなので基本的にはキーを打てば文字が入力出来るのですが、ファイルの保存やコピーアンドペースト、文字の検索や置換などの操作はControlキー(Ctrlキー)やMetaキー(Altキーのこと)と他のキーの組み合わせで操作していくことになります。 nanoを起動するとターミナル画面の下に以下の画像のような表示が出てきます(システムの設定言語によっては英語など違う言語の表記になるでしょう)。 nanoの基本的な操作はここに書かれたような操作をすれば出来るようになっています。親切ですね、と言いたいところですが、初めてこれを見ても「^」の意味が分からずにどんな操作をすればよいのか分かりにくいと思います。 ざっ...

[コマンド] bc(数値計算ソフト)の結果出力で、小数点前の0(ゼロ)を省略させないようにする方法

イメージ
別のブログ記事 [コマンド] bc(数値計算ソフト)でコマンドラインから計算式を渡して出力させる方法 でbcのコマンドラインからの使い方について紹介しました。 その続きとして、bcの計算結果出力で小数点の前の数字が0(ゼロ)の場合に0を省略させないで表示する方法について考えていきます。 [何が問題となるか?] bcで1/3を計算させると、始めに貼ったスクリーンショットみたいに「.333333」のように出力されます。ただ「0.333333」のような表示に慣れていると0が省略されると若干違和感を覚えます。自分が結果を読むだけならほぼ慣れの問題で済むのですが、他の人に見せたり別のコマンドへ値を渡すという場面では0を省略させない方がいい場合もあります。残念ながらbcの出力のカスタマイズでそういった変更を行う項目は無いようです。そこで、別の方法と組み合わせることで0を省略させないようにしてみることにします。 [数字として別のコマンドで整形して出力する方法] まずawkというコマンドを併用する方法がWebを検索するとよく紹介されているようでした。 $ echo "scale=5; 1/3" | bc | awk '{printf "%.5f\n", $0}' awk自体の説明をしていくと長くなり過ぎるので、ここでは単に出力整形を行うものとして使うものとして考えておきます。上記のコマンドを説明すると、awkの出力でprintfで整形するようにして"%.5f"で小数点以下何桁まで表示するか指定します。数字はbcのscaleと同じ値にしておきます。"\n"は出力の最後に改行を付けるものです。まぁ無くても出力自体には問題は無いので、改行があった方がいい場合は付けるようにするといいでしょう。 また別解としてxargsで結果をprintfコマンドに渡して出力させる方法もあるようです。 $ echo "scale=5; 1/3" | bc | xargs printf %.5f (xargsも説明し出すと長くなるので、説明は省略) [数字ではなく文字列として対処する方法] さて、これで対応出来たわけですが、細かいところを言う...

[コマンド] bc(数値計算ソフト)でコマンドラインから計算式を渡して出力させる方法

イメージ
Linuxを使っている時、コマンドライン上でちょっとした数字の計算をしたい場合、bcという数値計算ソフトを使う方法があります。bcはそれ自体が数値計算言語という位置付けで、簡単な計算以外にもプログラミング的に複雑な計算も可能になっているようです。今回はそこまで深入りせずに、簡単な四則演算程度で使う方法について紹介していきます。 まず基本的には $ bc とコマンドを打つとインタラクティブモードに入り対話的に計算を行うことが出来ます。インタラクティブモードでbcを終了させるときは「quit」とタイプして実行します。 (なお「exit」やCtrl+Cでは終了しない模様) さてインタラクティブモードで計算するのも便利なのですが、bashなどシェルのコマンドラインから直接bcに計算式を渡して計算させたい場合も出てくるかと思います。それが出来ると、毎回インタラクティブモードに入らなくてもよく、quitと打って終了させる手間も省けます。 しかし、bcに直接引数として以下のように計算式を渡しても解釈してくれません。 $ bc 計算式 計算式をクォートやダブルクォートで囲っても無効です。上記のようにコマンドを書いてしまうと、bcは計算式をファイル名を示す文字列として解釈してファイルとして読み込もうとします。まず起こらないと思いますが、偶然に計算式と同名のファイルが同じディレクトリ内に存在するとヒドい目に合うかも知れません。 ではどうやってコマンドラインから直接bcに計算式を渡せばいいかというと、それは「echoコマンド」と組み合わせることで可能となります。やり方としてはechoで計算式をそのまま出力させるようにしてそれをパイプでbcに渡すという方法になります。 $ echo '計算式' | bc (echoコマンドとはなんぞや?と気になる方は別途お調べ下さい) なおsinなど数学関数を利用して計算したいときは上記の書き方だとライブラリが読み込まれていないためエラーになります。その場合は、以下のように"-l"オプションを付けるといいでしょう。 $ echo '計算式' | bc -l (なおbcではsin関数を使う場合にはsin()とか書かず別の書き方になります) また小技...

GNOMEデスクトップ環境で挙動が怪しくなったときのリセット方法

イメージ
GNOMEデスクトップ環境を使っていて、画面の表示などが何かおかしくなった時に簡単に起動しているソフトなどそのままでリセットする方法があります。GNOME Shellをリスタートするという方法で、キーボードで Alt + F2 を押して、表示されるダイアログに r とだけ入力してエンターキーを押します。これでGNOME Shellがリスタートされます。またこの方法では使用しているソフトはそのままの状態に保たれるようです。 実際に試したときの様子のGIFアニメは以下のとおりです。 ログインし直すというのはよくある方法ですが、だいたいの場合はこの方法でも解消するかと思います。 なお、"r"というのはコマンドではなく、Alt+F2で表示されるダイアログにおいて有効な機能のようです。なので通常の端末に"r"と入力して実行しても何も起きないでしょう。

lsコマンドで相対パスを付けてファイル名を出力する方法

イメージ
ここ最近、何回かブログでWebカメラやfehコマンドについて書いてます。そしてWebカメラで定点撮影している写真で最新のものを確認する時に $ ls | tail -1 | feh -f - -g 500x400 とすればコマンド一行で最新の写真が表示できます。便利便利。 さて、このコマンドは写真が入っているフォルダにて実行する必要があります。それはなぜかというと、例えば別のフォルダにいる状態(写真はwebcamフォルダに入っていて、いまいるのはその一つ上のフォルダ)だと以下のコマンドではファイル名しか受け取れないからです。 $ ls webcamフォルダ | tail -1 現在居るフォルダには当然そのファイルは存在しないので(写真はwebcamフォルダに存在する)、その出力をfehコマンドに渡してもエラーが表示されてしまいます。 そこで別フォルダにいても最初に示したコマンドを有効にするには、ファイル名だけでなく相対パスが付いた状態のものをlsコマンドで出力する必要があるわけです。 そしてlsコマンドには"-d"オプションがあり、これを用いることで相対パス付きでファイル名を出力することが出来ます。このオプションは使い方が少し独特でファイル名に相対パスを付けて出力したい場合は $ ls -d webcamフォルダ/* とフォルダの後ろにワイルドカードを付ける必要があります。これでwebcamフォルダ内のファイルが相対パス付きで表示されます。そして、これを最初に示したコマンドに適用すると $ ls -d webcamフォルダ/* | tail -1 | feh -f - -g 500x400 となります。これによりたとえ他のフォルダにいたとしても、コマンド一行で最新の写真が確認出来るというわけです。 今回の話はfehコマンドに絡めたものですが、このlsコマンドの使い方はその他にもいろいろと応用できるかと思います。

初めてEmacsを使うときのマニュアルなどの話

イメージ
エディタに何を使うかと言えばVimかEmacsかで、たまに論争になったりもします。 (参考情報 :  エディタ戦争 - Wikipedia ) 幸い(?)にも自分はこれまでそのような論争に巻き込まれたことはありませんが、初めてLinuxを使おうとしていた頃は何を使うかで迷っていたものです。まぁ最近ではいろんなエディタが登場してきていて、テキストエディタからソースコード編集に特化したものなど様々なものがあります。 さて、Vimの話は置いておいて(Vimは実際によく知らないので)、Emacsの話をしていきます。 GNU Emacs - GNU Project Emacsの特徴といえばその拡張性です。ブラウザやメール、画像を表示したりカレンダーを見たりゲームが出来たりもします。まぁ、出来ると簡単に書きましたがそれは使いこなせる状態にまでなったらの話で、通常はそれ用のソフトを使った方が便利です…。またエディタとしても操作感は結構クセが強いため、Windowsのメモ帳みたいに考えていると面食らうかも知れません。それでも最近のEmacsはマウス操作である程度出来るようになっています。ただしやはりEmacsはキーボードからの操作がキモになってくるので、少し慣れてきたらそっちの操作を覚えていく必要があります。それとEmacsを他のテキストエディタと同じようなキーボード操作に設定することも出来ますが、なるべく早くEmacsの操作体系に慣れていった方がいいかと思います。 さて、実際何を読んでEmacsを覚えていけばいいかになりますが、Webに数多くあるEmacs便利情報は細切れのものだったり初心者にはハードルが高いものだったりします。一冊、Emacsの初心者向けの本を買ってきて、それを通して一通り覚えるのが確実だとは思います。また、一番初めに触るマニュアルとしてはEmacsのヘルプに付いてくるチャートリアルが便利です。 このチャートリアルの表示の仕方については以下のGIFアニメを参照して下さい。 ここに書いてある操作を身に付ければ、一通りEmacsのキーボード操作は出来るようになるでしょう。 その次の段階としては、自分用に使いやすいカスタマイズや、その他の便利なパッケージを入れる方法になってきます。以前は、そういった設定は設定用ファイルに自分で書い...

Emacsのウィンドウタイトルをコマンドで変更する方法

イメージ
※以下の話はUbuntu16.04.3のGNOMEデスクトップ環境で試したときのものです。他の環境については必要に応じて試してみて下さい。 Emacsを使っていて説明用にスクリーンショットや動画を撮りたいとき、ウィンドウタイトルにファイル名やらユーザー名やらマシン名やらが表示されてしまっていて後から修正が必要になってくる場合があります(何が表示されるかは設定による)。 どこに公開されても問題ないものなら特に対処する必要はないのですが、後々めんどくさいことになると厄介。また、一々設定ファイルでウィンドウタイトルに表示させたいものを変更させるのも若干手間がかかります。 そこでEmacsのコマンド(ミニバッファで実行するヤツ)でサックリ変更する方法について書いておきます。実行するコマンドは以下の通り M-x set-frame-name <RET>タイトルを入力<RET> です。 <RET>は独特の書き方ですが、エンターキーを叩くって意味です。変更している様子を撮ったGIFアニメを以下に貼っておきます。 この方法なら、さっとスクリーンショットを撮りたいときでもすぐ変更出来ますね。 ただし、いざそういう場面になったときそのコマンドを思い出せるかどうかは記憶力次第…。なので、自分で見つけやすい場所にメモとして残しておくといいかと思います。 あとGIFアニメ内に書いてあるように、WindowsやMacでも同じ方法が使えるかどうかは調べてません。 関連ブログ記事 wmctrlコマンド - ウィンドウタイトルの変更操作について

Emacsで行の先頭にあるスペースを削除する方法

イメージ
Emacsで文章を書いている時に、文の先頭にあるスペースを削除したい場合があったとします。 具体例としてはOrg-modeでplain textにエクスポートしたとき、見出しのレベルに応じて段落がスペースによって字下げされるといったことがあります。それはエクスポートの書式設定で対処すべき話なのですが、設定項目を探すのに時間がかかったりする場合もあるので、今回はEmacsの文字列置換機能で対処する方法を考えてみます。 例として次のような文章について考えてみます(文章の内容は特に意味はないです😜)。 この文章では2行目と3行目の先頭にそれぞれ2つの半角スペースが入っています。 これくらいならDeleteかBackspaceで消せば簡単に済みますが、一括して消せる方法を覚えておけば処理すべき数が増えても簡単に対応できます。 Emacsにはいくつかの置換機能があるので、その中から正規表現でパターンマッチングして一括で処理するreplace-regexpという方法を使います。 コマンドは M-x replace-regexp として、その後に置換したいパターンを入力してエンター。次に何の文字列に置き換えるかを入力してエンターとすると一括で変更されます。 上の例文で先頭の2つの半角スペースを消すには M-x replace-regexp <RET>^  <RET><RET> とします。<RET>はエンターキーを押すことを現しています。 この書き方では分かりにくいのですが、まず置換したいパターンに 「^  」(サーカムフレックス + スペース + スペース) を指定しています。そして今回は置き換えるのではなく、削除するので後半は何も入力せずエンターキーを押しています。 (サーカムフレックスは別名キャレット、ハット記号とも呼ばれる) 一連の操作を動画にすると以下のようになります。 サーカムフレックスは行の先頭を指定するもので、これがあると先頭にあるものだけ置換対象に選ぶことができます。 以上の方法ではコマンドを実行するとすぐに一括で置換されますが、一つずつどれを置換するか確認しながら行える方法もあります。

bashで履歴からコマンドを実行するときに、一旦確認してから実行したい場合について

historyコマンドを実行すると、 1422 gvfs-open ./ 1423 dmesg 1424 top 1425 ls 1426 history | grep scp というようなような出力がされ、 $ !1423 と入力して実行すると、履歴にあるdmesgコマンドが実行されます。以前実行したことがあるちょっと長めのコマンドを再び利用したいときに便利です。 (頻繁に使うようならエイリアス作ったりメモしといたりした方がいいですが) さて、この機能は便利なのですが入力したらすぐに実行されてしまうので、確認や修正をしてから実行したい場合にはちょっと不便です。 (historyの出力からコピペして持ってくればいいわけですけども) 確認や修正をしてから実行したい場合、番号の後ろに「:p」と入力する方法があります。 Bash Reference Manual: Modifiers 上の例をこの方法で書き下すと $ !1423:p となります。この機能は番号のコマンドを実行せずに出力するだけです。ここではdmesgが出力されますが、入力行は空になります。そこで↑キー(もしくはCtrl-p)を押すと、入力行に出力されたコマンドが出てきます。後は確認なり修正なりして実行すればいいだけです。

historyコマンドでbashのコマンド履歴が途中までしか探れない場合について

端末でbashを使ってコマンド操作をしているときに、historyコマンドで過去に実行したコマンドを探ろうとしてもhistoryファイルに保存されているはずの分が出力されてこないケースがあります。 これはbashの環境変数のHISTSIZEとHISTFILESIZEの設定が間違っていることが考えられます。 (この環境変数はUbuntuではホームディレクトリ以下の.bashrcファイルに書かれている) まずbashのコマンド履歴の保管の仕方として、bashの実行中は「history list」に蓄積。そしてbashを終了したときに「history file」へ書き出す、というようになっているようです(詳しくはドキュメント参照)。そして再びbashを起動したときに「history file」から履歴情報を「history list」に読み込む、となっているようです。 (history fileは通常はホームディレクトリ以下の.bash_historyファイル) そして 「history list」のサイズはHISTSIZE 「history file」のサイズはHISTFILESIZE で指定されています。 ( Bash Reference Manual: Bash Variables ) つまりはHISTFILESIZEをいくら大きな数字に取っても、HISTSIZEがそれより小さければ途中までしか読み込まれないということになります。 実験として試しに HISTSIZE=10 HISTFILESIZE=2000 として設定を反映、そして端末(bash)を起動してhistoryコマンドを実行すると、historyファイルには2000件も保存されていても直近の10件のコマンド履歴しか出力されないことが分かります。 (設定の反映についてはsourceコマンドについて参照) 通常はHISTZIEとHISTFILESIZEをどちらも同じ数字で十分な大きさで確保しておけば、まず問題はないかと思います。 まぁ実のところ以前よく分からないままこの環境変数を適当に設定していてこういうようなことをやらかしていたんで、せっかくなのでそれをまとめてみたというお話でした。

aptコマンドはこれまでのapt-getなどと比べて何が楽になるか

イメージ
Debian系のLinuxディストリビューションでコマンドラインからパッケージ(ソフトウェア)をインストールするときにapt-getというコマンドが使われています。 さて数年前からapt-getの代わりにaptというコマンドを使うという記事を目にすることが増えて来ました。そのへんの経緯もあるのですが、そのへんは以下の記事が詳しかったです。 第327回 aptコマンドを使ってみよう:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社 またどのような感じで置き換えて使われるのかも押さえておいた方がいいでしょう。 Difference Between apt vs apt-get Explained ここでは詳しい解説はするつもりはないですが、aptコマンドがapt-getなどと比較して何が楽になったか考えてみることにします。 まずパッケージのインストールについて比べてみると apt-get install パッケージ名 apt install パッケージ名 となります。見比べてみると分かるようにaptでは「-get」を入力する必要がないので、キーボードを打つ回数が少し減らせます。 さてそれくらいなら別にさほど手間が違うわけでもないですが、インストール以外にパッケージを検索しようとするときに差が出てきます。パッケージの検索を比べると apt-cache search パッケージ名 apt search パッケージ名 となります。ここでもキーボードを打つ回数が減るのは分かりますが、もう一つの利点としてaptコマンドの方では「get」と「cache」の違いは考えずにパッケージを検索出来ます。 つまりパッケージを検索するときにapt-getかapt-cacheのどちらを使うのかという選択肢を思考プロセスから取り除くことが出来ます。インストールならinstallを付ける、検索ならsearchを付けるというようによりシンプルになります。 (余談ですがパッケージの詳細を見るときはapt show (もしくはapt-cache show)が使われます) apt-getなどを使っていてすでにそのへんが自然に出てくるくらいだとあまりメリットは見出だせないかも知れませんが、これから新しく覚えていくという人には...

wcコマンドをファイル数を数えるために使う方法

イメージ
目次 1. wcコマンド 2. lsコマンドと組み合わせてファイル数を数える 2.1. これだとファイル以外も数えてしまうのでは? 2.2. 隠しファイルは? 3. findコマンドを使う方法 3.1. サブフォルダの扱い 4. まとめ 5. 参考資料 1 wcコマンド wcコマンドはファイルや標準入力の文字数や改行数、バイト数を数えたりすることが出来ます。 Linuxのコマンドでは汎用的によく使われるコマンドで、ネットではいろいろな利用方法が紹介されています。 2 lsコマンドと組み合わせてファイル数を数える wcコマンドでは改行数を数えることが出来るので、これを利用してフォルダ内のファイル数を数えてみることにします。 $ ls -1 | wc -l とします。読み間違えやすいですが、lsのオプションは"-l"(小文字のエル)ではなく"-1"(数字のイチ)です。"-1"オプションにより1ファイル1行での出力となります。それをパイプでwcに渡して改行数を数えさせれば、結果的にファイル数が分かるという考え方です。 (wcコマンドのオプションは"-l"(小文字のエル)です) 2.1 これだとファイル以外も数えてしまうのでは? さて上に書いたコマンド、これはフォルダ内にファイルのみが存在する場合での使い方です。フォルダ内にサブフォルダがあると、その数も数えてしまいます。そのため $ ls -1 で何がカウントされるか把握しておく必要があります。 (後述するfindコマンドとの組み合わせでファイルのみ数えるという方法もあります) 2.2 隠しファイルは? またlsコマンドはそのままでは隠しファイルは表示されません。 $ ls -A -1 と"-A"オプションを使うと隠しファイルも表示されます。Ubuntuではlaというコマンドが"ls -A"のエイリアスになってるのでそれを使うのもいいでしょう。 3 findコマンドを使う方法 上でlsコマンドではサブフォルダも数えてしまうというこ...

bashに長いコマンドを入力する際に改行して見やすくする方法

要約 bashに長いコマンドを入力するときに読みやすくするよう改行するには、改行したい箇所で バックスラッシュ \ を入力してエンターキーを押すと続けて次の行にコマンドを書いていくことが出来ます。。 例 $ echo "abcd" "efgh" "1234" と入力するときに改行するには $ echo \ "abcd" \ "efgh" \ "1234" となります。端末上で直接行を分ける以外に、テキストエディターでコマンドを複数行に分けて編集してそのままペーストする場合でも使えます。  参考 : linux - How do I paste multi-line bash codes into terminal and run it all at once? - Stack Overflow 解説 Linuxの端末(ここではbashを使うことを想定)で、コマンドを入力するときにいろいろオプションを指定しているとやたら長くなって読み難くなることがあります。 例えばffmpegで複数の動画を合成したいとき、以下のようなコマンドを入力します。 $ ffmpeg -i wall02.png -i 001.mp4 -i 002.mp4 -i 003.mp4 -i 004.mp4 -filter_complex "nullsrc=size=1920x1080 [base]; [0:v] setpts=PTS-STARTPTS, scale=1920x1080 [background]; [1:v] setpts=PTS-8/TB, scale=900x500 [1/4]; [2:v] setpts=PTS-10/TB, scale=900x500 [2/4]; [3:v] setpts=PTS-5/TB, scale=900x500 [3/4]; [4:v] setpts=PTS-4/TB, scale=900x500 [4/4]; [base][background] overlay=1 [tmp1]; [tmp1][1/4] overlay=shortest=1:x=30:y=20...

コマンドライン操作において関連付けに基づいてファイルなどをソフトで開いてくれる機能(xdg-openなど)

Linuxのデスクトップ環境でコマンド操作を行うときに、引数に与えたファイルやフォルダなどを自動で判断して適切なソフトで立ち上げてくれる仕組みがあります。xdg-openというコマンドがその一つで、他にはgnome-openやgvfs-open、exo-openなどがあったりします。 例えばPDFファイル(sample.pdf)があったときに $ xdg-open sample.pdf のようにコマンドを実行すると、設定されているPDFビューアソフトでPDFファイルが開きます。 他には以下のようにフォルダ(ディレクトリ)を引数として与えると $ xdg-open Documents 設定されているファイルマネージャーでそのディレクトリが開きます。 また以下のように引数にURLを指定すれば $ xdg-open https://yutarine.blogspot.jp WebブラウザーでそのURLへアクセスしてくれます。他にはメールアドレスを指定すればメーラーが開かれたりいろいろ出来るそうです。 どうやらデスクトップ環境によって個別のコマンドが用意されているようです。 GNOME環境 : gnome-open, gvfs-open KDE環境 : kde-open Xfce環境 : exo-open などという関係のようです。どのファイルをどのソフトが開くのかといった関連付けはそれぞれのデスクトップ環境の設定に基づくらしいです。xdg-openに関してはデスクトップ環境を判断して機能するとかなんとか。 このへんはちょっとネットで流し読みした程度の知識しかないので、関連付けの設定方法などはあまりよく分かりません。 (気が向いた時にでも調べてみようかしら) GUI操作とコマンドライン操作を行ったり来たりすることが多い場合は便利に使える機能かなと思います。

fehコマンドで大量の画像をスライドショー表示する方法

イメージ
最近Webカメラでタイムラプス動画を撮影していますが、撮影した数百枚、多い時は数千枚ある画像から動画を作成するにはエンコードにもそれなりに時間がかかります。 エンコード前に確認したい場合には画像ビューアでサムネイル表示して確認すればいいのですが、一覧表示で見るのと動画で見るのとではちょっと感じが違ってきます。なのでエンコードする前に出来るだけ動画に近い状態で確認作業をしたいわけです。 多くの画像ビューアにはスライドショー機能があるので、それを使えば簡易的に動画を作成したような感じで見ることが出来ます。ただ通常のスライドショーのように数秒毎に画像を進めるのではなく、この場合は30fpsほどの速度で進める必要があります。 そのため動画のように見る条件として、画像ファイルのサイズと使っているパソコンの処理速度との兼ね合い、また画像ビューアのスライドショー機能でそこまでの速度で設定出来るかというのを考慮する必要があります。 そこで自分はLinux上でコマンドで操作出来る画像ビューア fehコマンド というのを使用しています。 feh – a fast and light image viewer manual fehコマンド自体は様々な機能はあり、その中にスライドショー機能もあります。 一つ一つ説明すると長くなるので、簡単に書くと以下のようなコマンドになります。 feh ./ -g 400x300 -D 0.1 --cycle-once カレントディレクトリ内の画像をスライドショーするため「./」を指定 表示する画像の大きさを指定するのに「-g」オプションでサイズを指定 スライドショーで次の画像を切り替えるまでの時間の指定に「-D」オプションを指定。計算すると分かるが、0.1では30fpsとはならない。 また「--cycle-once」オプションを付けることでスライドショーが一周したら終了するようにしている。これがないとスライドショーは延々とループし続ける。 以上は自動でスライドショーを行う設定ですが、-Dオプションを使わなければキーボードの左右キーにより手動で画像を進めたり戻したりが出来ます。細かく確認するにはこの方が利便性があると思います。 (まぁ左右キーを押し続けるのも指が疲れるので、自動で画像送りをした方が楽...

スポンサーリンク