Linuxの基礎コマンド
Linuxについて学習を行ったので、Linux及び基礎コマンドについてまとめました。
Linuxとは
歴史
リーナス・トーバルズが開発(のちにgitも開発)
Unixがベースとなっている。
Unixはもともと無料だったが、ライセンス契約が必要になった。
そこで、Unixを真似てLinuxを開発した。
Unixライクで無料、高機能なLinuxが全世界で普及した。
用途
サーバーや組み込み機等幅広く使用されている。
特徴
- 誰でも自由に使える
- 世界中で使われている
- 自動化のしくみがあるため、サーバー運用がしやすい
欠点
- MSOfficeが動作しない
- マルチメディア系ファイル(画像、音楽等)を編集するのが苦手
- 日本語対応されていない部分が多い
ディストリビューション
カーネルにいろんなソフトウェアを組み合わせて使いやすくしたもの
ディストリビューションは1000種類以上ある
それぞれ独自のコミュニティが開発している
Red Hat系、Debian系が主流
Red Hat系
Linuxの基礎コマンド
cd
指定したディレクトリへ移動するコマンド
直接指定するほか、以下の書き方で移動先を指定することもできる
| コマンド | 操作 |
|---|---|
| cd .. | 親ディレクトリ(一つ上のディレクトリ) |
| cd ~ | ホームディレクトリ |
| cd / | ルートディレクトリ |
pwd
カレントディレクトリ(現在自分がいるディレクトリ)を表示するコマンド
ls
ファイルやディレクトリの一覧を表示するコマンド 複数のディレクトリを指定することもできる
ワイルドカードによるパス名展開が可能
| コマンド | 操作 |
|---|---|
| ls *.html | 拡張子がhtmlのファイル一覧を表示 |
| ls a???.html | aから始まり、4文字で終わる拡張子がhtmlのファイル一覧を表示 |
オプション
| オプション | 操作 |
|---|---|
| -l | ファイルの詳細情報を表示する |
| -a | 隠しファイルも含め、すべてのファイルを表示する |
| -F | ファイル種別を表示する |
mkdir
ディレクトリを作成する
オプション
| オプション | 操作 |
|---|---|
| -p | 深いディレクトリを一度に作成する |
例
mkdir -p test/2023/06
test、2023を事前に作成していなくても一気に作成できる
rmdir
空のディレクトリを削除する
空でないディレクトリを削除しようとするとエラーになる(隠しファイルがある場合もエラー)
cat
ファイルの中身を表示するコマンド
オプション
| オプション | 操作 |
|---|---|
| -n | 行番号を表示する |
less
ファイルの中身を表示するコマンド スクロールできる点がcatと異なる
| キー | 操作 |
|---|---|
| space、f | 一番下へ |
| b | 一番上へ |
| j | 一行上へ |
| k | 一行上へ |
| q | lessコマンドを終了 |
| /文字列 | 下方向に向かって検索 |
| ?文字列 | 上方向に向かって検索 |
| n | 次の検索結果 |
| N | 前の検索結果 |
tail
ファイルの末尾10行を表示するコマンド
touch
空のファイルを作成するコマンド 存在するファイルの場合、上書きをしない
rm
ファイルを削除するコマンド
ディレクトリを削除する場合は、-rをつける
ディレクトリを削除した場合、中身すべて削除される
| オプション | 操作 |
|---|---|
| -r | ディレクトリを削除する |
| -f | 警告を表示しない |
| -f | 削除前に確認する |
mv
ファイルの移動、ファイル名を変更するコマンド
使い方
mv 移動元 移動先
移動先がファイル名
ファイル名を変更
移動先がディレクトリ
移動先にファイルを移動
cp
ファイルをコピーするコマンド コピー先のファイルが存在すると、上書きされる |オプション|操作| |---||---| |-i|上書き前に確認| |-r|ディレクトリをコピーする|
ln
ファイルにリンクをつけるコマンド
オプションを指定しない場合、ハードリンクになる。
-sをつけることで、シンボリックリンクになる。
ハードリンク
1つのファイルの実態に複数の名前を付ける
元ファイルを削除しても消えない
シンボリックリンク
リンク先のパス名が書かれた特殊なファイル
リンク先がファイルの実体
元ファイルを削除するとエラーになる(リンクが壊れる)
使用例
- パスを省略したいとき
- 複数バージョンを共存させ、最新を区別したいとき
find
ファイルを検索するコマンド
| オプション | 操作 |
|---|---|
| -name | ファイル名を指定して検索(ファイルの大文字、小文字を区別する) |
| -iname | ファイル名を指定して検索(ファイルの大文字、小文字を区別しない) |
| -type f | 通常ファイルで検索 |
| -type l | シンボリックリンクで検索 |
| -type d | ディレクトリで検索 |
chmod
ファイルやディレクトリのパーミッションを設定する
chmod[ugoa] [+-=] [rwx] ファイル名
| 指定 | 操作 |
|---|---|
| u | 所有者の権限を設定 |
| g | グループの権限を設定 |
| o | その他ユーザーの権限を設定 |
| a | 全ユーザーの権限を設定 |
| + | 権限の追加 |
| - | 権限の削除 |
| = | 記述した権限に変更 |
| r | 読み取り権限 |
| w | 書き込み権限 |
| x | 実行権限 |
使用例
chmod u+r file
chmod 755 file
オーナー、グループ、その他の順で8進数での指定も可
chown
ファイル、ディレクトリの所有者を変更するコマンド
ps
実行中のプロセスを表示するコマンド
| オプション | 操作 |
|---|---|
| aux | 全ユーザーのプロセスを詳細情報を合わせて表示(-をつけない) |
kill
ジョブやプロセスを終了させるコマンド
| オプション | 操作 |
|---|---|
| -SIGKILL、-9 | 強制終了(最終手段) |
使用例
ps auxでCPU、メモリの状態を確認する
重い処理をkillコマンドで終了する
終わりに
業務でLinuxを触った経験がなかったので良い勉強になりました。 Udemyの講座も非常にわかりやすかったので、初心者の方にお勧めです。
参考にしたUdemy講座 https://www.udemy.com/course/unscared_linux/
【初心者向け】vimの基本操作について
vimについて学んだため、vimの基本操作をまとめました。
これから初めてvimを使用される方、これから学ぼうと思っている方参考になればと思います。
vimって何?
Vim is a greatly improved version of the good old UNIX editor Vi. https://github.com/vim/vim#what-is-vimより
古くからあるエディタですが、多機能で動作が軽いエディタです。
また、linuxでは標準エディタになっています。
vimmer(vimを使う人のこと)という言葉ができるくらい愛されているテキストエディタです。
モードについて
個人的にここがvimの戸惑うポイントだと思います。
vimはファイルを開いた時点では入力ができず、入力するためのモードに切り替えてから入力します。
各モードについて紹介します。
Vimには以下4つのモードがあります。
- ノーマルモード
- インサートモード
- ビューモード
- コマンドモード
この4つのモードを切り替えながら作業を行います。
各モードでは以下操作が可能です。
| モード | 詳細 |
|---|---|
| ノーマルモード | カーソル移動、ヤンク(コピー)、プット(貼り付け)、削除等が可能 |
| インサートモード | 文字入力等が可能 |
| ビューモード | 選択範囲のコピー、ペースト等が可能 |
| コマンドモード | ファイル保存、vimの終了等が可能 |
モード切替の際はノーマルモードにしてからモードを切り替える必要があります。
ファイルを編集して保存する場合は以下のようになります。
文字にすると長いですが、慣れればキーボードだけでファイルの編集ができます!
vimの操作
vimではモードによってできる操作が異なることを学びました。
各モードでできる操作について、キーと一緒に紹介します。
ノーマルモード
| キー | 操作 |
|---|---|
| k | ↑ |
| j | ↓ |
| h | ← |
| l | → |
| i | インサートモードに切り替え |
| a | インサートモードに切り替え(カーソルの次の文字から入力) |
| v | ビューモードに切り替え |
| : or / | コマンドモードに切り替え |
| x | 1文字削除 |
| dd | 1行削除 |
| dw | 1単語削除 |
| u | 元に戻す windowsのCtrl+z |
| ctrl + r | やり直し windowsのCtrl+y |
| yy | 1行コピー |
| p | カーソルの後ろにペースト |
| P | カーソルの前にペースト |
| gg | ファイルの先頭に移動 |
| G | ファイルの最後に移動 |
2x、3yyのように先頭に数字をつけることで複数文字、行を指定することも可能です。
インサートモード
| キー | 操作 |
|---|---|
| esc | ノーマルモードに切り替え |
ビューモード
| esc | ノーマルモードに切り替え |
|---|---|
| y | 選択範囲をコピー |
| d | 選択範囲を削除 |
| > | 選択範囲を1タブ右へ移動 |
| < | 選択範囲を1タブ左へ移動 |
コマンドモード
| キー | 操作 |
|---|---|
| esc | ノーマルモードに切り替え |
| :w ファイル名 | 名前を付けて保存 |
| :w | 上書き保存 |
| :q | 終了 |
| :q! | 保存しないで終了 |
| :wq | 保存して終了 |
| :set number | 行番号を表示する |
| :10 | 10行目に移動 |
| /test | 「test」を検索 |
| n | 次の検索結果(検索中) |
| N | 前の検索結果(検索中) |
| :%s/変換対象/変換後/g | 変換対象を一括置換 |
| :%s/変換対象/変換後/gc | 1か所ずつ確認しながら置換 |
記載したものはあくまで一部です。
もっと知りたい方は以下公式ドキュメントからどうぞ!
公式ドキュメント
感想
この記事もvimを使って書いています!
正直慣れるまで大変なエディタだと思います。
初日は「なんだこのエディタは!?」と思っていました笑
少し操作に慣れてきてvimmerの方々の気持ちが少しずつわかってきました!
使いこなせれば強い味方になってくれると思います!
『プロになるためのWeb技術入門』を読んで
Webアプリケーション開発の学習にあたり本書を読みました。
「Webアプリケーションとは」から始まりWebの歴史、現在まで使われている技術を学ぶことができます。
Webの基礎について学ぶことができたため、学んだ内容をまとめます。
学んだこと
リクエスト
情報を要求すること。
レスポンス
リクエストに対して情報を返すこと。
例:Google検索
- Webブラウザで検索ワードを入力し検索する。
- Webブラウザから検索ワードを含むページ情報を要求する。→リクエスト
- サーバーでリクエストを受け取り、処理結果をWebブラウザに返す。→レスポンス
- Webブラウザに表示される。
プロトコル
通信を行う際の決まり事のこと。
RFCという文書で統一されている。
例:HTTP、SMTP、FTP…等
ポート番号
0~65535まであり、サーバー側でリクエストを待つときに使用する番号のこと。
クライアント側はポート番号を指定してリクエストする必要があるが、プロトコルごとに標準で使用するポート番号があるため、ポート番号を意識しなくてもWebサイトにアクセスできる。
例:80番ポートを指定する場合は、URLやIPアドレスの後ろに「:80」をつける。
ステートフル
状態を持つ。 以前の情報が保存されている。 例:FTP
ステートレス
状態を持たない。 以前の情報が記録されていない。 例:HTTP
HTTPはステートレスのため、HTTPのみでは現在使われているWebアプリケーションのようにログイン状態をもつことができない。 そこでCookieという技術が誕生した。
Cookie
ステートレスのHTTPで状態を持たせることができる。
これによってHTTPでもログイン状態を持つことができる!Cookieすごい!
Netscape Navigatorを開発していたNetscape Communication社によって開発された。
終わりに
忘れている部分や知識不足の部分が多く、とても勉強になりました。 現在使われている技術がどのような経緯で作られたのかがわかり、読んでいて非常に面白かったです。
本書を読むことでざっくりとWebアプリケーション開発を理解することができるので、これからエンジニアを目指される方にもお勧めしたい本だなと思いました。
フレームワークを学ぶ前にこの本に出合い、どのような仕組みになっているのか少し理解することができてよかったと思います。
また、セキュリティ部分もとても面白かったです。
Webアプリケーション開発で重要な部分であるため、どのようなリスク、対策があるのかしっかり理解する必要があると思います。
別の記事でまとめてみたいと思います。
参考文献: 「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか | 小森 裕介 |本 | 通販 | Amazon