初心者からパワーユーザーまで、作業が楽になる 20 の Linux コマンドを紹介します。
黒っぽいターミナルウィンドウにコマンドを入力するのは戸惑いを覚えるかもしれません。しかし、この作業は多くのコンピュータユーザーにとって、コンピュータ上のほぼすべてのタスクを実行するための最も効率的かつ最も分かりやすくてアクセスしやすい方法です。最近では、macOS や Windows などの非オープン・プラットフォームにオープンソースコマンドを導入するプロジェクトが数多く存在しており、またコンテナがあらゆる場所で実行されているため、ターミナルコマンドは誰にとっても重要なものとなっています。
ここでは、先進的なコンピュータユーザーが使用している上位 20 のコマンドを紹介します。
ディレクトリの変更 (cd)
ターミナルを使用しない場合、あるフォルダーから別のフォルダーに移動するにはアイコンをクリックしますが、ターミナルでは cd
を使用します。cd
コマンドは change directory の略で、Linux システム内を移動する手段です。これは、ある場所から別の場所へ移動するための最も速くて最も直接的なルートです。
たとえばデスクトップ上では、ホームディレクトリ (すべてのフォルダーを保存する場所) から presentations
というフォルダーに移動する場合は、最初に Documents
フォルダーを開いてから work
というフォルダーを開き、次に projects
フォルダー、conference
フォルダー、そして最後に、LibreOffice Impress スライドショーが保存されている presentations
フォルダーを開く必要があります。何度もダブルクリックすることになります。また、新しいウィンドウが表示される場所によっては、画面上を頻繁に移動する必要があり、追跡するために覚えておくべき通過点が多数になる場合もあります。多くの人は、すべてをデスクトップ上に置いておくことで、このような面倒な細かいタスクを回避しています。
ターミナルユーザーは次のように入力するだけでこの問題を回避できます。
$ cd ~/Documents/work/projects/conference/presentations
経験豊富なターミナルユーザーは、すべてをわざわざ入力しません。Tab キーを使用して、語句のオートコンプリート (自動補完) を活用します。また、場合によってはオートコンプリートに頼る必要さえありません。次のようなワイルドカードを使用できます。
$ cd ~/Doc*/work/*/conf*/p*
作業ディレクトリの出力 (pwd)
デスクトップ上のいくつかのフォルダーをクリックすると、どのようにして現在の場所に到達したかを忘れてしまいがちです。それはターミナルでも変わりません。cd
コマンドを数回実行するだけで、自分がどこにいるかまったく分からなくなります。そのような場合は、pwd
コマンドを使用します。
pwd
は print working directory の略であり、その名のとおり作業ディレクトリを出力します。--physical
(または、実装によっては単に -P
) は、解決されたショートカット (「エイリアス」または「シンボリックリンク」とも呼ばれます) を含むあなたの位置を示します。
$ pwd
/home/tux/presentation
$ pwd --physical
/home/tux/Documents/work/projects/conference/presentations
ファイルタイプの取得 (file)
ファイルに含まれるデータの種類を知る必要がある場合は、file
コマンドを使用します。
$ file example.foo
example.foo: RIFF (little-endian) data, Web/P image [...]
$ file example.bar
example.bar: ELF 64-bit LSB executable, x86-64 [...]
もちろん、file
コマンドはマジックではありません。ファイルがそれ自体を識別する方法に基づいてレポートするだけであり、ファイルが間違っている、破損している、または偽装されている場合もあります。確実性を高める場合は hexdump を使用して厳密に検査することもできますが、簡易的に使用する場合は file
コマンドが便利です。
URL の取得 (curl)
curl
コマンドは、ターミナルで使う非対話型 Web ブラウザーで、Web 開発者や API 開発者向けの開発ツールです。複雑なコマンドですが柔軟性があり、ターミナルからネットワークサービスをスムーズに操作したい場合は学ぶ価値があります。
無料の curl チートシートをダウンロードして活用すれば、その多くのオプションを習得できます。
ファイル内容の表示 (cat)
cat コマンドは concatenate (連結) の略です。かつては、サイズ制限のためにいくつかの小さいファイルに (文字どおり split
というコマンドを使用して) 分割されたファイルを結合するのに非常に便利でした。現在では、cat
は主に、テキストファイルの内容をターミナルにダンプして簡単に参照する方法として使用されています。もちろん、head
、tail
、more
、less
を使用することもできます。
本来の目的として使用されることはほとんどなくなり、二次的な機能を実行するその他のコマンドがいくつかある中で、cat
は依然として有用なユーティリティです。たとえば、コピー (cp
) コマンドの代用として使用できます。
$ cat myfile.ogg > /backups/myfile.ogg
このコマンドにより、ファイル内にある目に見えない不都合な文字を表示できます。--show-tabs
オプションを使用すると、YAML ファイルを壊すタブ文字が ^I
で表示されます。
$ cat --show-tabs my.yaml
---
- hosts: all
tasks:
- name: Make sure the current version of 'sysstat' is installed.
dnf:
name:
^I- sysstat
^I- httpd
^I- mariadb-server
state: latest
--show-nonprinting
で非出力文字を表示する、--show-ends
で行末をマークする、--number
で行番号を付加することなどもできます。
ファイルの検索 (find)
find
コマンドはファイルを見つけるのに役立ちます。その多くのオプションのおかげで、さまざまなフィルターやパラメーターを使用してファイルを検索できます。この基本については、私の入門向け記事をご覧ください。
すべてのコマンドの中で最も基本的な ls コマンドが、なぜ今回のリストに入っていないのか疑問に思っている方がいらっしゃるかもしれません。その理由は find
の柔軟性が高いからです。find はファイルをリスト表示できるだけではありません。
$ find .
./bar.txt
./baz.xml
./foo.txt
[...]
それだけでなく、詳細なリストを提供することもできます。
$ find . -ls
3014803 464 -rw-rw-r-- 1 tux users 473385 Jul 26 07:25 ./foo.txt
3014837 900 -rwxrwxr-x 1 tux users 918217 Nov 6 2019 ./baz.xml
3026891 452 -rw-rw-r-- 1 tux users 461354 Aug 10 13:41 ./foo.txt
[...]
これは専門的な話ですが、知っておくと便利なコツです。
アーカイブ (tar)
tar
ファイル形式は、圧縮ツール (gzip
など) と組み合わせて使用して、ZIP ツールの動作と同様にして圧縮アーカイブを作成する一般的な方法です。tar
ファイルは次のようにして解凍します。
$ tar --extract --file example.tar.gz
独自の tar ファイルを作成できます。
$ tar --create --gzip --file example.tar.gz example
アーカイブ (zip)
多くの場合、圧縮に ZIP 形式が使用されています。ターミナルからアーカイブを圧縮および解凍したり、解凍せずにアーカイブを参照することもできます。
アーカイブ内のファイルを解凍せずに一覧表示するには、unzip
コマンドに -l (「list」を意味します) オプションを使用します。
$ unzip -l example.zip
アーカイブを解凍する場合は、unzip
コマンドだけを使用します。
$ unzip example.zip
独自のアーカイブを作成するには、アーカイブの名前を指定し、次に -r
オプション (「recursive」を意味します) を使用して、どのフォルダーを圧縮するかをターミナルに指示する必要があります。
$ zip example.zip -r example
ファイル内容の表示 (more、less、most)
ページャーは cat
コマンドに似ていますが、画面の下部でファイルの出力が一時停止する点が異なり、そこからは下にスクロールしなければなりません。シンプルなアプリケーションですが、実装ごとに微妙な違いがあります。スクロールは矢印キーかスペースバーか、ページャーは手動で終了する必要があるのか表示中のファイルの最後で終了するのか。お好みの検索操作はどれでしょうか。
more
、less
、most
コマンドを試して、どれがお好みかを確認してください。
セキュアシェルを開く (ssh)
OpenSSH は、リモートシステム (仮想マシンを含む) への安全な接続に役立つだけでなく、他のコマンドを有効にすることもできます。たとえば、多くのユーザーは .ssh
ディレクトリにより、Git リポジトリとのスムーズなやり取り、Web サイトへの更新の投稿、またはクラウドのコントロールプレーンへのログインが可能になります。
SSH を直接使用するのは簡単です。リモートシステムに表示されるユーザー名と、そのシステムの IP アドレス (または完全修飾ドメイン名) を入力すると、安全な接続が確立されます。
$ ssh tux@10.0.0.33
GitHub や GitLab などのサービスの SSH 秘密鍵を設定するには、関連コマンドの ssh-keygen
を使用します。これにより、いくつかの設定が求められ (デフォルトを受け入れても安全です)、キーが生成されます。秘密鍵は決して共有してはなりませんが、公開鍵 (末尾が .pub
のファイル) をどう扱うかは、使用している Git ホストによって異なります。通常は、公開鍵ファイルの内容をコピーして、Git ホストの構成パネルに貼り付けるだけです。SSH 公開鍵の内容を表示するコマンドはすでにご存じのとおり、cat
コマンドです。
$ cat ~/.ssh/id_rsa.pub
ファイルの移動と名前変更 (mv)
mv
コマンドは 2 つの役割を果たします。ファイルの移動とファイルの名前変更の両方です。これにはいくつかの安全策があります。既存のファイルの上書きを回避する --interactive
および --no-clobber
オプション、新しい場所での検証が終わるまで保存しておく --backup
コマンド、新しいファイルが古いバージョンによって置き換えられないようにする --update
オプションなどがあります。
権限の昇格 (sudo)
既知のユーザー名とシステム上のすべての権限を持つユーザーが 1 人いる場合、そのユーザーはすぐに攻撃のターゲットになります。sudo
コマンドは、文字どおりの root
ユーザーの必要性を排除することで、システムに関する重要な情報を広く知られないようにすることが可能です。それだけではありません。sudo
を使えば、個々のコマンド、ユーザー、グループに至るまで権限を容易に管理できます。選択したコマンドのパスワードなしでの実行の有効化、ユーザーセッションの記録、ダイジェスト検証によるコマンドの検証、およびその他の操作を行うことができます。
ソフトウェアのインストール (dnf)
Red Hat Enterprise Linux (RHEL) では、dnf
コマンドによってソフトウェアをインストールし、システム上のすべてのソフトウェアを更新できます。デスクトップ・アプリケーションの場合、ソフトウェア・アプリケーションを使用することもできますが、グラフィカル・コンポーネントを持たないコマンドをインストールするには dnf
が不可欠です。
コマンドを名前で検索するには、search
キーワードを使用します。たとえば、tcpdump
を検索するには次のようにします。
$ sudo dnf search tcpdump
インストールする場合は次のようにします。
$ sudo dnf install tcpdump
コマンドエイリアスの作成 (alias)
alias
コマンドを使用して、長いコマンドを覚えやすいショートカットに変換します。
$ alias ls='ls --classify --almost-all --ignore-backups --color'
スクリーンのクリア (clear)
時にターミナル画面が乱雑になることがあります。clear
と入力すれば (または、一部のシェルでは Ctrl+L を押せば) 画面がクリアされてすっきりします。
ファイル内容の検索 (grep)
grep
コマンドは当たり前の存在になっているため、動詞 (「いくつかのファイルを grep
する」) や動名詞 (「出力の grepping
」) としてよく使用されます。これは、ログファイルを調べる場合でも、他のコマンドの出力を解析する場合でも、シェルでテキストを解析する際の重要なコンポーネントです。忙しいユーザーが特定の情報に注目するための方法です。
grep
を使用してテキストファイル内の語句を検索する方法は次のとおりです。
$ grep Linux example.txt
語句が出現する行番号を確認するには、--line-number
オプションを使用します。
$ grep --line-number Linux example.txt
プロセス ID の検索 (pgrep)
システムのリソースの管理は主にカーネルに任されています。ただし、手動アプローチを希望する場合、または手動アプローチが必要な場合は、pgrep
コマンドを使用します。pgrep
を使用すると、実行中のアプリケーションまたはコマンドのプロセス ID を取得できます。
$ pgrep firefox
アクセス制御リストの作成 (setfacl)
従来、POSIX ファイルの権限は chown
と chmod
によって決定されていました。ただし、システムはより複雑になってきており、もう少し柔軟性を提供するコマンドを使うと便利です。setfacl
コマンドを使用すると、アクセス制御リスト (ACL) を作成して、任意のユーザーにアクセス許可を付与し、フォルダーとフォルダー内に作成されたコンテンツに対するデフォルトのアクセス許可を設定できます。
ネットワークテスト (netcat)
すべてのユーザーが netcat (nc
) を必要とするわけではありませんが、一度使えば手放せなくなります。nc
コマンドは、汎用のネットワーク接続ツールです。
telnet
と同様、ポートに接続できます。
$ nc -u 192.168.0.12 80
ping
と同様、ポートに ping を送信できます。
$ nc -zvn 192.168.0.12 25
nmap
と同様、開いているポートをプローブできます。
$ nc -zv 192.168.0.12 25-80
これらは、このコマンドの一部の機能に過ぎません。
ユーザー独自
Linux ターミナルは、ある意味、創造的な問題解決を目的としています。コマンドを学習すると、独自のコマンドを作成するために使用できる構成要素も学習することになります。私のシェル履歴にあるコマンドの多くは、私自身が記述したシェルスクリプトです。それらのおかげで、自分が望む作業方法に合わせてワークフローがカスタマイズされています。シェル内の重要なコマンドを使用して、自分自身の効率と快適さのために自分で設計していくこともできます。時間をかけていくつかの優れたコマンドを理解したら、自分だけのコマンドを作成しましょう。そして、本当に良いものを思いついたときは、それをオープンソースにしてください。そうすれば他の人とアイデアを共有できます。
training
Getting Started with Linux Fundamentals
執筆者紹介
Seth Kenlon is a Linux geek, open source enthusiast, free culture advocate, and tabletop gamer. Between gigs in the film industry and the tech industry (not necessarily exclusive of one another), he likes to design games and hack on code (also not necessarily exclusive of one another).
チャンネル別に見る
自動化
テクノロジー、チームおよび環境に関する IT 自動化の最新情報
AI (人工知能)
お客様が AI ワークロードをどこでも自由に実行することを可能にするプラットフォームについてのアップデート
オープン・ハイブリッドクラウド
ハイブリッドクラウドで柔軟に未来を築く方法をご確認ください。
セキュリティ
環境やテクノロジー全体に及ぶリスクを軽減する方法に関する最新情報
エッジコンピューティング
エッジでの運用を単純化するプラットフォームのアップデート
インフラストラクチャ
世界有数のエンタープライズ向け Linux プラットフォームの最新情報
アプリケーション
アプリケーションの最も困難な課題に対する Red Hat ソリューションの詳細
オリジナル番組
エンタープライズ向けテクノロジーのメーカーやリーダーによるストーリー
製品
ツール
試用、購入、販売
コミュニケーション
Red Hat について
エンタープライズ・オープンソース・ソリューションのプロバイダーとして世界をリードする Red Hat は、Linux、クラウド、コンテナ、Kubernetes などのテクノロジーを提供しています。Red Hat は強化されたソリューションを提供し、コアデータセンターからネットワークエッジまで、企業が複数のプラットフォームおよび環境間で容易に運用できるようにしています。
言語を選択してください
Red Hat legal and privacy links
- Red Hat について
- 採用情報
- イベント
- 各国のオフィス
- Red Hat へのお問い合わせ
- Red Hat ブログ
- ダイバーシティ、エクイティ、およびインクルージョン
- Cool Stuff Store
- Red Hat Summit
Red Hat legal and privacy links
pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier! Saves Data!
--- a PPN by Garber Painting Akron. With Image Size Reduction included!
Fetched URL: http://www.redhat.com/ja/blog/20-essential-linux-commands-every-user
Alternative Proxies: