狂神聲明 : 文章均為自己的學習筆記 , 轉載一定註明出處 ; 編輯不易 , 防君子不防小人~共勉 ! linux學習:【第1篇】初識Linux及安裝 寫在前面 學習之初看了一段文章,很有感觸,所以也想把這些分享給大家,認真讀完,明確自己的方向 很多同學接觸Linux不多,對Linux平臺的開發更是 ...
狂神聲明 : 文章均為自己的學習筆記 , 轉載一定註明出處 ; 編輯不易 , 防君子不防小人~共勉 !
linux學習:【第1篇】初識Linux及安裝
寫在前面
學習之初看了一段文章,很有感觸,所以也想把這些分享給大家,認真讀完,明確自己的方向
很多同學接觸Linux不多,對Linux平臺的開發更是一無所知。 而現在的趨勢越來越表明,作為一個優秀的軟體開發人員,或電腦IT行業從業人員, 掌握Linux是一種很重要的謀生資源與手段。
下來我將會結合自己的幾年的個人開發經驗,及對 Linux,更是類UNIX系統,及開源軟體文化, 談談Linux的學習方法與學習中應該註意的一些事。
就如同剛纔說的,很多同學以前可能連Linux是什麼都不知道,對UNIX更是一無所知。 所以我們從最基礎的講起,對於Linux及UNIX的歷史我們不做多談,直接進入入門的學習。
Linux入門是很簡單的,問題是你是否有耐心,是否愛折騰,是否不排斥重裝一類的大修。 沒折騰可以說是學不好Linux的,鳥哥說過,要真正瞭解Linux的分區機制,對LVM使用相當熟練, 沒有20次以上的Linux裝機經驗是積累不起來的,所以一定不要怕折騰。
由於大家之前都使用Windows,所以我也儘可能照顧這些朋友。 我的推薦,如果你第一次接觸Linux,那麼首先在虛擬機中嘗試它。 我們這裡使用VM , 但不推薦大家使用盜版,看個人資金情況 . 也有其他的選擇 , 比如 : Virtual Box 也非常棒 .
如何使用虛擬機,是你的事,這個我不教你,因為很簡單,不會的話Google或Baidu都可以, 英文好的可以直接看官方文檔。 現在介紹Linux發行版的知識。
正如你所見,Linux發行版並非Linux,Linux僅是指操作系統的內核,作為科班出生的你不要讓我解釋 。
我推薦的發行版如下:
- UBUNTU 適合純新手,追求穩定的官方支持,對系統穩定性要求較弱,喜歡最新應用,相對來說不太喜歡折騰的開發者。
- Debian,相對UBUNTU難很多的發行版,突出特點是穩定與容易使用的包管理系統,缺點是企業支持不足,為社區開發驅動。
- Arch,追逐時尚的開發者的首選,優點是包更新相當快,無縫升級,一次安裝基本可以一直運作下去,沒有如UBUNTU那樣的版本概念,說的專業點叫滾動升級,保持你的系統一定是最新的。缺點顯然易見,不穩定。同時安裝配置相對Debian再麻煩點。
- Gentoo,相對Arch再難點,考驗使用者的綜合水平,從系統安裝到微調,內核編譯都親歷親為,是高手及黑客顯示自己技術手段,按需配置符合自己要求的系統的首選。
- Slackware與Gentoo類似。
- CentOS,社區維護的RedHat的復刻版本,完全使用RedHat的源碼重新編譯生成,與RedHat的相容性在理論上來說是最好的。如果你專註於Linux伺服器,如網路管理,架站,那麼CentOS是你的選擇。
- LFS,終極黑客顯擺工具,完全從源代碼安裝,編譯系統。安裝前你得到的只有一份文檔,你要做的就是照文檔你的說明,一步步,一條條命令,一個個軟體包的去構建你的Linux,完全由你自己控制,想要什麼就是什麼。如果你做出了LFS,證明你的Linux功底已經相當不錯,如果你能拿LFS文檔活學活用,再將Linux從源代碼開始移植到嵌入式系統,我敢說中國的企業你可以混的很好。
Linux簡介
1991年誕生 , 免費 , 開源
Linux內核最初只是由芬蘭人李納斯·托瓦茲(Linus Torvalds)在赫爾辛基大學上學時出於個人愛好而編寫的。
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。
Linux能運行主要的UNIX工具軟體、應用程式和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。
虛擬機和Centos安裝
安裝方式 :
- 整機安裝
- 雙系統並存安裝
- 虛擬機安裝
我們這裡使用虛擬機
由於安裝都是下一步下一步 , 所以這裡只給出步驟,大家自行下載和安裝.我覺得作為一個寫程式的人,如果基本的安裝都不能夠正常完成,是非常不合格的.
- vmware workstation 虛擬機在360軟體管家即可下載,但是是收費的.我不推薦大家使用破解.可自行購買,支持軟體工作者
- 下載後 激活軟體 , 然後下載我們的linux centos系統 .
- centos 官網下載地址:https://www.centos.org/download/
- 直接用ios鏡像文件去安裝即可 , 重點註意調整分區的時候 一定要有 /home這個分區
- 然後都是下一步, 語言啊,時區啊,用戶名,密碼等等 , 大家輸入東西的時候可以自己記錄好.真的很簡單的安裝步驟 , 認真安裝完畢,可以瞭解很多linux的內容.
- 安裝完成,重啟,登錄即可進入主界面
- 註意自己分配的磁碟大小
如果安裝過程中有問題,可以聯繫我或者評論,看到了我都會回覆 . 也有傻瓜式安裝,就是拷貝虛擬機文件,然後在VM中直接打開就可以使用了.沒有文件的話也可以加我QQ私聊,可以發給你們,記得備註. 安裝好如下圖 :
一定要安裝好系統 , 才能進入下一步的學習
VM虛擬機大家可以研究下以下功能:
- 快照功能(可以恢復到保存時候的狀態)
- 網路模式(網路連接方式)
- 還有一些其它功能,可以自行在菜單欄中點擊查看.十分簡單
學會了以上技能 , 我們就可以開始我們的LINUX系統學習了
Linux 系統啟動過程
linux啟動時我們會看到許多啟動信息。
Linux系統的啟動過程並不是大家想象中的那麼複雜,其過程可以分為5個階段:
- 內核的引導。
- 運行 init。
- 系統初始化。
- 建立終端 。
- 用戶登錄系統。
大概的流程介紹
當電腦打開電源後,首先是BIOS開機自檢,按照BIOS中設置的啟動設備(通常是硬碟)來啟動。
init 進程是系統所有進程的起點,你可以把它比擬成系統所有進程的老祖宗,沒有這個進程,系統中任何進程都不會啟動。
許多程式需要開機啟動。它們在Windows叫做"服務"(service),在Linux就叫做"守護進程"(daemon)。Linux允許為不同的場合,分配不同的開機啟動程式,這就叫做"運行級別"(runlevel)。
在init的配置文件中有這麼一行: si::sysinit:/etc/rc.d/rc.sysinit 它調用執行了/etc/rc.d/rc.sysinit,而rc.sysinit是一個bash shell的腳本,它主要是完成一些系統初始化的工作,rc.sysinit是每一個運行級別都要首先運行的重要腳本。
rc執行完畢後,返回init。這時基本系統環境已經設置好了,各種守護進程也已經啟動了。
init接下來會打開6個終端,以便用戶登錄系統。
當我們看到mingetty的登錄界面時,我們就可以輸入用戶名和密碼來登錄系統了。
Linux預設提供了六個命令視窗終端機讓我們來登錄。
預設我們登錄的就是第一個視窗,也就是tty1,這個六個視窗分別為tty1,tty2 … tty6,你可以按下Ctrl + Alt + F1 ~ F6 來切換它們。
1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6
Linux 關機
在linux領域內大多用在伺服器上,很少遇到關機的操作。畢竟伺服器上跑一個服務是永無止境的,除非特殊情況下,不得已才會關機。
正確的關機流程為:sync > shutdown > reboot > halt
關機指令為:shutdown
不管是重啟系統還是關閉系統,首先要運行 sync 命令,把記憶體中的數據寫到磁碟中。
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 要取消即將進行的關機,只要輸入下麵的命令: # shutdown -c
Linux文件系統
ls / : 終端輸入命令可查看
目錄
在 Linux 或 Unix 操作系統中,所有的文件和目錄都被組織成以一個根節點開始的倒置的樹狀結構。
文件系統的最頂層是由根目錄開始的,系統使用 / 來表示根目錄。在根目錄之下的既可以是目錄,也可以是文件,而每一個目錄中又可以包含子目錄文件。如此反覆就可以構成一個龐大的文件系統。
在Linux文件系統中有兩個特殊的目錄,一個用戶所在的工作目錄,也叫當前目錄,可以使用一個點 . 來表示;另一個是當前目錄的上一級目錄,也叫父目錄,可以使用兩個點 .. 來表示。
- . :代表當前的目錄,也可以使用 ./ 來表示;
- .. :代表上一層目錄,也可以 ../ 來代表。
如果一個目錄或文件名以一個點 . 開始,表示這個目錄或文件是一個隱藏目錄或文件(如:.bashrc)。即以預設方式查找時,不顯示該目錄或文件。
系統啟動 :
- /boot:存放的啟動Linux 時使用的內核文件,包括連接文件以及鏡像文件。
- /etc:存放所有的系統需要的配置文件和子目錄列表,更改目錄下的文件可能會導致系統不能啟動。
- /lib:存放基本代碼庫(比如c++庫),其作用類似於Windows里的DLL文件。幾乎所有的應用程式都需要用到這些共用庫。
- /sys: 這是linux2.6內核的一個很大的變化。該目錄下安裝了2.6內核中新出現的一個文件系統 sysfs 。sysfs文件系統集成了下麵3種文件系統的信息:針對進程信息的proc文件系統、針對設備的devfs文件系統以及針對偽終端的devpts文件系統。該文件系統是內核設備樹的一個直觀反映。當一個內核對象被創建的時候,對應的文件和目錄也在內核對象子系統中
指令集合:
- /bin:存放著最常用的程式和指令
- /sbin:只有系統管理員能使用的程式和指令。
外部文件管理:
- /dev :Device(設備)的縮寫, 存放的是Linux的外部設備。註意:在Linux中訪問設備和訪問文件的方式是相同的。
- /media:類windows的其他設備,例如U盤、光碟機等等,識別後linux會把設備放到這個目錄下。
- /mnt:臨時掛載別的文件系統的,我們可以將光碟機掛載在/mnt/上,然後進入該目錄就可以查看光碟機里的內容了。
臨時文件:
- /run:是一個臨時文件系統,存儲系統啟動以來的信息。當系統重啟時,這個目錄下的文件應該被刪掉或清除。如果你的系統上有 /var/run 目錄,應該讓它指向 run。
- /lost+found:一般情況下為空的,系統非法關機後,這裡就存放一些文件。
- /tmp:這個目錄是用來存放一些臨時文件的。
賬戶:
- /root:系統管理員的用戶主目錄。
- /home:用戶的主目錄,以用戶的賬號命名的。
- /usr:用戶的很多應用程式和文件都放在這個目錄下,類似於windows下的program files目錄。
- /usr/bin:系統用戶使用的應用程式與指令。
- /usr/sbin:超級用戶使用的比較高級的管理程式和系統守護程式。
- /usr/src:內核源代碼預設的放置目錄。
運行過程中要用:
- /var:存放經常修改的數據,比如程式運行的日誌文件(/var/log 目錄下)。
- /proc:管理記憶體空間!虛擬的目錄,是系統記憶體的映射,我們可以直接訪問這個目錄來,獲取系統信息。這個目錄的內容不在硬碟上而是在記憶體里,我們也可以直接修改裡面的某些文件來做修改。
擴展用的:
- /opt:預設是空的,我們安裝額外軟體可以放在這個裡面。
- /srv:存放服務啟動後需要提取的數據(不用伺服器就是空)
Linux操作系統結構
- 硬體
- Kernel(內核)
- shell(命令解釋器)
- 外層應用程式
擴展瞭解 : Android系統和linux內核的關係詳解
為什麼android開發有用java,看下圖的右側即可瞭解