管中窺豹–Linux基礎簡介

Linux簡介

linux

計算機的組成及其功能

  • 計算機的主要組成部分有硬件和軟件;
    • 硬件主要包含的有:處理器、控制器、I/O設備,輸入設備,輸出設備;

      主要負責提供硬件性支撐(功能實現的基礎設備)

    • 軟件主要包含的有:操作系統及應用程序;

      主要負責終端用戶實現相關操作處理及展示過程

各系列Linux的發行版,各發行版之間的聯系與區別

  • Linux,最早由Linus Benedict Torvalds在1991年開始編寫。在這之前,Richard Stallman創建了Free Software Foundation(FSF)組織以及GNU項目,并不斷的編寫創建GNU程序(此類程序的許可方式均為GPL: General Public License)。在不斷的有杰出的程序員和開發者加入到GNU組織中后,便造就了今天我們所看到的Linux,或稱GNU/Linux。
  • Linux的發行版本可以大體分為兩類,一類是商業公司維護的發行版本,一類是社區組織維護的發行版本
  • 前者以著名的Redhat(RHEL)為代表,后者以Debian為代表。
  • Linux 發行版:
    • Redhat,應該稱為Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所謂的Redhat Advance Server,收費版本)、Fedora Core(由原來的Redhat桌面版本發展而來,免費版本)、CentOS(RHEL的社區克隆版本,免費)。Redhat應該說是在國內使用人群最多的Linux版本,甚至有人將Redhat等同于Linux,而有些老鳥更是只用這一個版本的Linux。所以這個版本的特點就是使用人群數量大,資料非常多,言下之意就是如果你有什么不明白的地方,很容易找到人來問,而且網上的一般Linux教程都是以Redhat為例來講解的。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分發方式是編譯好的二進制文件。穩定性方面RHEL和CentOS的穩定性非常好,適合于服務器使用,但是Fedora Core的穩定性較差,最好只用于桌面應用。
    • Debian,或者稱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的資 料也很豐富,有很多支持的社區,有問題求教也有地方可去:)
    • Ubuntu,嚴格來說不能算一個獨立的發行版本,Ubuntu是基于Debian的unstable版本加強而來,可以這么說,Ubuntu就是 一個擁有Debian所有的優點,以及自己所加強的優點的近乎完美的 Linux桌面系統。根據選擇的桌面系統不同,有三個版本可供選擇,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的 Xubuntu。特點是界面非常友好,容易上手,對硬件的支持非常全面,是最適合做桌面系統的Linux發行版本。
    • Gentoo,偉大的Gentoo是Linux世界最年輕的發行版本,正因為年輕,所以能吸取在她之前的所有發行版本的優點,這也是Gentoo 被稱為最完美的Linux發行版本的原因之一。Gentoo最初由Daniel Robbins(FreeBSD的開發者之一)創建,首個穩定版本發布于2002年。由于開發者對FreeBSD的熟識,所以Gentoo擁有媲美 FreeBSD的廣受美譽的ports系統 ——Portage包管理系統。不同于APT和YUM等二進制文件分發的包管理系統,Portage是基于源代碼分發的,必須編譯后才能運行,對于大型軟 件而言比較慢,不過正因為所有軟件都是在本地機器編譯的,在經過各種定制的編譯參數優化后,能將機器的硬件性能發揮到極致。Gentoo是所有Linux 發行版本里安裝最復雜的,但是又是安裝完成后最便于管理的版本,也是在相同硬件環境下運行最快的版本。
    • FreeBSD,是一個自由的、免費的類UNIX操作系統(Unix-like),經由BSD UNIX由AT&T UNIX衍生而來,FreeBSD由于法律原因不能稱為UNIX,但由于直接衍生于BSD UNIX,并且一些原來BSD UNIX的開發者后來轉到FreeBSD的開發,使得FreeBSD在內部結構和系統API上和UNIX有很大的兼容性。由于FreeBSD寬松的法律條款,其代碼被好多其他系統借鑒包括蘋果公司的MacOS X,正因此由于MacOS X的UNIX兼容性,使得MacOS X獲得了UNIX商標認證。它并不是一個Linux系統!但FreeBSD與Linux的用戶群有相當一部分是重合的,二者支持的硬件環境也比較一致,所采用的軟件也比較類似,所以可以將FreeBSD視為一個Linux版本來比較。FreeBSD擁有兩個分支: stable和current。顧名思義,stable是穩定版,而 current則是添加了新技術的測試版。FreeBSD采用Ports包管理系統,與Gentoo類似,基于源代碼分發,必須在本地機器編后后才能運行,但是Ports系統沒有Portage系統使用簡便,使用起來稍微復雜一些。FreeBSD的最大特點就是穩定和高效,是作為服務器操作系統的最佳選 擇,但對硬件的支持沒有Linux完備,所以并不適合作為桌面系統。
    • SUSE Linux,簡稱”SuSE”,發音為/zuz/,意思為”Software- und System-Entwicklung”,這是一句德文,英文為”Software and system development”?,F在這家公司的名字再度更改成SUSE Linux。它原是德國的 SuSE Linux AG公司發行維護的Linux發行版,是屬于此公司的注冊商標。2004年這家公司被Novell公司收購。廣義上SUSE Linux是一系列Linux發行版,第一個版本出現在1994年初,SUSE現存的最古老的商業發行版之一,起源于德國,而SUSE Linux 針對個人用戶。SUSE Linux原是以Slackware Linux為基礎,并提供完整德文使用界面的產品。1992年 Peter McDonald成立了Softlanding Linux System(SLS)這個發行版。這套發行版包含的軟件非常多,更首次收錄了X Window及TCP/IP等套件。Slackware就是一個基于SLS的發行版。
    • Mandriva,是目前全球最優秀的Linux發行版之一,穩居于linux排行榜第一梯隊。2005年之前穩居linux排行榜NO.1。它是目前最易用的linux發行版,也是眾多國際級linux發行版中唯一一個默認即支持中文環境的linux。它是法國的Mandriva公司(前身為Mandrake公司)開發的Linux發行版。Mandriva公司現在仍然是歐洲最大的Linux廠商,Mandriva Linux的前身為著名的Mandrake Linux。Mandriva(Mandrake)項目是世界上第一個為非技術類用戶設計的易于使用、安裝和管理的linux版本。Mandriva(Mandrake Linux)早期方便的字體安裝工具和默認的中文支持,為Linux普及做出了很大的貢獻。現在的Mandriva是由mandrake和Conectiva結合發展而來的。
    • Slackware,是由Patrick Volkerding開發的GNU/Linux發行版。與很多其他的發行版不同,它堅持KISS(Keep It Simple Stupid)的原則,就是說沒有任何配置系統的圖形界面工具。一開始,配置系統會有一些困難,但是更有經驗的用戶會喜歡這種方式的透明性和靈活性。 Slackware Linux的另一個突出的特性也符合KISS原則:Slackware沒有如RPM之類的成熟的軟件包管理器。Slackware的軟件包都是通常的tgz(tar/gzip)格式文件再加上安裝腳本。Tgz對于有經驗的用戶來說,比RPM更為強大,并避免了RPM之類管理器的依賴性問題。Slackware與其他的發行版本(Red Hat、Debian、Gentoo、SuSE、 Mandriva、Ubuntu等)不同的道路,它力圖成為“UNIX風格”的Linux發行版本。只吸收穩定版本的應用程序,并且缺少其他linux版本中那些為發行版本定制的配置工具。
         **以上內容摘選自網絡,做學習借鑒用**

Linux的哲學思想,簡單解釋性描述

  • 1、一切皆文件:
    • 把幾乎所有資源統統抽象為文件形式;包括硬件設備,甚至通信接口等;
  • 2、由眾多功能單一的程序組成;一個程序只做一件事,并且做好;
    • 組合小程序完成復雜任務;
  • 3、盡量避免跟用戶交互;
    • 目地:易于以編程的方式實現自動化任務;
  • 4、使用文本文件保存配置信息;

Linux系統上命令的使用格式;常見命令的使用介紹及示例

命令格式如下

~]# COMMAND OPTIONS ARGUMENTS    CMIMAND    -->命令    OPTIONS    -->條件    ARGUMENTS  -->參數

常見命令介紹

ifconfig

  • 介紹:用于配置網絡接口
    • 注:原生IOS安裝后的CentOS是不帶ifconfig功能的,需要運行如下命令來安裝
         ~]# yum install net-tools    選項:      -a     顯示當前所有可獲取的網絡接口信息,包括狀態為down的接口      -s     已短列表方式顯示(類似 netstat -i)      -v     be more verbose for some error conditions
  • 應用舉例:

    ifconfig //查看網絡接口信息

    br1: flags=4163<up,broadcast,running,multicast> mtu 1500</up,broadcast,running,multicast>

       inet 10.1.1.1  netmask 255.255.255.0  broadcast 10.1.1.255
       inet6 fe80::20c:29ff:fe03:b36f  prefixlen 64  scopeid 0x20<link>
       ether 00:0c:29:03:b3:6f  txqueuelen 0  (Ethernet)
       RX packets 0  bytes 0 (0.0 B)
       RX errors 0  dropped 0  overruns 0  frame 0
       TX packets 29  bytes 4076 (3.9 KiB)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    br2: flags=4163<up,broadcast,running,multicast> mtu 1500</up,broadcast,running,multicast>

       inet 10.2.1.1  netmask 255.255.255.0  broadcast 10.2.1.255
       inet6 fe80::20c:29ff:fe03:b379  prefixlen 64  scopeid 0x20<link>
       ether 00:0c:29:03:b3:79  txqueuelen 0  (Ethernet)
       RX packets 0  bytes 0 (0.0 B)
       RX errors 0  dropped 0  overruns 0  frame 0
       TX packets 25  bytes 3584 (3.5 KiB)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    ifconfig -s //已列表方式查看網絡接口信息

    Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg br1 1500 0 0 0 0 29 0 0 0 BMRU br2 1500 0 0 0 0 25 0 0 0 BMRU br3 1500 0 0 0 0 25 0 0 0 BMRU eno16777 1500 614 0 0 0 235 0 0 0 BMRU eno33554 1500 0 0 0 0 29 0 0 0 BMRU eno50332 1500 0 0 0 0 25 0 0 0 BMRU eno67109 1500 0 0 0 0 25 0 0 0 BMRU lo 65536 4 0 0 0 4 0 0 0 LRU

    ifconfig br1 10.4.1.1 netmask 255.255.255.0 //設置網絡接口br1的IP地址,臨時設置,重啟失效

    ifconfig br1 //查看更改后br1網絡接口的IP地址

    br1: flags=4163<up,broadcast,running,multicast> mtu 1500</up,broadcast,running,multicast>

       inet 10.4.1.1  netmask 255.255.255.0  broadcast 10.4.1.255         
       ether 00:0c:29:03:b3:6f  txqueuelen 0  (Ethernet)                    
       RX packets 0  bytes 0 (0.0 B)                      
       RX errors 0  dropped 0  overruns 0  frame 0                    
       TX packets 43  bytes 7099 (6.9 KiB)                     
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

echo

  • 介紹:回顯
  • 應用舉例:
      echo [SHORT-OPTION]... [STRING]...    
          -n: 不進行換行;
          -e:讓轉義符生效;
          \n:換行
          \t:制表符
    
          STRING可以使用引號,單引號和雙引號均可用;
          單引號:強引用,變量引用不執行替換;
          ~]# echo '$SHELL'               
          雙引號:弱引用,變量引用會被替換;
          ~]# echo "$SHELL"
      注意:變量引用的正規符號    
          ${name}

tty

  • 介紹:查看終端設備
  • 應用舉例:
      ~]# tty
      /dev/pts/0

startx

  • 介紹:啟動GUI
  • 應用舉例:
      ~]# startx
      在虛擬終端控制臺顯示圖像界面

export

  • 介紹:環境變量
  • 應用舉例:
      變量賦值
        (1) export name=value
        (2) name=value
            export name
        (3) declare -x name=value
        (4) name=value
            declare -x name
      變量引用
            ${name}, $name
      只讀變量:
        (1) declare -r name
        (2) readonly name

pwd

  • 介紹:顯示工作目錄
  • 應用舉例:
      ~]# pwd
      /root
      相關的環境變量
      $PWD:當前工作目錄
      $OLDPWD:上一次的工作目錄

history

  • 介紹:命令歷史
  • 應用舉例:
      ~]# history
          定制history的功能,可通過環境變量實現:
          HISTSIZE:shell進程可保留的命令歷史的條數;
          HISTFILE:持久保存命令歷史的文件;
              .bash_history
          HISTFILESIZE:命令歷史文件的大?。?
    
          命令用法:
              history [-c] [-d 偏移量] [n] 
              或 history -anrw [文件名] 
              或 history -ps 參數 [參數...]
    
              -c: 清空命令歷史;
              -d offset:刪除指定命令歷史
              -r: 從文件讀取命令歷史至歷史列表中;
              -w:把歷史列表中的命令追加至歷史文件中;
              history #:顯示最近的#條命令;

shutdown

  • 介紹:關機或重啟
  • 應用舉例:
      shutdown [OPTIONS...] [TIME] [WALL...]
          OPTIONS:
              -h: halt
              -r:reboot
              -c:cancel
    
          TIME:
              now
              hh:mm
              +m
                  +0

poweroff

  • 介紹:關機
  • 應用舉例:
       ~]# systemctl poweroff

reboot

  • 介紹:重啟
  • 應用舉例:
      ~]# systemctl reboot

hwclock

  • 介紹:硬件時鐘
  • 應用舉例:
      ~]# hwclock
      Tue 08 May 2018 01:19:07 PM EDT  -0.773616 seconds
      -s, --hctosys:以硬件為準,把系統調整為與硬件時間相同;
      -w, --systohc:以系統為準,把硬件時間調整為與系統時鐘相同;

date

  • 介紹:系統時鐘
    • 應用舉例:

      顯示日期時間:date [OPTION]… [+FORMAT]

         FORMAT:格式符
         %F
         %T
         %Y
         %m
         %d
         %H
         %M
         %S
         %s: 從1970年1月1號(unix元年)0點0分0秒到命令執行那一刻經過的秒數;
         ...
      
         設定日期時間:date [MMDDhhmm[[CC]YY][.ss]]

Linux系統上獲取命令的幫助信息方法

  • (1) 命令自帶簡要格式的使用幫助 COMMAND –help
  • (2) 使用手冊:manual
    • 位置:/usr/share/man
    • 命令規范如下
        # man COMMAND``
      
        man庫章節描述
        man1:用戶命令;
        man2:系統調用;
        man3:C庫調用;
        man4:設備文件及特殊文件;
        man5:文件格式;(配置文件格式)
        man6:游戲使用幫助;
        man7:雜項;
        man8:管理工具及守護進程;
  • (3) info COMMAND
     獲取命令的在線文檔;
  • (4) 很多應用程序會自帶幫助文檔:
      /usr/share/doc/APP-VERSION 
      README:程序的相關的信息;
      INSTALL: 安裝幫助;
      CHANGES:版本迭代時的改動信息;
  • (5) 主流發行版官方文檔
     [http://www.redhat.com/doc](http://www.redhat.com/doc)
  • (6) 程序官方的文檔:
     官方站點上的“Document”
  • (7) 搜索引擎
      google
      google兩個小技巧
      1、keyword filetype:pdf     -->keyword后跟查找條件:在結果中篩選指定條件的結果顯示
      2、keyword site:domain.tld  -->keyword后跟指定鏈接:在指定鏈接中查找指定內容

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

  • /bin:所有用戶可用的基本命令程序文件;
  • /sbin:供系統管理使用的工具程序;
  • /boot:引導加載器必須用到的各靜態文件:kernel, initramfs(initrd), grub等;
  • /dev:存儲特殊文件或設備文件;

    設備有兩種類型:字符設備(線性設備)、塊設備(隨機設備);

  • /etc:系統程序的配置文件,只能為靜態;
  • /home:普通的家目錄的集中位置;一般每個普通用戶的家目錄默認為此目錄下與用戶名同名的子目錄,/home/USERNAME;
  • /root:管理員的家目錄;可選;
  • /lib:為系統啟動或根文件系統上的應用程序(/bin, /sbin等)提供共享庫,以及為內核提供內核模塊

    libc.so.:動態鏈接的C庫; ld:運行時鏈接器/加載器; modules:用于存儲內核模塊的目錄;

  • /lib64:64位系統特有的存放64位共享庫的路徑;
  • /media:便攜式設備掛載點,cdrom, floppy等;
  • /mnt:其它文件系統的臨時掛載點;
  • /opt:附加應用程序的安裝位置;可選路徑;
  • /srv:當前主機為服務提供的數據;
  • /tmp:為那些會產生臨時文件的程序提供的用于存儲臨時文件的目錄;可供所用戶執行寫入操作;有特殊權限;
  • /usr:usr Hierarchy,全局共享的只讀數據路徑;

    bin, sbin lib, lib64 include:C程序頭文件; share:命令手冊頁和自帶文檔等架構特有的文件的存儲位置 local:另一個層級目錄; X11R6:X-Window程序的安裝位置 src:程序源碼文件的存儲位置

  • /usr/local:Local hierarchy,讓系統管理員安裝本地應用程序;也通常用于安裝第三方程序;
  • /var:/var Hierarchy,存儲常發生變化的數據的目錄;

    cache Application cache data lib Variable state information local Variable data for /usr/local lock Lock files log Log files and directories opt Variable data for /opt run Data relevant to running processes spool Application spool data tmp Temporary files preserved between system reboots

  • /proc:基于內存的虛擬文件系統,用于為內核及進程存儲其相關信息;它們多為內核參數,例如net.ipv4.ip_forward, 虛擬為net/ipv4/ip_forward, 存儲于/proc/sys/, 因此其完整路徑為/proc/sys/net/ipv4/ip_forward;
  • /sys:sysfs虛擬文件系統提供了一種比proc更為理想的訪問內核數據的途徑;其主要作用在于為管理Linux設備提供一種統一模型的的接口;

    【名稱命名法則及功用規定參考鏈接】https://www.ibm.com/developerworks/cn/linux/l-cn-sysfs/

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/97841

(1)
瘋狂的青春瘋狂的青春
上一篇 2018-05-08
下一篇 2018-05-08

相關推薦

  • 網絡基礎

    網絡基礎

    2018-05-01
  • 華為交換機配置

    示例設備華為s5700S-28P-LI-AC 用戶視圖<HUAWEI>:默認登錄 系統視圖[HUAWEI]:system-view 接口視圖[HUAWEI-GigabitEthernetX/Y/Z]:interface gigabitethernet X/Y/Z X/Y/Z為需要配置的接口的編號,分別對應“槽位號/子卡號/接口序號” 路由協議視圖…

    Linux筆記 2018-06-07
  • sell 進階

    刪除shell函數:命令格式:unsrt function_name 創建函數:例 function func2 { echo fun2;}   fork ?炸彈;:(){ :|&};: 腳本: cat ?Bomb.sh #!/bin/bash ./$0./$0& 信號捕捉 trap ‘ehcho trap 15&#82…

    2018-05-10
  • 對正則表達式,VIM的基本命令的操作,SHELL編程的基本格式等的一些見解。

    第一 正則表達式,第二 VIM的具體適應,第三 shell編程的基本格式跟規范!

    Linux筆記 2018-04-08
  • Linux基礎知識

    一:用戶登錄 root用戶:管理員賬戶,也被稱為超級用戶,root擁有對Linux系統的所有權限,甚至可以把自己殺死(rm -rf /*),除非必須,一般不用root用戶登錄系統 普通用戶:權限受到限制,只可以對自己有權限的文件進行操作 二:終端(terminal) 1.設備終端 鍵盤鼠標顯示器 2.物理終端( /dev/console ) 控制臺conso…

    2018-03-29
  • 課堂筆記(6)

    筆記

    Linux筆記 2018-04-08

評論列表(1條)

  • 馬哥教育
    馬哥教育 2018-05-16 20:25

    總結的很詳細。贊。

欧美性久久久久