-
1 # 良許Linux
-
2 # 大學生程式設計指南
自學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語言做了一個簡單的範例,可以根據自己的愛好嘗試別的程式語言。
找到自己想學的程式語言,然後全力以赴去學習。
-
3 # Mario女陶
Linux如何自學,我這裡整理了6大模組。分別是:
Linux的介紹和安裝Linux的常用命令Linux環境的基本配置Linux上常用的軟體安裝Linux高階命令shell程式設計準確的說這只是,我們在學習Linux中最基礎的一些知識點,也是最關鍵的東西。我這裡有些筆記可以分享給你,這裡是四天的筆記,我們從右往左看,由淺入深,如果這些東西夠你學習一段時間,看完之後,我相信你也知道你的下一步目標是什麼了。
除了文件的資源,我這裡還有我們學習的影片,基礎學習。
感謝堅持關注的朋友~
世界很大,幸好有你~
聚焦最新科技諮訊,探尋未來智慧領域,我是女陶Mario
-
4 # 傳智播客
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語言的學習線路圖,希望大家多多關注本賬號,會給大家提供更豐富更有效的問答和文章。
-
5 # 一零言
作為一名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/1os0WMhf91nRwB3ixDors1Q3.手動配置開發環境學習好基礎的Linux命令後,需要檢驗學習成果,那麼你需要配置開發環境。一定要親自手動配置好一個一個模組。比如PHP開發需要配置lnmpa——Linux+nginx+mysql+php+apache。記住一定要手動利用原始碼進行編譯安裝,雖然這個配置過程會非常的艱辛,你可能會遇到很多問題,但是你可以學到很多知識,切記第一次不要用一鍵安裝包進行安裝。java開發環境的話需要你配置jdk、Tomcat等等,可能你開發過程中會用到redis,值得一學(切記配置redis不要選擇預設配置,容易被黑,傷心的過去)
4.學習shell或者python指令碼因為你在以後的工作中很可能需要寫一些指令碼用於定時執行,前期學好後期不愁,別問我為什麼。如果你以後選擇做運維工程師,那麼你肯定需要寫指令碼簡化運維工作。
5.擼程式碼搞開發前面四條你學好了,那麼你可以在此基礎上搞開發,比如未來測驗PHP環境是否搭好,可以寫個簡單的留言板,即使預設頁面已經能夠正常執行。或者用Java寫個專案放到伺服器或者虛擬機器中,都是不錯的選擇。
總而言之言而總之,Linux學習需要多實踐,多敲命令,一不敲命令很容易忘記。
-
6 # 後端漫談
軟體工程專業還是非常有必要系統學習linux的。
但是也要看自己選擇的方向,如果你選擇linux下的一些底層開發方向,那麼你要學的東西就特別多了。如果選擇web開發那麼你沒有必要學習的太深入,能夠搭建開發環境,以及檢視系統負載,檢視程序等等。會寫一些簡單的shell指令碼就夠了。一般網際網路公司都是有運維的。
首先入門的話,可以先讀一下“鳥哥的linux私房菜”基礎篇,再看書的同時自己搭建虛擬機器跟著敲一些命令。剛開始的話不太建議直接安裝雙系統,還是在虛擬機器裡面玩比較好,因為玩壞了立馬可以重新安裝一個新的系統。
如果你有喜歡的程式語言,或者感興趣的開發方向。那麼你完全可以直接在linux下程式設計,搭建開發環境。當然除了一些大牛,一般人是用不慣vi寫程式碼的。所以我建議你linux基礎學完之後可以學一下vagrant,vagrant可以透過簡單的命令來直接建立虛擬機器,而且有共享目錄和埠對映,這樣可以直接在win下面開發,程式碼執行在linux上。
-
7 # 瘋狂架構師
最簡單的方式是買一臺筆記本或者將已有的電腦,安裝上Linux桌面系統,以後得生活及學習都用它,不懂的就百度,痛苦半年你就不會再喜歡Windows了。
-
8 # 網路圈
首先來說,Linux體系是比較大的,如果想自學Linux很容易迷路。作為過來人,下面給你闡述觀點可能不是最佳的,但絕對是由淺漸深的漸入式學習方法。
哪些人需要學習Linux?Linux的使用者群體主要有:
運維人員
開發人員
其實還有一些行業人員,但主要就這2類人接觸Linux較多,不同群體,要求對Linux的掌握程度也不同。
Linux初學者如何入門?Linux初學者務必掌握以下知識:
Linux概況,和Windows的差異
Linux發行版本有哪些,常見Linux系統有哪些,不同系統間的差異有哪些
選擇一款Linux系統專注學習,業務使用率最高的就是CentOS,所以我建議你學習CentOS7
CentOS的安裝方法請務必實踐(最小化安裝)
Linux檔案系統,和Windows檔案系統的差異
Linux常用命令操作:系統狀態檢視(記憶體、磁碟、IO開銷、負載、網路、程序等)、使用者及使用者組操作、檔案及目錄操作、許可權操作、iptables操作、服務操作、crontab操作、簡單Shell命令、軟體如何編譯安裝等
將以上幾點做好,對於一般的開發人員和運維人員,足夠應付日常工作需要了。中級Linux需要掌握的知識點Linux安全策略,如何保證伺服器的安全,如何保證系統執行安全,日誌檢視,錯誤定位等
WEB伺服器種類及安裝配置,如:Nginx、Apache、Tomcat、JBoss等
不同開發(語言)框架開發的系統在伺服器上如何配置,如:PHP、Java、Node.js等
高階Linux需要掌握的知識點學習一種語言,建議:Python3 、C
運維自動化方案瞭解:部署、監控、排程
Docker知識
-
9 # 千鋒長沙
沒有相關的影片教程及相關的學習線路,學起來是一件很費勁的事情,還有很多人從網上及其它渠道購買影片,這些影片資料大多是盜版,上當受騙的人不在少數。為此千鋒小編嘔心瀝血整理了這套零基礎全套Linux雲計算教程,不管是小白還是大牛,這套資料你都值得擁有!
學習路線
我們怎麼學習Linux系統呢?搜搜網上學習Linux大致有兩大觀點:
學習需要投資,自己搞臺電腦安裝Linux系統沒事使用Linux系統生活娛樂,養成一個Linux環境的使用習慣。
使用虛擬機器來學習Linux系統。
對此我比較認同使用虛擬機器來學習Linux的觀點。對於新入門Linux的同學來言,Linux系統有很多的神秘性,命令列的操作,一臉懵逼。學習是一個循序漸進的過程,不能沒事給自己找麻煩,看網上的貼子,有多少人卡在最初的安裝Linux系統上面。對於剛剛入門Linux的新手來言, 暫時收起不求甚解在物理機上面安裝Linux系統,怎麼簡單怎麼來,怎麼容易怎麼做,不要自己挖坑自己跳。虛擬機器是一個非常方便的軟體,可以1比1 的模擬真實環境,而且外加 快照 克隆的功能,讓學習更加的方便容易。
作為一個新手要想入門雲計算,那麼在初級階段需要把linux學習路線搞清楚,任何學習都是循序漸進的,所以學linux也是需要有一定的路線,個人建議學習的路線如下:
在初期學習liunx的時候需要注意一下幾點:
1.忘掉windows的思維方式,當我們安裝完linux系統之後遇到問題會習慣性的去瀏覽器上查詢資料,這樣雖然便利了我們的學習,但是我們的大腦卻對問題缺少了思考。遇到了不懂的問題就儘量自己思考,查資料, 實在不會再去找去查,這樣可以加深每次對問題的理解。
2.要多動手。
(1)要多做筆記,俗話說好記性不如爛筆頭
(2)要多做練習,多實驗。實踐出真知。很多時候我們都是嘴上功夫,而到了真正自己搭建的時候就會發現自己其實一無所知。不能盲目的去學習linux。要設計好自己的學習思路,循序漸進。
Linux雲計算初級運維工程師
Linux雲計算網路管理實戰
網路歷史
網路協議
進位制轉換
交換機
MAC
路由器
IP
公有云網路初識
階段性專案實戰
Linux雲主機系統管理及服務配置實戰
Linux簡介
Linux作業系統初識
物理伺服器部署
Aliyun ECS部署
Bash Shell基本語法
Linux中幫助獲得方法
Linux作業系統檔案管理
Vi編輯器
使用者及組管理
檔案基本許可權
檔案特殊許可權
程序管理
輸入輸出重定向
管道
Bash Shell基礎
儲存管理
檔案查詢
檔案打包及壓縮
軟體包管理
Linux主機管理管理
計劃任務
系統日誌
構建受管型網路服務 DHCP
構建遠端主機管理服務 SSHD
構建檔案共享服務 NFS SAMBA FTP
構建網路時間服務 NTP
構建域名解析服務 DNS
構建基於Apache部署Wordpress部落格系統
構建基於Apache部署Ecshop和Discuz!
資訊釋出系統
階段性專案實戰
Linux Shell指令碼自動化程式設計實戰
Shell程式設計初識
Shell特性
Shell指令碼規範
Shell指令碼除錯
變數的型別
變數置換
Shell指令碼執行方式
算式置換
Shell條件測試
Shell迴圈結構
Expect應用
Shell函式 funcation
Shell陣列 array
正則表示式 RE
檔案操作程式設計 SED
複雜資料處理程式設計 AWK
Shell指令碼實現LAMP終級部署
Shell指令碼實現雲主機系統狀態收集及分析
Shell指令碼實現Web訪問日誌全文分析
開源資料庫MySql DBA運維實戰
MySQL 資料庫介紹
MySQL 5.7版本部署
MySQL 體系結構介紹
結構化查詢語言SQL介紹
資料庫基本操作
MySQL 表的操作 DDL
MySQL 資料操作 DML
MySQL 資料庫查詢
MySQL 資料庫高階應用
MySQL 索引的使用
MySQL 儲存引擎
MySQL 安全控制
MySQL 資料備份與恢復
MySQL 資料庫多源複製部署
MySQL 讀寫分離
資料庫中介軟體 MyCAT
Shell指令碼實現Galera MySQL叢集部署
階段性專案實戰
Linux雲計算高階運維工程師
企業級自動化專案及公有云運維實戰
自動化運維Devops介紹
運維管理員的自我修養
Cobbler實現系統批次部署
構建分散式版本控制系統 Git
Tengine構建企業級高效能Web伺服器
Shell指令碼實現LNMP單、多機部署
Tengine虛擬主機構建
Tengine動態網站部署
Tengine反向代理模組介紹
Tengine構建高效能反向代理伺服器
Tomcat 構建企業級高負載JAVA Web應用伺服器
自動化運維工具之SaltStack
自動化運維工具之Ansible
構建分散式日誌分析平臺 ELK
基於Nagios構建企業級監控告警平臺
基於Zabbix構建企業級監控告警平臺
Iptables或Firewalld實現系統安全及服務安全
Aliyun ECS/RDS 運維實戰
大型網站高併發架構運維實戰
叢集技術 HA LB HPC
基於LVS構建負載均衡叢集
基於Tengine構建高併發負載
均衡叢集
基於HAProxy構建多層高併發
負載均衡叢集
基於KeepAlived構建負載均衡
器高可用
基於Pacemaker實現Apache
及Mariadb高可用
基於GlusterFS構建實時線上
分散式儲存叢集
基於DRBD構建分散式塊
儲存群集
基於Ceph構建高效能PB級
儲存叢集
快取記憶體伺服器叢集構建
memcached redis
HTTPS實現線上Web伺服器
傳輸安全
Iptables或Firewalld安全加固
及入侵防禦
Web伺服器Tengine效能最佳化
Web伺服器Tomcat效能最佳化
MySQL 效能及架構最佳化
階段性專案實戰
Linux雲計算運維開發工程師
Python Linux自動化運維開發實戰
python開發環境部署
python檔案型別
python運算子及表示式
python資料型別
python流程控制
python檔案操作
python 函式
python包與模組
python正則表示式
python異常處理
python面向物件
收集主機系統資訊
構建資訊釋出系統 Django
批次主機管理應用系統開發
基於Nagios監控系統的主機
服務狀態監控外掛及應用開發
基於Zabbix監控系統的主機服務狀
態監控外掛及應用開發
批次主機效能監控系統開發
網路爬蟲工具開發
企業私有云架構及運維實戰
虛擬化技術方案介紹
KVM虛擬機器部署
KVM 網路管理
KVM 儲存配置
KVM 虛擬機器管理
Shell指令碼批次部署KVM虛擬機器
企業級虛擬化技術介紹
Python開發KVM虛擬機器管理系統
雲計算技術概覽 IaaS PaaS SaaS CaaS
主流IaaS技術實現方案介紹 OpenStack CloudStack
OpenStack部署及基本管理
OpenStack核心模組解析
課程大綱
千鋒Linux雲計算架構師+Python運維開發課程十大階段的課程為由淺入深、循序漸進的完整課程體系,包括結合Linux的網路基礎實戰、Linux系統配置及服務深度解析、Shell指令碼自動化運維專案開發、開源資料庫MySQL DBA架構及最佳化、主流Web 伺服器Nginx架構最佳化、大型網站高併發專案LVS實戰方案、高可用叢集技術、分散式儲存技術Ceph、安全防禦技術、效能最佳化方案、Python自動化運維開發技術、私有云平臺技術KVM 、Openstack、容器技術Docker等。
學生可以輕鬆掌握:
大型網站架構、網站伺服器運維、資料庫運維、自動化運維技術;
能夠利用Shell及Python編寫自動化運維工具,例如CMDB、自動化運維平臺等、公有云管理系統;
能夠解決運維過程中出現的各種問題,例如網站架構問題等;
具備中小型公司公有云運維的能力。例如公司使用的是阿里雲、亞馬遜雲;
掌握中大型公司私有云平臺的構建及運維,例如構建及運維京東私有云平臺;
能夠利用Python開發運維中的各種工具,以及對現有軟體如Zabbix、Ansible進行二次開發;
影片教程
Linux運維或管理人才是企業目前急需的技術人才之一,千鋒老師根據10多年Linux相關工作經驗,總結出了一套學習Linux的線路圖,大家可以此線路圖為依據,抓住重點,分清主次,相信一定能達到事半功倍的效果。如果讀者能認真學習完並掌握本線路圖所涉及的技術要點,那麼也就基本掌握了企業對Linux運維或管理人才的基本應用需求。
該影片一共分為兩大板塊
一、Python Linux自動化運維開發實戰
1、python開發環境部署
2、python檔案型別
3、python運算子及表示式
4、python資料型別
5、python流程控制
6、python檔案操作
7、python 函式
8、python包與模組
9、python正則表示式
10、python異常處理
11、python面向物件
12、收集主機系統資訊
13、構建資訊釋出系統 Django
14、批次主機管理應用系統開發
15、基於Nagios監控系統的主機服務狀態監控外掛及應用開發
16、基於Zabbix監控系統的主機服務狀態監控外掛及應用開發
17、批次主機效能監控系統開發
18網路爬蟲工具開發
這一板塊,主要目的是為了讓學員掌握Python在Linux雲計算中的應用,從而實現自動化運維開發。
二、企業私有云架構及運維實戰
1、虛擬化技術方案介紹
2、KVM虛擬機器部署
3、KVM 網路管理
4、KVM 儲存配置
5、KVM 虛擬機器管理
6、Shell指令碼批次部署KVM虛擬機器
7、企業級虛擬化技術介紹
8、Python開發KVM虛擬機器管理系統
9、雲計算技術概覽 IaaS PaaS SaaS CaaS
10、主流IaaS技術實現方案介紹 OpenStack CloudStack
11、OpenStack部署及基本管理
12、OpenStack核心模組解析
13、OpenStack運維
14、主流PaaS技術實現方案介紹 Docker LXC
15、Docker部署及基本管理
16、Docker編排部署工具
17、Docker Swarm叢集
18、kubernetes叢集
19、Docker負載均衡和服務發現
20、Hadoop大資料管理引航及運維實戰
這一板塊的學習,能夠加強學員對虛擬化技術的掌握,對企業私有云平臺部署及運維,對大資料平臺的使用。可以看出,這些影片的教學極為詳盡,內容也非常貼近企業需求。
傳送門:
千鋒Linux教程-Linux從入門到精通(小白必看) https://pan.baidu.com/s/1uolNceZnHJ5DEf3DmvMrwg 提取碼:o7zy
千鋒Linux教程-Shell指令碼入門全套教程 https://pan.baidu.com/s/1Wu9PPnxISot2aP44BE83lA 提取碼:wphd
千鋒Linux教程-Linux雲計算網路管理實戰 https://pan.baidu.com/s/1IIozSjzDmHK4M5qp93uylg 提取碼:cxuz
雲計算面試題
對於所有Linux雲計算運維的應聘者來說,面試是最考驗面試者的環節,且很有壓力的部分。今天我們就聊一聊面試技巧。
面試,是面試官與應聘者雙向溝通的環節。目的是透過互相交流,促進雙方的瞭解。從而達成僱傭意向的過程。應聘者們往往是費盡心思,絞盡腦汁,施展渾身解數,運用各種手段,竭盡所能地博取面試官的認同。面試應對策略和實用的方法其實有很多,比如 面試的準備,面試博弈,經典Q&A,入職前事宜等方面。下面談一談面試前的準備細節。
面試前的準備,通常要注意1.面試的資料準備;2,形象的設計;3,心裡準備幾個方面。
一個經驗豐富的面試者,肯定不是兩手空空的參加面試。常見的紙質簡歷,需要提前準備兩到三份。有人說,這個可以讓前臺列印,或傳送Email。我不建議你拿應急的方法來做標配的方案。關於簡歷的內容方面,有專門的雲計算Linux運維工程師簡歷製作影片可以觀看。
關於形象,有人會說一個資深的程式設計師的標配是,格子衫/T恤,牛仔褲加地中海似的髮型。關於髮型我不置可否,但著裝建議你應該,首選商務休閒裝,其次商務裝。有人會說,從來沒有穿過商務休閒裝。那麼一件有領子(重要),並且顏色在兩三種以內,無花紋或花紋單一的衣服,就是很好的選擇。
最後就是心理準備了。經過專業訓練的人。都會在簡歷中凸顯與應聘崗位相符的經歷。甚至誇大其中一部分內容。這樣難免會帶來一些漏洞,比如精通的技能,自己僅僅是瞭解。
關於這一點,面試路途中去補習,可以起到臨陣磨槍的效果。但事實上難逃杯水車薪的窘境。那麼建議你在心裡上要注意的是,一個工作崗位是由很多方面的工作組成的。人往往只會關注自己的短板,而忽略自己更多方面的才能。面試者一定要注意心態的調整,平常心的對待面試官,將你所掌握的知識和技能發揮出來,即使遇到一兩個回答不上來的問題。對於面試官來說,你能將工作所需的內容回答的基本全面。其實這次面試就是成功的。
回覆列表
對於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環境下的應用程式設計了。