linux與shell介紹 - 進程與線程


linux

image

linux與windows的區別

image

linux的文件結構

image

Linux基本命令

  • ls: 列出目錄
  • cd: 切換目錄
  • pwd: 顯示當前目錄
  • mkdir: 創建一個新的目錄
  • rmdir: 刪除一個空的目錄
    • rmdir -r: 刪除目錄及目錄下所有子文件
    • rmdir -rf: 強制刪除目錄及目錄下所有子文件
  • cp: 復制文件或目錄
  • rm: 移除文件或目錄
  • mv: 移動文件與目錄,或者修改文件與目錄的名稱

shell基礎

shell是與linux交互的橋梁,shell是比較底層的一個工具,可以與linux內核進行交互
image

常見的shell

  • bourne Shell(/user/bin/sh或/bin/sh)
  • Bourne Ahaim Shell(/bin/bash) --->最常用、免費、功能強大
    image
  • C Shell(/user/bin/csh)
  • K Shell(user/bin/ksh)
  • Shell for Root(/sbin/sh)

運行shell

  • chmod +x ./test.sh #給與腳本具有執行的權限
  • 運行方法1>>>./test.sh # 執行腳本
    • 使用 ./ 運行shell,它會自動識別是使用哪一種shell
  • 運行方法2>>>/bin/sh test.sh #指定shell運行,腳本中的第一行就會失效

linux進程與線程

進程

  • 可執行程序的運行態
    • 當linux文件(可執行程序、shell腳本)被系統調度、即,你去運行它的時候,操作系統會解析這個文件並判斷文件中的指令通過內存、cpu去進行調度和運行,這就是一個可執行程序的運行態,此時它就從一個靜態的文件變成一個動態化的進程
  • 操作系統調度的基本單位
    • 進程可以從文件中提取出所需要的數據、指令,數據放到內存、cpu去調度指令,然后指令再去操縱內存中的數據,從而完成復雜的數據處理
  • 線程容器
    • 一個進程,它最底層的單元是線程,cpu在去調度的時候,調度的是其中的一個線程,所以,進程的本身是一個線程的容器,它包含線程,同時也包含線程之外的一些指令和數據
  • 進程本身包含指令、數據等資源
    • 進程由內核去生成、進程包含代碼、指令、數據、堆棧等,內核會對進程對象進行調度維護

線程

  • 進程中被執行的最小單元
  • cpu調度的基本單位
  • 線程帶有指令、數據等資源

進程的生命周期

  • created: 當執行一個腳本、程序的時候 (./demo.py)內核會調度demo.py文件,創建進程,操作系統會維護這些進程的狀態
  • ready:當進程被創建之后,就會進入ready狀態,即可以被cpu進行調度,此時,當cpu空閑出來或者跑完其他指令,就會運行demo.py,大部分cpu都基於分片運行,根據給與的指令進行不斷的運行,它是並發來進行執行的
  • running:從ready到running中,有一個狀態切換,比如在運行的過程中需要等待磁盤、或者遇到外部指令強行被終止,此時會重新回到ready,或者進入waiting的狀態
  • waiting: 當進程進入到waiting狀態的時候,直到滿足條件之后,才會重新再進入ready狀態
  • terminated: 當給與一些指令之后,比如kill進程,就會進入正常的一個狀態,terminated
    image

常見進程管理命令

  • ps: 進程列表快照

    • 列出當前所有進程快照

      • unix風格參數:ps -ef | less 找到當前所有進程列表
        image

      • bsd風格參數: ps aux |less 比 -ef更詳細
        image

      • ps au -m :能顯示進程的線程數
        image

    • gnu風格參數: ps --pid pidlist

    • ps -o :自定義輸出指標

      • ps -o pid,ppid,psr,thcount,tid,cmd -M
        image
  • top: 交互式進程觀察

    • 可以查看當前進程狀態
  • kill: 結束進程

    • 結束進程
  • fg: 進程切換到前台

    • 前台進程:當進程具有交互界面
  • bg: 進程切換到后台

    • 后台進程:脫離桌面,但還處於執行狀態
  • ctrl z 掛起進程

|
|
|
|
ps:
下一篇:linux常用命令之文件處理


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM