Linux學習-2019

你都大三了,對Linux還不熟練?

OS都考了95分,還不會Linux?丟臉


Linux 英文解釋爲 Linux is not Unix。

針對的是Linux服務器方面的知識,適合從事運維或後端開發的人員閱讀。

 

1、Linux簡介

Linux內核最初只是由芬蘭人李納斯·託瓦茲(Linus Torvalds)在赫爾辛基大學上學時出於個人愛好而編寫的。

Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。

Linux能運行主要的UNIX工具軟件、應用程序和網絡協議。它支持32位和64位硬件。Linux繼承了Unix以網絡爲核心的設計思想,是一個性能穩定的多用戶網絡操作系統。

較知名的發行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。

今天各種場合都有使用各種Linux發行版,從嵌入式設備到超級計算機,並且在服務器領域確定了地位,通常服務器使用LAMP(Linux + Apache + MySQL + PHP)或LNMP(Linux + Nginx+ MySQL + PHP)組合。

安裝教程:http://www.runoob.com/linux/linux-install.html

 

2、Linux啓動

  • 內核的引導
  • 運行 init
  • 系統初始化
  • 建立終端 
  • 用戶登錄系統

內核引導

當計算機打開電源後,首先是BIOS開機自檢,按照BIOS中設置的啓動設備(通常是硬盤)來啓動。

操作系統接管硬件以後,首先讀入 /boot 目錄下的內核文件。


運行init

init 進程是系統所有進程的起點,你可以把它比擬成系統所有進程的老祖宗,沒有這個進程,系統中任何進程都不會啓動。

init 程序首先是需要讀取配置文件 /etc/inittab。

 

運行級別

許多程序需要開機啓動。它們在Windows叫做"服務"(service),在Linux就叫做"守護進程"(daemon)。

init進程的一大任務,就是去運行這些開機啓動的程序。

但是,不同的場合需要啓動不同的程序,比如用作服務器時,需要啓動Apache,用作桌面就不需要。

Linux允許爲不同的場合,分配不同的開機啓動程序,這就叫做"運行級別"(runlevel)。也就是說,啓動時根據"運行級別",確定要運行哪些程序。

Linux系統有7個運行級別(runlevel)


系統初始化

在init的配置文件中有這麼一行: si::sysinit:/etc/rc.d/rc.sysinit 它調用執行了/etc/rc.d/rc.sysinit,而rc.sysinit是一個bash shell的腳本,它主要是完成一些系統初始化的工作,rc.sysinit是每一個運行級別都要首先運行的重要腳本。

l5:5:wait:/etc/rc.d/rc 5

這一行表示以5爲參數運行/etc/rc.d/rc,/etc/rc.d/rc是一個Shell腳本,它接受5作爲參數,去執行/etc/rc.d/rc5.d/目錄下的所有的rc啓動腳本,/etc/rc.d/rc5.d/目錄中的這些啓動腳本實際上都是一些連接文件,而不是真正的rc啓動腳本,真正的rc啓動腳本實際上都是放在/etc/rc.d/init.d/目錄下。

而這些rc啓動腳本有着類似的用法,它們一般能接受start、stop、restart、status等參數。

 


建立終端

rc執行完畢後,返回init。這時基本系統環境已經設置好了,各種守護進程也已經啓動了。


用戶登錄系統

一般來說,用戶的登錄方式有三種:

  • (1)命令行登錄
  • (2)ssh登錄
  • (3)圖形界面登錄

圖形模式與文字模式的切換方式

Linux預設提供了六個命令窗口終端機讓我們來登錄。

默認我們登錄的就是第一個窗口,也就是tty1,這個六個窗口分別爲tty1,tty2 … tty6,你可以按下Ctrl + Alt + F1 ~ F6 來切換它們。

如果你安裝了圖形界面,默認情況下是進入圖形界面的,此時你就可以按Ctrl + Alt + F1 ~ F6來進入其中一個命令窗口界面。

當你進入命令窗口界面後再返回圖形界面只要按下Ctrl + Alt + F7 就回來了。

如果你用的vmware 虛擬機,命令窗口切換的快捷鍵爲 Alt + Space + F1~F6. 如果你在圖形界面下請按Alt + Shift + Ctrl + F1~F6 切換至命令窗口。


Linux 關機

在linux領域內大多用在服務器上,很少遇到關機的操作。畢竟服務器上跑一個服務是永無止境的,除非特殊情況下,不得已纔會關機。

正確的關機流程爲:sync > shutdown > reboot > halt

sync 將數據由內存同步到硬盤中。

shutdown 關機指令,你可以man shutdown 來看一下幫助文檔。例如你可以運行如下命令關機:

shutdown –h 10 ‘This server will shutdown after 10 mins’ 這個命令告訴大家,計算機將在10分鐘後關機,並且會顯示在登陸用戶的當前屏幕中。

shutdown –h now 立馬關機

shutdown –h 20:25 系統會在今天20:25關機

shutdown –h +10 十分鐘後關機

shutdown –r now 系統立馬重啓

shutdown –r +10 系統十分鐘後重啓

reboot 就是重啓,等同於 shutdown –r now

halt 關閉系統,等同於shutdown –h now 和 poweroff

 

 

3、Linux 系統目錄結構

樹狀目錄結構:

以下是對這些目錄的解釋:

  • /bin
    bin是Binary的縮寫, 這個目錄存放着最經常使用的命令。

  • /boot:
    這裏存放的是啓動Linux時使用的一些核心文件,包括一些連接文件以及鏡像文件。

  • /dev :
    dev是Device(設備)的縮寫, 該目錄下存放的是Linux的外部設備,在Linux中訪問設備的方式和訪問文件的方式是相同的。

  • /etc:
    這個目錄用來存放所有的系統管理所需要的配置文件和子目錄。

  • /home
    用戶的主目錄,在Linux中,每個用戶都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的。

  • /lib
    這個目錄裏存放着系統最基本的動態連接共享庫,其作用類似於Windows裏的DLL文件。幾乎所有的應用程序都需要用到這些共享庫。

  • /lost+found
    這個目錄一般情況下是空的,當系統非法關機後,這裏就存放了一些文件。

  • /media
    linux系統會自動識別一些設備,例如U盤、光驅等等,當識別後,linux會把識別的設備掛載到這個目錄下。

  • /mnt
    系統提供該目錄是爲了讓用戶臨時掛載別的文件系統的,我們可以將光驅掛載在/mnt/上,然後進入該目錄就可以查看光驅裏的內容了。

  • /opt
     這是給主機額外安裝軟件所擺放的目錄。比如你安裝一個ORACLE數據庫則就可以放到這個目錄下。默認是空的。

  • /proc
    這個目錄是一個虛擬的目錄,它是系統內存的映射,我們可以通過直接訪問這個目錄來獲取系統信息。
    這個目錄的內容不在硬盤上而是在內存裏,我們也可以直接修改裏面的某些文件,比如可以通過下面的命令來屏蔽主機的ping命令,使別人無法ping你的機器:

    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
  • /root
    該目錄爲系統管理員,也稱作超級權限者的用戶主目錄。

  • /sbin
    s就是Super User的意思,這裏存放的是系統管理員使用的系統管理程序。

  • /selinux
     這個目錄是Redhat/CentOS所特有的目錄,Selinux是一個安全機制,類似於windows的防火牆,但是這套機制比較複雜,這個目錄就是存放selinux相關的文件的。

  • /srv
     該目錄存放一些服務啓動之後需要提取的數據。

  • /sys

     這是linux2.6內核的一個很大的變化。該目錄下安裝了2.6內核中新出現的一個文件系統 sysfs 。

    sysfs文件系統集成了下面3種文件系統的信息:針對進程信息的proc文件系統、針對設備的devfs文件系統以及針對僞終端的devpts文件系統。

     

    該文件系統是內核設備樹的一個直觀反映。

    當一個內核對象被創建的時候,對應的文件和目錄也在內核對象子系統中被創建。

  • /tmp
    這個目錄是用來存放一些臨時文件的。

  • /usr
     這是一個非常重要的目錄,用戶的很多應用程序和文件都放在這個目錄下,類似於windows下的program files目錄。

  • /usr/bin:
    系統用戶使用的應用程序。

  • /usr/sbin:
    超級用戶使用的比較高級的管理程序和系統守護程序。

  • /usr/src:
    內核源代碼默認的放置目錄。

  • /var
    這個目錄中存放着在不斷擴充着的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種日誌文件。

  • /run
    是一個臨時文件系統,存儲系統啓動以來的信息。當系統重啓時,這個目錄下的文件應該被刪掉或清除。如果你的系統上有 /var/run 目錄,應該讓它指向 run。

在 Linux 系統中,有幾個目錄是比較重要的,平時需要注意不要誤刪除或者隨意更改內部文件。

/etc: 上邊也提到了,這個是系統中的配置文件,如果你更改了該目錄下的某個文件可能會導致系統不能啓動。

/bin, /sbin, /usr/bin, /usr/sbin: 這是系統預設的執行文件的放置目錄,比如 ls 就是在/bin/ls 目錄下的。

值得提出的是,/bin, /usr/bin 是給系統用戶使用的指令(除root外的通用戶),而/sbin, /usr/sbin 則是給root使用的指令。

/var: 這是一個非常重要的目錄,系統上跑了很多程序,那麼每個程序都會有相應的日誌產生,而這些日誌就被記錄到這個目錄下,具體在/var/log 目錄下,另外mail的預設放置也是在這裏。

 

4、Linux 文件基本屬性

在Linux中我們可以使用 ll 或者ls –l命令來顯示一個文件的屬性以及文件所屬的用戶和組:

實例中,bin文件的第一個屬性用"d"表示。"d"在Linux中代表該文件是一個目錄文件。

在Linux中第一個字符代表這個文件是目錄、文件或鏈接文件等等。

  • 當爲[ d ]則是目錄
  • 當爲[ - ]則是文件;
  • 若是[ l ]則表示爲鏈接文檔(link file);
  • 若是[ b ]則表示爲裝置文件裏面的可供儲存的接口設備(可隨機存取裝置);
  • 若是[ c ]則表示爲裝置文件裏面的串行端口設備,例如鍵盤、鼠標(一次性讀取裝置)。

後面的三個RWX 分別表示用戶、用戶組和其他用戶的讀、寫、執行權限,如果沒有,換成‘-’

更改文件屬性

1、chgrp:更改文件屬組

chgrp [-R] 屬組名 文件名
  • -R:遞歸更改文件屬組,就是在更改某個目錄文件的屬組時,如果加上-R的參數,那麼該目錄下的所有文件的屬組都會更改。

2、chown:更改文件屬主,也可以同時更改文件屬組

語法:

chown [–R] 屬主名 文件名
chown [-R] 屬主名:屬組名 文件名

 

3、chmod:更改文件9個屬性

所以等一下我們設定權限的變更時,該文件的權限數字就是770啦!變更權限的指令chmod的語法是這樣的:

 chmod [-R] xyz 文件或目錄

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章