主頁 > 軟體設計 > Linux Day01

Linux Day01

2020-09-16 15:53:41 軟體設計

運維,本質上是對網路、服務器、服務的生命周期各個階段的運營與維護,在成本、穩定性、效率上達成一致可接受的狀態,

首先了解一下運維的職責

  1. 產品上線
  2. 故障維護
  3. 版本更新迭代
  4. 保證質量
  5. 提高效率
  6. 降低成本:方案不同成本也不同

注:對于初創公司,運維部和系統部一般是合二為一的,相關作業由同一批人負責,界限可能不是很明顯,大型公司對運維作業的要求更高,需要有更精細的分工,因此機房/網路/作業系統相關的底層作業分離出來由專人負責,成為系統管理部,而上層和應用產品相關的作業則由運維負責,成為運維部,

下面比較一下開發(Java為例)與運維的區別
Java開發

  • 需要較強的編碼能力
  • 崗位需求量大
  • 競爭對手大都985、211、雙一流畢業生,10個崗位有100人在投
  • 應屆畢業生需要一定能力才可以達到10k,但增長空間大

運維

  • 不要求過高的編碼能力(運維開發需要)
  • 崗位較少
  • Linux是邁進互聯網世界的大門
  • 畢業后基本薪資10k

目前,運維人員接觸到的服務器系統大都是Linux和Windows

運維作業崗位

  • 技術支持工程師(奇安信、綠盟、深信服、啟明星辰)
  • 網路工程師(網管、騰訊)
  • 系統運維工程師(Linux系統運維)
  • 業務運維工程師
  • 資料庫運維工程師(DBA)
  • 云計算工程師(云計算)
  • 運維開發工程師
  • 滲透測驗工程師

什么是作業系統
用戶和硬體互動的中間層軟體
管理軟體、硬體的軟體
總而言之,作業系統是管理計算機硬體與軟體資源的計算機程式

Linux簡介

Unix和Linux代碼是由90%的C語言和10%的匯編語言組成
Linux的吉祥物是企鵝
Linux是一個內核,不是作業系統
Linux系統內核指的是一個由linus負責維護,提供硬體抽象層、硬碟以及檔案系統控制以及多任務功能的系統核心程式
Linux發行套件系統是我們常說的Linux系統,也就是Linux內核與各種常見的軟體的集合產品,
Linux核心概念:一切皆檔案

Linux檔案
檔案=元資料+真實內容
以.開頭命名的檔案是隱藏檔案
嚴格區分大小寫
可以使用出/以外的任意字符作為檔案名稱,建議避免去使用特殊字符
檔案名稱長度不超過255個字符

Linux歷史

1965年前后,貝爾實驗室(Bell)、麻省理工學院(MIT)以及通用電氣(GE)聯合創辦了multics計劃,為了開發多路資訊計算系統
1969年貝爾實驗室退出multics計劃
1970年Ken Thompson發布Unix系統,這一年被稱為計算機元年
后來AT&T機構分解,unix走向商業化,一份授權4萬美元
安德魯大學教授為了解決教學研究,自己開發了Minix,此系統只能用于教學
1991年Linus Torvalds(林納斯.托瓦茲)發布了Linux 0.02版
1994年Linux 1.0版發布

Linux優缺點

  • 安全、穩定、花費少
  • 多任務、多用戶
  • 消耗資源少
  • 內核小,支持多種電子產品
  • 部分軟體不支持Linux
  • 命令列對用戶使用不友好

常見的Linux系統
RHEL(紅帽企業系統):

全世界使用最廣泛的作業系統

CentOS(社區企業系統)

通過把RHEL系統重新編譯并發布給用戶免費使用的Linux系統,具有廣泛的使用人群,當前Centos已經被紅帽收編,

Fedora試驗田

用戶可以免費體驗最新的技識訓工具,這些工具技術成熟之后會被加入到RHEL中,

openSUSE

源自德國的著名Linux系統,在全球有著不錯的聲譽以及市場占有率

Gentoo(高度定制化)

高度自定制性,適合有經驗的人使用,

Debian(硬體架構支持優秀)

穩定性高、安全性強,對硬體支持優秀,

Ubuntu(個人桌面系統)

是一款派生自Debian,對新款硬體具有極強的兼容能力,并且與fedora都有著出色的Linux桌面系統,也可用于服務器領域,

Arch Linux(小而美)

小而美,高度自定義

Deepin(國產作業系統)

國產桌面系統

自由軟體運動與開源許可協議
自由軟體運動

Richard Stallman(理查德·斯托曼)是該運動的主要發起人以及精神領袖,

“自由軟體”(Free Software)表示的是那些賦予用戶運行、復制、分發、學習、修改并改進軟體這些自由的軟體,

自由軟體的意義,是為了使得用戶(包括個體和團體)可以控制程式為己所用,當用戶無法控制程式時,這樣的軟體就是“非自由”(Nonfree)或“專有”(Proprietary)的程式,

自由軟體運動人士認為自由軟體的精神應當貫徹到所有軟體:他們認為禁止計算機用戶行使這種自由是不道德的行為,Richard Stallman認為販賣不附帶源代碼的二進制軟體是十分不道德的,因為這樣阻止了軟體用戶學習以及幫助其他人的權利,然而目前還沒有如何實作自由軟體運動最終目標的共識,有些人認為應當使用法律手段強制軟體供應商提供源代碼;有些則認為應當通過抵制商業軟體來達到目的,還有一些人則認為時間將證明,自由軟體最終在質量上要比商業軟體略勝一籌,并會在自由市場上取得勝利,

開源軟體運動的支持者更注重軟體的使用性而不是它的道德問題,開源軟體支持者與自由軟體支持者的最大不同在于前者不像后者一樣盲目地反對及譴責商業軟體,開源軟體支持者中有許多程式員在使用開源軟體的同時撰寫商業軟體謀求生路,

知名自由軟體:Linux、PHP、MySQL、Notepad++、Firefox、Thunderbird

開源許可協議

開源共享精神
用戶具有使用自由、修改自由、重新發布自由、以及創建衍生品的自由,這正好符合黑客和極客對自由的追求,所以國內外開源社區的根基非常龐大,人氣也相當高,

開源軟體的特點:低風險、高品質、低成本、更透明

如果開源軟體為了單純追求“自由”的話,這將會影響程式員的創造激情,因此世界上有60多種開源組織認可的許可協議來保證開源作業者的群益,

GNU(GUN is not unix)、GPL(General Public License)通用公共許可協議

  • 復制自由:允許把軟體復制到任何人的電腦中并且不限制復制的數量
  • 傳播自由:許軟體以各種形式進行傳播
  • 收費自由:允許在各種媒介上出售該軟體,但是必須提前讓買家知道這個軟體可以通過免費的方式獲得,
  • 修改自由:允許開發人員增加或者洗掉軟體的功能,但是修改之后的軟體仍然遵從GPL協議,

BSD伯克利軟體發布協議

  • 如果再發布的軟體中包含源代碼,則源代碼必須遵循BSD
  • 如果再發布的軟體中只有二進制程式,則需要在相關檔案或著作權檔案中宣告原始代碼遵循了BSD
  • 不允許使用原始軟體的名字、作者名字或機構名稱進行市場推廣,

安裝部署Linux
安裝:虛擬機
查看防火墻狀態:

systemctl  status firewalld

查看防火墻放行的服務:

firewall-cmd --list-all

注:如果未放行ssh服務,需要手動放行或關閉防火墻

關閉防火墻:

systemctl stop firewalld.service 

檢查sshd服務:

systemctl status sshd

檢查22埠:

ss -tanl | grep 22

查看ip地址:

ip a | grep global

SSH遠程連接

ssh  username@hostname
ssh -p passwd username@hostname

初始化

  • 關閉防火墻
systemctl stop firewalld.service
  • 關閉SELinux
setenforce 0
getenforce
  • 安裝vim、bash-completion
yum install -y vim bash-completion
  • 關機打快照

Linux檔案系統

  • 檔案=元資料+真實內容
    以.開頭命名的檔案是隱藏檔案
    嚴格區分大小寫
    可以使用出/以外的任意字符作為檔案名稱,建議避免去使用特殊字符
    檔案名稱長度不超過255個字符

  • 檔案路徑:
    絕對路徑:從根位置開始
    相對路徑:相對當前位置

  • 七大檔案型別
    普通檔案型別:-或f
    目錄檔案型別:d
    塊設備檔案型別:b
    字符設備檔案型別:c
    套接字檔案型別:s
    管道檔案型別:p
    鏈接檔案型別:l

  • 查看檔案型別的三種方式

    • ls -l或ll:結果中的第一個字符代表的是檔案型別

    • file命令可以查看檔案型別

    • stat可以查看檔案型別等其他檔案屬性

Linux的FHS(檔案系統層次化標準)目錄結構

  • bin:存放系統經常使用的命令,通常是二進制程式
  • boot:啟動Linux時需要的部分核心組件
  • dev:Linux的外部設備
  • etc:系統管理所需的組態檔和子目錄
  • home:用戶家目錄
  • lib:程式運行所依賴的庫檔案(包括內核模塊)
  • lib64:專用于x86_64系統上的輔助共享庫檔案存在位置
  • media:自動識別的設備
  • mnt:用戶臨時掛載別的檔案系統的位置
  • opt:安裝額外的一些軟體
  • proc:虛擬目錄,訪問該目錄來獲取系統資訊
  • root:超級管理員的用戶家目錄
  • run:存盤系統運行以來的資訊
  • sbin:超級管理員所使用的命令
  • srv:服務啟動后所需要的資料
  • sys:子檔案系統,映射內核資訊
  • tmp:臨時檔案
  • usr:用戶的應用程式和相關檔案
  • var:經常被修改的檔案

Linux內核版本
3.10.0-693.el7.x86_64
主版本.次版本.釋放版本-修改版本

  • 次版本:如果是偶數,則為穩定版本,如果是奇數,則為開發版本,內核開發人員使用
  • 釋放版本:為對此版本改動,加入一些新功能
  • 修改版本:編譯次數,每編譯一次數量+1

bash相關特性

  • 什么是shell?
    shell程式找到輸入命令所對應的可以執行的程式或者代碼,并將分析后提供給內核分配資源將其運行起來,表現形式為一個或者多個行程
  • bash是shell中的一種,也是CentOS7默認使用的shell
  • shell中可以執行的命令:
    內建命令:shell自帶
    外部命令:某檔案系統路徑下有相對應的可執行的程式檔案
  • type:可以查看命令型別,屬于內嵌自帶的或者是其他的型別
  • whereis:查找到命令的相關檔案所在的位置
  • which:查看命令所在位置

在這里插入圖片描述

Linux命令

linux命令是對Linux系統進行管理的命令,對于Linux系統來說,無論是中央處理器、記憶體、磁盤驅動器、鍵盤、滑鼠,還是用戶等都是檔案,Linux系統管理的命令是它正常運行的核心,與DOS命令類似,linux命令在系統中有兩種型別:內置Shell命令和Linux命令,

  • 命令格式
    <命令> <引數>

  • 引數:

    • 長引數:–,比如–help,
      如果想要同時使用多個引數,可以通過空格的形式將多個長引數并列顯示
    • 短引數-,比如ls -a,可以同時將多個短引數合并,比如ls -la
  • 命令執行結果

    • 成功:退出狀態碼為0
    • 失敗:退出狀態為非0
  • 取消命令執行:Ctrl+C

pwd命令

顯示當前所在位置

cd命令

cd - :進入到上一次目錄所在位置
cd :進入到用戶家目錄

別名

  • 查看別名:alias
  • 定義別名:alias [name] = [value]
  • 取消別名:unalias
  • 命令列只是針對當前行程有效,如果想要永久生效需要通過修改組態檔
    對當前用戶有效:修改~/.bashrc組態檔,則可以永久生效
    對全域用戶有效:修改/etc/bashrc組態檔
  • 注:如果想要立即生效,可以通過退出并重新登錄的方式,或者使用source ./bashrc或source /etc/bashrc命令使其生效

幫助來源
–help:命令列的長引數,查找自帶的引數解釋
使用man手冊,可以查看非常具體的手冊檔案
資訊葉,info
程式自身幫助檔案,由程式開發者所寫Readme
程式官方檔案
發行版官方檔案
百度經驗、百度百科、簡書、CSDN、博客園、菜鳥教程、編程獅、w3cschool

命令歷史

  • 查看歷史命令:history
  • 命令歷史檔案:~/.bash_history
    登錄shell時會讀取命令歷史檔案,并且后續的操作命令會被追加到命令歷史檔案中
  • history相關引數
    -a:立刻追加本次會話命令歷史到~/.bash_history中
    -d:洗掉歷史中指定的命令
    -c:清空歷史命令
  • 快捷鍵
  • !#:呼叫歷史中第#條命令
  • !string:呼叫歷史中最近一條以string開頭的命令
  • !!:呼叫歷史中上一條命令

目錄管理命令

  • mkdir:創建目錄
    -p:遞回創建
    -v:顯示創建程序
    -m:指定權限
  • rmdir:洗掉目錄
    -p:遞回洗掉
    -v:顯示洗掉程序

檔案查看命令

  • cat:一次性查看檔案所有內容,缺點是查看較大檔案時會占用較大IO
  • tac:與cat類似,但從檔案末尾開始查看
  • more:一次性只加載部分內容,翻頁時才加載剩余內容,避免浪費IO資源
  • less:與more類似,不同的是可以往回翻頁
  • head:從檔案前面開始查看,默認前10行
    -c:獲取前多少個位元組
    -n:獲取前多少行
  • tail:與head相反,從檔案末尾開始查看內容,默認后10行
    -c:獲取后多少位元組
    -n:獲取后多少行
    -f:動態顯示檔案新追加內容,和tailf命令功能一樣

檔案時間戳
時間戳:從計算機元年(1970年)開始到現在的秒數

  • atime:最近一次檔案被訪問的時間
  • mtime:最近一次檔案內容被修改過的時間
  • ctime:最近一次檔案屬性被修改的時間

可以使用touch命令去修改檔案的時間
-a:只更改atime
-m:只更改mtime
-t:指定更改時間

cp命令

  • SRC為單個檔案時
    DEST不存在,創建出DEST檔案,與SRC同名
    DEST存在,覆寫舊檔案
  • SRC為多個檔案時
    DEST必須是一個目錄
  • SRC為目錄:-r
    DEST必須是目錄,如果不存在會創建出一個新的目錄;如果存在會被覆寫
  • 常見引數
    -i:互動式
    -r/R:遞回復制目錄和檔案
    -a:歸檔
    -p:連同屬性

mv命令
常用選項
-i:互動式
-f:強制

rm命令
-i:互動式
-r:遞回洗掉
-f:強制洗掉

注:建議洗掉檔案時使用絕對路徑洗掉,使用相對路徑容易誤刪

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/58269.html

標籤:其他

上一篇:我們發起了一個 FNX Fans,邀請你一起來

下一篇:Linux centos redhat 裝NVIDIA顯卡驅動

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more