Linuxのコマンドしばしばテスト
入門
早期導入LAMP / LNMPアーキテクチャ
Linuxの+ Apacheの(nginxの)+ MySQLの+ PHP / Pythonの
今マイクロアーキテクチャサービスコンテナ技術
なぜLinuxのを学びますか?
Linuxサーバ上で実行するほとんどのエンタープライズアプリケーション
Linuxサーバでの能力
Linuxの動作原理と一般的なツールを学びます
デバッグとトラブルシューティングのためのファイル、プロセス、メモリ関連のコマンドを表示することを学びます
Linuxのコマンドの使用状況を確認する方法
おとこ
インフォ
- 助けて
- 例えば:PIP --help
男の代替ツールtldr、ピップはtldrインストール
ファイル/ディレクトリ操作コマンド
一般的なファイル操作ツール
chownコマンド/ chmodコマンド/ chgrpコマンド
LS / RM / CD / CP / MV /タッチ/名前変更/ LN(ソフトリンクやハードリンク)、など
- /見つける見つける/ grepを見つけると検索を見つけます
- 例えば:見つけます。-name "*に.pyc" -delete
ファイルビューア
またはログファイルビューア
エディタのvi /ナノ
ファイルを表示するには、猫/ヘッド/テール
より多く/少なくインタラクティブビューファイル
プロセス操作コマンド
操作のプロセスをマスターするための共通のツール
psのチェック処理
プロセスを殺す殺します
トップ/ htopの監視プロセス
メモリ操作コマンド
一般的なメモリ操作ツールをマスター
- 使用可能なメモリを表示して自由に
- 各列の特定の意味を理解します
- メモリリークのトラブルシューティングを行います
ネットワーク運用コマンド
一般的なネットワークツールをマスター
ifconfigコマンドカード情報を見ます
lsofを/ netstatのポート情報を表示するには
SSH / SCPリモートログイン/コピー。tcpdumpのパケットキャプチャ
ユーザー/グループ操作コマンド
共通のユーザーとグループの操作をマスター
useraddの/ USERMOD
groupaddの/ groupmodの
要約:
- 慣れるための多目的
多くの場合、オペレーティングシステムのスレッドとプロセスの質問
スレッドとプロセスの違い
プロセスとスレッドの比較
カプセル化プロセスは、プログラム、リソースのスケジューリングおよび割り当てシステムを実行することで基本的な単位であります
スレッドが同時達成するためのプロセスでは、サブタスクのプロセス、CPUスケジューリングと割り当ての基本単位であります
プロセスは複数のスレッドを含むことができ、そこスレッド依存プロセスであり、共有プロセスメモリ
スレッドセーフ
操作は、スレッドセーフであるPY?
操作は、正しい結果を得るために、マルチスレッド環境で使用しても安全です
スレッドのスレッドセーフ動作を行う順番ではなく、同時に(I + = 1)で実行されるように
書き込み操作に関連する一般た場合には、複数のスレッドがデータセキュリティへのアクセスにする方法を検討する必要があります
スレッド同期モード
スレッド同期の方法を学び、セキュリティスレッドを確保する方法
ミューテックス(ロック):同時に複数のスレッドを防ぐために相互排除機構により、共通リソースへのアクセス
同時に複数のスレッドが同じリソースにアクセスするスレッドの数を制御する:セマフォ(Semphare)
事象(信号):通知によってスレッド同期の複数の保持
プロセス間通信の方法
処理又はデータ転送信号との間のプロセス間通信
パイプライン/匿名のパイプ/名前付きパイプ(パイプ)
シグナル(信号)のCtrl + Cは、ユーザプログラム終了信号SIGINTを使用して生成されるような
メッセージキュー(メッセージ)
共有メモリ(共有メモリ)
セマフォ(セマフォ)
ソケット(ソケット):最も一般的な方法は、このようにWebアプリケーションを使用することです
複数のスレッドを使用してPY
スレッドモジュール
スレッドを作成するthreading.Threadクラス
スレッドを開始する()メソッドを起動します
()に参加して、スレッドの終了を待つことができます
import threading
lock = threading.Lock()
n = [0]
def foo():
with lock:
n[0] = n[0] + 1
n[0] = n[0] + 1
threads = []
for i in range(5000):
t = threading.Thread(target=foo)
threads.append(t)
for t in threads:
t.start()
print(n)
PY複数のプロセスを使用する方法
pyがGILのCPU集中プログラムは、マルチプロセスで達成することができました
マルチプロセッシングマルチプロセッシングモジュール
- Multiprocessing.Processクラスは、マルチプロセスを実装します
- 一般的にはGILに影響を与えることを避けるために、CPU集約型のプログラムで使用
#多进程
import multiprocessing
def fib(n):
"""worker function"""
if n <= 1:
return 1
return fib(n-1) + fib(n-2)
if __name__ == '__main__':
jobs = []
for i in range(10, 20):
p = multiprocessing.Process(target=fib, args=(i,))
jobs.append(p)
p.start()
オペレーティングシステムのメモリ管理メカニズムの一般的な質問
現代のプログラミング言語は、一般的にガベージコレクションメカニズムを持っています
ページングメカニズムとは何ですか
効率的に断片化を減少させる、オペレーティングシステムのメモリを管理するために
メモリ割り当て管理スキームの論理アドレスと物理アドレスの分離
除プログラム固定サイズのページ(ページ)の論理アドレスが同一の物理アドレスサイズ枠(フレーム)に分割して
によってページ・テーブルに対応する論理アドレスと物理アドレス
セグメンテーションメカニズムとは何ですか
セグメント別では、いくつかのロジックコードデータ共有、データ保護、ダイナミックリンク、などのニーズを満たすためにあります
各セグメントの内部を通って論理アドレスと物理アドレスの関係からセグメント・テーブル・マッピングは、連続したメモリアロケーションである、段落間の離散に割り当てられています
ページングとセグメンテーションの間の差
セグメント対ページング
ページは、セグメントは、ユーザの視点のうち、データ保護のための管理メカニズムであるデータの分離の目的を提唱し、ビューのメモリ使用率ポイントの離散分布メカニズムである、ページサイズが固定され、オペレーティングシステムは、セグメントサイズが不確かな決定しますユーザプログラム決定
仮想メモリとは何ですか
プログラムがメモリに必要な情報の一部のみを実行したとき、局所性の原則にハードドライブ情報に未使用のメモリの一部であることにより、
ハードディスク上のメモリの一時的な不要なコンテンツは、システムが仮想メモリと呼ばれ、実際のメモリ容量よりもはるかに大きい提供しているようです
メモリジッタは何である(バンプ)
ページの頻繁なスケジューリング行動の性質
頻繁にスケジュールページ、プロセスがページフォルト交換用ページを生成し続け、再度このページを必要とし続けます
あまりにも多くのプログラムを実行すると、ページ置換ポリシーは良くありません、プロセスを終了するか、物理メモリを増やします
ガベージコレクションのPyの原理?
主な参照カウント(短所:循環参照を解決することはできません)
参照の参照カウントを解決するために除去し、導入世代リカバリソリューションにタグをつけます
+標識参照カウントベースの除去・回収は、世代補足します
参照カウントは、循環参照の問題を解決することはできません
2つのオブジェクトが相互に参照してクリアすることはできません
クリアマーク(マークアンドスイープ)
- 世代回復
- 012ポイント二重にリンクされたリストを使用して、各世代の三世代
レクラメーション開始値タグ
スレッド演習
マルチスレッド爬虫類を書きます
threadingモジュールのPYを使用する方法
マルチスレッド爬虫類を完了するために使用PYモジュールをスレッド
要件1:スレッドの最大数は、クロールするURLとニーズのクラスリストに渡すことができます
要件2:このクラスは、継承の方法によって治療応答の方法を提供することができます