Vimmerを目指して、改めて覚えるLinuxコマンド
はじめに
よく使うLinuxコマンドと書きましたが、実務ではWindowsでLinuxを触る機会はほぼありません笑
どちらかというと、自宅で開発や勉強をする際に覚えて、活用していきたいコマンドです!
(自宅ではMac bookを使ってます。早くマウスを使わなくなりたい...)
目的
- コンテナ内部のフォルダの中身を確認する
- DBサーバーの設定ファイルを確認する
これらをLinuxコマンドでできるようになるために、引き出しとして覚えておきたいコマンドを、まとめます。実際に職場の強いエンジニアの人がでDBサーバーをコマンドプロンプトで設定ファイルを探していて、カッコ良いと思ったので、自分できるようになりたいと思い、書きました笑
Linuxコマンド
lsコマンド
一覧表示を行う
ls -l パス名
ls -la パス名
指定した/パス名のディレクトリ、ファイルを表示する
オプション
- -l 詳細モード
- -a 隠しファイルも表示
- -la 詳細 + 隠しファイル
cat
ファイル内容を確認
cat /path/ファイル名
ファイルの中身をそのまま表示するコマンド
オプション
-
-n 行番号をつけて表示
-
cat > file.txt シェルから入力した内容をそのままファイルに書き込む
cat > file.txt hello worldと入力した後にCtrl + Dを押下すると、ファイルに書き込まれる
他の方法としてsh -c "echo hello world > file.txt"echo hello world > file.txtこれを実行すると、ファイルに書き込まれる
-
cat file1 file2 複数ファイルを連結して表示
ファイルに改行文字が含まれていない場合は、そのまま改行がされずに表示される
改行をしたい場合はcat file1 echo cat file2printf "%s\n" "$(cat file1)" "$(cat file2)"%sは文字列を出力する指定
$()はコマンド置換をしている。コマンドを実行して、その出力に置き換える
中で実行したコマンドの出力結果をそのまま文字列として返す機能echo "結果: $(date)"これを実行すると、$(date)をシェルが見つけて、dateコマンドを実行している
その実行結果を文字列に置き換えている
最終的にecho "結果: Mon Nov 18 23:11:22 JST 2025"というコマンドとして実行される
sed -e '$a\' file1 file2 (←ここまで)'ストリームエディタといい、テキストを処理・変形するコマンド
$aの意味
$: 最終行
a: その後に行を追加するsed 'コマンド' ファイル名 sed 's/foo/bar/' file.txtこの場合だと、file.txtの中の最初のfooをbarにして出力
※s/.../.../で置換コマンド 例の場合だとfooが置き換えたい文字、barが置き換え後の文字
複数置換をしたい場合はs/.../.../gと記載する
~よく使う使い方~
- 文字列置換は上記の通り
- 行削除これで三行目を削除
sed '3d' file.txt複数行の削除sed '5,10d' file.txtsed '/ERROR/d' file.txt
特定の文字を含む行を削除する
3. 行追加
sed '$a\追加する文章' file.txt
最終行に行を追加
bash sed '3a\Hello world' file.txt
3行目の後ろに行を追加
4. 行の前に挿入
sed '3i\Hello world' file.txt
三行目の前に追加
5. 特定の行を置き換える
sed '5c\この行に置き換える' file.txt
- その場で編集(ファイルを書き換える)
sed -i 's/foo/bar/g' file.txt sed -i '' 's/foo/bar/g' file.txt (macの場合)
find
ファイル探索
find /path -type -f -name "*secret*"
find <検索開始ディレクトリ> <条件> <アクション>
オプション
- -name
名前で検索
ワイルドカードが使用可能find /path -name "file.txt" find /path -name "*.log" find /path -name "secret*" - -type
タイプで検索find /var -type f # ファイル find /var -type d # ディレクトリ- -user
所有者で検索
- -user
- -size
ファイルサイズで検索find /var/log -size +10M # 10MBより大きい find /var/log -size -10k # 10KBより小さい - -perm
パーミッションで検索find /path -perm 644 find /path -perm -u+x # 実行可能 - -mtime
変更日で検索find /var/log -mtime -1 # 24時間以内に更新
アクション
-
見つけたもののパスを表示
find /var -name "*.log" -
ファイル内容を表示
find /var -name "*.log" -exec cat {} \;{}は見つけたファイルのパス
-
chmod/chown
find /var/www -type f -exec chmod 644 {} \;Linuxのパーミッションは3桁で表示される
r = 読む(4) w = 書く(2) x = 実行(1)
権限は所有者、グループ、その他に分かれる
数字644を展開すると rw-r--r--- 644
一般ファイル用
rw-r--r-- - 755
実行可能なディレクトリやスクリプト
rwxr-xr-x - 600
秘密情報
rwxr-xr-x
-u+xはchmodで使う権限追加の書き方
ユーザー(所有者)に “実行権” を追加する - 644
複数条件
- AND条件二つは同義である。-aでAND条件
find /var -type f -name "*.log" -user root find /var -type f -a -name "*.log" -a -user root - OR条件-oでOR条件。()は\でエスケープ処理が必要
find /var \( -name "*.log" -o -name "*.txt" \) - 見つけたファイルだけlsしたい
find /var/log -name "*.log" -exec ls -l {} \; - 深さを制限したい
find /var -maxdepth 1
最後に
ファイル探索に使うLinuxコマンドをまとめました。
これらを知っているだけでもDockerでの内部理解に役立てるんじゃないかと思います!
コマンドをどんどん覚えて、マウスからの卒業を目指していきます笑
目標は一人前のVimmerになることです!
Discussion