RAKUS Developers Blog | ラクス エンジニアブログ

株式会社ラクスのITエンジニアによる技術ブログです。

Linuxファイル操作【コマンドまとめ】

f:id:tech-rakus:20210618163355p:plain

はじめに

みなさんこんにちはa_renrenです。
Linuxを学習し始めた時は、コマンドやオプションの多さに挫折しかけてしまうかと思います。
そんな方に向けてLinuxを扱う上で避けては通れない、Linuxファイル操作でよく使用する基本的なコマンドとオプションに絞って紹介していきます。
実際の使用例なども載せていますので、Linuxコマンドを実行できる環境をお持ちでしたら試しながら読み進めていただくと、コマンドの苦手意識が減ってくるかと思います。
ぜひ操作しながら読み進めてみてください。

Linuxファイル作成

touchコマンド

指定したファイルのタイムスタンプを更新するLinuxコマンドですが、存在しないファイルを指定すると空のファイルが作成されます。
空のファイルを手っ取り早く作成する際によく使用します。

# touch ファイル名

実際にコマンドを実行してみます。

[root@ren test]# ls
[root@ren test]# touch sample.txt
[root@ren test]# ls
sample.txt

lsコマンドでディレクトリの中身を確認しています。
はじめは何もありませんでしたが、touchコマンドによってファイルが作成されていることが確認することができます。
また、以下のようにファイル名を半角スペースで区切ると一気に複数のファイルを作成することが可能です。

[root@ren test]# touch sample2.txt sample3.txt
[root@ren test]# ls
sample.txt  sample2.txt  sample3.txt

viコマンド

Linux標準のテキストエディタを起動するコマンドで、指定したファイルがあればそのファイルがviエディタで開かれ、指定したファイルがなければ新規作成します。 新しくファイルを作成しつつ、そのファイルに何か書き込みたい際は、touchコマンドよりviコマンドの方が便利です。

# vi ファイル名

viはコマンドモードと入力モードの二つがあり、コマンドモードでカーソルの移動ができ、入力モードでないと文字入力できないようになっています。
はじめは少しややこしいかと思いますが、慣れると高速にファイルの操作が行えるようになります。

実際に新規ファイルを作成しつつ、ファイルに文字を記述する流れは以下のようになります。

  1. 「i」を入力して入力モードに変更
    ※空のファイルが開いた際はコマンドモードになっています

  2. 好きなように編集

  3. 入力が完了したらEscキーを押して、コマンドモードに戻す

  4. [:wq]を入力すると保存されてviを終了

vi コマンドやLinuxの理解をより深めたい方へ以下関連おすすめブログ
- vi コマンド【使い方まとめ】
- よく使うLinuxコマンド一覧【最新版】
- 初心者のためのawkコマンド
- 実務で使える!基本的なシェル(Linux)コマンドの話 ~forとsed~
- 【Linux】今振り返りたい、プロセスって何?

Linuxファイル削除

rmコマンド

指定したファイルやディレクトリを削除できます。

# rm ファイル名

実際にファイルが削除されるか確認してみます。
touchコマンドの際に作成したsamle.txtを削除します。

[root@ren test]# rm sample.txt
rm: 通常の空ファイル 'sample.txt' を削除しますか? y
[root@ren test]# ls
sample2.txt  sample3.txt

削除時、上記のように確認されるので、対象ファイルに間違いがなければ「y」を入力します。
対象ファイルを間違えた場合は「n」を押せばキャンセルされます。

また、ファイルのみだけでなくディレクトリも削除することが可能です。
以下のように、mkdirコマンドでtestディレクトリを作成して、削除してみます。
オプションなしでは削除はできていませんが、-rオプションを付けることで削除することができていることがわかります。

[root@ren test]# mkdir test
[root@ren test]# ls -l
合計 0
-rw-r--r-- 1 root root 0  5月 27 19:21 sample2.txt
-rw-r--r-- 1 root root 0  5月 27 19:21 sample3.txt
drwxr-xr-x 2 root root 6  5月 27 19:47 test
[root@ren test]# rm test 
rm: 'test' を削除できません: ディレクトリです
[root@ren test]# rm -r test
rm: ディレクトリ 'test' を削除しますか? y
[root@ren test]# ls -l
合計 0
-rw-r--r-- 1 root root 0  5月 27 19:21 sample2.txt
-rw-r--r-- 1 root root 0  5月 27 19:21 sample3.txt

基本的に、ファイルやディレクトリを削除するときは上記のように削除するか問われますが、-fオプションを付けるとこの確認がなくなります。
わずらわしさはなくなりますが、気づかないうちに自分の意図しない大切なLinuxファイルを削除してしまい、最悪Linuxが起動できない事態にも陥る可能性があるので、-fオプションは使用しないことをおすすめします。

Linuxファイルのコピー、移動

cpコマンド

ファイルやディレクトリのコピーを作成する際に使用します。

# cp コピー元 コピー先

testdirディレクトリにsample2.txtファイルのコピーを作成してみます。 treeコマンドでディレクトリやファイルをツリー状に表示しています。

[root@ren test]# tree
.
├── sample2.txt
├── sample3.txt
└── testdir

1 directory, 2 files
[root@ren test]# cp sample2.txt testdir
[root@ren test]# tree
.
├── sample2.txt
├── sample3.txt
└── testdir
    └── sample2.txt

1 directory, 3 files

また、以下のようにコピー先のファイル名を指定することで名前を変更しつつ対象のディレクトリにコピーすることもできます。

[root@ren test]# tree
.
├── sample2.txt
├── sample3.txt
└── testdir
    └── sample2.txt

1 directory, 3 files
[root@ren test]# cp sample2.txt testdir/rename-sample2.txt
[root@ren test]# tree
.
├── sample2.txt
├── sample3.txt
└── testdir
    ├── rename-sample2.txt
    └── sample2.txt

1 directory, 4 files

-pオプションでコピー元のパーミッション(ファイルを閲覧したり実行したりする権限)の設定を保持したままコピーを作成できます。
そのため、基本的に-pを付けてコピーしたファイルの操作ができなくなることを防ぐことをおすすめします。

mvコマンド

ファイルやディレクトリを移動させる際に使用します。 cpコマンドと似ている点がありますが、コピーと違いファイルは移動元からはなくなります。

# mv 移動元 移動先
[root@ren test]# tree
.
├── sample2.txt
├── sample3.txt
└── testdir
    ├── rename-sample2.txt
    └── sample2.txt

1 directory, 4 files
[root@ren test]# mv sample3.txt testdir
[root@ren test]# tree
.
├── sample2.txt
└── testdir
    ├── rename-sample2.txt
    ├── sample2.txt
    └── sample3.txt

1 directory, 4 files

cpコマンドと同様に名前を変更しつつ、ファイルの移動をすることもできます。

Linuxファイル閲覧・テキスト処理

catコマンド

ファイルの中身を簡単に確認する際によく使用します。

# cat ファイル名
[root@ren test]# cat sample2.txt 
1
2
3
4
5

tailコマンド

catコマンドと同様に、ファイルの中身を簡単に確認する際に使用します。 tailコマンドでは、ファイルの中身をすべて表示せずに最終行から指定された行数分表示します。(デフォルトでは10行)
ログの監視の際などによく使用します。

# tail ファイル名

1行目のコマンドでsample2.txtに、1から20の数字を20行分書き込んでからtailコマンドで実際に見てみます。

[root@ren test]# for i in `seq 20`; do echo $i >> sample2.txt; done
[root@ren test]# tail sample2.txt 
11
12
13
14
15
16
17
18
19
20

行数をしていないため、最終行から10行分表示されています。

行数を指定するには以下のように指定します。

[root@ren test]# tail -n 4 sample2.txt 
17
18
19
20

指定された行数分表示されているのが確認できます。

-fオプションを付けると対象のファイルを監視して、ファイルを閉じたり再度開いたりせずに追記された内容を表示します。

[root@ren test]# tail -f -n 4 sample2.txt 
17
18
19
20

この状態のまま、別ターミナルでsample2.txtに21、22を追記してみます。

[root@ren test]# tail -f -n 4 sample2.txt 
17
18
19
20
21
22

追記した内容がしっかりと更新されているのがわかります。
このため、ログが正常に取れているかの確認やログの内容を監視したい際にとても便利なLinuxコマンドです。

grepコマンド

ファイルの中身を簡単に確認する際によく使用します。

grep 検索したい文字列 ファイル名

指定したファイルから特定の文字が含まれている行を抽出するLinuxコマンドです。

samloe2.txtファイルから5が記載されている行を抽出してみます。

[root@ren test]# grep 5 sample2.txt 
5
15

5または6が記載されている行を抽出するような、複数条件を指定する場合には以下のように-eオプションを使用します。

[root@ren test]# grep -e 5 -e 6 sample2.txt 
5
6
15
16

逆に指定した文字列以外を抽出するには、-vオプションを使用します。

[root@ren test]# grep -v 1 sample2.txt 
2
3
4
5
6
7
8
9
20

おわりに

いかがでしたでしょうか。 Linuxファイル操作でよく使うような基本的なLinuxコマンドを中心に紹介しましたが、実際にコマンド操作をしないとなかなか覚えられないかと思います。
まずは、基本的なLinuxコマンドの操作に慣れることを優先し、ほかにも様々な便利コマンドがLinuxにはあるので、慣れてきたら徐々にほかのコマンドを試していきながらLinuxの学習を進めることをおすすめします。 ちなみに、「よく使うLinuxコマンド一覧【最新版】」も別にまとめておりますのでご参考ください。


  • エンジニア中途採用サイト
    ラクスでは、エンジニア・デザイナーの中途採用を積極的に行っております!
    ご興味ありましたら是非ご確認をお願いします。
    20210916153018
    https://career-recruit.rakus.co.jp/career_engineer/

  • カジュアル面談お申込みフォーム
    どの職種に応募すれば良いかわからないという方は、カジュアル面談も随時行っております。
    以下フォームよりお申込みください。
    forms.gle

  • イベント情報
    会社の雰囲気を知りたい方は、毎週開催しているイベントにご参加ください! rakus.connpass.com

Copyright © RAKUS Co., Ltd. All rights reserved.