ターミナル作業を爆速にするBashコマンドラインの実用テクニック10選
コマンドラインの習得は、開発者を目指す人にとって欠かせないスキルです。
コマンドラインで命令を実行するには、シェルが必要になります。
BashシェルはMacやLinuxなどUnix系OSで広く使われており、多くのLinuxディストリビューションではデフォルトのシェルとして採用されています。
WindowsでもWSL(Windows Subsystem for Linux)経由でBashを利用できます。
基本的なBashコマンドを覚えたら、次はスピードアップの段階です。
このチュートリアルは完全な初心者向けではありませんが、初心者から上級者まで、きっと役立つ情報が見つかるはずです。
ここでは、ターミナルでの作業を速くする10のBashコマンドを紹介します。
1. Ctrl + Lで画面クリア、Ctrl + Dで終了
ターミナルの画面をクリアするには、コマンドラインでclearと入力します。
終了するにはexitと入力します。
さらに便利な方法として、Ctrl + L(Macでは⌘ + L)を押すと画面がクリアされ、Ctrl + D(⌘ + D)でターミナルを閉じることができます。
2. nohupコマンドでターミナル終了後もプロセスを継続させる
プログラムがメモリに読み込まれると、それはプロセスと呼ばれます。
例えば、コマンドラインからFirefoxを開くことがあります。firefox https://freecodecamp.org
しかし、ターミナルを閉じるとFirefoxも一緒に落ちてしまいます。
これを防ぐには、nohup(no hang up=ハングアップしない)コマンドを使いましょう。nohup firefox https://freecodecamp.org
これでターミナルを閉じてもFirefox自体はクラッシュしなくなりますが、今度はタブが落ちてしまうことがあります。
解決策は、末尾に&記号を付けてFirefoxをバックグラウンドプロセスとして起動することです。
nohup firefox https://freecodecamp.org &
こうすれば、ターミナルを終了しても開いていたタブはすべてそのまま残ります。
3. pkillで名前の一部だけ入力してプロセスを終了
killallコマンドを使うと、プロセス名を指定して終了できます。
killall firefox
さらに便利なのがpkillで、名前の一部を入力するだけでプロセスを終了できます。
pkill fire*
4. コマンドの前にtimeを付けて実行速度を計測
シェル上である処理の実行にかかる時間を知りたいと思いませんか?
コマンドの先頭にtimeを付けるだけです。time gcc -g *.c
5. Linuxでcat /etc/*rel*を使ってディストリ名を確認
uname -aと入力すると、システム情報が表示されます。
どのディストリビューションを使っているのか改めて確認したい場合は?
シェルでcat /etc/*rel*と入力してEnterを押すだけです。
6. sedコマンドでテキストファイル内の検索と置換
テキストファイル内の単語をまとめて置換したいことはありませんか?
sedコマンドを使いましょう。
sed s'/apples/oranges/g' myfile.txt
この例では、「apples」という単語がすべて「oranges」に置き換えられます。
各行で最初に出現する箇所だけを置換したい場合は、末尾の「g」を外します。sed s'/apples/oranges/' myfile.txt
この「g」はglobal(グローバル)の略です。
スラッシュ/はデリミタ(区切り文字)ですが、実際には任意の文字をデリミタとして使用できます。
例えばアンダースコア_をデリミタにしてみましょう。sed s'_apples_oranges_g' myfile.txt
注意点として、単にsedを実行した場合、結果は標準出力に表示されるだけで、元のファイルは変更されません。
ファイルを直接(in place)書き換えたい場合は、-iフラグを使います。sed -i s'_apples_oranges_g' myfile.txt
7. curlで自分のPCのグローバルIPアドレスを確認
IPアドレスには、プライベートとパブリック(グローバル)の2種類があります。
システムが割り当てる内部IPアドレスは、ifconfigコマンドで確認できます。
しかし、ISP(インターネットサービスプロバイダ)があなたのインターフェースに割り当てているパブリックIPアドレスを知りたい場合はどうでしょうか?
オンラインの状態で、コマンドラインからcurl ifconfig.me ; echoまたはcurl ifconfig.co ; echoを実行するだけで確認できます。
8. Ctrl + R(⌘ + R)で履歴を逆順検索
「上」矢印キーを押すと、直前に入力したコマンドが表示されます。
historyと入力すると、bash履歴に保存されているすべてのコマンドの一覧が表示されます。
さらに便利なのは、シェルでCtrl + r(⌘ + r)を押してからコマンドを入力し始める方法です。
入力するにつれて、シェルが履歴から自動補完してくれます。目的のコマンドが見つかったら、すぐにEnterを押しましょう。
このチュートリアルでたった一つだけ覚えるなら、このキーの組み合わせ——Ctrl + r(⌘ + r)を覚えてください。
間違いなく多くの時間を節約できるはずです!
9. シェルで計算を行う
小数を伴わない簡単な計算なら、次のように実行できます。
:~$ echo $((19*34))
646
小数を含む計算の場合は、式をechoで出力し、bcコマンドにパイプします。
:~$ echo "scale=2; 9*3/((2*2)+1)" | bc
5.40
ここで「scale」は必要な精度(小数点以下の桁数)を表します。この例では小数点以下2桁に指定しています。
10. ブレース展開でファイルを一括作成
フォルダの中に100個のファイルを作成するにはどうすればよいでしょう?
file1.txt、file2.txt、file3.txt ... file100.txt
答えはブレース展開(波括弧展開)です。touch file{1..100}.txt
プロジェクト用にapp.html、app.css、app.jsの3つのファイルを作成する必要があるとしましょう。
一つずつ作成する代わりに、ブレース展開を使えば一度にすべて作成できます。
:~$ touch app.{html,css,js}
:~$ ls
app.html app.css app.js
:~$
また、プロジェクトフォルダ内にimages、css、src、templates、scriptsの5つのディレクトリを作成したい場合も同じ要領です。
:~$ mkdir {images,css,src,templates,scripts}
:~$ ls
images css src templates scripts
:~$
唯一の注意点は、波括弧内の単語の間にスペースを入れないことです。
まとめ
今回は、ターミナルでの作業をスピードアップできる10のBashコマンドラインのヒントを紹介しました。
これらのBashコマンドを習得すれば、プログラミングの学習や日々の開発において、きっと大きな武器になるはずです。
それでは、Happy Coding!
-
Linuxで効果的なBashスクリプトを書くための実践テクニック10選
シェルスクリプトは、Linuxで学べる最も手軽なプログラミング手法のひとつです。システム管理におけるタスクの自動化や、簡単なユーティリティ・ツールの開発など、管理者にとって必須のスキルとも言えます。 本記事では、効果的かつ信頼性の高いbashスクリプトを書くために役立つ、実用的な10のヒントを紹介します。 1. スクリプトには必ずコメントを書く これはシェルスクリプトに限らず、あらゆるプログラミングで推奨される基本プラクティスです。コメントを適切に記述しておけば、後から自分や他の人がスクリプトを読んだときに、各部分が何をしているのかを素早く理解できます。 コメントは # 記号で定義します。 #
-
楽しく学べる!Bash習得に役立つコマンドラインゲーム3選
学習は大変な作業であり、誰も「作業」そのものは好きではありません。つまり、Bashがどれだけ習得しやすい言語だとしても、やはり「勉強」という感覚を拭いきれないかもしれません。しかし、ゲームを通して学ぶなら話は別です。 ターミナルの使い方を教えてくれるゲームなど、そう多くは存在しないと思うでしょう。実際、その通りなのです。PCゲーマーならご存知の通り、FalloutシリーズにはVault内にターミナル式のコンピュータが登場し、テキストでコンピュータと対話するという概念に自然と親しめるようになっています。AlpineやEmacsに似たアプリケーションも登場しますが、残念ながらFalloutをプレイ