超初心者のためのLINUXコマンドライン操作覚え書き

Advertisement

最近ターミナルでの作業が増えてきて「あれってどうやるんだっけ?」とか「これができたら便利なのに」と思うことが増えてきたので、基礎からコマンドラインの使い方を覚え直しています。使ってないとまたすぐに忘れてしまうので覚え書きです。

とりあえず「これくらい知ってれば便利に使えるはず」というのをざっくりまとめてみました。

ちなみに「6日間で楽しく学ぶLinuxコマンドライン入門 」という本をベースに学び直しています。以下にまとめたコマンドだけでなく、viの使い方からシェルスクリプトの書き方、さらにはシステム管理などについて、すごく丁寧に解説されていてオススメです。

目次

頻繁に使うコマンド一覧

コマンド 説明 オプション
ls ディレクトリ情報の表示 -a システムファイル表示
-l ロングフォーマット
-d 指定のディレクトリ情報のみ表示
cd ディレクトリの移動
cp ファイルのコピー -i インタラクティブモード
-p ファイルの属性を維持
-R 丸ごとコピー
-v コピーされたファイル名の表示
mv ファイルの移動
rm ファイルの削除 -r ディレクトリとディレクトリ内の全てのファイルを削除。確認なしに全部消えちゃうので要注意です!
cat テキストファイルの内容を表示 -n 行数表示
touch ファイルのタイムスタンプの変更。ファイルが存在しない場合は空ファイルが作られる
mkdir フォルダ作成 -p 入れ子のフォルダを一気に作成
man マニュアルの表示

たまに使いそうなコマンド一覧

コマンド 説明 オプションまたは使用例
whatis コマンドの簡単な説明を表示
which コマンドの保存先を調べる
type コマンドの保存先を調べる -a 全ての保存先を表示
apropos コマンドをキーワードで検索
find ファイルの検索。find ディレクトリ名 -name ファイル名で検索できる。※いろいろ便利な使い方があるので別途記事にします -name ファイル名
-typeタイプ(d: ディレクトリ、f: ファイル、l: シンボリックリンク)
-mtime 変更日時(-3で3日前から現在、+3で3日前よりも前)
-sizeサイズ
cal カレンダーの表示 例) cal 11 2018
date 日付の表示
pwd いまいるディレクトリの表示(print working directory)

ファイル操作(フィルタ)系コマンド

コマンド 説明 オプションまたは使用例
head 指定した最初の行を表示する(デフォルトは10行) -3 最初の3行を表示
tail 指定した最後の行を表示する(デフォルトは10行) -3 最後の3行を表示
sort 行の並べ替え -r 降順
-u 重複を削除
-b 先頭のスペースを無視
uniq 隣接する重複行の削除。sortしてからじゃないと機能しない
wc 文字数のカウント。結果は行数、単語数、文字数の順に表示される -c 文字数の表示(バイト数)
-l 行数
-w 単語数

覚えておくと便利な記号

カレントディレクトリ

記号 説明
. カレントディレクトリ。たとえば、他のディレクトリにあるファイルを、今のディレクトリにコピーするときに使える。

使用例

$ cp /Users/rriver/docs/readme.txt .

直前にいたディレクトリ

記号 説明
~- 直前にいたディレクトリ

使用例

$ cd ~-

ワイルドカード(任意の1文字)

記号 説明
? 任意の1文字

使用例

$ ls ????.txt

ファイル名が4文字の.txtファイルの一覧を表示

ワイルドカード(0個以上の任意の文字列)

記号 説明
* 0個以上の任意の文字列

使用例

ls *.png

.pngのファイル一覧を表示。

出力のリダイレクション

記号 説明
> 出力のリダイレクション

使用例

cat text1.txt > text2.txt

text2.txtにtext1.txtの内容を書き込む。上書きされる。

出力のリダイレクションで追加

記号 説明
>> 出力のリダイレクションで追加

使用例

cat text1.txt >> text2.txt

text2.txtの後にtext1.txtの内容が追加される。

出力のリダイレクションでエラーを書き込む

記号 説明
2> エラーをファイルに書き込む

使用例

ls - 2> error.txt

error.txtに「ls -」コマンドで出力されるエラーが書き込まれます。

複数のコマンドをつなげて実行する(パイプ)

記号 説明
| 複数のコマンドをつなげて実行できる。前のコマンドの出力が次のコマンドの入力になる

使用例

last | head -3

ログイン情報(lastで出力)の最初の3行をheadで出力

複数のコマンドを連続して実行

記号 説明
; 複数のコマンドを連続して実行(別々のコマンド)

覚えておくと便利なキー操作

キー 説明
Tab 最初の数文字を入力して「Tab」を押すと残りの文字を保管してくれる
Ctrl + B
Ctrl + F
Ctrl + A 行頭
Ctrl + E 行尾

カット&ペースト

キー 説明
Ctrl + H カーソルの前の文字を削除
Ctrl + D カーソル位置の文字を削除
Ctrl + K カーソルから行尾までを削除
Ctrl + U カーソルから行頭までを削除
Ctrl + Y 削除した文字をペースト

コマンドの呼び出し

キー 説明
Ctrl + P 前のコマンド
Ctrl + N 次のコマンド

Linux系システムのディレクトリ構造

システムのディレクトリ構造なんて別に知らなくても生きていけるんですけど、知っていると困ったときに便利なんですよね。ということで、超ベーシックなものを一覧にしておきます。「Filesystem Hierarchy Standard 」で標準化されているそうで、リンク先にあるドキュメントにどのディレクトリに何をおくべきか、また、どのようにシェアされるべきかなど、こと細かく書かれています。すごいですね。

ディレクトリ 格納されているもの
bin 必要不可欠(Essential)な基本コマンド。バイナリの略
sbin 管理(システム系)コマンド
usr 各種コマンドやドキュメント
home 一般的にはユーザのホーム。MacではUsers
var 頻繁に更新されるデータ。logとか
etc 設定ファイル
lib ライブラリ
dev デバイスファイル
media リムーバブルメディアのマウントポイント
mnt マウントポイント。Macの場合Volumes

usrディレクトリの中

ディレクトリ 格納されているもの
bin ほとんどの基本コマンド
sbin 必要不可欠でない(Non-essential)管理コマンド
local ユーザがインストールしたコマンド。だからHomebrewとかここなのね
share 共有ファイル

ちなみに、Macではローカライズドファイルシステムという仕組みでFinderでは日本語表記のものがターミナルでは英語で表記される。

確認に使った実行環境

ここに記述したコマンドはすべて以下の環境で確認しています。記事タイトルに「Linuxコマンド」と書いたので「えっ、Macで確認?」というツッコミもあったのでCentOSでも確認をしておきました。さらに書いておくと、macOS はLinuxではなくてUNIXベースのDarwinですが、ここで書いたような基本的なコマンドはほぼ同じように使えます。記事タイトルは「Linux」にしようか「Unix」にしようか迷ったんですが、最近ではLinuxの方が一般的なのかと思ってLinuxにしたのでした。

Mac

  • macOS High Sierra 10.13.2
  • iTerm2 Build 3.1.5.beta.2
  • zsh 5.4.2

Linux

  • CentOS Linux release 7.4.1708
  • GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)

ここに書いたものはごくごく一般的なコマンドなので問題ないと思いますが、実行環境によっては記述と異なる場合があります。ご注意ください。

Twitterで「タイトルにLinuxコマンドライン操作とあるのに確認したのはmacOS」というご指摘をいただきました。確かに、おっしゃる通りなので、念のためVagrantで走らせているCentOS(CentOS Linux release 7.4.1708)でも確認しました。CentOSの設定がおかしくなっているのか、なぜかwhatisコマンドだけLocaleの問題か何かでエラーが出てしまいますが、それ以外は同じように動きます。

About the author

Rriverの竜(りょう)です。「明日のウェブ制作に役立つアイディア」をテーマにこのブログを書いています。アメリカの大学を卒業後、東海岸のボストン近郊でウェブ制作を開始。帰国後、東京のウェブ制作会社に勤務。現在は組織のウェブ担当者として日英バイリンガルウェブサイトの運営に携わっています。より詳しくはこちら

記事へのコメントはもちろん、執筆・翻訳、レスポンシブなウェブサイト制作、コラボのご相談などもTwitter @rriver またはFacebook でお気軽にご連絡ください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です