偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

學Linux到底學什么?在線Linux幫你低成本練習

系統(tǒng) Linux
我們常常聽到很多人說要學學Linux或者被人告知說應該學學Linux,那么學Linux到底要學什么?

[[386795]]

 我們常常聽到很多人說要學學Linux或者被人告知說應該學學Linux,那么學Linux到底要學什么?

為什么要學Linux

在回答學什么之前,我們先看看為什么要學。首先我們需要認識到的是,很多服務(wù)器使用的是Linux系統(tǒng),而作為服務(wù)器應用程序的開發(fā)者或者維護者,如果不了解Linux的基本使用,該如何進行開發(fā)或者維護呢?

當然,也有可能你聽說Linux更高大上,或者是說Linux對開發(fā)者更加友好(Windows用戶把刀放下),這都是題外話了。

在我看來,學習Linux主要有以下兩點原因

  • 使用標準C/C++ 編寫運行在Linux上的應用程序
  • 編寫部署在Linux上的應用程序,如Python,Java web服務(wù)程序
  • 一探究竟。眾所周知,Linux開源,windows并非如此。

而對于Python,它有Python解釋器,Java有Java虛擬機,他們實際上對Linux的需求是沒有C/C++來的高。即便如此,Linux也是值得Python/Java開發(fā)者去學習的。

Linux學習方向

那么一般說的學Linux是要學什么呢?方向不同,要學習的內(nèi)容也不同,可以大致分為這么幾個方向:

  • 運維,維護Linux服務(wù)器
  • 應用開發(fā),開發(fā)Linux應用程序
  • 底層開發(fā)

我本人是做Linux應用開發(fā)的,因此對于運維方向和底層方向不是很了解,這里僅簡單說一下。

運維Linux主要需要學會對服務(wù)器的基本部署,監(jiān)控,配置,管理等等, 你可以認為,這些機器歸你管了,7*24小時保障它能正常提供服務(wù)(刪庫跑路就別做了),所以7月24日請對運維的朋友好點。也歡迎運維的朋友留言糾正或者補充我的說法。

底層開發(fā)需要了解uboot,文件系統(tǒng),內(nèi)核等底層相關(guān)內(nèi)容,主要工作可能涉及文件系統(tǒng)裁剪,驅(qū)動開發(fā),內(nèi)核模塊定制(如內(nèi)存管理,進程調(diào)度)等等。底層開發(fā)總體來說要求比較高。

應用開發(fā)自然是需要學習如何開發(fā)在Linux上運行的應用程序,如何定位Linux應用程序問題等等。

Linux應用開發(fā)學什么

Linux的學習很多會以命令為主,因而初學會覺得枯燥甚至疑惑,鼠標點點點就能完成的事,為什么要噼里啪啦敲這么多?這里給出兩點理由,也歡迎你補充:

  • 出于資源的考慮,絕大部分Linux服務(wù)器沒有圖形界面
  • 命令行便于自動化,將一系列操作寫入腳本,可代替手動操作

而它的學習我把它分為這么幾個階段:

  • 基本使用
  • 開發(fā)調(diào)試
  • 系統(tǒng)認識

這三個階段對知識積累的要求不一樣,但總體來說并沒有嚴格的先后之分。

類于windows,當年你學習windows的時候?qū)W了什么?

  • 開關(guān)機?
  • 安裝卸載軟件?如安裝視頻播放器,音樂播放器(為啥要安這玩意?)。
  • 如何打開安裝的軟件?如打開瀏覽器上網(wǎng),打開編輯器寫文檔
  • 如何存放自己的資料?移動,創(chuàng)建,刪除等等
  • 如何使用office 辦公軟件
  • ……

是不是想想好像也沒有特意地去學習?

那么對于學習Linux來說也是類似的,就是學會這些最普通的使用,

  • 如何開關(guān)機
  • 如何上網(wǎng)
  • 如何打開命令行
  • 如何使用命令行安裝卸載軟件
  • 如何編輯文本
  • 如何創(chuàng)建,移動,刪除文件
  • 如何查看文件內(nèi)容,解壓縮文件
  • ……

這個階段最難的就是從圖形界面到命令行的轉(zhuǎn)換。

那么第二階段呢,就需要學會:

  • 如何編寫Linux應用程序
  • 如何編譯或者構(gòu)建你的程序
  • 如何運行你的程序
  • 如何定位程序bug

而第三階段,則是一個需要漫長的學習過程,但都是為開發(fā)服務(wù),包括:

  • 理解并踐行一切皆文件
  • ELF文件,Linux主要可執(zhí)行文件格式
  • Linux各大機制的基本原理,如進程調(diào)度,內(nèi)存管理,虛擬內(nèi)存,文件系統(tǒng)等,既然要寫Linux應用程序,怎么能不了解它所在平臺的主要機制呢?

越是疑難問題,越需要這些最基本的知識。

怎么學?

來到了大家最關(guān)心的問題了,同樣的,每個人的情況不太一樣,這里只給出我的個人建議。

關(guān)于第一階段,你可以先定個小目標,例如一段時間內(nèi)學會在Linux下進行你的日?;顒?玩游戲就算了),例如編寫文檔,看視頻等等。同時建議:

  • 選擇主流的發(fā)行版,如ubuntu,centos等,遇到問題時比較容易解決
  • 在window下安裝虛擬機,這樣Linux環(huán)境就隨你折騰了

在這期間,你可能需要了解

  • 使用apt-get或者yum安裝或卸載軟件
  • 使用tar,unzip,zip,gz等解壓縮軟件安裝包
  • 了解運行環(huán)境,學會如何執(zhí)行命令

這里的學習你可以通過網(wǎng)上搜索資料(視頻教程或者博客文章)或者購買相關(guān)書籍進行操練。如果你不想安裝虛擬機或者docker,你可以通過一些在線的Linux來體驗。

第二階段也是主要的階段,這一階段要學習的東西非常多,多是命令的學習,這里同樣可以參考《鳥哥的Linux私房菜-基礎(chǔ)篇》。不過初期階段建議抱著一個目的去學習,就是如何在Linux寫一個完整的程序,為了達到這個目的你需要學習

  • cd touch cp mv rm ls,find,切換目錄,創(chuàng)建,復制,移動,刪除,查看,查找等等
  • vi/vim 編寫代碼,這里有一個在線練習網(wǎng)站
  • gcc編譯代碼,后期可能需要學習makefile,cmake等構(gòu)建工具
  • 版本管理,git也是當前必備的一個工具了,學習資料推薦pro git
  • gdb調(diào)試,可以參考《GDB調(diào)試指南》
  • 問題定位,除了觀察最基本的打印之外,還需要知道,如何查看進程信息(ps),如何查看網(wǎng)絡(luò)連接信息(ss,netstat),如何強制停止進程(kill -9)如何查看進程文件打開情況(lsof),如何多種姿勢查看文本文件(cat,tail,more,less)等等。
  • 腳本學習,學習Linux,就不得不學習shell腳本了,它在很多時候能毫無抱怨地幫你做事,前提是你會調(diào)教。《Linux命令行與shell腳本編程大全》也是調(diào)教教程之一。這里也有一些《必備的shell知識》

這個過程涉及到的命令非常多,但是不建議每一個都去細學,首先知道有這么一個命令即可,然后需要的時候能夠快速找到用法,記住你的目標就是流暢地進行開發(fā)調(diào)試,而在達成這個目標地過程中,你自己也會慢慢接觸到更多。

但是有必要說明的是,開發(fā)Linux應用程序并不一定要在Linux下編寫代碼,你可以選擇利用samba等工具在windows和linux之間共享文件,然后再在windows下熟悉的工具中或者你認為比較強大合適的工具中編寫代碼,在Linux下進行編譯調(diào)試即可。當然你也可以選擇Linux下的IDE,或者將vim調(diào)教一下也是可以的。

第三階段要求是比較高的,這個時候你應該學習過操作系統(tǒng)的相關(guān)課程,然后你可以通過諸如《深入理解計算機系統(tǒng)》,《Linux內(nèi)核設(shè)計與實現(xiàn)》,《深入Linux內(nèi)核架構(gòu)》,《深入理解Linux內(nèi)核》等書籍進行相關(guān)概念學習,也可以通過閱讀源碼進行深入學習,最終,你需要了解堆和棧,內(nèi)存管理,進程調(diào)度,虛擬內(nèi)存,文件系統(tǒng)等相關(guān)知識。

當然相關(guān)命令學習也必不可少,例如readelf,nm,ipcs,iostat,objdump,free,chrt,pmap,uptime,top,pidstat等。

以上就是三個階段Linux相關(guān)的學習內(nèi)容和建議,實際上C/C++相關(guān)的同步學習也非常重要,包括相關(guān)數(shù)據(jù)結(jié)構(gòu)與算法,系統(tǒng)編程,網(wǎng)絡(luò)編程等內(nèi)容的學習,否則看到很多命令的結(jié)果仍然會一臉懵逼。

最后,建議實踐再實踐。

在線就能用的Linux給你找好了

如果你不想安裝虛擬機,這里提供幾個在線就能把玩Linux的網(wǎng)站,他們不需要注冊用戶,可以直接使用。

Unix Terminal Online

地址:

https://www.tutorialspoint.com/unix_terminal_online.php


這個網(wǎng)站也支持代碼的編譯運行,而且速度還可以。

JS/UIX - Terminal

地址:

https://www.masswerk.at/jsuix/index.htm


進入后,點擊open terminal即可。它提供非常簡單的終端環(huán)境,而且沒有自帶gcc等編譯套件,不過練習基本命令和shell腳本還是可以的。整體使用起來也比較流暢。

cb.vu

地址:

http://cb.vu


它使用的是 FreeBSD,整體也是非常流暢,不過同樣不支持代碼編譯運行。

copy.sh

地址:

https://copy.sh/v86/?profile=linux2


它可以全屏體驗,讓你感覺就是在一臺真的Linux上玩耍,同時還支持多種發(fā)行版,想體驗不同系統(tǒng)的可以試試。


jsLinux

地址:

https://bellard.org/jslinux/


它提供多種系統(tǒng)選擇,你也可以在上面編譯運行代碼。

不過整體感覺不是很流暢。

Bash Shell

地址:

https://www.jdoodle.com/test-bash-shell-script-online/


這里可以專門用來練習shell編程

paiza

地址:

https://paiza.io/en/projects/new?language=bash


同上,可以用來學習shell腳本。

ShellCheck

地址:

https://www.shellcheck.net/

就像它的名字一樣,它是用來檢查你的腳本可能存在的問題的。

寫好的腳本就是沒有如預期一樣運行?不如shellcheck一下?

 

責任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2020-11-09 10:25:59

ICC低成本轉(zhuǎn)型

2023-08-30 08:30:09

2020-05-22 10:02:43

Python語言編程

2021-08-16 07:51:20

Linux 中斷Linux 系統(tǒng)

2011-08-22 10:41:45

2024-05-13 11:00:23

2024-06-06 11:26:03

2010-02-01 09:38:46

2017-10-31 15:40:36

Linux學習步驟

2021-01-26 15:40:46

工具Vim開發(fā)

2011-03-24 14:57:23

SUSE Linux云計算

2021-01-29 11:47:35

人工智能智能科學專業(yè)

2023-10-09 18:39:13

Python代碼

2023-12-07 12:38:09

架構(gòu)低成本開發(fā)

2021-08-23 06:59:38

Linux內(nèi)核代碼

2017-01-09 12:57:21

Linux

2021-12-21 23:21:16

DDOS防御安全

2019-09-04 20:49:40

Linux操作系統(tǒng)UNIX

2010-02-01 09:53:49

安裝QQ
點贊
收藏

51CTO技術(shù)棧公眾號