Linux基礎入門

Linux基礎入門

1、Linux發行版及哲學思想

1.1 Linux發行版

         Linux發行版(Linux Distribution,也被叫做GUN/Linux發行版),為一般用戶預先集成好的Linux操作系統及各種應用軟件。Linux發行版通常包含了包括桌面環境、辦公包、媒體播放器、數據庫等應用軟件。這些操作系統通常由Linux內核、以及來自GUN計劃的大量的函數庫,和基于X Window的圖形界面。有些發行版考慮到容量大小而沒有預裝X Window,而使用更加輕量級的軟件。

       目前有超過300Linux發行版,大部分正處于活躍的開發中,不斷的改進。

                                              基于打包方式.jpg

    1.2 linux哲學思想

      1.2.1 一切皆文件

               把幾乎所有資源,包括硬件設備都組織為文件格式;

      1.2.2 由眾多單一目的小程序組成;一個程序只實現一個功能,而且要做好

               組合小程序完成復雜任務;

      1.2.3 盡量避免跟用戶交互

               目標:實現腳本編程,以自動完成某些功能;

      1.2.4 使用純文本文件保存配置信息

               目標:一款使用的文本編輯器即能完成系統配置工作;

2、Linux獲取命令幫助詳解

2.1 Linux命令的分類(Shell的內部命令和外部命令)

     Linux命令的執行必須依賴于Shell命令解釋器。Shell實際上是在Linux系統中運行的一種特殊程序,它位于操作系統內核與用戶之間,負責接受用戶輸入的命令并進行解釋,將需要執行的操作傳遞給系統內核執行,Shell在用戶和內核之間充當了一個“翻譯官”的角色。當用戶登陸到Linux系統時,會自動加載一個Shell程序,以便給用戶提供可以輸入命令的操作環境。

Bash是Linux系統中默認使用的Shell程序,文件位于/bin/bash。根據Linux命令與Shell程序的關系,一般分為以下兩種類型:

內部命令:指的是集成于Shell解釋器程序(如Bash)內部的一些特殊指令,也成為內建(Built-IN)指令。內部命令屬于Shell的一部分,所以并沒有單獨對應的系統文件,只要Shell解釋器被運行,內部指令也就自動載入內存了,用戶可以直接使用。內部命令無需從硬盤中重新讀取文件,因此執行效率更高。

外部命令:指的是Linux系統中能夠完成特定功能的腳本文件或二進制程序,每個外部命令對應了系統中的一個文件,是屬于Shell解釋器程序之外的命令,所以稱為外部命令。Linux系統必須知道外部命令對應的文件位置,才能夠由Shell加載并執行。

 

 

區別外部命令內部命令的方法:

1、使用 type 命令

$ type cd

cd is a shell builtin

$ type cat

cat is /bin/cat

2、使用whereis或者which

    2.2 內部命令獲取幫助

     # help  COMMAND

    2.3 外部命令獲取幫助

2.3.1 # COMMAND –help

2.3.2 使用手冊(manual)

                      # man COMMAND

2.3.3 信息頁

                      #info COMMAND

2.3.4 程序自身的幫助文檔

                      程序自身的幫助文檔一般位于/usr/share/doc/COMMAND-VERSION

2.3.5 程序官方文檔

2.3.6 發行版的官方文檔

                      以redhat為例,其發行版的官方文檔:http://www.redhat.com/docs

2.3.7 Google

3Linux常用的系統基礎命令

3.1目錄相關的命令

             cd: 切換目錄

~:用戶的主目錄

                     cd cd ~: 回當前用戶的主目錄

                     cd ~USERNAME: 切換至指定用戶的主目錄

                     cd -: 在上一個目錄和當前目錄之間來回切換

                     .

                     ..

                     相關的環境變量:

                            PWD:保存了當前目錄路徑;

                            OLDPWD:上一次所在目錄路徑;

             pwd: 顯示當前目錄

             ls: list顯示指定路徑下的文件列表;

                            ls [OPTION]… [DIR]…

                            -a, –all: 顯示所有文件,包括隱藏文件;

                            -l: 長格式

                                   -rw-r–r– 1 root root 44800 Aug 14 14:32 install.log

                                          -rw-r–r–:

                                                 最左側的第一位:文件類型

                                                        -, d, l, b, c, p, s

                                                 后面的9位:訪問權限,perm

                                          1:文件被硬鏈接的次數;

                                          root: 文件的owner

                                          root: 文件的group

                                          44800:文件的size

                                          Aug 14 14:32 : 文件的最近一次被修改的時間

                                          install.log 文件名

                            -h, –human-readable:單位換算

                            -d: 顯示目錄自身的相關屬性;通常要與-l一起使用;

                            -r, –reverse: 逆序顯示

                            -R, –recursive: 遞歸

              stat /PATH/TO/SOMEFILE:獲取指定文件的元數據

3.2文件查看命令:cat, tac

                            cat [OPTION]… [FILE]…

                            -E: 顯示行結束符$

                            -n: 對顯示出的每一行進行編號

3.3文件內容類型查看命令:file

                            file  /PATH/TO/SOMEWHERE

3.4系統管理類命令:

                   關機:

                     halt, poweroff, shutdown, init 0

              重啟:

                     reboot, shutdown, init 6

              跟用戶登錄相關:

                     who, whoami, w

3.5回顯命令:echo

                            -n: 禁止自動添加換行符號;

                     -e: 允許使用轉義符;

                            \n: 換行

                            \t: 制表符

                     echo "$VAR_NAME": 變量會替換,雙引號表弱引用

                     echo '$VAR_NAME': 變量不會替換,強引用

3.6 which:顯示命令對應的程序文件路徑

                            which [OPTION] COMMAND

                            –skip-alias:禁止顯示別名

                     whatis: whatis數據庫中搜索單詞

4、Linux 文件系統基礎

4.1 首相來了解下什么是文件系統

          計算機的文件系統是一種存儲和組織計算機數據的方法。從系統角度來啦嗎,文件系統對文件存儲設備的空間進行組織和分配,負責文件存儲并對存入的文件進行保護和檢索的系統。

        文件系統不僅包含著文件中的數據而且還有文件系統的結構,所有Linux用戶和程序看到的文件、目錄、軟連接及文件保護信息等都存儲在其中。

        不同Linux發行版之間的文件系統差別很少,主要表現在系統管理的特色工具以及軟件包管理方式的不同,文件目錄的基本結構都是一樣的。

 

文件系統有多種類型:

?   ext2 : 早期Linux中常用的文件系統。

?   ext3 : ext2的升級版,帶日志功能。

?   RAMFS : 內存文件系統,速度很快。

?   Iso9660 : 光盤或光盤鏡像。

?   NFS : 網絡文件系統,由SUN發明,主要用于遠程文件共享。

?   MS-DOS : MS-DOS文件系統。

?   FAT : Windows XP操作系統采用的文件系統。

?   NTFS : Windows NT/XP操作系統采用的文件系統。

4.2 Linux發行版的常見目錄

目錄

功能

/

根目錄,只能包含目錄,不能包含具體文件。

/bin

供所有用戶使用的基本命令;不能關聯至獨立分區,OS啟動即會用到的程序

/sbin

管理類的基本命令,不能關聯之獨立分區,OS啟動即會用到的程序

/lib

基本共享庫文件,以及內核模塊文件(/lib/modules)

/lib64

專用于x86_64系統上的輔助共享文件存放位置

/etc

配置文件目錄(純文本文件)

/home/username

普通用戶家目錄

/root

管理員的家目錄

/media

便攜式移動設備掛載點(cdrom|usb)

/mnt

臨時文件系統掛載點

/dev

設備文件及特殊文件存儲位置(b: block device隨機訪問)(c:character   device線性訪問)

/opt

第三方應用程序的安裝位置

/srv

系統上運行的服務用到的數據

/tmp

臨時文件存儲位置

/usr

Universal shared, read-only data

/usr/bin

保證系統擁有完整功能而提供的應用程序

/usr/sbin

非必要的二進制標準系統文件

/usr/lib

用于編程和包的庫

/usr/lib64

/usr/include

C程序的頭文件(header files)

/usr/share

結構化獨立的數據,例如doc,man

/user/local

第三方應用程序的安裝位置

/var

Variable data files

/var/cache

應用程序緩存數據目錄

/var/lib

應用程序狀態信息數據

/var/local

專用于為/usr/local下的應用程序存儲可變數據

/var/lock

鎖文件

/var/log

日志目錄及文件

/var/opt

專用于為/opt下的應用程序存儲可變數據

/var/run

運行中的進程相關的數據;通常用于存儲進程的pid文件

/var/tmp

保存系統兩次重啟之間產生的臨時數據

/proc

用于輸出內核與進程信息相關的虛擬文件系統

/sys

用于輸出當前系統上硬件設備相關信息的虛擬文件系統

/selinux

Security enhanced linux,selinux相關的安全策列等信息存儲位置0

 

4.3 Linux應用程序的常見組成部分

?   二進制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin

?   庫文件:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64

?   配置文件:/etc, /etc/DIRECTORY, /usr/local/etc

?   幫助文件:/usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc

4.4 Linux下的文件類型

?   – (f):普通文件;

?   d: 目錄文件;

?   b: 塊設備;

?   c: 字符設備;

?   l: 符號鏈接文件;

?   p: 管道文件;

?   s: 套接字文件;socket;

原創文章,作者:Daniel-W,如若轉載,請注明出處:http://www.www58058.com/11695

(1)
Daniel-WDaniel-W
上一篇 2016-02-28 12:03
下一篇 2016-02-28 12:08

相關推薦

  • 分布式文件系統之fastDFS部署

    fastDFS下載地址:https://github.com/happyfish100/fastdfs部署參考文檔:http://joelhy.github.io/2015/01/27/FastDFS-v5-06-deploy/ 我們接下來來部署fastDFS 部署結構: 192.168.42.150 node1 [Tracker]192.168.42.15…

    Linux干貨 2017-06-16
  • 題外:自制小linux

    自制小linux 系統 制作環境的概述 首先你的有VMware的虛擬機軟件,其次安裝了centos6/centos7的linux系統 而且你需要寫一個復制相關命令以及依賴庫文件的的腳本(主要是為了省時間,腳本寫法會在后面備注)準備好以上環境,便可以制作一個小linux系統了,具體步驟如下 1)  在虛擬機設置中,在原有基礎上在掛載一個20G大小的硬…

    2017-04-04
  • bash腳本變量的使用

    bash腳本的變量使用詳解 變量的類型包括整數、字符串和數組,但在bash腳本編程中不需要指定類型就可以直接賦值,默認均為字符型,其參與運算會自動進行隱式類型轉換。 變量的賦值方式為:name='value',其中“=”兩邊一定不能有空格,如果變量值中包含有空格則需要使用引號引起來,需要注意的是強引用和弱引用的區分。此外變量的賦值也可以引…

    Linux干貨 2016-08-15
  • Nginx/LVS/HAProxy負載均衡軟件優缺點總結

    Nginx/LVS/HAProxy簡單介紹:   Nginx:專為性能優化而開發,性能是其最重要的考量,實現上非常注重效率 。它支持內核Poll模型,能經受高負載的考驗,有報告表明能支持高達 50,000個并發連接數。 LVS:使用Linux內核集群實現一個高性能、高可用的負載均衡服務器,具有很好的可伸縮性(Scalability)、可靠性(Rel…

    2017-06-24
  • 教你使用rpm、yum、編譯等方式安裝軟件

    一、什么是包管理器?     很多人都不知道包管理器的概念,首先我們要了解軟件是如何運行的,我們這里介紹C程序如何實現從代碼到執行程序的過程。         程序源代碼–> 預處理–> 編譯&#8211…

    Linux干貨 2016-03-09
  • Linux基礎:計算機的組成及其功能

    1. 描述計算機的組成及其功能。
    2. 按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別。
    3. 描述Linux的哲學思想,按照自己的理解對其解釋性描述。
    4. 說明Linux系統上命令的使用格式;詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date等命令使用,配合相應實例闡述。
    5. 如何獲取幫助信息,描述man文檔章節劃分。
    6. 羅列發行版基礎目錄名稱命名法則及功用規定。

    2017-12-07

評論列表(2條)

  • stanley
    stanley 2016-02-28 12:06

    文章寫的不錯。仍有提升空間,可參考置頂推薦的文章

    • Daniel-W
      Daniel-W 2016-02-28 15:52

      @stanleythanks~

欧美性久久久久