linux基礎入門之一

一、計算機的組成與功能

計算機由硬件和軟件組成

  • 硬件: 
    按馮·洛伊曼體系劃分 
    1、CPU:包括運算器、控制器、寄存器、緩存,對數據控制和計算 
    2、存儲器:內部存儲器、外部存儲器,對數據提供存儲功能 
    3、輸入設備:具有下指令,提供數據輸入 
    4、輸出設備:輸出數據加工的結果

  • 軟件: 
    1、低級語言:匯編語言,匯編器;寫驅動. 
    2、高級語言: 
    系統級:C , C++ ,對性能要求較高的服務類程序 
    應用級:Java,Python,ruby, 應用程序


二、Linux發行版及聯系與區別

Linux 發行版有數百種之多,主要分三個主流分支

  • RedHat
    RedHat Enterprise Linux

    RHEL CentOS

    Fedora

Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所謂的Redhat Advance Server,收費版本)、Fedora Core(由原來的Redhat桌面版本發展而來,免費版本)、CentOS(RHEL的社區 克隆版本,免費)。Redhat是在國內使用人群最多的Linux版本,甚至有人將Redhat等同于Linux。所以這個版本的特點就是使用人群數量大,資料非常多,言下之意就是如果你有什么不明白的地方,很容易找到人來問,而且網上的一般Linux教程都是以Redhat為例來講解的。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分發方式是編譯好的二進制文件。穩定性方面RHEL和CentOS的穩定性非常好,適合于服務器使用,但是Fedora Core的穩定性較差,最好只用于桌面應用。 
CentOS 是一個基于Red Hat Linux 提供的可自由使用源代碼的企業級Linux發行版本。每個版本的 CentOS都會獲得十年的支持(通過安全更新方式)。新版本的 CentOS 大約每兩年發行一次,而每個版本的 CentOS 會定期(大概每六個月)更新一次,以便支持新的硬件。這樣,建立一個安全、低維護、穩定、高預測性、高重復性的 Linux 環境。CentOS是Community Enterprise Operating System的縮寫。CentOS 是RHEL(Red Hat Enterprise Linux)源代碼再編譯的產物,而且在RHEL的基礎上修正了不少已知的 Bug ,相對于其他 Linux 發行版,其穩定性值得信賴。

  • Debian:唯一一個沒有商業公司運作,只有社區

    ubuntu mint

    knopix

Debian系列,包括Debian和Ubuntu等。Debian是社區類Linux的典范,是迄今為止最遵循GNU規范的Linux系統。Debian最早由Ian Murdock于1993年創建,分為三個版本分支(branch): stable, testing 和unstable。其中,unstable為最新的測試版本,其中包括最新的軟件包,但是也有相對較多的bug,適合桌面用戶。testing的版本都經過unstable中的測試,相對較為穩定,也支持了不少新技術(比如SMP等)。而stable一般只用于服務器,上面的軟件包大部分都比較過時,但是穩定和安全性都非常的高。Debian最具特色的是apt-get / dpkg包管理方式,其實Redhat的YUM也是在模仿Debian的APT方式,但在二進制文件發行方式中,APT應該是最好的了。Debian的資料也很豐富,有很多支持的社區,有問題求教也有地方可去。Debian是包括Ubuntu在內許多發行版的上游,而Ubuntu又是Linux Mint及其他發行版的上游。Debian在服務器和桌面電腦領域都有著廣泛的應用。Debian是一個純開源計劃并著重在一個關鍵點上,穩定性。它同時也提供了最大的和完整的軟件倉庫給用戶。 
Ubuntu是基于Debian的unstable版本加強而來,可以這么說,Ubuntu就是一個擁有Debian所有的優點,以及自己所加強的優點的近乎完美的 Linux桌面系統。根據選擇的桌面系統不同,有三個版本可供選擇,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的Xubuntu。特點是界面非常友好,容易上手,對硬件的支持非常全面,是最適合做桌面系統的Linux發行版本。

  • Slackware:

    S.u.S.E OpenSUSE SLES

Slackware與其他的發行版本(Red Hat、Debian、Gentoo、SuSE、 Mandriva、Ubuntu等)不同的道路,它力圖成為“UNIX風格”的Linux發行版本。只吸收穩定版本的應用程序,并且缺少其他linux版本中那些為發行版本定制的配置工具。在當今systemd大勢所趨的情況下,Slackware仍然堅持BSD啟動風格。 
SUSELinux原是以Slackware Linux為基礎,并提供完整德文使用界面的產品。1992年 Peter McDonald成立了Softlanding Linux System(SLS)這個發行版。這套發行版包含的軟件非常多,更首次收錄了X Window及TCP/IP等套件。Slackware就是一個基于SLS的發行版。 
SUSE于1992年末創辦,目的是成為UNIX技術公司,專門制為德國人推出量身訂作的SLS/Slackware軟件及 UNIX/Linux說明文件。1994年,他們首次推出了SLS/Slackware的安裝光碟,命名為S.u.S.E. Linux 1.0。其后它綜合了Florian La Roche的Jurix distribution(也是一個基于Slackware的發行版),于1996年推出一個完全自家打造的發行版 – S.u.S.E. Linux 4.2。其后SUSE Linux采用了不少Red Hat Linux的特質。


三、Linux的哲學思想

  • 一切皆文件

    表現之一:硬件設備也通過文件表示 
    例如:終端程序對應的系統文件 
    物理終端:/dev/console 
    虛擬終端:/dev/tty# [1,6] 
    串行終端:/dev/ttyS# 
    偽終端: /dev/pts/#

  • 功能單一

    由眾多功能單一的程序組成,一個程序只做一件事,組合小程序完成復雜任務,以保證Linux內核的高效運行。

  • 避免用戶與系統交互

    Linux開源,且管理權限強大,可自殺。易于以編程的方式實現自動化任務

  • 所有配置文件都是文本文件

    無論什么配置修改都只需修改其配置文件即可,配置文件時文本形式的只需任意一款文本編輯器修改即可。存儲空間存儲的一段流式數據,對數據可以做到按名存取

  • 以倒置樹形結構組織文件

    /:原始起點,代表根目錄


四、Linux命令使用格式

命令的語法通用格式: 
~]# COMMAND OPTIONS ARGUMENTS

  • COMMAND:發起命令時將請求內核將某個二進制程序運行為一個進程,命令本身是一個可執行的程序文件,二進制格式的文件有可能會調用共享庫文件。[遵循ELF格式規范] 
    多數系統命令程序文件都存放在:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin,它們又分為普通命令和管理命令。 
    普通命令:存放在/bin,/usr/bin,/usr/local/bin 
    管理命令:存放在/sbin,/usr/sbin,/usr/local/sbin 
    用到的庫文件都存放在:/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64,它們分為32位和64位的庫文件,32位使用于32位的操作系統,64位使用于64位的操作系統,64位兼容32位,而32不兼容64 
    32位庫:存放在/lib,/usr/lib,/usr/local/lib 
    64位庫:存放在/lib64,/usr/lib64,/usr/local/lib64 
    命令分為兩類: 
    由shell自帶的命令,叫作內嵌命令(builtin) 
    獨立的可執行程序文件,文件名即命令名,叫作外部命令 
    查看命令的內容的類型: 
    file命令:例:~]# file /bin/ls 
    查看命令的類型: 
    type命令: 例:~]# type COMMAND 
    注意:并非所有的命令都有一個在某目錄與之對應的可執行程序文件

  • OPTIONS 選項: 指定命令的運行特性,有兩種表現形式: 
    短選項:-C,例如 ls -l ,-d 注:有的命令選項沒有 – ,同一命令同時使用多個短選項可合并:ls -ld 
    長選項:–word,例如 ls –help,有時候選項也帶參數,例:du -h –max-depth=1 注:長選項不能合并 

  • ARGUMENTS 參數:命令的作用對象,命令對什么生效,例:ls /etc ,作用在/etc 。注:有些命令可以可同時帶多個參數,以空白分隔

ifconfig #顯示和配置網絡信息

   語法:ifconfig [網絡設備] [參數]

  示例:ifconfig -a

ehco #顯示文本

   語法:echo [-ne][字符串]或 echo [–help][–version]

  示例:echo 'xx'

tty #顯示終端機連接標準輸入設備的文件名稱

   語法:tty [-s][–help][–version]

  示例:tty

startx #可進入圖形操作界面

   示例:startx &

export #設置或顯示環境變量

   語法:export [-fnp][變量名稱]=[變量設置值]

  示例:export

pwd #顯示工作目錄

   語法:pwd[–help][–version]

  示例:pwd

history #列出bash保存的所有歷史命令

   語法:history  [選項]

  示例:history  

shutdown #系統關機命令

   語法:shutdown [-cfFhknr][-t 秒數][時間][警告信息]

  示例:shuntdown -r +5

poweroff #關機

   示例:poweroff

reboot #重啟

   示例:reboot    

hwclock #用來查詢和設置硬件時鐘

   示例:hwclock   

date #取一個特定時間的linux時間戳

   示例:date

五、如何在Linux系統上獲取命令的幫助信息,如何劃分man文檔的章節

獲取命令的幫助信息: 
內部命令: help COMMAND 
外部命令:

  • 命令自帶簡要格式的使用幫助 
    ~]# COMMAND –help/-h 

  • 使用手冊: 
    manual 
    位置:/usr/share/man 
    man [man1,man2,man3……….] 不同man下按類型放不同的命令 
    1 – commands 普通的命令 
    2 – system calls 系統調用,如open,write之類的 
    3 – library calls 庫函數,如printf,fread 
    4 – special files 特殊文件,也就是/dev下的各種設備文件 
    5 – file formats and convertions 指文件的格式,比如passwd, 就會說明這個文件中各個字段的含義 
    6 – games for linux 給游戲留的,由各個游戲自己定義 
    7 – macro packages and conventions 附件還有一些變量,比如向environ這種全局變量在這里就有說明 
    8 – system management commands 系統管理用的命令,這些命令只能由root使用 
    9 – 其他

某些命令在多個章節下都有 例如:man passwd ;這個是在man1中的 
man 5 passwd man5中也有。【頻中是這樣,但是我自己在centos7中測試man5中沒有,centos6中有】 
~]# whatis COMMAND 這個能查詢在哪些章節中有 

  • info COMMAND: 
    獲取命令的在線文檔; 

  • 很多應用程序會自帶幫助文檔:/usr/share/doc/APP-VERSION 
    README:程序的相關的信息; 
    INSTALL: 安裝幫助; 
    CHANGES:版本迭代時的改動信息; 

  • 主流發行版官方文檔: 
    http://www.redhat.com/doc 

  • 程序官方的文檔: 
    官方站點上的“Document” 

  • 搜索引擎: 
    google 
    ·keyword filetype:pdf 
    ·keyword site:domain.tld


六、Linux發行版的基礎目錄名稱命名法則及功用規定

獲取命令的幫助信息:

1、命名規則: 
(1)嚴格區分字符大小寫 
(2)目錄也是文件,在同一路徑下,兩個文件不能同名 
(3)支持使用除/以外的任意字符 
(4)最長不能超過255個字符 
(5)以 . 開頭的文件為隱藏文件 
. 當前目錄 
..當前目錄上一級

2、基礎目錄及功用:

/bin:所有用戶可用的基本命令程序文件 
/sbin:供系統管理使用的工具程序 
/boot:引導加載器必須用到的各種靜態文件:kernel,initramfs(initrd),grub等 
/dev:存儲特殊文件或設備文件 
/etc:系統程序的配置文件,只能為靜態的,不能為二進制 
/home:普通用戶的家目錄的集中位置,可獨立掛載分區 
/root:管理員的家目錄 
/lib:為系統啟動或根文件系統上的應用程序(/bin,/sbin等)提供共享庫,以及為內核提供內核模塊 
/lib64:64位系統特有的存放64位共享庫的路徑 
/media:便攜式設備掛載點,cdrom,floppy等 
/mnt:其他文件系統的臨時掛載點 
/opt:附加應用程序的安裝位置,可選路徑 
/srv:當前主機為服務提供的數據 
/tmp:為那些會產生臨時文件的程序提供的用于存儲臨時文件的目錄,可供所有用戶執行寫入操作,有特殊權限 
/usr:全局共享的只讀數據路徑

  • lib,lib64

  • include:c程序頭文件

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

  • local:另一個層級目錄

  • X11R6:x-window程序的安裝位置

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

/usr/local:讓系統管理員安裝本地應用程序,也通常用于安裝第三方程序 
/var:存儲常發生變化的數據的目錄 
/proc:基于內存的虛擬文件系統,用于為內核及進程存儲其相關信息,它們多為內核參數,例:net.ipv4.ip_forward,虛擬為net/ipv4/ip_forward,存儲于/proc/sys,因此其完整路徑為/proc/sys/net/ipv4/ip_forward 
/sys:sysfs虛擬文件系統提供了一種比proc更為理想的訪問內核數據的途徑,其主要作用在于為管理Linux設備提供一種統一模型的接口

原創文章,作者:Night's Watch,如若轉載,請注明出處:http://www.www58058.com/45787

(0)
Night's WatchNight's Watch
上一篇 2016-09-19
下一篇 2016-09-19

相關推薦

  • 創建一個簡易的Linux

      目標:   為CentOS 6添加一塊新硬件,提供兩個主分區;    (1) 為硬盤新建兩個主分區;并為其安裝grub;    (2) 為硬盤的第一個主分區提供內核和ramdisk文件; 為第二個 分區提供rootfs;    (3) 為rootfs提供bash、ls、cat程序及所依賴的庫文件;    (4) 為grub提供配置文件;    …

    Linux干貨 2016-12-30
  • 基礎腳本編程練習題

        Shell腳本其實就是以一系列命令組合起來的文本文件,這些命令組合起來完成一個或者一項功能。因為Shell似乎是各UNIX系統之間通用的功能,并且經過POSIX(表示可移植操作系統接口Portable Operating System Interface of UNIX,縮寫為 POSIX)的標準化。因此,Sh…

    2017-08-05
  • bash之運算、測試、if語句及for循環語句

      一、邏輯運算         布爾運算:真、假         與運算:                 真 && 真 = 真       …

    Linux干貨 2015-05-25
  • 遠程使用sshd連接不上服務器解決方案

    前些天在學習linux的時候CRT怎么也連接不上我的linux服務器了,整了半天,請教了一些高人才把這個問題解決,現在整理一下我的解決方案。 大家可以看到配置都正確但就是連不上。 通過查看得出原來是22端口拒絕~! 那么我就去查看22端口有沒有開啟 大家可以看到我的22端口也就是sshd服務并沒有開啟。 我去開啟我的sshd服務器,但是又出現了問題~! 隨后…

    Linux干貨 2016-03-28
  • 三種方案實現tomcat反代服務

    要求: 分別實現這三種架構:    1、nginx + tomcat cluster    2、httpd(proxy_http_module)+tomcat cluster    3、httpd(proxy_ajp_module)+tomcat cluster;   &nbsp…

    2017-07-03
  • 系統管理之系統安裝及自動化安裝

    概述:     上篇我們討論了下關于Linux系統的啟動流程和grub相關的內容,本篇將介紹一下Linux的系統安裝相關的內容,具體分為:     1、系統安裝程序anaconda的介紹     2、kickstart文件的介紹 &nbsp…

    Linux干貨 2016-09-16

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-09-20 10:39

    寫的很好,排版也很漂亮,加油

欧美性久久久久