1. 程式人生 > >計算機及Linux基礎簡介

計算機及Linux基礎簡介

linux

一、計算機的組成及其功能

計算機由運算器,控制器,存儲器,輸入裝置和輸出裝置五大部件組成計算機,每一部件分別按要求執行特定的基本功能。

  1. 運算器或稱算術邏輯單元(Arithmetical and Logical Unit) 運算器的主要功能是對數據進行各種運算。這些運算除了常規的加、減、乘、除等基本的算術運算之外,還包括能進行“邏輯判斷”的邏輯處理能力,即“與”、“或”、“非”這樣的基本邏輯運算以及數據的比較、移位等操作。

  2. 存儲器(Memory unit) 存儲器的主要功能是存儲程序和各種數據信息,並能在計算機運行過程中高速、自動地完成程序或數據的存取。存儲器是具有“記憶”功能的設備,它用具有兩種穩定狀態的物理器件來存儲信息。這些器件也稱為記憶元件。由於記憶元件只有兩種穩定狀態,因此在計算機中采用只有兩個數碼“0”和“1”的二進制來表示數據。記憶元件的兩種穩定狀態分別表示為“0”和“1”。日常使用的十進制數必須轉換成等值的二進制數才能存入存儲器中。

  3. 控制器(Control Unit) 控制器是整個計算機系統的控制中心,它指揮計算機各部分協調地工作,保證計算機按照預先規定的目標和步驟有條不紊地進行操作及處理。 控制器從存儲器中逐條取出指令,分析每條指令規定的是什麽操作以及所需數據的存放位置等,然後根據分析的結果向計算機其它部分發出控制信號,統一指揮整個計算機完成指令所規定的操作。因此,計算機自動工作的過程,實際上是自動執行程序的過程,而程序中的每條指令都是由控制器來分析執行的,它是計算機實現“程序控制”的主要部件。 通常把控制器與運算器合稱為中央處理器(Central Processing Unit-CPU)。工業生產中總是采用最先進的超大規模集成電路技術來制造中央處理器,即 CPU 芯片。它是計算機的核心部件。

  4. 輸入設備(Input device) 用來向計算機輸入各種原始數據和程序的設備叫輸入設備。輸入設備把各種形式的信息,如數字、文字、圖像等轉換為數字形式的“編碼”,即計算機能夠識別的用1和0表示的二進制代碼(實際上是電信號),並把它們“輸入”(INPUT)到計算機內存儲起來。鍵盤是必備的輸入設備、常用的輸入設備還有鼠標器、圖形輸入板、視頻攝像機等。

  5. 輸出設備(Output device) 從計算機輸出各類數據的設備叫做輸出設備。輸出設備把計算機加工處理的結果(仍然是數字形式的編碼)變換為人或其它設備所能接收和識別的信息形式如文字、數字、圖形、聲音、電壓等。常用的輸出設備有顯示器、打印機、繪圖儀等。

二、Linux發行版

發行版為許多不同的目的而制作, 包括對不同計算機結構的支持, 對一個具體區域或語言的本地化,實時應用,和嵌入式系統。已經有超過三百個發行版被積極的開發,最普遍被使用的發行版有大約十二個。

  • Debian 誕生於1993年8月13日,它的目標是提供一個穩定容錯的Linux版本。支持Debian的不是某家公司,而是許多在其改進過程中投入了大量時間的開發人員,這種改進吸取了早期Linux的經驗。Debian以其穩定性著稱。。作為服務器平臺,Debian提供一個穩定的環境。為了保證它的穩定性,開發者不會在其中隨意添加新技術,而是通過多次測試之後才選定合適的技術加入。

  • MandrakeSoft 是Linux Mandrake的發行商,在1998年由一個推崇Linux的小組創立,它的目標是盡量讓工作變得更簡單。作為Red Hat Linux的一個分支,Mandrake將自己定位在桌面市場的最佳Linux版本上。Mandrak對桌面用戶來說是一個非常不錯的選擇,它還可作為一款優秀的服務器系統,尤其適合Linux新手使用。

  • Ubuntu 是一個以桌面應用為主的Linux操作系統,其名稱來自非洲南部祖魯語或豪薩語的“ubuntu”一詞(譯為吾幫托或烏班圖),意思是“人性”、“我的存在是因為大家的存在”,是非洲傳統的一種價值觀,類似華人社會的“仁愛”思想。Ubuntu基於Debian發行版和unity桌面環境,與Debian的不同在於它每6個月會發布一個新版本。Ubuntu的目標在於為一般用戶提供一個最新的、同時又相當穩定的主要由自由軟件構建而成的操作系統。Ubuntu具有龐大的社區力量,用戶可以方便地從社區獲得幫助。

  • Red Hat Linux 可能這是最著名的Linux版本了,Red Hat Linux已經創造了自己的品牌,越來越多的人聽說過它。Red Hat在1994年創業,當時聘用了全世界500多名員工,他們都致力於開放的源代碼體系。Red Hat Linux是公共環境中表現上佳的服務器。它擁有自己的公司,能向用戶提供一套完整的服務,這使得它特別適合在公共網絡中使用。這個版本的Linux也使用最新的內核,還擁有大多數人都需要使用的主體軟件包。

  • SuSE 總部設在德國的SuSE AG在商界已經奮鬥了8年多,它一直致力於創建一個連接數據庫的最佳Linux版本。為了實現這一目的,SuSE與Oracle 和IBM合作,以使他們的產品能穩定地工作。SuSE還開發了SuSE Linux eMail Server III,一個非常穩定的電子郵件群組應用。 基於2.4.10內核的SuSE 7.3,在原有版本的基礎上提高了易用性。安裝過程通過GUI完成,磁盤分區過程也非常簡單,但它沒有為用戶提供更多的控制和選擇。

  • Linux Mint 是一份基於Ubuntu的發行版,其目標是提供一種更完整的即刻可用體驗,這包括提供瀏覽器插件、多媒體編解碼器、對DVD播放的支持、Java和其他組件。它與Ubuntu軟件倉庫兼容。Linux Mint 是一個為pc和X86電腦設計的操作系統。

  • Gentoo Gentoo是Linux世界最年輕的發行版本,正因為年輕,所以能吸取在她之前的所有發行版本的優點。Gentoo最初由Daniel Robbins(FreeBSD的開發者之一)創建,首個穩定版本發布於2002年。由於開發者對FreeBSD的熟識,所以Gentoo擁有媲美FreeBSD的廣受美譽的ports系統 ——Portage包管理系統。

  • Centos (Community ENTerprise Operating System)是Linux發行版之一,它是來自於Red Hat Enterprise Linux依照開放源代碼規定釋出的源代碼所編譯而成。由於出自同樣的源代碼,因此有些要求高度穩定性的服務器以CentOS替代商業版的Red Hat Enterprise Linux使用。兩者的不同,在於CentOS並不包含封閉源代碼軟件,CentOS 是一個基於Red Hat Linux 提供的可自由使用源代碼的企業級Linux發行版本。每個版本的 CentOS都會獲得十年的支持(通過安全更新方式)。新版本的 CentOS 大約每兩年發行一次,而每個版本的 CentOS 會定期(大概每六個月)更新一次,以便支持新的硬件。

  • Fedora Core (自第七版直接更名為Fedora)是眾多 Linux 發行版之一。它是一套從Red Hat Linux發展出來的免費Linux系統。Fedora Core 的前身就是Red Hat Linux。Fedora是一個開放的、創新的、前瞻性的操作系統和平臺,基於Linux。它允許任何人自由地使用、修改和重發布,無論現在還是將來。它由一個強大的社群開發,這個社群的成員以自己的不懈努力,提供並維護自由、開放源碼的軟件和開放的標準。Fedora 項目由 Fedora 基金會管理和控制,得到了 Red Hat, Inc. 的支持。

三、Linux的哲學思想

1 . 一切皆文件

是 Unix/Linux 的基本哲學之一。不僅普通的文件,目錄、字符設備、塊設備、 套接字等在 Unix/Linux 中都是以文件被對待;

2 . 小型,單一用途的程序

一個程序只做一件事,並且做好,這樣才能保證了Linux內核的高效運行;

3 . 連接程序,共同完成復雜功能;

對於復雜的功能Linux通過許多簡單程序的組合等方式實現,在保證簡單功能的高效性的同時,復雜的程序也必然是高效性的;

4 . 避免令人困惑的交互界面;

無論什麽問題都可以通過簡潔的命令行實現,一切都是簡潔明了為基礎。並易於以編程的方式實現自動化任務;

5 . 配置數據存儲在文本中;

Linux所有的配置文件都存放在文本配置文件當中,無論什麽配置修改都只需修改其配置文件即可;

四、Linux的命令格式及簡單示例

(1)命令通用格式

COMMAND [OPTIONS] [ARGUMENTS]
  • COMMAND(命令)

    • 命令本身是一個可執行的程序文件:二進制格式的文件,有可能會調用共享庫文件;Linux遵循的命令格式規範(ELF);

    • 命令分為兩類:
      由shell程序的自帶的命令,內建命令(builtin);
      獨立的可執行程序文件,文件名即命令名,外部命令;

    • 查看命令類型:type COMMAND

  • OPTIONS(選項)

    • 選項指定命令的運行特性;

    • 選項有兩種表現形式:
      短選項:ls -a ls -l 同一命令同時使用多個短選項,多數可合並 ls -al
      長選項:ls --help 長選項不能合並

  • ARGUMENTS(參數)

    • 命令的作用對象;命令對什麽生效;

    • 有些命令可同時帶多個參數,多個之間以空白字符分隔;

(2)基礎命令示例

  • ifconfig命令

ifconfig 命令用來查看和配置網絡設備。當網絡環境發生改變時可通過此命令對網絡進行相應的配置。

ifconfig [interface] [options]    
-a: 顯示所有網卡配置  
-s: 顯示網卡的簡要信息  
up: 啟用網卡  
down: 禁用網卡
address: 為網卡設置IPv4地址

[[email protected] /]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:6B:12:5F  
          inet addr:192.168.1.135  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe6b:125f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:11 errors:0 dropped:0 overruns:0 frame:0
          TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2455 (2.3 KiB)  TX bytes:1608 (1.5 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:720 (720.0 b)  TX bytes:720 (720.0 b)
  • echo命令

echo會將輸入的字符串送往標準輸出

echo [OPTION] [STRING]
-n:不進行自動換行
-e:使轉義符生效
-E:禁用轉義符並且當做一般字符(默認)

[[email protected] /]# echo -e "Hello \nWorld"
Hello 
World
  • pwd命令

查看“當前工作目錄”的完整路徑

pwd
-P:顯示實際路徑,而非輸出鏈接(link)路徑;

[[email protected] rc.d]# pwd
/etc/rc.d
  • history命令

history用於顯示指定數目的指令命令,讀取歷史命令文件中的目錄到歷史命令緩沖區和將歷史命令緩沖區中的目錄寫入命令文件。

history [OPTIONS] [ARGUMENTS]
-c:清空當前歷史命令;
-a:將歷史命令緩沖區中命令寫入歷史命令文件中;
-r:將歷史命令文件中的命令讀入當前歷史命令緩沖區;
-w:將當前歷史命令緩沖區命令寫入歷史命令文件中;
-d offset:刪除指定命令歷史;
  • shutdown命令

shutdown用來系統關機命令。shutdown指令可以關閉所有程序,並依用戶的需要,進行重新開機或關機的動作。

shutdown [OPTIONS] [ARGUMENTS]
-c:取消關機指令;
-f:重新啟動時不執行fsck;
-F:重新啟動時執行fsck;
-h:將系統關機;
-k:只是送出信息給所有用戶,但不會實際關機;
-n:不調用init程序進行關機,而由shutdown自己進行;
-r:shutdown之後重新啟動;
-t<秒數>:送出警告信息和刪除信息之間要延遲多少秒;
時間參數:now 、hh:mm 、+m

[[email protected] /]# shutdown -k now
[[email protected] /]# 
Broadcast message from [email protected]
    (/dev/pts/0) at 17:13 ...
The system is going down for maintenance NOW!
  • date命令

date是顯示或設置系統時間與日期。

date [OPTION] [+FORMAT]
%H 小時,24小時制(00~23)
%M 分鐘(00~59)
%r 顯示時間,12小時制(hh:mm:ss %p) 
%s 從1970年1月1日00:00:00到目前經歷的秒數 
%S 顯示秒(00~59) 
%T 顯示時間,24小時制(hh:mm:ss)
%X 顯示時間的格式(%H:%M:%S) 
%c 日期和時間(Tue Nov 20 14:12:58 2012) 
%d 一個月的第幾天(01~31) 
%x,%D 日期(mm/dd/yy)  
%m 月份(01~12)

[[email protected] /]# date +%D-%T
07/02/17-17:22:40
[[email protected] /]# date +%s
1498987400
  • hwclock

hwclock可以顯示當前時間、設置硬件時鐘的時間和設置硬件時鐘為系統時間,也可設置系統時間為硬件時鐘的時間。

hwclock [OPTION]
-s, --hctosys:以硬件為準,把系統調整為與硬件時間相同;
-w, --systohc:以系統為準,把硬件時間調整為與系統時鐘相同;

五、Linux獲取幫助

(1) 獲取命令幫助的幾種方式

  • 內部命令:help COMMAND

  • 外部命令:

    • 命令自帶簡單的使用幫助 COMMAND --help

    • 使用man手冊 man COMMAND

(2)man頁面內容及章節分類

  • man頁裏分成幾個部分來介紹查詢的命令

    • NAME:簡單的功能性說明

    • SYNOPSIS:簡單的語法格式

    • DESCRIPTION:完整描述

    • OPTIONS:所有可用選項

    • EXAMPLES:使用示例

    • AUTHOR: 作者

    • BUGS: 報告程序bug的方式

    • SEE ALSO: 參考

  • man命令的章節分類

    • 1:用戶命令;

    • 2:系統調用;

    • 3:C庫調用;

    • 4:設備文件及特殊文件;

    • 5:文件格式或者配置文件格式;

    • 6:遊戲使用幫助;

    • 7:雜項;

    • 8:管理工具及守護進行;

    • 9:與kernel有關的文件

六、Linux文件命名規則

  1. 除了 / 以外,任意字符都合法;

  2. 文件名嚴格區分字符大小寫;

  3. 文件名長度不能超過255字符;

  4. 以 . 開頭的為隱藏文件;

  5. “.”代表當前目錄

  6. “..”代表上一級目錄

七、Linux目錄結構詳解

FHS(文件系統層次化標準)的縮寫,多數Linux版本采用這種文件組織形式,類似Windows系統中c盤的文件目錄,FHS采用樹形結構組織文件。FHS定義了系統中每個區域的用途、所需要的最小構成的文件和目錄,同時還給出了例外處理與矛盾處理。

  • /bin:所有用戶可用的基本命令程序文件;

  • /sbin:供系統管理使用的工具程序;

  • /boot:引導加載器必須用到的各靜態文件:kernel, initramfs(initrd), grub等;

  • /dev:存儲特殊文件或設備文件;設備有兩種類型:字符設備(線性設備)、塊設備(隨機設備);

  • /etc:系統程序的配置文件,只能為靜態;

  • /home:普通的家目錄的集中位置;一般每個普通用戶的家目錄默認為此目錄下與用戶名同名的子目錄

  • /root:管理員的家目錄;

  • /lib:為系統啟動或根文件系統上的應用程序(/bin, /sbin等)提供共享庫,以及為內核提供內核模塊

    • libc.so.*:動態鏈接的C庫;

    • ld*:運行時鏈接器/加載器;

    • modules:用於存儲內核模塊的目錄;

  • /lib64:64位系統特有的存放64位共享庫的路徑;

  • /media:便攜式設備掛載點,cdrom, floppy等;

  • /mnt:其它文件系統的臨時掛載點;

  • /opt:附加應用程序的安裝位置;可選路徑;

  • /srv:當前主機為服務提供的數據;

  • /tmp:為那些會產生臨時文件的程序提供的用於存儲臨時文件的目錄;可供所用戶執行寫入操作;有特殊權限;

  • /usr:全局共享的只讀數據路徑;

    • bin, sbin

    • lib, lib64

    • include:C程序頭文件;

    • share:命令手冊頁和自帶文檔等架構特有的文件的存儲位置

    • local:讓系統管理員安裝本地應用程序;也通常用於安裝第三方程序;

    • X11R6:X-Window程序的安裝位置

    • src:程序源碼文件的存儲位置

  • /var:存儲常發生變化的數據的目錄;

  • /proc:基於內存的虛擬文件系統,用於為內核及進程存儲其相關信息;因為這個目錄下的資料都是在內存當中,所以本身不占任何硬盤空間

  • /sys:sysfs虛擬文件系統提供了一種比proc更為理想的訪問內核數據的途徑;其主要作用在於為管理Linux設備提供一種統一模型的的接口;


本文出自 “呂建平” 博客,請務必保留此出處http://314171419.blog.51cto.com/4968204/1943833

計算機及Linux基礎簡介