LoginSignup
0
0

Linux の基本操作を覚える

Posted at

はじめに

Linux でコマンド入力する際の備忘録です。
最初に Linuxとは? についても少し触れています。

また、Linux 環境の構築手順については こちら にまとめています。

対象読者

  • Linux 初学者
  • Linux の基本コマンドについてざっくり復習したい方

Linux について

まずは Linux について復習します。

Linux は OS の一種です。
特徴として、以下が挙げられます。

  • CUI によるコマンド操作
  • 軽量で動作が速い
  • オープンソースソフトウェアとして広く公開・配布されているため、誰でも無料で利用することが可能

OS の有名どころとして windows、macOS などがありますが、それらより安価に利用できるため、世の中にリリースされているアプリケーションのサーバ側処理には、Linux がよく用いられています。

Linux 関連で覚えておきたいこと

用語 説明
カーネル ユーザーの指示(コマンド)をハードウェアに正しく反映させる OS の中核部分
シェル ユーザとカーネルの接続面となっており、ユーザが入力したコマンドをカーネルに渡す役割を担っている
コマンド カーネルにアクセスするためのプログラム

シェルを割り当てられたユーザがコマンドを実行して、カーネルを通じてハードウェアの操作を行います。

また、代表的なシェルには bash、csh、zsh がありまして、現在 bash、zsh が広く利用されているようです。

コマンド一覧

man コマンド

コマンドなどのマニュアルを表示(man は manual の略)

man 実行後のコマンドライン操作一覧
キー 操作
q コマンドを終了する
d 画面を半分進める
u 画面を半分戻る
f 1画面進める
b 1画面戻る
g 頭まで移動する
G 末まで移動する
{ N }G N行目まで移動する
/ 下方向に検索
(n:下方向に次のものを検索、N:上方向に次のものを検索)
? 上方向に検索
(n:上方向に次のものを検索、N:下方向に次のものを検索)

date コマンド

日時を表示

date のフォーマット
フォーマット 意味
%Y
%m 月(6 月の場合 06)
%d 日(1 日の場合 01)
%H 時(00 .. 23)
%M 分(00 .. 59)
%S 秒(00 .. 59)
%u 曜日(1 .. 7 , 1 が月曜)

※ フォーマットを利用する際はクオート( ' or " )で囲い、頭に + をつける

フォーマットの使用例
date '+%Y/%m/%d %u %H:%M:%S'

// 実行結果
// 2024/05/03 5 00:14:15
date のオプション
コマンド 意味
date -d '1 day' 1 日後
date -d '3 days ago' 3 日前
日本時刻を表示されるように変更する

デフォルトではイギリス時刻となっているので日本時刻に変更します。

/etc/localtime にどの国の時刻を表示するかが記述されているので、このファイルを修正します。
mv コマンドで念の為バックアップを取得し、ln コマンドで /etc/localtime が東京の時刻を向くようにファイルをリンクさせます。

コマンド
mv /etc/localtime /etc/localtime.bk
ln -s /user/share/zoneinfo/Asia/Tokyo /etc/localtime

echo コマンド

ディスプレイ上に引数として与えた文字列を表示

echo のオプション
コマンド 意味
echo -e バックスラッシュを含む文字を特殊文字として解釈する
(¥n:改行、¥t:タブ、¥a:アラート など)
echo サンプル >> file.txt file.txt に サンプル と書き込む
file.txt が存在しない場合は新規作成となり、存在する場合は追加で書き込まれる

touch コマンド

ファイルの作成、タイムスタンプ(ファイルの作成日時、更新日時、アクセス日時などの属性情報)の変更に用いる

touch のオプション
コマンド 意味
touch -a ファイルのアクセス日時を変更する
touch -m ファイルの更新日時を変更する
touch -d ファイルの作成日時を指定してファイルを作成する

※ 日時の書式に関しては日本のものでも海外のものでも問題なく実行される

ls コマンド

ディレクトリ内に存在するファイルやディレクトリの一覧を表示する

ls のオプション
コマンド 意味
ls ディレクトリ名 ディレクトリの中にあるファイル、ディレクトリを表示
ls -a 隠しファイル( . で始まるファイル)も表示
ls -l 詳細情報(所有者、権限、更新日時、ファイルサイズ)も表示
ls -1 縦方向に表示
ls -t 更新日時で降順に表示
ls -tr 更新日時で昇順に表示
ls -R ディレクトリの中身も全て表示
ls file* fileで始まるファイルだけ表示
ls *file fileで終わるファイルだけ表示
ls *file* fileを含むファイルだけ表示

mkdir コマンド

ディレクトリを作成する

mkdir のオプション
コマンド 意味
mkdir -p ディレクトリの中に新たなディレクトリを一度に作成する

cd コマンド

ディレクトリを移動する(cd は change directory の略)

cd の使い方
コマンド 意味
cd . カレントディレクトリに移動(変わらない)
cd .. カレントディレクトリの親ディレクトリに移動
cd dir1 dir1 ディレクトリに移動
cd ../dir2 親ディレクトリにある dir2 ディレクトリに移動
cd /tmp rootディレクトリ直下の tmp ディレクトリに移動(絶対パス)
cd ~ ホームディレクトリに移動(例:root/home/ec2-user )

※ ディレクトリの入力途中で Tab キーを押すと候補となるディレクトリ名が表示される

pwdコマンド

カレントディレクトリ(ユーザが現在いるディレクトリ)を表示する

mv コマンド

ファイルの移動、名前の変更を行うコマンド

mv の使い方
コマンド 意味
mv file.txt dir1/ file.txt を dir1 ディレクトリに移動
mv file.txt file2.txt file.txt を file2.txt にリネーム
mv file.txt dir1/file2.txt file.txt を file2.txt にリネームして dir1 ディレクトリに移動
mv *txt dir1 txt で終わるファイルを dir1 ディレクトリに移動

cp コマンド

ファイルやディレクトリをコピーして新たに作成する

cp のオプション
コマンド 意味
cp -f コピー先に同名のファイルがあっても強制的に上書いてコピー
cp -i コピー先に同名のファイルがあれば、コピーするか確認する
cp -p コピー元のファイルの属性(所有者、アクセス権、タイムスタンプ)もコピー
cp -r ディレクトリをコピー

cat コマンド

ファイルの中身をディスプレイ上に表示する
catはconcatenate(連携する)が由来

cat のオプション
コマンド 意味
cat -n すべての行に行番号をつけて表示
cat -b 空白行以外の行に行番号をつけて表示
cat -b 空白行以外の行に行番号をつけて表示
cat file1.txt file2.txt file1.txt と file2.txt の中身を結合したテキストを表示
cat file1.txt file2.txt >> file3.txt file1.txt と file2.txt の中身を結合したテキストを file3.txt に書き込む

rmdir コマンド

空ディレクトリを削除する(ディレクトリが空でない場合はエラー)

rmdir のオプション
コマンド 意味
rmdir -p 空ディレクトリを中身も含めて削除する

rm コマンド

ファイル、ディレクトリを削除する

rm のオプション
コマンド 意味
rm -f 強制的に削除する
rm -i 削除するかどうか確認する
rm -r ディレクトリ内のファイル、ディレクトリも含めディレクトリを削除する

which コマンド

コマンドを指定した際に実行されるファイルがどこに存在するのか表示する

ショートカット一覧

Tab

途中まで入力した状態から、コマンドやファイルなど入力候補を表示する

ctrl + a, ctrl + e

カーソルを左端、右端に移動させる

ctrl + b, ctrl + f

カーソルを 1 つ左、右に移動させる

ctrl + h, BackSpace

カーソルの左にある文字を削除

ctrl + d

カーソルの位置にある文字を削除

ctrl + u

カーソル一の左から文頭までの文字を削除する

ctrl + k

カーソル位置から文末までの文字を削除する

ctrl + w

カーソル位置から左に単語 1 つ削除

ctrl + l

画面を綺麗にクリアにする

ctrl + s, ctrl + q(Macは使用不可)

画面への入力内容がターミナル上に表示されなくなる( ctrl + q で元に戻す)

ctrl + r

以前実行したコマンドを検索する

ctrl + r で検索をかけた後の操作
ショートカット 動作
Enter 検索結果を実行する
tab 検索結果をターミナルに入力された状態にする
ctrl + r 次の検索結果を表示する

!!

直前に実行したコマンドを再実行する

!〇〇

〇〇で始まる最も最近のコマンドを実行

ファイル編集(vi コマンド)

vi ファイル名 でファイルを編集する(ファイルが存在しない場合は作成する)

コマンドモード
入力キー 動作
x: カーソル位置にある 1 文字削除
dd: 1 行削除
d100d: 100 行削除
yy: 行をコピー
p: コピーした行や文字をペースト
{}: 1 ブロック移動
u: 変更を元に戻す
ctrl + r: 変更を進める
gg: ファイルの一番上に移動
G: 最終行に移動
100G: 100 行目に移動
/: 下方向の文字を検索
?: 上方向に文字を検索
:q! ファイルを保存せず終了
:w vi は終了せずファイルを保存
:wq vi を終了してファイルを保存
コマンドモードと入力モード間を移動する
入力キー 動作
i: 現在のカーソル位置から入力
a: 現在のカーソル位置の 1 つ右から入力
A: 現在のカーソル位置の文末から入力
O: 1 つ上に行を追加して入力
o: 1 つ下に行を追加して入力
Esc 入力モードからコマンドモードに
高度な vi コマンドの使い方
入力キー 動作
:sp ファイル名 画面の水平方向に分割
:vsp ファイル名 画面の垂直方向に分割
ctrl + w を 2 回実行 分割した画面間を移動
:%s/old/new/g 文字列を全て置換(old のものを new にする)
:set number ファイルの行番号を表示する
:!コマンド vi 実行中にコマンドを実行する
:!%:p ファイルを実行する(実行する際には、:w でファイルを保存すること)

【各文字の意味】
: >> コマンドモード
! >> shell コマンドの実行
% >> 編集のファイルへのリンク
:p >> 絶対パスを表す

vim を使ったファイル編集

vim とは vi に似た操作性でより高機能のエディタである。

CentOS では yum install vim、Debian系では apt install vim でインストールする。
※ vim をインストールする際は su コマンドで管理者権限のあるユーザに変更する

vim 特有のコマンド
入力キー 動作
:vertical diffsplit 差分を取りたいファイル 2 つのファイルの差分を取って比較する

ユーザ情報の更新と権限の変更

Linuxにはユーザとグループが存在しており、ユーザは特定のグループに所属する。

  • 各ファイル、ディレクトリは編集・参照・実行の 3 つの権限を設定することができる
  • 権限はユーザ、またはグループ単位で設定できる
  • ユーザがファイルに対して編集権限を持っていない場合でも、所属グループが編集権限を持っている場合は編集が可能である

useradd コマンド

OS上にユーザを追加するコマンド(root ユーザで実行する)

useradd をオプションなしで実行すると、同じ名前のグループが作成されて所属する。

/etc/passwd について

作成されたユーザ一覧が記述されているファイル。

ユーザ情報は、ユーザ名:暗号化パスワード:ユーザID:グループID:コメント:ホームディレクトリ:ログインシェル のように記述されている。

また、暗号化パスワードの部分が x になっている場合は、パスワードを暗号化した上で /etc/shadow に保存される。

/etc/group について

作成されたグループ一覧が記述されているファイル。

グループ情報は、グループ名:暗号化パスワード:グループID:ユーザリスト のように記述されている。

また、暗号化パスワードの部分が x になっている場合は、パスワードを暗号化した上で /etc/gshadow に保存される。

useradd のオプション
オプション 意味
-d ホームディレクトリを指定
-g 所属するプライマリグループを指定
-s ログインシェルを指定

usermod コマンド

ユーザ情報を変更するコマンド

usermod のオプション
オプション 意味
-c コマンドを変更
-d ホームディレクトリを変更
-g 所属するプライマリグループを変更
-s ログインシェルを変更
-l ユーザ名の変更
-L ユーザをロック(ログインできなくなる)
-U ユーザのロック解除

userdel コマンド

ユーザを削除するコマンド

groupadd コマンド

グループを追加するコマンド

groupdel コマンド

グループを削除するコマンド

groupmod コマンド

グループ情報の変更

groupmod のオプション
オプション 意味
-g グループIDの変更
-n グループ名の変更

passwd コマンド

ユーザのパスワードを変更する

chown コマンド

指定したファイル、ディレクトリの所有するユーザ、グループの変更

chown のオプション
オプション 意味
-R ディレクトリの中身の所有者も再帰的に変更する

chmod コマンド

ファイルの権限を変更するコマンド

chmod のオプション
オプション 意味
-R ディレクトリの中身の所有者も再帰的に変更する
権限の付与方法

権限は以下のように定義され、数字を足し合わせることでファイルやディレクトリに設定されている権限を表現することができる。

r : 読み込み権限( 4 )
w : 書き込み権限( 2 )
x : 実行権限( 1 )

例えば、読み込み権限と書き込み権限を持っている場合は 4 + 2 = 6 と表現し、全ての権限を持っている場合は 4 + 2 + 1 = 7 と表現する。

また、権限を付与する際は、所有ユーザ、所有グループ、その他ユーザの順で数字を並べるため、chmod 644 file.txt とした場合は以下の権限設定に変更される。

所属ユーザ:読み込み(r) + 書き込み(w)
所属グループ:読み込み(r)
その他ユーザ:読み込み(r)

締め

頻繁に使わないやつってすぐ忘れちゃうんだよなあ

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