GNU/Linux >> Linux の 問題 >  >> Linux

Linuxラボ:SysAdmin 101

目次

では、Linuxシステム管理者になりたいですか?

時々、私は新進のシステム管理者や、資格のあるLinux SysadminまたはDevOpsエンジニア(または少なくともOpsの部分!)になるためのキャリアパスにいる人々に少しのトレーニングを提供するように求められます。このスライドデッキは 自分で使用しますが、教室タイプの環境で使用することを目的としています。これには、Linuxシステムを回避するための重要な知っておく必要のあるコマンドと方法であるいくつかの主要な領域が含まれています。各セクションの後には、クラスで実際に試してもらうことができるように、いくつかの実践的なセッションが続きます。

家庭教師のためのヒント :これは少人数のクラス(2〜3人)でうまくいきました。 Ubuntu Server VMにSSHで接続し、その上でtmuxを実行しました。次に、各生徒に(同じ生徒ユーザーとして)SSHで接続し、「tmuxattach」を実行するように依頼しました。そうすれば、全員が同じ端末を共有し、講師は自分のラップトップからスライドを実行すると同時に端末を操作/表示することもできます。スライドをプロジェクターまたはテレビで提示します。

コースの概要は次のとおりです。

  • Linux、inc。とは非常に簡単な歴史。
  • 配布。
  • (Bourneagain)シェル。
  • UNIXファイルシステム。
  • ファイルベースのコマンド/ツール
  • Bash組み込みコマンド
  • リダイレクトとパイプ
  • ユーザーアカウント管理
  • 許可
  • ディスクツール
  • プロセス
  • ネットワーキング
  • ソフトウェアのインストール/パッケージ
  • ログ/ログ管理

注:次のプレゼンテーションは、熟練したプレゼンターがプレゼンテーションするように設計されています。


このスライドショーを開始できませんでした。ページを更新するか、別のブラウザで表示してみてください。

Linux SysAdmin 101

Linuxサーバー管理の初心者向けガイド

このガイドは誰のためのものですか?

  • これらのスライドは、熟練したプレゼンターが同行することを目的としています。
  • LinuxまたはUnixのプロフェッショナルになることに興味のある人
  • Linuxスキルをデスクトップユーザーからパワーユーザーに向上させる
  • コマンドラインでもっと作業したい人
  • 知らないかもしれないコマンドを学ぶ

Linuxとは何ですか?

Linux自体とその歴史の概要については、以下を確認してください。

https://www.linuxnewbieguide.org

ただし、簡単に言うと、LinuxはUNIXベースのオペレーティングシステムであり、次のコアコンポーネントで構成されています。

  • カーネル
  • シェル(このチュートリアルの場合はbash)
  • 基本的なGNUツールセット
  • その他すべてのアプリ、Firefox、ViMなど

配布

  • Linuxにはさまざまな種類があります。
  • これのほとんどは、システムがソフトウェアをパッケージ化する方法によって異なります。
  • ディストリビューション間の構成は若干異なる場合があります。
  • 最もよく知られているディストリビューションは次のとおりです。
    • DebianとUbuntu
    • Red Hat、CentOS、Fedora
  • Linux Mint、openSuSE、elementaryなどの他のディストリビューションは、多くの場合、上記のプラットフォームに基づいています。

(Bourne Again)シェル

  • ユーザーからコマンドを受け取ります
  • スクリプト言語として使用できます(バッチファイルなど)
  • 正規表現を使用できます(たとえば、A *はAで始まるものと一致します)。
    • 正規表現は、より高度なセッションでカバーされています。

ファイルシステム

これが例です。すべてがルート(/)から始まります:

/
|-- bin
|   |-- bash
|   |-- touch
|-- etc
|   |-- service.conf
|   `-- networking
|       |-- eth0.conf
|       `-- eth1.conf
|-- home
|-- var

ファイルツール

  • cd(ディレクトリの変更、例:cd / home / ajross、cd ../ ..)
  • pwd(作業ディレクトリの印刷)
  • ls(リストディレクトリ、例:ls -l / home / ajross / Desktop)
  • タッチ(空のファイルを作成)
  • tar(ファイルまたはディレクトリを圧縮します。例:tar cvfpz file.tar * .txt)
  • cat(ファイルの内容を表示)
  • 少なくなります(ファイルをページごとに表示します)
  • cp(コピー、例:cpファイル/ home / ajross)
  • mv(移動または名前変更)
  • mkdir(ディレクトリを作成)
  • rm(1つまたは複数のファイルを削除)
  • rmdir(空のディレクトリを削除)

実用的:
  1. 任意のディレクトリにあるファイルを表示する
  2. test.txtという名前の空のファイルを作成します
  3. / etc / fstabの内容を表示し、表示されている内容を説明します
  4. test.txtの名前をanothertest.txtに変更します
  5. myfolderという名前の新しいフォルダを作成します
  6. anothertest.txtをmyfolderに移動します

ファイルツール(続き)
  • ln –シンボリックリンク(例:ln -s / sourcefile / destination-alias-file)
  • which(実行されるコマンドのバージョン)、例:which -a vim
  • whereis(パスに基づいて、ファイルの場所を示します-例:whereisvim)。
  • whatis、file(コマンドは何をするのか、file –ファイルは何をするのか)
  • find(例:find。-userajross –max-depth =2)
  • 頭、尾(ファイルの上部と下部を表示)
  • 参加、分割(例:a.txt b.txtに参加)
  • ソート(例:du -h / home | sort -h)
  • du -h(ディスクサイズの使用率を表示します。例:du -h / home –max-depth =2)
  • df -h(ファイルシステムの空き容量を表示)
  • uniq(例:uniqfiles.txtまたはcat/var/log/error.log | uniq)
  • wc、nl(単語数、例:cat /var/log/error.log | wc -l、nl foo.txt)
  • grep(ファイル内のコンテンツを検索します。例:grep -i foo /var/log/error.log)
  • lsof(システムで開いているファイルを一覧表示します(例:lsof -n))。

実用的:
  1. /etcフォルダーからsysctl.confというファイルを見つけます
  2. ファイルの内容を一度に1ページずつ表示する
  3. /varフォルダがドライブ上で占有しているスペースの量を表示します
  4. シンボリックリンクとは何かを説明する
  5. /var/log/kern.logの内容でusbという単語を検索します

Bashビルトイン

  • エイリアス
  • set / env(echo $ PATH)
  • 終了/ログアウト
  • エコー
  • 再起動/停止/シャットダウン/電源オフ
  • 履歴(最後に実行されたコマンドを表示)
  • if、else、whileなど。
    • とりわけ…

実用的:
  1. 「helloworld」という単語を標準出力に書き込みます。
  2. 最後に実行されたコマンドのリストを表示します。

リダイレクトとパイプ
  • 標準 出力 (stdout – 1):
    • echo hello> myfile.txt
    • エコーがあります>>myfile.txt
  • 標準 入力 (stdin):
    • cat anotherfile.txt
  • 標準 エラー (stderr – 2):
    • ls / crapolaを実行すると、エラーが発生します(ディレクトリが存在しません)
      • ls / crapola 2> out.txt(エラーをout.txtというファイルにリダイレクトします)
    • 標準出力と標準エラーが必要な場合:stderr(2)出力と(および&)stdout(1)の組み合わせ。
      • ls / crapola> out.txt 2>&1

リダイレクトとパイプ(続き)

  • パイプ
    • あるコマンドの出力を別のコマンドの入力に入れます。とても便利です。
      • ls -l / etc |少ない
    • ティーを使用すると、出力をファイルと画面に配置できます
      • ls -l | tee out.txt

実用的:
  1. パイプを使用して/var/log/kern.log内の単語数を表示する
  2. ls/varの出力をls.txtというテキストファイルに入れます
  3. ls / var / logの出力を同じファイルに追加します(つまり、すでに存在するものを削除しないでください)。

ユーザー管理

  • アカウント「root」はシステムスーパーユーザーです。
  • 多くの構成ファイルとシステムファイルは、rootのみが編集/表示できます。
  • 許可はファイルを保護するための鍵です
    • ファイルを操作できるユーザー(およびユーザーのグループ)を指定します。
  • ローカルユーザーは/etc/ passwdに保存され、パスワードファイルは/ etc/shadowに保存されます
  • グループは/etc/groupsに保存されます
  • 通常のユーザーとしてサーバーにログインしてから、sudo(またはsu)を使用してrootにエスカレーションすることをお勧めします。
  • passwd(パスワードを変更するため)
  • useradd
  • userdel

実用的:
  1. パスワード、シャドウ、およびグループファイルを確認します
  2. 通常のユーザーとしてシャドウファイルを編集してみてください
  3. 編集できない理由を理解してください。
  4. パスワードを変更します。
  5. ユーザーを作成し、ユーザーを削除します。

許可

  • 権限の説明:ユーザー、グループ、その他、属性
  • chmod(chmod u + x file.shなどのファイルの権限を変更します)
  • chown(ファイルの所有権を変更します。例:chown user file.sh)
  • chgrp(ファイルのグループ所有権を変更します。例:chgrp groupname file.sh)
  • umask(フォルダーのデフォルトのアクセス許可)
  • setuid(root)–注意して使用してください! chmod u+sまたはg+sファイル
  • 不変/スティッキー(chmod + i、chmod + t)

実用的:
  1. touchを使用してtest.shというファイルを作成します。
  2. 権限をuser=読み取り、書き込み、実行、グループ化などに変更します。権限はありません
  3. 自分ではなく所有権をrootに変更します。今すぐファイルにアクセスしてみてください。
  4. 所有権を自分自身に戻し、ファイルを編集します(nano test.sh)
    1. 最初の行に#!/ bin/bashを追加します
    2. そしてhelloworldを2行目にエコーします
  5. スクリプトを実行する– ./test.sh
  6. 実行可能ビットを削除して、スクリプトを再実行してください。

ディスクツール

    • e2fsck(ファイルシステムチェック)
    • fdisk / cfdisk / parted(パーティション編集)
    • mkfs(新しいファイルシステムを作成)
  • lvm、lvdisplay、lvextendなど
  • ファイルシステムマウントリスト:/ etc / fstab

実用的:
  1. 現在のパーティションテーブルを表示します。
  2. Linuxによってマウントされるファイルシステムを表示する

プロセス

  • プロセスは、実行中のアプリにすぎません。 Linux(MacOSやWindowsなど)はマルチスレッドオペレーティングシステムです
  • 単一のCPUシステムでは、タイムスライスされた「実行中」のアプリを除いて、すべてのアプリは通常「スリープ」状態です。
  • プロセスはバックグラウンドまたはフォアグラウンドにすることができます。
  • SIGHUP、SIGKILLなどのプロセスにシグナルを送信できます
  • プロセスを表示するには、psコマンドを使用します(例:ツリーの場合はps aux、ps auxfwww)。
    • psを使用して、所有者、ステータス、リソースなどを確認できます
    • 「top」コマンドを使用すると、CPUを最も集中的に使用するプロセスを確認できます。 Iostat、vmstatはiopsとvirtmemを表示します。
  • kill、pkillを使用してプロセスを強制終了できます(例:kill -9 12345、pkill apache2)

プロセス(続き)

  • プロセスの良さは、プロセスがシステム全体で持つ優先順位を変更します(たとえば、renice、nice)
  • / procファイルシステムは、すべてのプロセスに関するすべての情報をraw形式で保持します(例:cat / proc / 12345 / status)
  • Ctrl + Zを使用してプロセスを停止し、bgをバックグラウンドに、fgをフォアグラウンドに、「コマンド&」自動バックグラウンドを使用します
  • jobsには、現在のバックグラウンドプロセスが表示されます。 fg%4は、4番目のバックグラウンドコマンドをフォアグラウンドします。
  • 永続的に実行されるプロセスは、サービスまたはデーモンと呼ばれます。
  • サービスを開始するには、「service」または「systemctl」コマンドを使用します。古いシステムは/etc/init.dを使用します。

実用的:
  • プロセスを開始します。たとえば、cat(何もしません)。
  • プロセスの背景。
  • プロセスのPIDを見つけます。注意:それについては賢く、猫を検索するだけでps出力をフィルタリングしてください!
  • 取得したPIDを使用してプロセスを強制終了します。
  • サービスを再開/停止/開始します(rsyslogdなど)。

ネットワーキングおよびネットワーキングツール

    • ifconfig / ip
      • / etc / sysconfig / network(redhat)、/ etc / network(debian)
    • route / ip route
    • arp、ping、traceroute、netstat
  • dhclient、dhcpd、bind
      • /etc/resolv.conf
    • / etc / hosts
  • ssh、scp、sftp、rsync
  • nfs、samba(SMB / CIFS)
  • Apache、Python SimpleHTTPServer

実用的:
  • マシンのIPアドレスを表示する
  • loインターフェースとは何かを説明する
  • 再起動する方法を説明してください

ソフトウェアパッケージ、インストール

  • Linuxへのソフトウェアのインストールは実際には非常に簡単です。 Windowsよりもさらに簡単です。
  • Red HatとDebianはどちらも、大規模なソフトウェア「リポジトリ」を維持しています。
  • Debianベースのディストリビューションはdebファイルを使用します(ただし、aptを使用してインストールします)
  • Red Hatベースのディストリビューションはrpmを使用します(ただし、yumまたはdnfのいずれかによってインストールされます)
  • .tar / .tar.gzには任意のファイルを含めることができますが、多くの場合、コンパイルが必要なソースコードを含めることができます。
    • ./ configure;作る;インストールする

実用的:
  • aptを使用してパッケージcowsayをインストールします
  • cowsayを実行する

ログ

  • / var / log
  • 一部の厄介なアプリケーションは、好きな場所にログを記録します。 Grr、例:/ opt / app / log
  • syslog / rsyslog
  • dmesg / kern.log
  • auth.log、lastlog、last、w

実用的:
  • ログインなどのフレーズのauth.logをgrepします
  • ファイルにフレーズが存在する行数を確認します
  • ファイルを一度に1行ずつ分析して、問題を確認します
  • メッセージ/syslogについても同じようにします



Linux
  1. LinuxユーザーとLinuxグループを管理する

  2. Linux sysadminの基本:UIDとGIDを使用したユーザーアカウント管理

  3. Linux sysadminの基本:ユーザーアカウント管理

  1. Linuxの権限101

  2. Linuxsuコマンド

  3. Linux でユーザー名を変更する

  1. Linuxユーザーとは何ですか?

  2. Linuxでユーザー名を変更する方法

  3. 私の5つのお気に入りのLinuxシステム管理者ツール