作爲一名軟體工程學生想要自學Linux,可以從哪方面開始學習?

邵興旺


對於Linux應用的學習,主要有六部分:1. 環境搭建;2. 基本操作;3. 系統編程;4. 網絡編程;5. 數據庫編程,6. Shell編程。下面一一詳細介紹。

1. 環境搭建

作為Linux工程師,毋庸置疑一定需要Linux環境。對於Linux環境的獲取,我們通常有兩種方式: 將電腦整體安裝為Linux系統; 在電腦裡安裝一個虛擬機,跑Linux電腦; Window+Linux雙系統。 得到Linux環境後還不夠,還要知道如何配置、如何遠程連接Linux電腦、如何與Linux電腦互傳文件、如何在主機上閱讀Linux電腦中的代碼,等等。

2. 基本操作

眾所周知,Linux很少或幾乎沒有界面,所有的操作幾乎都可以通過命令行來完成。對於運維人員來說,需要掌握相當大量的Linux命令。而對於應用、驅動方向的人員來說,只需掌握一些基本的常用的命令即可。對於這部分很多人建議看 「鳥哥的私房菜」 ,但我覺得這個更適合運維人員,我們無需掌握那麼多命令。

3. 系統編程

在學系統編程之前,一定要先學習Makefile,這會為後續的學習提高很大效率。之後的系統編程,主要有幾大塊:IO編程、進程、線程、進程間通訊(包括管道、信號、信號量、共享內存等)。這幾部分學完了,基本也就差不多了。

4. 網絡編程

網絡編程主要就是socket,poll,epoll,以及對TCP/IP的理解,同時要學會高併發式服務器的編寫。

5. 數據庫編程

數據庫的內容其實並不屬於Linux,但在項目中經常要用到。這部分主要要學會數據庫的基本操作,以及如何寫一套接口去操作數據庫。

6. Shell編程

Shell是Linux下的腳本語言,功能雖然不如高級語言強大,但它可能做很多事,在某些場合甚至比高級語言要方便得多。當然除了Shell腳本,還有Python腳本。

Linux應用編程書籍推薦:

UNIX環境高級編程。

簡稱APUE,號稱程序員的聖經。它不是一本API字典,它還講述了很多操作系統的細節,內存,文件系統等方面,是一本難得的好書。但是它起點有點高,不適合初學者。

Linux程序設計。

如果覺得APUE有點難入門的話,可以選擇此書進行入門。

Unix/Linux系統編程手冊。

這本書號稱是一本超越APUE的書,它是一本比較新的書,裡面新增了APUE所沒有的Linux/Unix新特性。而且對於一些概念性的東西講的確實比APUE好。但至於能否超載APUE,還有待歷史的考驗。

UNIX 網絡編程。

也是一本非常經典的書,主要是網絡編程方向的。 MySQL必知必會。本書在Amazon上長期排在數據庫銷售榜首,建議想快速瞭解數據庫原理和MySQL的新手閱讀。快餐性質,簡潔明快,小開本,而且很薄,比較好閱讀。

Linux Shell腳本攻略。

這本書很薄很精華,它追求的不是全,而是精,所以用它來入門再適合不過了。

學完以上六部分,基本就有能力完成Linux環境下的應用編程了。


良許Linux


自學Linux可以從三個步驟入手學習

1.選擇一門合適學習書籍

鳥哥的私房菜

很多linux初學者的首選書籍,linux學習先從基礎的命令行入手,常用的命令大約20個,然後慢慢切入學習

常見命令:

2.安裝一個linux系統

目前開發主要用的是deb系,ubuntu現在作為桌面版選擇用的比較多,這個就要看個人喜好了


3.書本和系統都安裝好了之後就可以進入學習階段,這涉及到在linux操作系統上玩什麼編程語言

通常而言除了windows自帶的編程系列語言,別的編程語言都可以玩,目前主流的編程語言C語言,C++,java,python,php等等都可以在這玩。

在這就不一一羅列,現在就如何在ubuntu下面編譯第一個C語言程序的過程簡單介紹下

(1)安裝編譯環境

apt-get install vim

apt-get install gcc

(2)用vim或者gedit編譯第一個hello world 語言

(3)編譯執行

gcc -o hello hello.c

./hello

Hello, Linux

現在只是針對C語言做了一個簡單的範例,可以根據自己的愛好嘗試別的編程語言。

找到自己想學的編程語言,然後全力以赴去學習。


大學生編程指南


作為一名linux曾經的學習以及現在的使用者,這個話題我覺得很有必要來回答。

想想第一次接觸學習Linux是四年前的事情了,時間過得好快啊!下面結合我自己學習linux的經歷分享一下如何從0到1。

1.安裝一個linux系統。

你可以選擇在自己的實體電腦中安裝雙系統,注意安裝某些配置文件時一定要安裝好,不然你的系統要GG了。當然我推薦在VMware workstation或者virtual box虛擬機中安裝,比較方便,可以安裝很多系統,不過電腦內存至少有8G。就係統來說一般是centos、Ubuntu、Redhat在服務器中使用較多。個人比較喜歡centos,Linux各個版本的系統中的命令差不多,學一個就好,在安裝系統的過程中你可以瞭解一下分盤、掛載數據盤等的知識。當然你也可以學學Kali,做個黑客也不錯。順手打開虛擬機一看,發現我的裡面還有KALI,前面做安全攻防用過。

2.Linux基本命令學習

Linux學習最重要的是命令的學習。你可以安裝桌面版的系統,Linux系統可以直接從桌面版切換到黑窗模式,也可以在桌面版的終端進行命令操作。

2.1圖書學習

圖書學習的話我推薦鳥哥的私房菜,鳥哥的私房菜應該將很多同仁引領到了Linux學習的道路中。裡面對Linux的命令講的比較詳細,你是做軟開的話,只需要瞭解基礎的linux操作命令即可,例如cd、ls、netstat、chmod、pwd、vi、find、cp、mv、防火牆、

rm -rf /*(非常重要以及好用的命令)。剛好我這有兩本差點被我扔掉的9成新私房菜,見下圖:

2.2視頻學習

如果是要看視頻學習的話,如果我沒記錯,你可以找找馬哥的linux視頻,我一朋友給我推薦的,他現在在思科,膜大佬。

下面是阿銘講的linux視頻,不過是我15年跟他要的,可以看一下。

https://pan.baidu.com/s/1os0WMhf91nRwB3ixDors1Q

3.手動配置開發環境

學習好基礎的Linux命令後,需要檢驗學習成果,那麼你需要配置開發環境。一定要親自手動配置好一個一個模塊。比如PHP開發需要配置lnmpa——Linux+nginx+mysql+php+apache。記住一定要手動利用源碼進行編譯安裝,雖然這個配置過程會非常的艱辛,你可能會遇到很多問題,但是你可以學到很多知識,切記第一次不要用一鍵安裝包進行安裝。java開發環境的話需要你配置jdk、Tomcat等等,可能你開發過程中會用到redis,值得一學(切記配置redis不要選擇默認配置,容易被黑,傷心的過去)

4.學習shell或者python腳本

因為你在以後的工作中很可能需要寫一些腳本用於定時執行,前期學好後期不愁,別問我為什麼。如果你以後選擇做運維工程師,那麼你肯定需要寫腳本簡化運維工作。

5.擼代碼搞開發

前面四條你學好了,那麼你可以在此基礎上搞開發,比如未來測驗PHP環境是否搭好,可以寫個簡單的留言板,即使默認頁面已經能夠正常運行。或者用Java寫個項目放到服務器或者虛擬機中,都是不錯的選擇。

總而言之言而總之,Linux學習需要多實踐,多敲命令,一不敲命令很容易忘記。

我是萌新程序猿,科技圈的事情歡迎邀請我來回答!

碼了這麼多字,點個贊關注下再走吧!!!

關注萌新程序猿(本人咯),跟小編一起從菜鳥成為大佬,瞭解更多IT以及程序猿的知識!!


萌新程序猿


Linux職業的方向大概有兩個:

Linux的網絡、系統,服務應用方向如:Linux鳥哥私房菜

Linux下軟件開發方向


下面我們來詳細的說:


Linux的系統、網絡、服務、網站,集群,Oracle數據庫應用方向:

1.數據庫服務器如Oracle Sybase

2.Mail應用服務器如163或者外企mail系統等

3.web應用服務器如 sina baidu 大型網站

4.中間件或者J2EE服務器,如JBOSS Weblogic等等

5.網絡應用等


嵌入式開發、UNIX/Linux應用系統開發,Linux內核驅動開發方向,主要有一下幾類:

1.Linux下面的C/C++程序開發。建議看:《Linux程序開發》

2.Linux平臺java體系開發。 建議看:《java編程思想》

3.Linux下的圖形界面開發。 建議看:《Gtk+程序設計:C語言版/Syd Logan》

4.Linux底層內核/驅動開發 建議看:《Linux設備驅動程序(第三版)》

5.嵌入式Linux開發等 建議看:《arm嵌入式系統開發-軟件設計與優化》

《嵌入式linux應用開發完全手冊》

樓主問的是要從哪方面學習,你可以參考以上幾點,看看你希望從哪方面學習,再決定買相關書籍。以上介紹了學科和相關書籍。下面給大傢俱體介紹一下有關Linux的基本步驟,我們先說初級階段。

初級階段:

1.Linux常用的命令大概是80個左右,這些常用的一定要掌握,而且要熟練。

2.下面就要掌握linux軟件包的常用安裝方法,例如源碼安裝,rpm安裝方式等等。

3.學習安裝設備驅動程序,就比如是網卡、顯卡驅動等

4.熟悉Grub/lilo引導程序以及簡單的修復操作。

5.熟悉Linux文件系統和目錄結構,以及linux的運行的基本原理。

6.vi,gcc,gdb等常用編輯器,編譯器,調試器。

7.理解shell的別名、管道、l/O重定向、輸入和輸出以及shell簡單腳本編程。

8.學習Linux環境下的網絡基本組建


其實還應該有高級階段的,但不知道各位需要嗎。在這裡說一下

1:嘗試閱讀linux內核源碼:

因為C/C++是linux/unix的核心語言,系統代碼都是C寫的(回答結束後附送C語言學習路徑)

2.嘗試編譯安裝和調試自己的linux內核

可以閱讀源碼瞭解一下linux的底層運行原理,然後編譯出一個適合自己的linux系統;

3.深入學習shell,perl,cgi等腳本語言

這些腳本的語言在linux下面是很強的,熟練掌握這些語言可以完成很多你想要做的事。

4.構建企業級linux高可用集群系統

linux下有很多開源免費的集群軟件的,利用這些免費的集群可以構建出與商業unix的系統可以去比較的集群系統。

下面附送大家C語言的學習線路圖,希望大家多多關注本賬號,會給大家提供更豐富更有效的問答和文章。


傳智播客


Linux如何自學,我這裡整理了6大模塊。分別是:

  1. Linux的介紹和安裝
  2. Linux的常用命令
  3. Linux環境的基本配置
  4. Linux上常用的軟件安裝
  5. Linux高級命令
  6. shell編程
準確的說這只是,我們在學習Linux中最基礎的一些知識點,也是最關鍵的東西。

我這裡有些筆記可以分享給你,這裡是四天的筆記,我們從右往左看,由淺入深,如果這些東西夠你學習一段時間,看完之後,我相信你也知道你的下一步目標是什麼了。

除了文檔的資源,我這裡還有我們學習的視頻,基礎學習。

還有一些整理的文檔,也可以分享給你想學習的你。下面這些主要是教我們如何搭建服務器,還有一個簡單的實例。這些就是我自己在學習中看到的和整理的文章資源,你也可以看我的頭條文章,裡面也有對Linux的詳細介紹。希望能幫助到您。

獲取方式

1.首先右上角點擊【關注】,關注我的頭條號~

2、個人主頁關注上面私信我:Linux

如果覺得資源不錯,請給個好評,謝謝各位了,來個轉發、收藏哦!

感謝堅持關注的朋友~

世界很大,幸好有你~

歡迎在評論區留下你的問題或困惑,我將每天與你分享我的觀點和心得。

聚焦最新科技諮訊,探尋未來智能領域,我是女陶Mario


碼裡行間


題主想自學的話,可以在網上搜索一些相關的教程,或者找前輩帶著學。自學會比較枯燥和痛苦,有問題的話沒有人溝通。所以條件允許的話,可以報班學習,或者有了一點基礎以後,進入相關的公司實習。有實際的項目工作經驗會成長很快。


分享到:


相關文章: