Bo2SS

Bo2SS

3 Linuxの基本知識

コース内容#

グラフィカルな [Windows] からテキストインターフェース [Linux] への移行#

エラーとヒント#

グラフィカル→テキスト情報

  • 画面出力を無視しないで、システムの各応答を注意深く見てください!
  • プログラムの return 値は次の行の右側に反映されます
    • 画像
    • return 0 は成功を示します

コマンド形式#

コマンド [オプション] [オプション引数]... [引数]...

  • オプション:-- オプションの完全名 - オプションの略称
  • スペース:いくつあっても 1 つのスペースとして扱われ、区切りとして使用されます

Linux はセキュリティ面でより多くの考慮がなされています#

ユーザー、ユーザーグループ、権限

  • パスワードの変更:passwd
  • ユーザーのログアウト:exit、logout、ctrl + d
  • 新しいユーザーの作成:useradd
  • ホームディレクトリ:/home、他のユーザーは他のディレクトリで変更権限がない場合があります
  • グループ
  • [PS] すべてはファイルであり、すべてのデバイス、抽象的なプロセス、実行データ、CPU...
    • ユーザーに関連するファイル /etc/passwd、/etc/group、関連コマンド usermod、userdel、id
    • id:自分または指定したユーザーの uid、gid(主要グループ)、groups(所属グループ)を確認できます

ユーザーとグループ#

  • 画像
  • 権限:文字で表現(r は読み取り可能、w は書き込み可能、x は実行可能)→8/10 進数での説明
  • 各ファイルには所有者、所有グループ、その他のユーザーがいます
  • ls -l を入力すると確認できます
    • img
    • 赤枠を参照、ファイルタイプ l、d など、詳細は追加知識ポイント - 7 種類のファイルタイプを参照

ファイルのブラウジング#

Linux には 1 本の木しかなく、ルートディレクトリ / から始まります

私は誰か、私はどこにいるか、どこに行くか#

  • 私は誰か whoami、who am i(本質を見る)
    • 画像
    • whoami:システムがあなたを誰と感じているか、who am i:あなたは実際に誰か
  • 私はどこにいるか pwd:print working directory
  • 私はどこに行くか cd:change directory
  • [PS] コマンドやパスを書くときは、Tab キーをうまく使いましょう

ソフトウェアのインストール(Ubuntu)#

  • .deb:dpkg -i xxx.deb を使用
  • .tar:tar で解凍
  • apt インストール:依存関係を自動的に解決し、適切なソフトウェアソースアドレスを選択できます
    • どこにインストールされたか?分散配置:bin、lib;/usr/→bin、include、lib、local、share(ヘルプマニュアル)、src
    • 関連コマンド
      • 画像
      • search はソフトウェアを探し、存在するかどうかを確認します、名前を忘れた可能性があります
      • apt remove xxx--purge(設定ファイルを保持しない)
      • apt autoremove は慎重に使用してください、apt が管理しているため、誤って削除される可能性があり、まだ使用する必要があるが実行中でない、他の方法でダウンロードしたソフトウェア

Linux の一般的なコマンド#

ファイルおよびディレクトリ操作#

  • 画像
  • ln:ソフトリンク、ハードリンク

ファイル内容の変更と表示#

  • 画像
  • ⭐Linux の三剣客:grep [Global Regular Expression Print]、awk [データ処理]、sed [バッチ操作]
  • ❗ パイプ:| 前のコマンドの出力を次のコマンドに渡します
  • less は more よりも使いやすく、機能が豊富です
  • wc:word count、-l [行数] などの引数を受け取ることができます

ファイルの検索と位置特定#

  • 画像
  • which:実行可能ファイルの具体的な位置を探します、具体的にどれを使用しているか
  • locate
    • インデックスに基づいており、非常に速く検索できます
    • 【リアルタイム更新ではありません】、更新にはすべてのファイルを遍歴する必要があり、遅いです
    • 定期的に更新されるか、sudo updatedb を使用してデータベースを即座に更新します

ユーザー関連#

  • 画像
  • sudo -i:スーパーユーザー権限でデフォルトのシェルにログインします
  • chmod:change mode
  • chown:change owner

プロセス関連#

  • 画像
  • 一般的に使用される ps -ef、すべてのプロセスの詳細情報を出力します
  • kill 指定 PID [process ID] でプロセスを終了できます
  • pkill は文字列に一致するプロセスを一括で終了できます、ユーザーが権限を持つプロセスのみを終了します、sudo pkill は慎重に使用してください
  • crontab -e:編集【定期タスク】、中の形式を参考にしてください
  • ctrl + z、fg、bg、jobs
    • jobs でプロセス番号を確認します
    • ctrl + z はプロセスを一時停止させます
    • bg はバックグラウンドで実行でき、出力はターミナルに表示されます
    • %2(または fg %2)[zsh で]、fg 2 [bash で] で 2 番目のプロセスをフォアグラウンドに戻します
    • [PS] fg はソースファイルの変更や gcc の時に使用すると効率が上がります

システム情報の取得#

  • 画像
  • 調整に使用できます
  • 他の人がリソースを占有していないか確認し、システムが攻撃されていないかをチェックします:top、htop、nmon
  • 【クラウドホストが攻撃される可能性を減らす方法】
    • パスワードを無効にし、sshd を設定し、公開鍵と秘密鍵の方法でログインします
    • 複雑なパスワードに変更します
    • デフォルトのユーザー名を変更するか、新しいユーザーを作成します
    • ssh の接続ポートを変更します
  • -h は人間に優しい表示をします
    • du -h、ディレクトリファイルサイズを人間に優しい表示、K、M
    • free -h、メモリデータを人間に優しい表示
  • nmon:システムがいつ問題を起こしたかを確認するのに適しています
  • ifconfig [interfaces config] で表示されるネットワークデバイス情報の意味- ブログ
    • プライベート IP が見え、パブリック IP は見えません
  • uname -a:利用可能なすべてのシステム情報を出力します、cat /etc/os-release も使用できます

その他のコマンド#

  • 画像
  • ssh [オープンソース] 以前は telnet をよく使用していました
  • 【scp を使用して ssh でコピー】
    • リモート👉ローカル:scp username@ip_address: リモートファイル ローカルパス
    • ローカル👉リモート:scp ローカルファイル username@ip_address: リモートパス
  • クラウドホストを poweroff した後、コンソールに接続して起動する必要があります

基礎知識のまとめ#

Terminal & Shell#

  • Terminal はデバイスに似ています
  • Terminal の中で Shell ソフトウェアが実行されており、bash、zsh など、Terminal に入力されたコマンドを解釈します
  • Shell がコマンドを受け取るとき:内蔵かどうか→システム環境変数 PATH のパスを探し、呼び出します

区切り文字#

  • 一部の特殊記号も区切り文字に含まれます:パイプ | 、リダイレクト >、>>、<、<< 、バックグラウンド実行 &、シーケンス実行 &&
    • /dev/zero、/dev/null にリダイレクト:データのブラックホールに入力し、ここに入力されたものは直接無視されます、具体的には man zero を参照してください【/dev:デバイス】

プログラムとプロセス#

  • プログラムは実行可能なバイナリファイルです;プロセスはメモリ内のプログラムのイメージ、インスタンス化です

パス#

  • 絶対パス:起点はルートディレクトリ /
  • 相対パス:現在のパス "." と上位パス ".." をうまく使います
  • リモートパス:プロトコル:// ユーザー名:パスワード @位置 / パス:ポート
  • 特殊パス:~ ユーザー名 = ユーザー名のホームディレクトリ、- = 前回の作業ディレクトリ

ソフトウェア#

  • Linux にはレジストリの概念がありません
  • 画像

隠しファイル#

  • 名前は。で始まる必要があります
  • 特殊ディレクトリ:現在のディレクトリ "." と親ディレクトリ ".."

ファイルタイプ#

【7 種類のファイルタイプ】

  • 画像
  • link:一時的に Windows のショートカットとして理解できます
  • block:システムの大多数のブロックは 4096Byte = 4KB で、バッファの役割を果たします、宅配便の配送に例えられます
  • character:デバイスもファイルであり、仮想端末 /dev/pts/0 のように
  • socket:ネットワークに基づくものはこれを離れられません
  • pipe:メモリを占有せず、伝送のみを担当します、例えば一度の伝送:echo > パイプファイル、cat パイプファイル
  • 3 種類の通常ファイル
  • 画像

ファイル権限の変更#

  • chmod
    • +、-、= をうまく使います
      • 画像
      • a = all、+ 権限を追加、- 権限を削除、= 権限を直接上書き
    • chmod 777 の使用はできるだけ減らしてください、権限が過度にオープンになります
  • chown
    • ファイルの所属ユーザーとグループを同時に変更できます
      • chown 所属ユーザー:所属グループ ファイル
    • ディレクトリおよびその下のすべてのファイルの所属ユーザーを変更できます
      • chown -R 所属ユーザー ディレクトリ
  • chgrp:ファイルの所属グループを変更します、一般的には chown で代替可能です
  • ファイル権限を確認する
    • ll = ls -lh
      • which ll または alias ll で ll が具体的に使用しているコマンドを確認できます
    • l = ls -lah
    • システム内の 3 つの時間:変更時間 mtime、読み取り時間 atime、権限変更時間 ctime

ユーザー#

  • root の使用は慎重に
  • su ユーザー名:別のユーザーに切り替え、パスワードを入力する必要があります
  • su - ユーザー名
    • "-" を使用すると、環境変数が完全に更新され、複雑な操作に適しています
    • "-" を加えない場合、環境変数が適度に更新され、一時的なユーザー切り替えに適しています
  • ユーザー名を加えない場合、デフォルトで root に切り替わります

追加知識ポイント#

  • . 現在のディレクトリ .. 親ディレクトリ / ルートディレクトリ
  • ゾンビプロセス [有害]:子プロセスが死んで、親プロセスが管理せず、子プロセスがリソースを占有している;孤児プロセス [無害]:1 号プロセスに養子にされます
  • 他の端末とチャット
    • w を入力してオンライン端末を確認します
      • 画像
      • TTY [Teletype]:端末;pts [pseudo terminal slave]:仮想端末
    • echo "hello" >> /dev/pts/1 を入力して端末 pts/1 に "hello" を送信します
      • 画像
      • pts/1 はメッセージを受信し、同じ方法で echo で返信します
    • wall "System is rebooting in 15s" を使用して、すべてのオンラインユーザーに自分が再起動することを知らせることもできます
  • sudo !! を使用すると、スーパーユーザーとして前回のコマンドを実行できます
    • 画像
    • 前回のコマンドを再度入力する必要なく、スーパーユーザーとして実行できます
  • whereis
    • 画像
    • ソフトウェアのインストールディレクトリを確認します
  • file ファイル
    • 画像
    • ファイルの具体的な情報を確認します
  • 通常は [man コマンド] または [コマンド -h] を使用してコマンドのヘルプを確認できます
    • 使用説明の形式ルール:[] はオプション、| は同時に使用できない引数
  • ディレクトリもファイルです
  • alias 別名 = コマンド、別名に対応するコマンドを設定できます

ヒント#

  • ユーザー関連

    • ユーザーを作成する際に特別なグループを指定しない場合、自分のユーザー名でグループが作成されます
    • 1 人のユーザーは複数の異なるグループに所属できます
  • 優れたリソース監視ソフトウェア

    • Htop:Linux で動作する監視およびプロセス管理ソフトウェア、top よりも使いやすい
    • nmon:Linux のコンピュータ性能システム監視ツール [IBM 開発]
    • dstat:柔軟なリソース統計ツール
  • コマンド関連

    • apt と apt-get に違いはありません
    • history:出力されたコマンドの履歴を印刷します
    • tldr + コマンド:コマンド形式を確認します
    • echo $PATH:PATH 環境変数を印刷し、システムのデフォルトの実行可能ファイルのパスを格納します
  • CPU 状態情報 us,sy,ni,id,wa,hi,si,st の意味-CSDN

  • Ubuntu でホスト名を変更する方法- ブログ、hostnamectl について

  • コンピュータネットワーク学習の推奨:《コンピュータネットワーク:自頂向下法》、重点は最初の 5 章


コースメモ#

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。