0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

TechZone環境で学ぶLinux/VIの基本的なコマンドと操作手順

Last updated at Posted at 2024-12-11

はじめに

 今回は、TechZone環境を使ってLinuxの基本的なコマンドと操作方法を順を追って解説しました。7月に行われた社内の新人研修と重なる内容もありますが、初心者にも分かりやすく、私自身がつまずいたポイントなども含めて解説出来たらと思います。

目次

  • 基本的なコマンド
  • SSHログインと接続終了
  • Linuxの基本操作
    • ユーザーの作成
    • ユーザーの切り替え
    • ディレクトリとファイルの作成
    • ファイルのコピーと移動
    • タイムスタンプの変更
    • ディレクトリの削除
  • VIの操作
    • vim基本的なコマンド
    • vimtutorについて
    • つまずいた点

基本的なコマンド一覧

コマンド 説明
ls ディレクトリの内容を一覧表示する
cd ディレクトリの移動
pwd カレントディレクトリの確認
touch タイムスタンプの変更・空のファイルの作成
mkdir ディレクトリの作成
rmdir 空のディレクトリの削除
rm ファイルの削除
cp ファイル・ディレクトリのコピー
mv ファイル・ディレクトリの移動
su - ユーザーの切り替え 
whoami ログインしているユーザーの確認
useradd ユーザーの追加
passwd パスワード設定

SSHログインと接続終了

PowerShellでSSHログインを行い、$ whoamiでログインしているユーザーを確認(itzuser)

SSHログイン ssh -i <SSH Keyファイル> -p <SSH Port> <Username>@<Public IP>
スクリーンショット 2025-11-05 113602.png

ituserから$ su -で、ルートユーザーに切り替えようとすると、su: Authentication failureが出てしまい失敗、、、
スクリーンショット 2024-09-19 151413.png

$ su -ではなく、$ sudo su -を実行しログイン成功。ログインしているユーザーを確認(root)
スクリーンショット 2024-09-19 154853.png

$ exitを2回実行(1回目はrootから、2回目はitzuserから)し、SSH接続を終了
スクリーンショット 2024-09-19 154925.png


Linuxの基本操作

ユーザーの作成

rootユーザーにログインし、ユーザーを追加しパスワードを設定する。パスワードは2回入力するが、入力した文字は見えないので注意。8文字以下だと警告が出るため、8文字以上が望ましい。ここではmaedaを追加した。

 ユーザー追加 # useradd <ユーザー名>
 パスワード設定 # passwd <ユーザ名>

スクリーンショット 2024-09-24 100315.png

※ちなみに、一般ユーザーからはユーザーを追加することができず、上記のようにrootユーザーからか、下記のように一般ユーザーに一時的にroot権限を与えるsudoをつけて実行する必要あり
スクリーンショット 2024-09-24 115232.png

※一般ユーザーからユーザーを追加($ sudo useradd <ユーザー名>)し、パスワードを設定($ sudo useradd passwd <ユーザー名>)。ここではappleを新規ユーザーとして追加した。
スクリーンショット 2024-09-24 115331.png

ユーザーの切り替え

rootユーザから一般ユーザーのmaedaに切り替え、ログインしているユーザーを確認(maeda)

 ユーザーの切り替え # su - <ユーザー名>
 ログインしているユーザーの確認 $ whoami

スクリーンショット 2024-09-24 134203.png

※一般ユーザー(maeda)から一般ユーザー(apple)へ切り替えるためには、appleのパスワードを入力する必要あり
スクリーンショット 2024-09-24 134230.png

ディレクトリとファイルの作成

下記のようなディレクトリ構造を作成する。
スクリーンショット 2024-09-24 183024.png

まずは、現在自分がいるディレクトリがホームディレクトリ(/home/<ユーザー名>)であることを確認する。

 カレントディレクトリの確認 $ pwd
スクリーンショット 2024-09-24 141155.png

mkdirコマンドで、ホームディレクトリの配下にsandboxというディレクトリが作成された。lsコマンドで、sandboxが作成されているか確認。

 ディレクトリの作成 $ mkdir <ディレクトリ名>
 ディレクトリの内容を一覧表示 $ ls
スクリーンショット 2024-09-24 154024.png

cdコマンドでsandboxに移動。先ほどは、ホームディレクトリの配下に、sandboxという1つのディレクトリを作成したが、オプションの-pをつければ、sandoboxの配下にchildまでの複数の階層を一度に作成することができる。

 階層的なディレクトリの作成 $ mkdir -p <親ディレクトリ>/<子ディレクトリ>
  ディレクトリの移動 $ cd <移動先のディレクトリ>
スクリーンショット 2024-09-24 162951.png

sandboxディレクトリにいる状態から、$ cd source/parent/childでchildまで移動。pwdコマンドで、childディレクトリに移動できていることを確認。touchコマンドでchildディレクトリの配下にファイルを作成し、lsコマンドで確認。

 空のファイルの作成/タイムスタンプの変更 $ touch <ファイル名>
スクリーンショット 2024-09-24 171554.png

ファイルのコピーと移動

下記の図のように、先ほど作成したsandbox/source/parent/child/<ユーザー名>.txtsandbox/target以下にコピーする
スクリーンショット 2024-09-24 183623.png

cdコマンドでホームディレクトリで移動し、pwdコマンドでカレントディレクトリの確認。$ cdに~(チルダ)がついた$ cd ~はホームディレクトリに移動することができる。

 ホームディレクトリに移動 $ cd ~
スクリーンショット 2024-09-24 185644.png

cpコマンドを使って、コピーすることができる。ここでは、ディレクトリの中身も全てコピーすることができるオプションの-pをつけた。

 ファイル・ディレクトリをコピー $ cp <コピー元><コピー先>
 再帰的にファイル・ディレクトリをコピー $ cp -r <コピー元><コピー先>
スクリーンショット 2024-09-24 190910.png

タイムスタンプの変更

cdコマンドで、先ほど作成したsandbox/taegetのディレクトリに移動し、lsコマンドでmaeda.txtもコピーされているか確認する。
スクリーンショット 2024-09-25 152347.png

lsコマンドのオプション-lでは、ファイルの権限や所有者、更新日時などを確認することができる。また、-aをつけると、隠しファイル(.で始まるもの)を表示することができ、-a-lを同時につけると、隠しファイルまで含めたファイルの詳細情報を表示することが可能になる。指定方法として、$ ls -a -lのように1つずつ指定しても$ ls -alのようにまとめて指定しても同じ結果になる。

 ファイル・ディレクトリの詳細情報を表示 $ ls -l
 隠しファイル・ディレクトリを含め全てを表示 $ ls-a
 隠しファイル含め全てのファイル/ディレクトリの詳細情報を表示 $ ls -a -l $ ls -al

スクリーンショット 2024-09-25 155800.png
ここで、上の画像のmaeda.txtの更新日時はSep 24 05:08であることが確認できる。これをtouchコマンドで$ touch -d "2000/01/02 03:04:05" maeda.txtと指定することで、の更新日時がJAn 2 2000に変更された。

 任意の日時を指定 $ touch -d "yyyy/mm/dd hh:mm:ss" <ファイル名>
スクリーンショット 2024-09-25 170432.png

ディレクトリの削除

ここでは、sandbox/targetにコピーしたchildディレクトリを削除する。rmdirは空のディレクトリを削除するものなので、これを実行すると、maeda.txtが入っていたchildディレクトリは削除することができず、Directory not emptyという警告が出る。

 空のディレクトリを削除 $ rmdir <ディレクトリ名>
スクリーンショット 2024-09-25 175344.png

この問題を解決するために、rmコマンドを使う。rmコマンドは、ファイルを削除するコマンドだが、オプションの-rをつけると、ディレクトリが空でなくても指定したディレクトリとその中身を全て削除することができる。

 ファイルの削除 $ rm <ファイル名>
 ディレクトリ内の中身含め再帰的に削除 $rm -r <ディレクトリ名>
スクリーンショット 2024-09-25 180223.png

viの操作

 viとは、Linuxでテキストエディタを編集することができるコマンドのことであり、viの改良版であるvim (vi improved)では、より高度な機能を利用することができる。
 viの4つのモードにはそれぞれ役割があり、カーソル移動や文字入力などが直感的にはできないため、初心者には扱いづらいところがあるが、viを起動するとNormalモードから始まり、ESCキーを押せば他の3つのどのモードからでもNormalモードに戻れるため、どのモードで作業しているのか分からなくなったら、ESCキーを押す。
スクリーンショット 2024-09-26 165930.png

基本的なコマンド

まずは、覚えておくと便利に使えるviの基本的なコマンドをまとめる。特に重要なものは太字にした。

コマンド 説明
ESC Normalモードに切り替え
i Insertモードに切り替え(カーソルの位置)
a Insertモードに切り替え(カーソルの直後)
I Insertモードに切り替え(行頭)
A Insertモードに切り替え(行末)
h カーソルを左に移動
j カーソルを下に移動
k カーソルを上に移動
l カーソルを右に移動
x 1文字削除
dd 1行削除
u 直前の作業の取り消し
yy 1行コピー
p 貼り付け
:w ファイルを保存
:q 保存しないで終了
:wq ファイルを保存して終了
:q! ファイルを保存しないで終了

vimtutorについて

 vimtutorとは、vimを触ったことがない人や初心者でも短時間でvimの操作方法やコマンドの使い方をチュートリアルを通して学ぶことができるものだ。

vimtutorを利用するためには、vimをインストールする必要がある。ルートユーザーに切り替え、# dnf install vimを実行する。
スクリーンショット 2024-09-26 171021.png

ルートユーザーから一般ユーザーに戻り、$ vimtutorを実行する。
スクリーンショット 2024-09-27 111225.png

チュートリアルが始まる。全部でレッスン7まであり、基本的な内容から高度な内容まで段階的に学ぶことができる。
スクリーンショット 2024-09-26 171320.png
ここでは、レッスンの詳細内容は割愛するが、vimに慣れていない方はぜひこのvimtutorを活用してほしい。

つまずいた点

  • 操作を間違えたとき癖でCtrl + Zで戻ろうとしてしまう
    ➡直前の作業を取り消すuコマンドをマスターしたことで解決
  • いつもの感覚から消したい文字の直後にカーソルをおいてxコマンドを実行し、意図しない文字が消えてしまう
    消したい文字の直前にカーソルを置かないといけない
  • 自分がどのモードにいるのか忘れたまま作業を進めてしまう
    ➡ESCキーを使って一度ノーマルモードに入ってから作業を進める

まとめ

 Linuxをきちんと触るのは7月の研修に続き今回が2回目でしたが、やはり練習と慣れが一番重要だと感じました。特にvimは、vimtutorで学習したおかげでコマンド操作にある程度慣れることができ、コマンドを覚えれば覚えるほど便利に使えるということを実感することができました。引き続き、基本的なコマンドのみならず更に高度なコマンドも使えるように練習したいです。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?