8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

改めてLinuxコマンドを理解する[cat, touch, echo編]

Last updated at Posted at 2024-12-01

はじめに

初めまして!ITスクールRareTECHにてCS(Customer Support)を担当している池村です!
やはりシェルは美しいと感じている今日この頃です。

今回はLinuxコマンドのcat touch echoについて記事を作成しました。

※この記事は超初学者向けになります。順番的には以下の記事を先に見ていただけると嬉しいです。

catコマンド

まずはcatコマンドからご紹介します。
catコマンドを簡単に説明すると、ファイルの中身を表示してくれるコマンドです。これもよく使うコマンドになります。

基本的な使い方

使い方は簡単です。

書き方
cat ファイル名

私は今回、適当に作ったPython(Flask)のコードを表示してみます。
image.png

画面に表示されましたね。
catコマンドは基本的にこれだけできれば良いと考えています。

ただ一応、応用方法も書いておきます。

複数ファイルの結合

catコマンドで複数のファイルを指定すると、その中身をくっつけてくれます。

書き方
cat ファイル名 ファイル名

私の環境ではこうなりました。
image.png
先ほどのtest.pyともう一つ準備していたtest.py2を指定してみました。中身がくっついていますね。ファイルの中身が書き換わったわけではなく、表示された内容だけが結合しています。

どこで使うの?と言われましたら、私はパッと思いつかないですね。
おそらくgrepコマンド(テキスト内から確認したい文字列が含まれている箇所を抜き出すコマンド)と併用して、特定の文字列だけ抜き取るような使い方でしょうか?あとはログファイルの中身を結合して一気に見たい時とかですかね?インフラエンジニアや保守運用している人が使ってそうですね。(予想です)

書き方
cat test1.log test2.log | grep "error"

のような使い方をすると、ログファイルの中のエラー部分だけ確認できそうです。

touchコマンド

次にtouchコマンドを紹介します。
touchコマンドはファイルを作成するコマンドです。一応ファイルのタイムスタンプの変更ということもできますが、主要なのはファイルを作る方だと考えています。

基本的な使い方

こちらも使い方は簡単です。

書き方
touch 自由なファイル名
touch test.txt
touch test.py
touch test.go

とかですね。
ちなみにまとめて作成することも可能です。

書き方
touch test.txt test.py test.go

image.png

ちなみに、作られているのは空のファイルになります。

タイムスタンプの変更

すでにあるファイルを指定してtouchコマンドを使用すると、タイムスタンプを変更することができます。そもそもタイムスタンプっていうのがなんなのか?というお話しですが、ファイルにはアクセス時刻や更新時刻などの情報が入っています。その時間を変更することができるということです。

補足ですが、ファイルの作成日時を変えることはできないです。

書き方
touch タイムスタンプを変更したいファイル

上記のようにすると、ファイルのアクセス時刻と更新時刻がコマンドを実行した現在時刻に変更されます。以下の画像はls -lの実行結果です。これは更新時間だけですが、変更されているのがわかりますね。
image.png

アクセス時刻、更新時刻、変更時刻の全てを確認するにはstatコマンドを使えば確認することができます。ここでこのコマンドを詳しく説明はしませんが、使ってみても良いでしょう。

書き方
stat ファイル名

touchコマンドについての補足

タイムスタンプの変更についてはログファイルやバックアップファイルあたりで使いそうですね。
IT業界ではサーバーのログを残す慣習があります。エラー情報やら大事なログがたくさんありますからね。貴重な情報です。あとは様々なデータのファイルをバックアップするためにコピーしたりもします。それらのタイムスタンプを合わせてセットにして保存しておけると迷わなくて良さそうです。

touchコマンドのオプション

オプション 説明
-a アクセス時刻だけを更新する
-m 変更時刻だけを更新する
-c または --no-create ファイルが存在しない場合、新しいファイルを作成しない
-r 参照ファイルのタイムスタンプをコピーして適用する
-t 手動で指定したタイムスタンプを適用する
--date="日時" 指定した日付を用いてタイムスタンプを更新(-t の代わり)。

オプションに関しては初学者のうちは覚える必要がほぼないですが、一応掲載しておきます。

echoコマンド

では最後にechoコマンドをご紹介します。
こちらのコマンドは、画面に文字列を表示させるものです。
プログラミングを学び始めた方々は少しわかると思いますが、大体printとかPrintlnとかを使って画面にHello Worldと表示するのがファーストステップだと思います。
要はこれと一緒で、画面に文字列を表示する時に、Linuxではechoコマンドを使います。

基本的な使い方

書き方
echo 'Hello World!'

これでシェル画面上にHello World!と表示されれば成功です。
image.png

これ自体はそれほど難しくないですね。

では応用を見ていきましょう。
echoコマンドはリダイレクトという仕組みを使うことで本領を発揮します。

書き方
echo 'Hello World!' > test.txt

こう書くことで、文字列Hello World!とtest.txtに書き込むことができます。
もしこのtest.txtが今いるディレクトリに存在しない場合は、勝手に作ってくれます。
ここで一点注意点ですが、>を使ったリダイレクトは、ファイルの中身を上書きします。

上書きせずにファイル内の末尾に追記したいときは以下の書き方をします。

書き方
echo 'Hello World!' >> test.txt

この書き方を行うことで、ファイルの末尾(最後の行)に記述をすることができます。
以下の画像は、>>>のリダイレクトの違いによってファイルの中身がどうなっているかを、実際にコマンドを叩いて試したものです。
image.png

リダイレクトはLinuxにおける標準入出力、標準エラー出力などの少し難しい要素が入ってきます。ですがこの記事ではその辺りの難しい要素を省いて、まずはこの二つのリダイレクトがどんな動きをするか紹介しています。

よく使われるリダイレクト

こちらの記事でも紹介しましたが、設定ファイルというファイルに様々な設定を書き込むことによって、シェルは使いやすさを増します。

echoとリダイレクトはそれらのファイルに設定を書き込む時によく使われます。
ただ、ここでかなり注意する必要があるのが>で設定ファイルに書き込むように記述がされている技術記事です。

例えば以下の書き方です。

書き方
echo 'export PYENV_ROOT="$HOME/.pyenv"' > ~/.zshrc

これはpyenvというツールを使えるようにする設定を.zshrcに書き込んでいる記述です。
上記の>を使っている書き方だと、設定ファイルの中身が全て消えて、今書き込んだ設定しかなくなります。

せっかく色々な記述をしてシェルを使いやすくしても、このコマンド一発で中身全てが消えてしまします。

ですので、echoでリダイレクトするときは注意して実行しましょう。技術記事をしっかり見て、本当に大丈夫かどうか見極められるようになるとgoodです。設定ファイルに書き込む系のリダイレクトは100%>>だと思ってもらっても良いです。

catコマンドの代替えコマンドについて

batコマンド

これはcatコマンドを拡張したようなコマンドです。

catコマンドは基本的に画面に表示した文字列に色などはつきませんが、batコマンドはコードなどが見やすくなるように色をつけてくれます。以下のような表示ですね。
image.png

ほぼ上位互換的なコマンドなのでご自身のPCに入れることはオススメできます。

Macの場合
brew install bat
Ubuntuの場合
sudo apt update
sudo apt install bat
実行方法
bat ファイル名

コードを表示するときはこちらのコマンドの方が見やすいですね。
ゆっくり見るならエディタを開けというツッコミはスルーしますが。

おわりに

今回はLinuxコマンドの基本③として解説いたしました。
これらのコマンドはよく使う上位のコマンドです。初学者は今回紹介した使い方だけでもマスターして欲しいと思っています。

次回はディレクトリの作成や、それらの削除についてまとめていく予定です。
簡単な記事は書きやすいけど、自分の知識習得にはあまり効果がない気もするので、同時並行でDocker周りの記事も書いていく予定です。

また読んでくれたら嬉しいです。ここまで読んでいただき、ありがとうございました。
次の記事はこちら👇

まとめ記事はこちら👇

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?