LoginSignup
1
1

Linuxを基本からまとめてみた【入門】

Last updated at Posted at 2024-04-24

1. Linuxとは?

  • UNIXという初期に生まれたOSに対して、無料(オープンソース)で提供されたOSの1つ
  • Linuxでは、ソフトをインストールする際に『パッケージ管理機能』を使う

2. カーネル・シェル(bash, tcsh)

(1) Linuxの構造

  • 安全のため、カーネル(核)はシェルで包まれている
    ※ カーネル:OSの核(指示)・・・システムコール、デバイスドライバ、プロセス管理
    ※ シェル:命令をカーネルに伝える

(2) シェルの種類
sh: 基本的、速いが機能が少ない
bash: 多くのLinuxで標準搭載
tcsh: BSD系OSでは標準だが、シャルスクリプトが苦手

(3)環境設定ファイル(bash)

『アクセス』⇨『/etc/profile』システム(ユーザー)共通の設定ファイル ⇨
『.bash_profile』ユーザー固有の設定ファイル(bashrcを呼ぶ) ⇨
『.bashrc』ユーザー固有の設定ファイル(簡単な設定はbashrcに書くのがセオリー) ⇨
『bash終了』

3. ディレクトリ構造

(1) Linuxのディレクトリ構造

ディレクトリ(Linux) = フォルダ(Windows)

/
├─ home
   ├─ a(user):カレントディレクトリ(current directory)
      ├─ .base_logout
      ├─ .bashrc
      ├─ .motd_shown

(2) ディレクトリ操作のコマンド

pwd: カレントディレクトリへのパス
ls: カレントディレクトリ下のファイル・ディレクトリの表示
cd: カレントディレクトリの移動

(3) ディレクトリ構造

├─/bin :OSが正常に動作するための実行ファイル
├─/boot :システムの起動に必要なファイル
├─/dev :ハードウェア機器を表すファイル
├─/etc :設定ファイル
├─/home :ユーザーのホームディレクトリ
├─/lib :OSに必要なライブラリファイル
├─/media :外部の記憶媒体をマウント(自動)
├─/mnt :外部の記憶媒体をマウント(手動)
├─/opt :追加のアプリケーションがインストール
├─/proc :OSのシステムをコントロール
├─/root :rootアカウントのホームディレクトリ
├─/sbin :ルートユーザーのみ実行できるプログラム
├─/sys :OSの現在の状況に関する情報
├─/usr :全ユーザーが共通して利用するプログラムのデータ
├─/var :システム運用中に生成、後から削除されるデータ

4. 基本コマンド

(1) ディレクトリ操作のコマンド

pwd: カレントディレクトリへのパス
ls: カレントディレクトリ下のファイル・ディレクトリの表示
ls-l: ファイル権限の表示
ls-a: 隠しファイルも表示
cd: カレントディレクトリの移動
cd..: 1つ上のディレクトリに移動
cd/: 1番上のディレクトリに移動
cd〜: ホームディレクトリに移動

(2) ファイル操作のコマンド

touch: ファイルの作成
vim: ファイルの編集
Esc: ノーマルモード
I: 編集モード
 : コマンドモード  wq: 上書き終了 q!: 強制終了
cp: ファイルのコピー
mv: ファイルの移動(名前の変更可能)
rm: ファイルの削除

(3)パイプライン
2つ以上のコマンドを連結できる(左から右に結果を渡す)

  • lsの出力をgrepに渡す
  • printenv(環境変数)の出力をgrepに渡し、tailに渡す
フィルタ
head: 先頭
tail: 末尾
grep: 文字列を含む行の検索

(4)リダイレクト
出力結果を書き込める

lsの出力をtext3.txtに書き込む

ls > text3.txt
cat text3.txt

lsの出力をtext3.txtに末尾に書き込む

ls >> text3.txt
cat text3.txt

5. シェルスクリプト(.shファイル)

(1)シェルスクリプトの基本
コマンドをまとめて一括で実行するために、.shファイルを用意する

①test.shというファイルを作成する

vim test.sh

②ファイル権限を実行可能(+X)にする

chomd +X test.sh

③実行結果

./test.sh
# : コメントアウト
echo: 画面表示

(2)変数とargs

① test.shというファイルを作成する

vim test.sh

②実行結果

./test.sh 1 10 100

(3)caseとfor

条件分岐(case)と繰り返し(for)も使用可能
① test.shというファイルを作成する

vim test.sh

②実行結果

./test.sh

6.パーミッションと管理者権限(chmod, sudo)

(1)パーミッション(権限)
ファイルには9つのアクセス情報が含まれる

{ r: 読み込み w: 書き込み x: 実行}
        ×
{ 管理者{root} グループ ユーザー(本人)}

ls -l
-rw-r--r--r 1 
(パーミッション)

(2)chmod: パーミッションを変更(グループごとに2進数で設定)

chmod 755 test.txt
ls -l

(3) 管理者権限(super user)

多くの作業には管理者権限が必要になる

/
├─ home
   ├─ user1:ユーザーのアクセス範囲

{ 起動/停止 ユーザー追加 ソフトウエアインストール }

sudo: 一時的に管理者権限で実行する

sudo apt-get install xrdp

su -: 管理者ユーザーでログインする

sudo su -

7.リモート接続(SSH, Xサーバ)

  • なぜリナックスを使うのか? ⇨ 軽い・安い・安定 → サーバに最適
  • サーバ管理は遠隔でやりたい ⇨『SHH』『Xserver』が遠隔操作に必要

(1)リモート操作

  • SHH(Secure Shell):安全に遠隔操作ができる
  • Xserver:GUIで操作できるシステム
  • FTP:リモートでファイル操作ができる

8.ビルド(gccコンパイル・リンク)

(1)ビルドとコンパイル

  • プログラミング言語は『ビルド』して初めて使えるようになる
what's.build
コンパイル ⇨  リンク
  • Linuxではコンパイル用コマンドを自分で作成する必要がある

(2)GCC(C言語コンパイラ)
Linuxでよく使われるvimによる『コンパイル(リンク)⇨ 実行』方法

①GCC(コンパイラ)をインストール

sudo apt-get install gcc

②vimよるファイル編集

vim test.c

③実行ファイルtest.outを作成(コンパイル)

gcc -o text.out test.c

④実行結果

./test.sh

9.プロセス・スレッド・ジョブスケジューラ

プロセスとスレッドの違い

  • プロセス: 実行中のプログラム 自分専用のメモリ空間が必要
  • スレッド: プロセスの中の実行単位 独立して実行可能

(1)プロセス管理

  • ps:現在稼働しているプロセスを表示
ps
  • top:リアルタイムで稼働しているプロセスを表示
top

(2)ジョブ
大量の計算を流す場合、ジョブスケジュールで管理する

{プロセス:Linuxから見た処理の単位 ジョブ:シェルから見た処理の単位}

job -l:ジョブを表示

jobs -l

参考サイト

【丁寧に学ぶLinux入門】 ①Linuxとは? ディストリビューション(Ubuntu RedHat CentOS Devian)
【丁寧に学ぶLinux入門】 ③カーネル・シェル(bash, tcsh)
Linuxディレクトリ構造を完全解説!
【丁寧に学ぶLinux入門】 ④ディレクトリ構造
【丁寧に学ぶLinux入門】 ⑤基本コマンド (ディレクトリ表示 ファイル操作 パイプライン リダイレクト)
【丁寧に学ぶLinux入門】 ⑥シェルスクリプト(.shファイル)
【丁寧に学ぶLinux入門】 ⑧リモート接続(SSH, Xサーバ)
【丁寧に学ぶLinux入門】 ⑨ビルド(gccコンパイル・リンク)
【丁寧に学ぶLinux入門】 ⑩プロセス・スレッド・ジョブスケジューラ

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