linux
linux與windows的區別
linux的文件結構
Linux基本命令
- ls: 列出目錄
- cd: 切換目錄
- pwd: 顯示當前目錄
- mkdir: 創建一個新的目錄
- rmdir: 刪除一個空的目錄
- rmdir -r: 刪除目錄及目錄下所有子文件
- rmdir -rf: 強制刪除目錄及目錄下所有子文件
- cp: 復制文件或目錄
- rm: 移除文件或目錄
- mv: 移動文件與目錄,或者修改文件與目錄的名稱
shell基礎
shell是與linux交互的橋梁,shell是比較底層的一個工具,可以與linux內核進行交互
常見的shell
- bourne Shell(/user/bin/sh或/bin/sh)
- Bourne Ahaim Shell(/bin/bash) --->最常用、免費、功能強大
- 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
常見進程管理命令
-
ps: 進程列表快照
-
列出當前所有進程快照
-
unix風格參數:ps -ef | less 找到當前所有進程列表
-
bsd風格參數: ps aux |less 比 -ef更詳細
-
ps au -m :能顯示進程的線程數
-
-
gnu風格參數: ps --pid pidlist
-
ps -o :自定義輸出指標
- ps -o pid,ppid,psr,thcount,tid,cmd -M
- ps -o pid,ppid,psr,thcount,tid,cmd -M
-
-
top: 交互式進程觀察
- 可以查看當前進程狀態
-
kill: 結束進程
- 結束進程
-
fg: 進程切換到前台
- 前台進程:當進程具有交互界面
-
bg: 進程切換到后台
- 后台進程:脫離桌面,但還處於執行狀態
-
ctrl z 掛起進程
|
|
|
|
ps:
下一篇:linux常用命令之文件處理