めもぶろぐ

お勉強したこと、趣味なんかを適当に書いてます。。。

カーネルとは

カーネル(英: Kernel)は、階層型に設計されたオペレーティングシステム (OS) の中核となる部分である。システムのリソースを管理し、ハードウェアとソフトウェアコンポーネントのやりとりを管理する。

オペレーティングシステムの基本コンポーネントとして、カーネルはメモリ、CPU、入出力を中心としたハードウェアを抽象化し、ハードウェアとソフトウェアがやり取りできるようにする。また、ユーザープログラムのための機能として、プロセスの抽象化、プロセス間通信、システムコールなどを提供する。

これらのタスクはカーネルによって方式が異なり、設計も実装も異なる。モノリシックカーネルは全てを一つの仮想アドレス空間に格納されたコードで実行して性能を向上させようとする。マイクロカーネルはサービスの大部分をユーザー空間で実行し、コードの保守性とモジュール性を向上させようとする[1]。多くのカーネルはこの二つのカテゴリのいずれか、あるいは中間である。

Wikipedhdiaより

WindowsLinuxどっちで
サーバー立てればいいの?

Windowsについて

サーバーとしての歴史は浅く、あまり高機能でないため、インターネットサーバーとしては利用されない。そのかわりGUIでの操作と、クライアントとの連携が強いためメリットがさまざまにある。

  • GUIでの操作がやりやすい
  • 上記によりミスが抑えられる
  • オペレーターの育成が容易
  • 管理者が常駐できないケースに対応しやすい
  • AD等の高度な管理が簡単にできる

Linuxについて

Linuxが実際に使われるのはwebサーバーなど、インターネットサーバーとして利用される。ISPなどはほぼUNIX/Linuxを利用していることになる。

今日使ったコマンド

  • shutdown -h 19:00 "メンテナンスのため停止します。"
  • 時間指定ができる/全ユーザにmsgを送信することができる。
  • date
  • 日時【システムクロック】の表示設定が可能
    date(時刻の表示)/ date '+%M'(現在の分を表示)/
  • date 05251032
  • 月日時分で、システムクロックの設定ができる
  • ls /etc | wc -l
  • |(パイプ)を使うことで、出力結果を別のコマンドやプログラムの入力に渡すことができる。

  • dmesg
  • 起動時にカーネルが出力したmsgを表示する
  • dmesg | grep -i .*usb.*
  • dmesgで出力された結果をパイプで渡し、grepで検索をかけて出力する。
    ”-i”は大文字小文字の区別をつけずに出力するためのオプション

リダイレクト

標準出力などをファイルに送ることである。

date >> /root/date.txt

  • > 出力を上書きリダイレクト
  • ファイル内容は消して、上書き
  • >> 出力を追記リダイレクト
  • 前のファイル内容は消さない

ls /route/ > /root/list.txt

routeは存在しないファイル
ls: /route/: そのようなファイルやディレクトリはありません

エラーメッセージはリダイレクトされない。エラーと標準出力は別の扱いになる。エラー出力をリダイレクトをしたい場合は以下のとおりである。

ls /route/ 2> /root/list.txt

> fileName 2>&1

これを使用することで、エラーが出ても標準出力でも上書きリダイレクトが可能になる。末尾に2>&1

システム変数

変数の値によってシステムの動作が変わる

#echo $LANG

LANG=en

変数に値を設定:変数名=値

echo $LANG

LANG=ja_JP.UTF-8

ただし、この方法だと設定ファイルを書き換えているわけではないので、起動すると元に戻る

クォーテーション

  • '(シングルクォーテーション)⇒強い抑止⇒すべてを文字列として扱う
  • "(ダブルクォーテーション)⇒抑止⇒変数は展開する
  • `(バッククォーテーション)⇒コマンドの展開⇒例.実行権限調べるときに使える
    • ls -l /sbin/shutdown
    • ls -l `which shutdown`

エイリアスalias [-p] [name[=value] ... ]

コマンドの規定の動作を変更

  • alias⇒エイリアスの確認・設定
  • \(バックスラッシュ)コマンド名⇒エイリアスを無効にして実行
  • ※ただし設定ファイルを書き換えているわけではないので、再起動したら機能しない。そのため、”.bashrc”の設定ファイルを書き換える必要がある。前回のエントリを参照してください。

viの操作

これは何度か説明させていただいたので省かせていただきます。

viの設定ファイルvircの編集

viを設定することができるので、少し紹介します。
  1. find / -name 'virc'
  2. これでvirc(viの設定ファイル)ファイルを探す
  3. vi /etc/virc
  4. これでvircをの設定を書き加えます。ファイルの一番下に追記していきましょう。
  5. set number
  6. vi編集中に行番号が表示されます
  7. set ruler
  8. set smartindent
  9. set wrap
  10. set wildmenu
  11. set nocompatible
  12. set ignorecase

rootでのsshログインを禁止するように設定

  1. vi /etc/ssh/sshd_config
  2. sshdファイルを開く
  3. PermitRootLogin no
  4. ルートでのsshログインを禁止するために、上記のようにコメントをはずし、書き換える
    ※"/PermitRootLogin"で検索するとすぐ見つかる
  5. :wq で編集を終える
  6. /etc/init.d/sshd restart
  7. シェルで上記を入力してsshdファイルを再起動させる
以上のことを行うと、次回からteratermsshログインをrootでしようとすると入ることができません。useraddした一般ユーザからしかログインができません。

一般ユーザからrootユーザへ

まずは cd /root ってやってみてください。許可がないので入れません。じゃあどうやって権限をもったrootユーザに戻ろうか。以下のとおりです。
  1. su root
  2. passwd

こんどは cd /root で/rootディレクトリに移動することができます。

広告を非表示にする