首頁 >運維 >linux運維 >Linux基礎知識介紹(後端必備)

Linux基礎知識介紹(後端必備)

青灯夜游
青灯夜游轉載
2019-11-23 16:51:202622瀏覽

這篇文章就來跟大家介紹一下後端程式設計師必備的Linux基礎知識,有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。

Linux基礎知識介紹(後端必備)

在學習Linux之前,我們先來簡單的認識作業系統。

一從認識作業系統開始

#1.1  作業系統簡介

    1.1  作業系統簡介
  • 我透過以下四點介紹什麼作業系統:
  • 作業系統(Operation System,簡稱OS)是管理電腦硬體與軟體資源的程序,是電腦系統的核心與基石;
  • 作業系統本質上是運行在電腦上的軟體程式;
  • 為使用者提供一個與系統互動的操作介面;

Linux基礎知識介紹(後端必備)

作業系統分內核與外殼(我們可以把外殼理解成圍繞著核心的應用程序,而核心就是能操作硬體的程式)。

1.2  作業系統簡單分類

Windows:

目前最受歡迎的個人桌面作業系統,不做多的介紹,大家都清楚。 Linux基礎知識介紹(後端必備)

Unix: 最早的多用戶、多任務作業系統 .依照作業系統的分類,屬於分時作業系統。 Unix 大多被用在伺服器、工作站,現在也有用在個人電腦上。它在創建互聯網、電腦網路或客戶端/伺服器模型方面發揮著非常重要的作用。

Linux基礎知識介紹(後端必備)Linux:

Linux是一套免費使用和自由傳播的類別Unix作業系統.Linux存在著許多不同的Linux版本,但它們都使用了

Linux核心 。 Linux可安裝在各種電腦硬體設備中,例如手機、平板電腦、路由器、電玩控制台、桌上型電腦、大型主機和超級電腦。嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU 工程各種工具和資料庫的作業系統。

二 初探Linux

    2.1 Linux簡介
  • #我們上面已經介紹到Linux,我們這裡只強調了三點。
  • 類別Unix系統:
  • Linux是一種自由、開放原始碼的類似Unix的作業系統
  • Linux核心:
嚴格來說,Linux這個字本身只表示Linux核心

Linux基礎知識介紹(後端必備)

Linux之父:

一個程式領域的傳奇式人物。他是Linux核心的最早作者,隨後發起了這個開源項目,擔任Linux核心的首要架構師與專案協調者,是當今世界最著名的電腦程式設計師、駭客之一。他也發起了Git這個開源項目,並為主要的開發者。

  • 2.2  Linux誕生簡介

1991年,芬蘭的業餘計算機愛好者Linus Torvalds編寫了一款類似Minix的系統(基於微核心架構的類Unix作業系統)被ftp管理員命名為Linux 加入到自由軟體基金的GNU計畫中;Linux以一隻可愛的企鵝作為標誌,象徵敢作敢為、熱愛生活。

2.3 Linux的分類

  1. #Linux依原生程度,分為兩種:
  2. 核心版本:
Linux不是一個作業系統,嚴格來講,Linux只是一個作業系統中的核心。內核是什麼?核心建立了電腦軟體與硬體之間通訊的平台,核心提供系統服務,例如檔案管理、虛擬記憶體、裝置I/O等;

Linux基礎知識介紹(後端必備)

發行版本:

一些組織或公司在核心版基礎上進行二次開發而重新發行的版本。 Linux發行版本有很多種(ubuntu和CentOS用的都很多,初學建議選擇CentOS),如下圖:

##三 Linux檔案系統概覽

######3.1 Linux檔案系統簡介#########

在Linux作業系統中,所有被作業系統管理的資源,例如網路介面卡、磁碟機、印表機、輸入輸出裝置、普通檔案或是目錄都被視為一個檔案。

也就是說在LINUX系統中有一個重要的概念:一切都是檔案。其實這是UNIX哲學的一個體現,而Linux是重寫UNIX而來,所以這個概念也就傳承了下來。在UNIX系統中,把一切資源都看作是文件,包括硬體設備。 UNIX系統把每個硬體都看成是一個文件,通常稱為設備文件,這樣使用者就可以用讀寫文件的方式實現對硬體的存取。

3.2 檔案類型與目錄結構

#Linux支援5種檔案類型:

Linux基礎知識介紹(後端必備)

Linux的目錄結構如下:

Linux檔案系統的結構層次鮮明,就像一棵倒立的樹,最頂層是其根目錄:

Linux基礎知識介紹(後端必備)

常見目錄說明:

  • #/bin: 存放二進位執行檔(ls,cat,mkdir等),常用指令一般都在這裡;
  • /etc:  存放系統管理與設定檔;
  • /home:  存放所有使用者檔案的根目錄,是使用者主目錄的基點,例如使用者user的主目錄就是/home/user,可以用~user表示;
  • /usr : 用於存放系統應用程式;
  • /opt: 額外安裝的可選應用程式套件所放置的位置。一般情況下,我們可以把tomcat等都安裝到這裡;
  • /proc:  虛擬檔案系統目錄,是系統記憶體的對應。可直接存取此目錄以取得系統資訊;
  • /root:    超級使用者(系統管理員)的主目錄(特權階級^o^);
  • #/sbin:    存放二進位執行文件,只有root才能存取。這裡存放的是系統管理員使用的系統層級的管理命令和程式。如ifconfig等;
  • /dev:    用於存放裝置檔案;
  • /mnt:    系統管理員安裝暫存檔案系統的安裝點,系統提供這個目錄是讓使用者暫時掛載其他的檔案系統;
  • /boot:    存放用於系統引導時所使用的各種檔案;
  • #/lib :      存放著和系統運作相關的函式庫檔案;
  • /tmp:    用來存放各種暫存文件,是公用的暫存檔案點;​​
  • /var:    用於存放運行時需要改變資料的文件,也是某些大文件的溢出區,比方說各種服務的日誌文件(系統啟動日誌等。)等;
  • /lost found:    這個目錄平常是空的,系統非正常關機而留下「無家可歸」的文件(windows下叫什麼.chk)就在這裡。

四  Linux基本指令

#下面只是給了一些比較常用的指令。推薦一個Linux指令快查網站,非常不錯,大家如果遺忘某些指令或對某些指令不理解都可以在這裡解決。

Linux指令大全:http://man.linuxde.net/

#4.1 目錄切換指令

  • cd usr        切換到該目錄下usr目錄
  • cd ..(或cd../)    切換到上一層目錄
  • cd /        切換到系統根目錄
  • cd ~        切換到使用者主目錄
  • #cd -        切換到上一個所在目錄

####################################################################################################################################################### ##4.2 目錄的操作指令(增刪改查)##################1、mkdir 目錄名稱###:### 增加目錄####### ######2、ls或ll######(ll是ls -l的縮寫,ll指令以看到該目錄下的所有目錄和檔案的詳細資訊):查看目錄資訊### #########3、find 目錄參數###:### 尋找目錄(查)######範例:###
  • 列出目前目錄及子目錄下所有檔案和資料夾: find .
  • /home目錄下尋找以.txt結尾的檔名:find /home -name "*.txt"
  • 同上,但忽略大小寫: find /home -iname "*.txt"
  • 目前目錄及子目錄下找所有以.txt和.pdf結尾的檔案:find . \( -name "*.txt" -o -name "*.pdf" \)find . -name "*.txt" -o -name "*.pdf"

#4、mv 目錄名稱新目錄名稱 修改目錄的名稱(改)

注意:mv的語法不僅可以對目錄進行重命名而且也可以對各種文件,壓縮包等進行   重命名的操作。 mv指令用來對檔案或目錄重新命名,或將檔案從一個目錄移到另一個目錄。後面會介紹到mv指令的另一個用法。

5、mv 目錄名稱目錄的新位置  移動目錄的位置---剪切(改)

#注意:mv語法不僅可以對目錄進行剪切操作,對檔案和壓縮包等都可執行剪切操作。另外mv與cp的結果不同,mv好像文件“搬家”,文件數量並未增加。而cp對檔案進行複製,檔案個數增加了。

6、cp -r 目錄名稱目錄拷貝的目標位置 拷貝目錄(改),-r代表遞迴拷貝

##注意: cp指令不僅可以拷貝目錄還可以拷貝文件,壓縮包等,拷貝文件和壓縮包時不   用寫-r遞歸

7、rm [-rf] 目錄 : 刪除目錄(刪除)

注意:rm不僅可以刪除目錄,也可以刪除其他文件或壓縮包,為了增強大家的記憶,    無論刪除任何目錄或文件,都直接使用

rm -rf 目錄/檔案/壓縮套件

4.3 檔案的操作指令(增刪改查)

  1. touch 檔案名稱:  檔案的建立(增)
  2. #cat/more/less/tail 檔案名稱 檔案的檢視(查)

    • cat 只能顯示最後一螢幕內容
    • more 可以顯示百分比,回車可以向下一行,    空格可以向下一頁,q可以退出查看
    • less可使用鍵盤上的PgUp和PgDn向上   和向下翻頁,q結束查看
    • tail-10 查看檔案的後10行,Ctrl C結束
注意:指令tail -f 文件可以對某個文件進行動態監控,例如tomcat的日誌文件,    會隨著程式的運作,日誌會變化,可以使用tail -f catalina-2016-11-11.log 監控   文   件的變更

  1. ##vim 檔案  修改檔案的內容(變更)vim編輯器是Linux中的強大組件,是vi編輯器的加強版,vim編輯器的命令和快捷方式有很多,但此處不一一闡述,大家也無需研究的很透徹,使用vim編輯修改文件的方式基本上會使用就可以了。

    在實際開發中,使用vim編輯器主要作用就是修改設定文件,以下是一般步驟:

    vim 文件------>進入檔案----->指令模式------>按i進入編輯模式----->編輯檔案   ------->按Esc進入底行模式--- -->輸入:wq/q!(輸入wq代表寫入內容並退出,即儲存;輸入q!代表強制退出不儲存。)

  2. ##rm - rf 檔案
  3. 刪除檔案(刪除)同目錄刪除:熟記rm -rf 檔案即可

4.4 壓縮檔案的操作指令

1)打包並壓縮檔案:

Linux中的打包檔案一般是以.tar結尾的,壓縮的命令一般是以.gz結尾的。

而一般情況下打包和壓縮是一起進行的,打包並壓縮後的檔案的後綴名稱一般.tar.gz。

指令:

tar -zcvf 打包壓縮後的檔名要打包壓縮的檔案
#其中:##z:呼叫gzip壓縮指令進行壓縮
c:打包檔案

v:顯示運行過程

f:指定檔案名稱

例如:加入test目錄下有三個檔案分別是: aaa.txt bbb.txt ccc.txt,如果我們要打包test目錄並指定壓縮後的壓縮包名稱為test.tar.gz可以使用命令:

tar -zcvf test.tar.gz aaa. txt bbb.txt ccc.txt

或:

tar -zcvf test.tar.gz       /test/2)解壓縮壓縮套件:

指令:tar [-xvf] 壓縮檔案#其中:x:代表解壓縮

範例:

1 將/test下的test.tar.gz解壓縮到目前目錄下可以使用指令:#tar -xvf test.tar.gz

2將/test下的test.tar.gz解壓縮到根目錄/usr下:##tar -xvf xxx.tar.gz -C /usr(- C代表指定解壓縮的位置)

4.5 Linux的權限命令

#作業系統中每個檔案都有特定的權限、所屬使用者和所屬群組。權限是作業系統用來限制資源存取的機制,在Linux中權限一般分為讀(readable)、寫(writable)和執行(excutable),分為三組。分別對應檔案的屬主(owner),屬群組(group)和其他使用者(other),透過這樣的機制來限制哪些使用者、哪些群組可以對特定的檔案進行什麼樣的操作。透過

ls -l 指令我們可以   查看某個目錄下的檔案或目錄的權限

#範例:在隨意某個目錄下

ls -l

Linux基礎知識介紹(後端必備)

第一列的內容的資訊解釋如下:

Linux基礎知識介紹(後端必備)

下面將詳細講解文件的類型、Linux中權限以及檔案有所有者、所在群組、其它群組具體是什麼?

檔案的類型:

    d: 代表目錄
  • -: 代表檔案
  • l: 代表連結(可以認為是window中的捷徑)

Linux中權限分為以下幾種:

    r:代表權限是可讀, r也可以用數字4表示
  • w:代表權限是可寫,w也可以用數字2表示
  • x:代表權限是可執行,x也可以用數字1表示

檔案和目錄權限的差異:

對檔案和目錄而言,讀寫執行表示不同的意義。

對於檔案:

」權限名稱#可執行動作r可以使用cat檢視檔案的內容w可以修改檔案的內容

#x

可以將其運行為二進位檔案權限名稱可執行操作r可以查看目錄下清單w可以建立和刪除目錄下檔案
#對於目錄:
###x######可以使用cd進入目錄########### #

在linux中的每個使用者必須屬於一個群組,不能獨立於群組外。在linux中每個檔案有所有者、所在群組、其它群組的概念。

  • 所有者

    一般為文件的創建者,誰創建了該文件,就天然的成為該文件的所有者,用ls ‐ahl指令可以看到檔案的擁有者也可以使用chown 使用者名稱 檔案名稱來修改檔案的擁有者。

  • 檔案所在群組

    當某個使用者建立了一個檔案後,這個檔案的所在群組就是該使用者所在的群組用ls ‐ahl指令可以看到文件的所有群組也可以使用chgrp  組名 檔案名來修改檔案所在的群組。

  • 其它群組

    除開檔案的擁有者和所在群組的使用者外,系統的其它使用者都是檔案的其它群組

我們再來看看如何修改檔案/目錄的權限。

修改檔案/目錄的權限的指令:chmod

#範例:修改/test下的aaa.txt的權限為屬主有全部權限,屬主所在的群組有讀寫權限,
其他使用者只有讀取的權限

chmod u=rwx,g=rw,o=r aaa.txt

Linux基礎知識介紹(後端必備)

上述範例也可以使用數字表示:

chmod 764 aaa.txt

補充一個比較常用的東西:

假如我們裝了一個zookeeper,我們每次開機到要求其自動啟動該怎麼辦?

  1. 新建一個腳本zookeeper
  2. 為新建的腳本zookeeper加入可執行權限,指令是:chmod x zookeeper
  3. 把zookeeper這個腳本加入到開機啟動項目裡面,指令是: chkconfig --add  zookeeper
  4. 如果想看看是否新增成功,指令是:chkconfig --list

#4.6 Linux 使用者管理

#Linux系統是一個多使用者多任務的分時作業系統,任何一個要使用系統資源的用戶,都必須先向系統管理員申請帳號,然後以這個帳號的身份進入系統。

使用者的帳號一方面可以幫助系統管理員對使用系統的使用者進行跟踪,並控制他們對系統資源的存取;另一方面也可以幫助使用者組織文件,並為使用者提供安全性保護。

Linux使用者管理相關指令:

  • #useradd 選項使用者名稱:新增使用者帳號
  • userdel 選項使用者名稱:刪除使用者帳號
  • usermod 選項使用者名稱:修改帳號
  • passwd 使用者名稱:變更或建立用戶的密碼
  • passwd -S 使用者名稱 :顯示使用者帳號密碼資訊
  • passwd -d 使用者名稱:  清除使用者密碼

useradd指令用於Linux中建立的新的系統使用者。 useradd可用於建立使用者帳號。帳號建好之後,再用passwd設定帳號的密碼.而可用userdel刪除帳號。使用useradd指令所建立的帳號,實際上是保存在/etc/passwd文字檔案中。

passwd指令用於設定使用者的認證訊息,包括使用者密碼、密碼過期時間等。系統管理者則能用它來管理系統使用者的密碼。只有管​​理者可以指定使用者名稱,一般使用者只能變更自己的密碼。

4.7 Linux系統使用者群組的管理

#每個使用者都有一個使用者群組,系統可以對一個使用者群組中的所有用戶進行集中管理。不同Linux 系統對使用者群組的規定有所不同,如Linux下的使用者屬於與它同名的使用者群組,這個使用者群組在建立使用者時同時建立。

使用者群組的管理涉及使用者群組的新增、刪除和修改。群組的增加、刪除和修改其實就是/etc/group檔案的更新。

Linux系統使用者群組的管理相關指令:

  • #groupadd 選項使用者群組 :增加一個新的使用者群組
  • groupdel 使用者群組:要刪除一個已有的使用者群組
  • groupmod 選項使用者群組 : 修改使用者群組的屬性

4.8 其他常用指令

#
  • pwd 顯示目前所在位置
  • #grep 要搜尋的字串要搜尋的檔案--color 搜尋指令,--color代表高亮顯示
  • ps -ef/ps aux 這兩個命令都是查看目前系統正在運行進程,兩者的差異在於展示格式不同。如果想要查看特定的進程可以使用這樣的格式:ps aux|grep redis#(查看包括redis字串的進程)

    注意:如果直接用ps(( Process Status))指令,會顯示所有行程的狀態,通常會結合grep指令查看某個行程的狀態。

  • kill -9 進程的pid 殺死進程(-9 表示強制終止。)

    先用ps找出進程,然後再用kill殺掉

  • 網路通訊指令:

    • #檢視目前系統的網路卡資訊:ifconfig
    • 檢視與某台機器的連線狀況:ping
    • 查看目前系統的連接埠使用:netstat -an
  • shutdown shutdown -h now: 指定現在立即關機;shutdown 5 "System will shutdown after 5 minutes":指定5分鐘後關機,同時發送警告訊息給登入使用者。
  • reboot  #reboot  重開機。 reboot -w 做個重開機的模擬(只有紀錄並不會真的重開機)。

更多Linux知識,可存取Linux教學欄位!

以上是Linux基礎知識介紹(後端必備)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除