1. 程式人生 > >linux 基礎知識點雜項記

linux 基礎知識點雜項記

inux 對數 自帶 內核 face 另一個 查找 每一個 shell

一、計算機系統的組成

計算機系統可以大體分為兩部分,由硬件系統和軟件系統組成。

1.1、馮·諾依曼體系概述

有個對計算機貢獻很大的人,我們一定要記住他的名字,叫約翰.馮.諾伊曼。他是匈牙利出生的美國猶太人,他在普林斯頓大學期間,從數學意義上總結了量子力學的發展,出版了《量子力學的數學基礎》,這本書算是一部著作。他在物理學,數學、計算機等領域都做出過傑出的貢獻。他在計算機領域的貢獻更是顯著,提出來計算機內部最主要的結構原理--存儲程序原理,確定計算機基本部件由五個主要部分組成,即運算器、控制器、存儲器、輸入和輸出設備。
計算機中的五大基本部件:

  • CPU(運算器、控制器),這兩大基本部件來源於CPU,其中運算器主要是對數據進程各種算術運算和邏輯運算,簡單來說就是對數據進行加工處理。而控制器是對程序規定的控制信息進行解釋,主要是根據要求來完成控制,程序調度,數據,地址,協調計算機各部分工作以及內存與外部設備之間的訪問等等;
  • 存儲器,主要是用來存儲程序、數據和各種信號、命令信息;
  • 輸入(設備),主要是用來完成下達指令,提供數據輸入。將程序、原始數據、文字、字符、控制命令等輸入到計算機;
  • 輸出(設備),主要是用來對已經完成數據加工後的處理的結果進行輸出。把計算機的中間結果或最後結果、機內的各種數據符號及文字或各種控制信息等內容輸出並回顯出來。

1.2、硬件系統簡單組成

主機本身

主機部分可以簡單分CPU(主要由運算器和控制器兩部分組成)、內存(ROM和RAM)等;

外部設備

常見的外部設備有外部存儲器(數據硬盤,數據軟盤,數據光盤,數據磁帶等)、輸入設備(鍵盤和鼠標等)、輸出設備(電腦顯示器、打印機等)、其他設備;

1.3、軟件系統簡單組成

軟件系統可以簡單劃分為系統軟件和應用軟件,前者主要是指我們熟知的操作系統,後者主要是指現在第三方應用程序。

1.4、cpu的生產公司以及類型

cpu常見的幾個生產公司

Intel,AMD,IBM這幾大廠商生產的CPU比較常見;

cpu類型

常見的cpu類型,以下是一個列表:
x86
x64
ARM
m68000(俗稱m68k)
Power
Powerpc
ultrasparc
Alpha
安騰

1.5、操作系統的概念

操作系統是管理和控制計算機硬件與軟件資源的計算機程序,是直接運行在"裸機"上的最基本的系統軟件。操作系統提供了用戶訪問計算機的接口,提供了應用程序訪問計算機硬件資源的接口。它可以實現以下幾個基本功能:

  • 硬件驅動
  • 進程管理
  • 內存管理
  • 網絡管理
  • 安全管理
  • 文件管理
    以上每一個功能都是一個比較核心的體現,用來更好了完成計算機提供給對外的服務工作。

可以把操作系統簡單分為以下幾類:
服務器類的操作系統
桌面類的操作系統
移動類的操作系統

為了實現操作系統的功能管理,把操作系統分成了兩個層面,一個叫用戶空間(User Space),另一個叫內核空間(Kernel Space)。

二、程序運行原理

我們都知道計算機系統由硬件系統和軟件系統構成,對外提供服務,那麽為了更好的訪問這些所謂的硬件資源,對上抽象出一個操作系統的模型,幫助用戶屏蔽了對底層硬件訪問的細節,所有的功能都集成到操作系統。這些實現,就是我們俗稱的系統調用(system call).系統調用隱藏底層對硬件資源操作的底層接口,這個接口具有通用性,也比較底層。由於系統調用這一層接口對於第三方應用程序開發者來說還是具有一些難度,功能實現起來比較復雜,所以在提供系統調用的接口上又實現了一層接口,叫庫(library)。庫就是把系統調用組合起來的一些具有復雜功能的一個接口,用戶可以自行調用這些接口(有時候也要直接做系統調用)來完成一些功能的開發。前邊我們提到了用戶空間和內核空間的概念,我們這裏的系統調用,就需要在兩個狀態之間進行切換,因為應用程序通常是運行在用戶空間的,由其註冊使用底層資源都需要經過內核空間來分配管理,所以要從用戶態切換到內核態,然後再由內核態切換到用戶態。

在程序運行原理的中,有幾個核心的概念要知道。一個叫做應用程序二進制接口(ABI,Application Binary Interface),另一個叫應用程序接口(API,Application Programming Interface)。其中ABI描述了應用程序與操作系統之間的底層接口,允許編譯好的目標代碼在使用兼容ABI的系統中無需改動就能運行。而API定義了源代碼和庫之間的接口,因此同樣的源代碼可以在支持這個API的任何系統中編譯。

三、linux 主流發行及分支

redhat系列:
RHEL(Redhat Enterprise Linux,紅帽企業版本);
CentOS(兼容RHEL的一個社區維護版本,後被紅帽招安);
Fedora Core:從紅帽之前的桌面版本發展而來;
slackware系列:
Suse Linux Enterprise Server(SLES,suse企業版本)
OpenSuse:Suse桌面版本

ArchLinux系列
Ubuntu系列
Debian系列

這裏有三張圖譜,可以簡單參考一下。圖片來源於:
圖片出處

  • 紅帽系列
    技術分享圖片

  • slackware系列
    技術分享圖片

  • debian系列
    技術分享圖片

四、linux 如何獲取幫助文檔信息以及說明

4.1、內建命令與外部命令

內建命令是shell程序的一部分,比如cd,file

所有的內建命令:
:,  .,  [, alias, bg, bind, break, builtin, caller, cd, command, compgen, complete, compopt, continue, declare,
dirs, disown, echo, enable, eval, exec, exit, export, false, fc, fg, getopts, hash, help, history,  jobs,  kill,  let,
local,  logout,  mapfile,  popd, printf, pushd, pwd, read, readonly, return, set, shift, shopt, source, suspend, test,
times, trap, true, type, typeset, ulimit, umask, unalias, unset, wait

以上所有內建命令都要知道含義,90%的能夠輕松使用才算合格。

外部命令:
例如ls,ip,ss等

  • 如何查看一個命令屬於外部命令還是屬於內建命令,請看案例:

    [root@zabbix-server ~]# type ls
    ls is aliased to `ls --color=auto‘
    [root@zabbix-server ~]# type ip
    ip is /usr/sbin/ip
    [root@zabbix-server ~]# type ss
    ss is /usr/sbin/ss
    [root@zabbix-server ~]# type cd
    cd is a shell builtin
    [root@zabbix-server ~]# type [
    [ is a shell builtin
    [root@zabbix-server ~]# whatis cd
    cd (1)               - bash built-in commands, see bash(1)
    [root@zabbix-server ~]# whatis ls
    ls (1)               - list directory contents
  • 如何查看內建命令與外部命令的幫助手冊
    內建命令用help來查詢,例如:
    help cd
    或者通過man bash然後通過檢索關鍵字的形式來搜索到我們要了解的內建命令的
    幫助信息。
    對於外部命令,我們使用man來查詢其用法。

4、關於man手冊

  • 使用手冊位置

    /usr/share/man
    [root@zabbix-server ~]# cd /usr/share/man/
    [root@zabbix-server man]# ls
    cs  de  fr  id  ja  man0p  man1p  man2   man3   man3x  man4x  man5x  man6x  man7x  man8x  man9x  pl  pt_BR  sk  tr     zh_TW
    da  es  hu  it  ko  man1   man1x  man2x  man3p  man4   man5   man6   man7   man8   man9   mann   pt  ru     sv  zh_CN
  • man手冊的部分
            SECTION:
                NAME:功能性說明
                SYNOPSIS:語法格式
                DESCRIPTION:描述
                OPTIONS:選項
                EXAMPLES:使用示例
                AUTHOR:作者
                BUGS:報告程序bug的方式
                SEE ALSO:參考

            SYNOPSIS:
                [] : 可選內容;
                <> : 必須提供的內容;
                a|b|c : 多選一;
                ... : 同類內容可出現多個;
  • man手冊章節
章節名 章節含義介紹
man1 用戶命令
man2 系統調用
man3 C庫調用
man4 設備文件以及特殊文件
man5 文件格式(配置文件格式)
man6 自帶益智類遊戲使用幫助
man7 雜項幫助
man8 管理工具及守護進程類的幫助

如何按照章節使用man手冊?
man 數字 命令

  • man手冊中利用快捷鍵

    翻屏: 
    空格鍵:向文件尾部翻一屏;
    b:向文件首部翻一屏;
    Ctrl+d:向文件尾部翻半屏;
    Ctrl+u:向文件首部翻半屏;
    回車鍵:向文件尾部翻一行;
    k:向文件首部翻一行;
    G:跳轉至最後一行;
    #G:跳轉至指定行,#是一個數字;
    1G:跳轉至文件首部;
    
    文本搜索:
            /keyword : 從文件首部向文件尾部依次查找;不區分字符大小寫;
            ?keyword : 從文件尾部向文件首部依次查找;
            n:與查找命令方向相同;
            N:與查找命令方向相反;
    
    退出:
         q:quit

linux 基礎知識點雜項記