1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IT未経験からインフラ学習2回目:Linuxで削除・検索・権限・プロセス確認を練習しますた

1
Posted at

IT未経験からインフラ学習2回目:Linuxで削除・検索・権限・プロセス確認を練習した

はじめに

どもっす。

インフラ/クラウドエンジニアを目指して、Linuxの基本操作を学習してます、新人1年目のエンジンです。
ガソリンはハイオク満タンで走行中。五キロで全部消し飛ぶ燃費の悪さが自慢です。

1回目は、WSL / Ubuntuの通常ユーザー設定、sudo、ファイル作成、追記、find による構造確認を行い、初心の初心を学びました。

2回目は、Linux操作の中でもよく使う以下の内容を練習しようかなって思ってやってみました。

  • ファイル削除
  • ディレクトリ削除
  • grep による文字検索
  • find によるファイル検索
  • chmod による権限変更
  • ps によるプロセス確認
  • kill によるプロセス終了

今回は削除コマンド rm を使うため、必ず練習用ディレクトリ内だけで作業しました。

ちなみにこのQiitaのチートシートを練習しました。
会社で使ってる社内専用のナレッジと同じって気づいて、すんなりできましたね。

ホントに初歩の初歩からやってることなので、見直したい人とかおすすめです。


学習環境

項目 内容
OS Windows
Linux環境 WSL / Ubuntu
ユーザー名 tama
作業ディレクトリ /home/tama/infra-study/linux-day2

今日のゴール

今回のゴールは以下です。

ファイルを削除できる
ディレクトリを削除できる
grepで文字検索できる
findでファイル検索できる
chmodで権限を変えられる
psでプロセスを確認できる
killで練習用プロセスを止められる

1. 2回目用フォルダを作成する

まず、2回目用の練習フォルダを作成しました。

mkdir -p ~/infra-study/linux-day2

意味:
~/infra-study の中に linux-day2 というフォルダを作成します。
-p は、途中のフォルダが存在しない場合でもまとめて作成する指定です。

作成したフォルダへ移動します。

cd ~/infra-study/linux-day2

意味:
linux-day2 フォルダへ移動します。

現在地を確認します。

pwd

意味:
現在いるディレクトリを確認します。

実行結果の例:

/home/tama/infra-study/linux-day2

2. 練習用ファイルを作成する

検索や削除の練習をするため、いくつかのファイルを作成しました。

echo "apple banana orange" > fruits.txt

意味:
fruits.txt を作成し、果物の文字列を書き込みます。
> は上書き保存です。

echo "linux cloud infrastructure" > tech.txt

意味:
tech.txt を作成し、Linuxやクラウドに関する文字列を書き込みます。

echo "error: connection failed" > app.log

意味:
app.log を作成し、エラーのようなログを1行書き込みます。

echo "info: application started" >> app.log

意味:
app.log の末尾にログを追記します。
>> は追記です。

作成できたか確認します。

ls

意味:
現在のディレクトリ内のファイル一覧を表示します。

実行結果の例:

app.log  fruits.txt  tech.txt

3. catでファイルの中身を確認する

作成したログファイルの中身を確認しました。

cat app.log

意味:
app.log の中身を表示します。

実行結果:

error: connection failed
info: application started

cat は、短いファイルの中身を確認するときに便利です。


4. grepで文字検索する

次に、grep を使ってファイル内の文字を検索しました。

grep "error" app.log

意味:
app.log の中から error を含む行を検索します。

実行結果:

error: connection failed
grep "linux" tech.txt

意味:
tech.txt の中から linux を含む行を検索します。

実行結果:

linux cloud infrastructure
grep "banana" fruits.txt

意味:
fruits.txt の中から banana を含む行を検索します。

実行結果:

apple banana orange

grepの基本形

grep "探したい文字" ファイル名

ログ確認やエラー調査でよく使うコマンドなので、かなり重要だと感じました。


5. findでファイルを探す

次に、find を使ってファイルやディレクトリを探しました。

find ~/infra-study -name "*.txt"

意味:
~/infra-study の中から、拡張子が .txt のファイルを探します。

find ~/infra-study -name "*.log"

意味:
~/infra-study の中から、拡張子が .log のファイルを探します。

find ~/infra-study -type d

意味:
~/infra-study の中から、ディレクトリだけを探します。
-type dd は directory の意味です。

find ~/infra-study -type f

意味:
~/infra-study の中から、ファイルだけを探します。
-type ff は file の意味です。

findで覚えた指定

指定 意味
-name "*.txt" .txt で終わるファイルを探す
-name "*.log" .log で終わるファイルを探す
-type d ディレクトリだけを探す
-type f ファイルだけを探す
-maxdepth 3 最大3階層まで探す

マジ、死ぬ気で覚えましたね。


6. ファイルをコピーして削除する

まず、tech.txt をコピーしました。

cp tech.txt tech-copy.txt

意味:
tech.txt をコピーして、tech-copy.txt を作成します。

確認します。

ls

意味:
現在のディレクトリ内のファイル一覧を表示します。

実行結果の例:

app.log  fruits.txt  tech-copy.txt  tech.txt

次に、コピーしたファイルを削除しました。

rm tech-copy.txt

意味:
tech-copy.txt を削除します。

確認します。

ls

意味:
tech-copy.txt が削除されたか確認します。

実行結果の例:

app.log  fruits.txt  tech.txt

rm で削除したファイルは、基本的にゴミ箱には入りません。
そのため、削除対象をよく確認してから実行する必要があります。


7. 空のディレクトリを削除する

空のディレクトリを作成して、rmdir で削除しました。

mkdir test-dir

意味:
test-dir という空のディレクトリを作成します。

ls

意味:
test-dir が作成されたか確認します。

rmdir test-dir

意味:
空のディレクトリ test-dir を削除します。
rmdir は空のディレクトリしか削除できません。

ls

意味:
test-dir が削除されたか確認します。


8. 中身があるディレクトリを削除する

次に、中身があるディレクトリを作って削除しました。

mkdir -p logs/old

意味:
logs フォルダと、その中の old フォルダをまとめて作成します。

echo "old log file" > logs/old/old.log

意味:
logs/old/old.log というファイルを作成します。

中身を確認します。

find logs -maxdepth 3 -print

意味:
logs フォルダ内を最大3階層まで表示します。

実行結果の例:

logs
logs/old
logs/old/old.log

中身ごと削除します。

rm -r logs

意味:
logs フォルダと、その中身をまとめて削除します。
-r は recursive、つまり再帰的に削除する指定です。

確認します。

ls

意味:
logs フォルダが削除されたか確認します。

削除コマンドの違い

コマンド 用途
rm ファイル名 ファイルを削除する
rmdir ディレクトリ名 空のディレクトリを削除する
rm -r ディレクトリ名 中身のあるディレクトリを削除する

rm -r は強い削除コマンドです。
慣れるまでは、必ず練習用フォルダ内だけで使うようにしましょう。

会社で使用する場合、rm -iv で使用してますね。
こっちのほうが使い勝手良いと、個人的に感じてます☆


9. ls -lで権限を確認する

ファイルの権限を確認するため、ls -l を使いました。

ls -l

意味:
ファイル一覧を詳しく表示します。
権限、所有者、サイズ、更新日時などを確認できます。

表示例:

-rw-r--r-- 1 tama tama 23 Jun 16 app.log

先頭の部分が権限です。

-rw-r--r--

ざっくり見ると、以下のような意味になります。

記号 意味
r read:読み取り
w write:書き込み
x execute:実行

未だに7の内訳知らんのです。


10. 実行用スクリプトを作る

次に、実行権限を確認するためのシェルスクリプトを作成しました。

echo 'echo "Hello Linux"' > hello.sh

意味:
hello.sh というファイルを作成し、その中に echo "Hello Linux" というコマンドを書き込みます。

中身を確認します。

cat hello.sh

意味:
hello.sh の中身を表示します。

実行結果:

echo "Hello Linux"

権限を確認します。

ls -l hello.sh

意味:
hello.sh の権限を確認します。


11. 実行権限なしで実行してみる

作成した hello.sh を実行してみます。

./hello.sh

意味:
現在のディレクトリにある hello.sh を実行します。

おそらく、以下のようなエラーが出ます。

Permission denied

これは、hello.sh に実行権限がないためです。


12. chmodで実行権限を付ける

chmod を使って実行権限を付けました。

chmod +x hello.sh

意味:
hello.sh に実行権限を追加します。
+x は execute、つまり実行権限を追加する指定です。

権限を確認します。

ls -l hello.sh

意味:
hello.sh に実行権限 x が付いたか確認します。

実行してみます。

./hello.sh

意味:
hello.sh を実行します。

実行結果:

Hello Linux

chmodで学んだこと

コマンド 意味
chmod +x ファイル名 実行権限を追加する
./ファイル名 現在のディレクトリにあるファイルを実行する

13. psでプロセスを確認する

次に、現在動いているプロセスを確認しました。

ps

意味:
現在のシェルで動いているプロセスを表示します。

より多くのプロセスを見るために、以下も使いました。

ps aux | head

意味:
動いているプロセス一覧を表示し、先頭部分だけ確認します。
| head は、出力の最初の数行だけ表示する指定です。

ここで、| はパイプと呼ばれます。
左側のコマンドの結果を、右側のコマンドへ渡します。

ps aux の結果
↓
head に渡す
↓
先頭だけ表示する

14. sleepで練習用プロセスを起動する

プロセス確認の練習として、sleep をバックグラウンドで起動しました。

sleep 300 &

意味:
300秒待機する sleep コマンドをバックグラウンドで起動します。
& を付けると、コマンドを裏側で実行できます。

起動したプロセスを探します。

ps aux | grep sleep

意味:
動いているプロセス一覧から sleep を含む行を検索します。

実行結果の例:

tama  12345  0.0  ... sleep 300

この 12345 のような数字がPIDです。

PIDは、Process IDの略で、プロセスを識別する番号です。


15. killで練習用プロセスを止める

起動した sleep プロセスを終了しました。

kill 12345

意味:
PIDが 12345 のプロセスを終了します。
実際には、自分の画面に表示されたPIDに置き換えて実行します。

終了できたか確認します。

ps aux | grep sleep

意味:
sleep プロセスがまだ残っているか確認します。

grep sleep 自体が検索結果に表示されることがあります。
その場合、sleep 300 が残っていなければ終了できています。


16. 2回目に使ったコマンドまとめ

コマンド 意味
mkdir -p ディレクトリをまとめて作成する
cd ディレクトリを移動する
pwd 現在地を確認する
echo 文字を出力する
> ファイルに上書きする
>> ファイルに追記する
ls ファイル一覧を表示する
cat ファイルの中身を表示する
grep ファイル内の文字を検索する
find ファイルやディレクトリを検索する
cp ファイルをコピーする
rm ファイルを削除する
rmdir 空のディレクトリを削除する
rm -r ディレクトリを中身ごと削除する
ls -l 権限などを含めて詳しく表示する
chmod +x 実行権限を追加する
ps プロセスを確認する
kill プロセスを終了する

17. 今日の学び

2回目で学んだことは以下です。

rmは削除コマンドなので慎重に使う
rmdirは空のディレクトリだけ削除できる
中身ごと削除する場合はrm -rを使う
grepでファイル内の文字を検索できる
findでファイルやディレクトリを探せる
ls -lで権限を確認できる
chmod +xで実行権限を追加できる
./hello.sh のようにしてスクリプトを実行できる
psでプロセスを確認できる
killでプロセスを終了できる

特に印象に残ったのは、rm -rchmod +x です。

rm -r は便利ですが、間違えると危険なので、削除対象を必ず確認してから使う必要があると感じました。あと仕事で使用したらクソ怒られそう……

また、hello.sh はファイルとして存在していても、実行権限がなければ実行できませんでした。
Linuxでは、ファイルが「存在すること」と「実行できること」は別だとわかりました。


18. 次回やること

次回は、Linux操作の続きとして以下を学習する予定です。

標準出力と標準エラー
リダイレクトの復習
パイプの追加練習
less / head / tail
ログ確認
curlによる通信確認

特に headtailless はログを見るときに使うので、次回以降しっかり練習したいです。


まとめ

2回目は、Linuxの基本操作として、削除・検索・権限・プロセス確認を練習しました。

今回できたことは以下です。

  • 練習用ディレクトリを作成した
  • 検索用ファイルやログファイルを作成した
  • grep で文字検索した
  • find でファイルやディレクトリを探した
  • rmrmdirrm -r で削除を練習した
  • ls -l で権限を確認した
  • chmod +x で実行権限を追加した
  • ps でプロセスを確認した
  • kill で練習用プロセスを終了した

まだ基本操作の段階ですが、Linuxでは「ファイルを探す」「ログを見る」「権限を確認する」「プロセスを見る」という操作が重要になりそうだと感じました。

次回もLinuxの基礎操作を続けていきます。

ちなみに、まとめ書いてる途中で「あれ、これうちのチャッピーにチートシートとかやらせた方が労力減るんじゃ……」となって一応精査だけやらせたらとんでもない量のミスというか、死ぬほど醜くなってたらしくて、チャッピーから「個性的で良いですね!」と嫌味を言われました。ぐすん。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?