はじめに
こんにちは!ミドリガメです🐢
今回は実務でもよく使うLinuxの基礎コマンドについて記載していきます。
本記事の読者の頭に残りやすくするため、コマンドやオプションの由来等も含め記載しています!
また、前回の記事ではLinuxの基礎的な概念について記載しました。詳細は以下の記事をどうぞ!
シェルとは?
シェルとはLinuxカーネルを操作するためのソフトウェアのことを指します。
シェルは「bash」や「zsh」、「tcsh」などがありますが、一般的に「bash」を好んで使用する人が多いように思います。本記事でも「bash」での記述を前提に記載していきます。
※カーネル…OSの中核部分。ハードウェアの制御を行う。
コマンドは以下の流れで実行されます。
- シェルが入力装置(キーボード)等から入力(コマンド)を受け取る。
- シェルが受け取ったコマンドを探し出し、LInuxカーネルに実行を依頼する。
- Linuxカーネルがコマンドを実行する。
- 実行結果をシェルが受け取り、画面(出力装置)に出力する。
カーソル移動
- 行頭に移動する⇒Ctrl + a
(アルファベットのaは一番最初=(行頭)と覚える。) - 行末に移動する⇒Ctrl + e
(e = endと覚える。)
切り取りとペースト(ヤンク)
- カーソル位置から行末までカットする⇒Ctrl + k
- カーソル位置から行頭までカットする⇒Ctrl + u
- カットした内容をペーストする⇒Ctrl + y
(ペーストのことをヤンクという。)
状況確認、移動系のコマンド
- カレントディレクトリを表示する。
⇒pwd (print working directoryの略) - ディレクトリを移動する。
⇒cd (change directoryの略)
例)
# 1つ上のディレクトリに移動する。
cd ../
# カレントディレクトリを「usr/lib」に変更する。
cd /usr/lib
# カレントディレクトリをホームディレクトリに変更する。
# シェルでチルダ「~」入力すると、ホームディレクトリのパスに置き換えられる⇒チルダ展開
cd ~
- ファイルやフォルダの一覧を表示する。
⇒ls (listの略)
# カレントディレクトリの中で.txtで終わるファイルを表示する。
# *(0文字以上)や?(1文字)で書かれたパターンを具体的なファイルのリストに変換して実行される。
# ⇒パス名展開という。
ls *.txt
#カレントディレクトリの中で「abc」から始まる4文字のファイルやディレクトリを表示する。
ls abc?
⇒lsコマンドのオプション
# カレントディレクトリのファイル、ディレクトリの詳細情報を含めて表示する。
# 「l」はlongの略(長く⇒詳細に表示) パーミッションやファイルオーナーを表示
ls -l
#カレントディレクトリのファイルとディレクトリを隠しファイルを含めて表示する。
# 「a」はallの略
ls -a
# カレントディレクトリのファイルとディレクトリをファイル種別を含めて表示する。
# 「F」はclassifyから。
# 通常ファイル:なし、ディレクトリ「/」、実行可能ファイル:「*」がつく。
ls -F
ファイル操作系のコマンド
- カレントディレクトリにディレクトリを作成する。
⇒mkdir (make directoryの略)
# sampleディレクトリを作成する。
mkdir sample
#深い階層のディレクトリを作成するときは「-p」を付ける。(parentの略)
mkdir -p parent/children/sample
- 新規ファイルを作成する。
⇒touch
# sample.txtを作成する。
touch sample.txt
- ファイルを削除する。
⇒rm (removeの略)
# sample.txtを削除する。
rm sample.txt
# ディレクトリと中身に入っているファイルごと削除するには「-r」を付ける。
# -rはrecursive(再帰的な)の略。再帰的にディレクトリツリーを削除する。
rm -r dir1
- ファイルの内容を表示する。(ファイル内容が少ないときに適する。)
⇒cat (concatenate(連結する)の略)
# sample.txtの内容を表示する。
cat sample.txt
# sample.txtの内容に行番号を付けて表示する。
cat -n sample.txt
- ファイルの内容を表示する。(ファイルの内容が多いときに適する。)
⇒less
※lessコマンド実行中に
1画面下にスクロールする:スペースキー
1画面上にスクロールする:bキー
1行下にスクロールする:jキー
1行上にスクロールする:kキー
lessコマンドを終了する:qキー
文字列を検索する:/文字列
次の検索結果に移動する:nキー
前の検索結果に移動する:Shift + nキー
- ファイルをコピーする。
⇒cp (copyの略)
# fileというファイルをfile2という名前でコピーする。
cp file file2
# カレントディレクトリのdir1というディレクトリをdir2という名前でコピーする。
# -rは「再帰的な」の略。
cp -r dir1 dir2
- ファイルを移動する。
⇒mv (moveの略)
※移動元には複数のファイルやディレクトリを指定できる。移動先にディレクトリを指定するとファイルやディレクトリの移動になる。
# fileをdir1に移動する。
mv file1 dir1
- ファイルの名前を変更する。
⇒mv
※移動先にディレクトリの名前以外を指定すると、名前の変更になる。
# file1をfile2という名前に変更する。
mv file1 file2
ファイルにリンク(別名)を付ける
リンクとはファイルに対して別名を付けるために機能です。長いパス名の省略(ショートカット)やバージョン管理(リンク先を編集することで別のファイルを同じ名前で呼べるようになる。)などに使用されます。
ハードリンク
1つのファイルに複数の名前を付ける機能です。
ディレクトリに対して設定できないなどの不便な点もあります。
シンボリックリンク
リンク先のパスが書かれたファイルを作成します。
ハードリンクのように1つのファイルに別名を付けるのではなく、ファイルを参照するファイルを新しく作ります。
リンクを作成する
⇒ln (linkの略)
# カレントディレクトリsample1にsample2という名前のハードリンクを作成する。
ln file1 file2
# カレントディレクトリsample1にsample2という名前のシンボリックリンクを作成する。
ln -s file1 file2
上記コードにおいて、ハードリンクで作成した場合、sample1を削除した上でsample2を表示しても、別名の1つが消えたに過ぎないのでsample1と同じ内容が表示されます。シンボリックリンクで作成した場合、sample1を削除した上でsample2を表示しようとすると、参照ファイルがないためエラーとなります。
終わりに
ご覧いただきありがとうございました。ご指摘等がございましたら頂けますと嬉しいです。
引き続き、プログラミング学習について定期的に発信していきますのでよろしくお願いします!
また、もしよろしければtwitterもフォローしていただけると嬉しいです!🐢
コメント