シェル操作はエンジニアとして業務を進める上で必須となる技術です。プログラミング初心者のときはコーディングに集中しがちですが、シェル操作に慣れていくことも重要なスキルの一つです。そこで今回はシェル操作を学ぶ上でよく使う実践的な知識を紹介します。
私は過去にスタートアップでエンジニア採用に携わりましたがシェル操作までちゃんと学んでいるかどうかは、未経験エンジニアのスキルを見抜くうえでも重要なので採用担当者の方は採用に使ってみるのもおすすめです。
- シェル操作の練習問題50
- 解答&解説
- リアルタイムで更新されているログファイルを確認する方法は?
- カレントディレクトリ配下が怪しい場合に容量を圧迫しているフォルダを特定するコマンドは?
- 指定した文字列を含むファイルを特定するコマンドは?
- シェルスクリプト内で環境変数の値を表示するコマンドは?
- 指定したプロセスを強制終了するコマンドは?
- 指定した拡張子を持つファイルを再帰的に探すコマンドは?
- ファイルの権限を変更するコマンドは?
- 複数のファイルを結合して新しいファイルを作成するコマンドは?
- 指定した文字列を含むファイルの数をカウントするコマンドは?
- 特定の条件に合致するファイルを削除するコマンドは?
- 特定のユーザーがログインしているか確認するコマンドは?
- 空きディスク容量を表示するコマンドは?
- 特定のパスに移動するコマンドは?
- プロセスのリソース使用量を表示するコマンドは?
- 現在の日付と時刻を表示するコマンドは?
- 特定のディレクトリ以下のファイルを再帰的に削除するコマンドは?
- 指定した文字列を含むファイルの中身を置換するコマンドは?
- ファイルの内容をページ単位で表示するコマンドは?
- 指定した文字列を含むファイルの中身を表示するコマンドは?
- ファイルの行数をカウントするコマンドは?
- 指定した文字列を含むファイルを再帰的に検索するコマンドは?
- 特定の文字列でファイルを検索し、検索結果を行番号付きで表示するコマンドは?
- ファイルの最終更新日時を表示するコマンドは?
- 指定した文字列を含むファイルを削除するコマンドは?
- ディレクトリの中身を表示するコマンドは?
- 特定のユーザーが所有するファイルを検索するコマンドは?
- 特定の文字列を含むファイルの中身を置換するコマンドは?
- ファイルの内容をページ単位で表示するコマンドは?
- ファイルの種類を表示するコマンドは?
- 特定のディレクトリ以下のファイルを再帰的に削除するコマンドは?
- 指定した文字列を含むファイルの中身を検索し、
- ファイルの末尾から指定した数の行を表示するコマンドは?
- ディレクトリの中にあるファイルの数を表示するコマンドは?
- 特定のディレクトリ以下のファイルを特定の拡張子に変換するコマンドは?
- 現在のユーザーのホームディレクトリに移動するコマンドは?
- 指定した文字列を含むファイルの行数をカウントするコマンドは?
- 指定したディレクトリ以下のファイルの権限を再帰的に変更するコマンドは?
- ディレクトリの中にある特定のファイルを再帰的に削除するコマンドは?
- 現在のユーザーが所有するプロセスを表示するコマンドは?
- 特定のユーザーが所有するファイルの数を表示するコマンドは?
- ファイルの内容を終端から検索するコマンドは?
- ファイルの中身をバイト単位で表示するコマンドは?
- ファイルのパーミッションを変更するコマンドは?
- 特定のユーザーが所有するファイルを再帰的に検索するコマンドは?
- 現在のディレクトリを表示するコマンドは?
- ファイルの中身を16進数で表示するコマンドは?
- 指定した文字列を含むファイルの行番号を表示するコマンドは?
- 特定のファイルをコピーするコマンドは?
- 指定した文字列を含むファイルを検索し、検索結果をファイルごとに表示するコマンドは?
- 特定の文字列を含むファイルの中身を表示し、その前後の行も表示するコマンドは?
シェル操作の練習問題50
- リアルタイムで更新されているログファイルを確認する方法は?
- カレントディレクトリ配下が怪しい場合に容量を圧迫しているフォルダを特定するコマンドは?
- 指定した文字列を含むファイルを特定するコマンドは?
- シェルスクリプト内で環境変数の値を表示するコマンドは?
- 指定したプロセスを強制終了するコマンドは?
- 指定した拡張子を持つファイルを再帰的に探すコマンドは?
- ファイルの権限を変更するコマンドは?
- 複数のファイルを結合して新しいファイルを作成するコマンドは?
- 指定した文字列を含むファイルの数をカウントするコマンドは?
- 特定の条件に合致するファイルを削除するコマンドは?
- 特定のユーザーがログインしているか確認するコマンドは?
- 空きディスク容量を表示するコマンドは?
- 特定のパスに移動するコマンドは?
- プロセスのリソース使用量を表示するコマンドは?
- 現在の日付と時刻を表示するコマンドは?
- 特定のディレクトリ以下のファイルを再帰的に削除するコマンドは?
- 指定した文字列を含むファイルの中身を置換するコマンドは?
- ファイルの内容をページ単位で表示するコマンドは?
- 指定した文字列を含むファイルの中身を表示するコマンドは?
- ファイルの行数をカウントするコマンドは?
- 指定した文字列を含むファイルを再帰的に検索するコマンドは?
- 特定の文字列でファイルを検索し、検索結果を行番号付きで表示するコマンドは?
- ファイルの最終更新日時を表示するコマンドは?
- 指定した文字列を含むファイルを削除するコマンドは?
- ディレクトリの中身を表示するコマンドは?
- 特定のユーザーが所有するファイルを検索するコマンドは?
- 特定の文字列を含むファイルの中身を置換するコマンドは?
- ファイルの内容をページ単位で表示するコマンドは?
- ファイルの種類を表示するコマンドは?
- 特定のディレクトリ以下のファイルを再帰的に削除するコマンドは?
- 指定した文字列を含むファイルを検索し、検索結果をファイルごとに表示するコマンドは?
- ファイルの末尾から指定した数の行を表示するコマンドは?
- ディレクトリの中にあるファイルの数を表示するコマンドは?
- 特定のディレクトリ以下のファイルを特定の拡張子に変換するコマンドは?
- 現在のユーザーのホームディレクトリに移動するコマンドは?
- 指定した文字列を含むファイルの行数をカウントするコマンドは?
- 指定したディレクトリ以下のファイルの権限を再帰的に変更するコマンドは?
- ディレクトリの中にある特定のファイルを再帰的に削除するコマンドは?
- 現在のユーザーが所有するプロセスを表示するコマンドは?
- 特定のユーザーが所有するファイルの数を表示するコマンドは?
- ファイルの内容を終端から検索するコマンドは?
- ファイルの中身をバイト単位で表示するコマンドは?
- ファイルのパーミッションを変更するコマンドは?
- 特定のユーザーが所有するファイルを再帰的に検索するコマンドは?
- 現在のディレクトリを表示するコマンドは?
- ファイルの中身を16進数で表示するコマンドは?
- 指定した文字列を含むファイルの行番号を表示するコマンドは?
- 特定のファイルをコピーするコマンドは?
- 指定した文字列を含むファイルを検索し、検索結果をファイルごとに表示するコマンドは?
- 特定の文字列を含むファイルの中身を表示し、その前後の行も表示するコマンドは?
解答&解説
リアルタイムで更新されているログファイルを確認する方法は?
ログファイルをリアルタイムで監視するためには、tail
コマンドを使用します。tail -f
を使うことで、ファイルの最終行から監視し、新しい行が追加されるたびにそれらを表示します。
tail -f ファイル名
カレントディレクトリ配下が怪しい場合に容量を圧迫しているフォルダを特定するコマンドは?
ディスク容量が急増している場合、どのフォルダが容量を圧迫しているかを特定する必要があります。以下のコマンドは、ディレクトリごとのサイズを表示し、最も大きなものがどこかを特定します。
du -sh * | sort -rh | head -n 10
指定した文字列を含むファイルを特定するコマンドは?
grep
コマンドを使用して指定した文字列を含むファイルを検索できます。 -r
オプションを使用すると、再帰的にディレクトリを検索します。
grep -r "指定した文字列" *
シェルスクリプト内で環境変数の値を表示するコマンドは?
シェルスクリプト内で環境変数の値を表示するには、echo
コマンドを使用します。環境変数名を $
で囲って指定します。
echo $環境変数名
指定したプロセスを強制終了するコマンドは?
プロセスを終了するためには、kill
コマンドを使用します。 -9
シグナルを送ることでプロセスを強制終了します。
kill -9 プロセスID
指定した拡張子を持つファイルを再帰的に探すコマンドは?
find
コマンドを使用して、指定した拡張子を持つファイルを再帰的に検索できます。
find . -type f -name "*.拡張子"
ファイルの権限を変更するコマンドは?
chmod
コマンドを使用して、ファイルの権限を変更できます。新しい権限を数値で指定します。
chmod 新しい権限 ファイル名
複数のファイルを結合して新しいファイルを作成するコマンドは?
cat
コマンドを使用して複数のファイルを結合し、 >
を使って新しいファイルに出力します。
cat ファイル1 ファイル2 > 新しいファイル
指定した文字列を含むファイルの数をカウントするコマンドは?
grep
コマンドを使用して、指定した文字列を含むファイルを検索し、wc -l
コマンドで行数を数えます。
grep -rl "指定した文字列" | wc -l
特定の条件に合致するファイルを削除するコマンドは?
rm
コマンドを使用して、特定の条件に合致するファイルを削除します。条件にはワイルドカードが使えます。
rm 条件
特定のユーザーがログインしているか確認するコマンドは?
ログインしているユーザーを確認するには、who
コマ
ンドを使用します。必要に応じてgrep
を使ってフィルタリングできます。
who | grep ユーザー名
空きディスク容量を表示するコマンドは?
ディスクの空き容量を確認するには、df
コマンドを使用します。
df -h
特定のパスに移動するコマンドは?
cd
コマンドを使用して、指定したパスに移動します。
cd パス名
プロセスのリソース使用量を表示するコマンドは?
top
またはhtop
コマンドを使用して、プロセスのリソース使用量を表示できます。
top
または
htop
現在の日付と時刻を表示するコマンドは?
date
コマンドを使用して、現在の日付と時刻を表示できます。
date
特定のディレクトリ以下のファイルを再帰的に削除するコマンドは?
rm -r
コマンドを使用して、特定のディレクトリ以下のファイルを再帰的に削除できます。
rm -r ディレクトリ名
指定した文字列を含むファイルの中身を置換するコマンドは?
sed
コマンドを使用して、指定した文字列を含むファイルの中身を置換できます。
sed -i 's/検索文字列/置換文字列/g' ファイル名
ファイルの内容をページ単位で表示するコマンドは?
less
コマンドを使用して、ファイルの内容をページ単位で表示できます。
less ファイル名
指定した文字列を含むファイルの中身を表示するコマンドは?
grep
コマンドを使用して、指定した文字列を含むファイルの中身を表示できます。
grep "指定した文字列" ファイル名
ファイルの行数をカウントするコマンドは?
wc
コマンドを使用して、ファイルの行数をカウントできます。
wc -l ファイル名
指定した文字列を含むファイルを再帰的に検索するコマンドは?
grep
コマンドを使用して、指定した文字列を含むファイルを再帰的に検索できます。
grep -r "指定した文字列" *
特定の文字列でファイルを検索し、検索結果を行番号付きで表示するコマンドは?
grep
コマンドを使用して、特定の文字列でファイルを検索し、 -n
オプションを使って行番号付きで表示できます。
grep -n "検索文字列" ファイル名
ファイルの最終更新日時を表示するコマンドは?
ls
コマンドを使用してファイルの情報を表示し、ファイルの最終更新日時を確認できます。
ls -l ファイル名
指定した文字列を含むファイルを削除するコマンドは?
grep
コマンドで指定した文字列を含むファイルを検索し、それらをrm
コマンドで削除できます。
rm $(grep -l "指定した文字列" *)
ディレクトリの中身を表示するコマンドは?
ls
コマンドを使用して、ディレクトリの中身を表示できます。
ls -l
特定のユーザーが所有するファイルを検索するコマンドは?
find
コマンドを使用して、特定のユーザーが所有するファイルを検索できます。
find / -user ユーザー名
特定の文字列を含むファイルの中身を置換するコマンドは?
sed
コマンドを使用して、特定の文字列を含むファイルの中身を置換できます。
sed -i 's/検索文字列/置換文字列/g' ファイル名
ファイルの内容をページ単位で表示するコマンドは?
less
コマンドを使用して、ファイルの内容をページ単位で表示できます。
less ファイル名
ファイルの種類を表示するコマンドは?
file
コマンドを使用して、ファイルの種類を表示できます。
file ファイル名
特定のディレクトリ以下のファイルを再帰的に削除するコマンドは?
rm -r
コマンドを使用して、特定のディレクトリ以下のファイルを再帰的に削除できます。
rm -r ディレクトリ名
指定した文字列を含むファイルの中身を検索し、
検索結果をファイルごとに表示するコマンドは?
grep
コマンドを使用して、指定した文字列を含むファイルの中身を検索し、-l
オプションを使用してファイル名のみを表示できます。
grep -l "指定した文字列" *
ファイルの末尾から指定した数の行を表示するコマンドは?
tail
コマンドを使用して、ファイルの末尾から指定した数の行を表示できます。
tail -n 行数 ファイル名
ディレクトリの中にあるファイルの数を表示するコマンドは?
ls
コマンドでディレクトリの中身をリストし、 grep
コマンドとパイプ(|
)を使用してファイルのみをフィルタリングし、wc -l
コマンドで行数を数えます。
ls -l | grep "^-" | wc -l
特定のディレクトリ以下のファイルを特定の拡張子に変換するコマンドは?
find
コマンドと-exec
オプションを使用して、特定のディレクトリ以下のファイルを検索し、mv
コマンドを使って拡張子を変更できます。
find ディレクトリ名 -type f -exec mv {} {}.新しい拡張子 \;
現在のユーザーのホームディレクトリに移動するコマンドは?
cd
コマンドを使用して、~
を指定することで現在のユーザーのホームディレクトリに移動できます。
cd ~
指定した文字列を含むファイルの行数をカウントするコマンドは?
grep
コマンドを使用して指定した文字列を含む行を抽出し、 wc -l
コマンドで行数を数えます。
grep -c "指定した文字列" ファイル名
指定したディレクトリ以下のファイルの権限を再帰的に変更するコマンドは?
chmod
コマンドと-R
オプションを使用して、指定したディレクトリ以下のファイルの権限を再帰的に変更できます。
chmod -R 新しい権限 ディレクトリ名
ディレクトリの中にある特定のファイルを再帰的に削除するコマンドは?
find
コマンドと-exec
オプションを使用して、特定のディレクトリ以下のファイルを検索し、rm
コマンドで削除できます。
find ディレクトリ名 -name "特定のファイル名" -exec rm {} \;
現在のユーザーが所有するプロセスを表示するコマンドは?
ps
コマンドを使用して現在のユーザーが所有するプロセスを表示できます。
ps -u ユーザー名
特定のユーザーが所有するファイルの数を表示するコマンドは?
find
コマンドを使用して、特定のユーザーが所有するファイルを検索し、 wc -l
コマンドでファイル数を数えます。
find / -user ユーザー名 | wc -l
ファイルの内容を終端から検索するコマンドは?
grep
コマンドとtail
コマンドを組み合わせて、ファイルの終端から特定の文字列を検索できます。
grep "検索文字列" ファイル名 | tail -n 行数
ファイルの中身をバイト単位で表示するコマンドは?
xxd
コマンドを使用して、ファイルの中身をバイト単位で表示できます。
xxd ファイル名
ファイルのパーミッションを変更するコマンドは?
chmod
コマンドを使用して、ファイルのパーミッションを変更できます。
chmod パーミッション番号 ファイル名
特定のユーザーが所有するファイルを再帰的に検索するコマンドは?
find
コマンドを使用して、特定のユーザーが所有するファイルを再帰的に検索できます。
find / -user ユーザー名
現在のディレクトリを表示するコマンドは?
pwd
コマンドを使用して、現在のディレクトリを表示できます。
pwd
ファイルの中身を16進数で表示するコマンドは?
hexdump
コマンドを使用して、ファイルの中身を16進数で表示できます。
hexdump ファイル名
指定した文字列を含むファイルの行番号を表示するコマンドは?
grep
コマンドを
使用して、指定した文字列を含むファイルの行番号を表示できます。
grep -n "指定した文字列" ファイル名
特定のファイルをコピーするコマンドは?
cp
コマンドを使用して、特定のファイルをコピーできます。
cp 元のファイル名 新しいファイル名
指定した文字列を含むファイルを検索し、検索結果をファイルごとに表示するコマンドは?
grep
コマンドを使用して、指定した文字列を含むファイルを検索し、-l
オプションを使用してファイル名のみを表示できます。
grep -l "指定した文字列" *
特定の文字列を含むファイルの中身を表示し、その前後の行も表示するコマンドは?
grep
コマンドを使用して、指定した文字列を含むファイルの中身を表示し、 -C
オプションを使用して前後の行も表示できます。
grep -C 行数 "指定した文字列" ファイル名
これらのコマンドを使いこなすことで、Bashを効果的に利用できるようになります。
コメント