模塊
- 認識Linux
- 基本的命令(檔案操作、目錄管理、檔案屬性、Vim編輯器、磁盤、賬戶管理)
- 軟體的安裝與部署
簡介
為什么要學習linux?
Linux是一套免費使用和自由傳播的類Unix作業系統,是一個基于POSIN(可移植作業系統介面)和UNX的多用戶、多任務、支持多執行緒和多CPU的作業系統,
在服務端、在開發領域Linux越來越受歡迎,尤其是作為一個后端程式員,必須掌握Linux的
- Linux一切皆檔案
- 根目錄/ ,所有的檔案都掛在在這個節點下
使用虛擬機或者服務器安裝Linux
阿里云服務器相關操作====》 服務器購買及寶塔部署環境說明
阿里云ecs服務器搭建 ====》 阿里云ecs服務器搭建
走進Linux
關機
在linux領域內大多用在服務器上,很少遇到關機的操作,畢竟服務器上跑一個服務是永無止境的,除非特殊情況下,不得已才會關機,
關機指令為:shutdown ;
執行前先同步 sync
sync # 將資料由記憶體同步到硬碟中
shutdown # 關機指令 可以用 man shutdown 查看檔案
shutdown -h 10 # 10分鐘之后關機
shutdown -h now # 立馬關機
shutdown -h 10:30 # 10點30分關機
shutdown -r now # 系統立馬重啟
shutdown -r +10 # 系統10分鐘之后重啟
reboot # 重啟 等同于 shutdown -r now
halt # 關閉系統 等同于shutdown -h now
不管是重啟系統還是關閉系統,首先都要運行sync命令,把資料寫到磁盤中
系統目錄結構
登錄系統后,在當前視窗輸入命令:
ls /
如下圖所示

樹狀目錄結構:

解釋:


常用基本命令(掌握)
目錄管理
相對路徑 、絕對路徑
cd : 切換目錄命令!
./ : 當前目錄
cd. . : 回傳上一級目錄

ls / ll (列出目錄)
在Linux中 ls 命令是最常用的
-a 引數 : all , 查看全部的檔案,包括隱藏檔案
-l 引數 : 列出所有的檔案,包括檔案的屬性與權限,無法查看隱藏檔案
所有Linux可以組合使用


cd命令 切換目錄
cd 目錄名 (絕對路徑/相對路徑)
- 絕對路徑:以
/開頭 - 相對路徑: ../

pwd 顯示當前用戶所在的目錄

touch : 新建檔案
touch index.js
mkdir 創建目錄

rmdir 移除目錄
rmdir 只能洗掉空的目錄,如果下面存在檔案,需要先洗掉檔案按
遞回洗掉多個目錄加 rmdir -p
cp (復制檔案按或者目錄)
cp (源地址,目標地址)

當檔案名相同時詢問你是否覆寫 y:覆寫/n:取消
rm (移除檔案或者目錄)
-f :忽略不存在的檔案、強制洗掉 極其危險
-r : 遞回洗掉目錄!
-i : 互動洗掉 詢問是否洗掉
rm -rf / # 系統中所有的檔案都被洗掉了 也就是刪庫跑路的做法 非常刺激!
mv 移動檔案或者命令 重命名檔案
-f :強制移動
-u :只替換已經更新過的檔案

reset :重新初始化終端/清屏,
clear :清屏,
history :查看命令歷史
help :幫助
基本屬性
明白檔案屬性
Linux系統是一種典型的多用戶系統,不同的用戶處于不同的地位,擁有不同的權限,為了保護系統的安全性,Linux系統對不同的用戶訪問同一檔案(包括目錄檔案)的權限做了不同的規定,
在Linux中我們可以使用ll或ls -l命令來顯示一個檔案的屬性以及檔案所屬的用戶和組,如:

實體中,boot檔案的第一個屬性用"d"表示,"d"在Linux中代表該檔案是一個目錄檔案,
在Linux中第一個字符代表這個檔案是目錄、檔案或鏈接檔案等等:
- 當為[ d ]則是目錄
- 當為[ -]則是檔案
- 若是[ b]則表示為裝置檔案里面的可供儲存的介面設備(可隨機存取裝置)
- 若是[ c]則表示為裝置檔案里面的串行埠設備,例如鍵盤、滑鼠(一次性讀取裝置)
接下來的字符中,以三個為一組,且均為『rwx』的三個引數的組合,其中,[ r ]代表可讀(read)、[ w ]代表可寫(write)、[ x]代表可執行(execute),
要注意的是,這三個根限的位置不會改變,如果沒有權限,就會出現減號[ - ]而已,每個檔案的屬性由左邊第一部分的10個字符來確定(如下圖) ∶



修改檔案屬性
chgrp 更改檔案屬組
chgrp [-R]屬組名 檔案名
-R :遞回更改檔案屬組,就是在更改某個目錄檔案的屬組時,如果加上-R的引數,那么該目錄下的所有檔案的屬組都會更改,

chown 更改檔案屬組,也可以同時更改檔案屬組
chown [-R] 屬組名 檔案名
chown [-R] 屬組名:屬組名 檔案名

上面兩個很少使用
chmod 更改檔案9個屬性
解決 你沒有權限操作此檔案!
chmod [-R] xyz 檔案或者目錄

可讀可寫不可執行 rw- 6
可讀可寫可執行 rwx- 7
chmod 777 檔案賦予所有用戶可讀可寫可執行

檔案內容查看
Linux系統中使用以下命令來查看檔案的內容:
-
cat由第一行開始顯示檔案內容
-
tac 從最后一行開始顯示,可以看出tac是cat的倒著寫!

-
nl顯示的時候,順道輸出行號!

-
more一頁一頁的顯示檔案內容
-
less 與more類似,但是比 more更好的是,他可以往前翻頁!(空格下翻頁,pageDown , pageUp鍵代表翻動頁面!退出q命令,查找字串/要查詢的字符;向上查詢用?要查詢的字符; n搜索下一個 N搜索上一個)
-
head只看頭幾行

-
tail 只看尾巴幾行
你可以使用 man [命令]=來查看各個命令的使用檔案,如: man cp,
查看網路命令: ifconfig----Linux ipconfig-----Windows
網路配置目錄:cd letc/sysconfig/network-scripts
鏈接
Linux分為兩種:硬鏈接與軟鏈接
硬鏈接:用戶可以建立這種機制防止誤洗掉
軟鏈接:快捷方式
ln 創建鏈接
touch 檔案名 :命令創建檔案
echo "" >> 檔案名 : 輸入字串
Vim編輯器
什么是Vim編輯器?
vim通過一些插件可以實作和IDE—樣的功能!
Vim是從vi發展出來的一個文本編輯器,代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富,在程式員中被廣泛使用 尤其是Linux中,必須要會使用Vim(查看內容,編輯內容,保存內容!)
鍵盤圖:

三種使用模式
基本上vilvim 共分為三種模式,分別是命令模式(Command mode ),輸入模式( Insert mode )和底線命令模式(Lastline mode ),這三種模式的作用分別是∶
命令模式∶
用戶剛剛啟動vilvim,便進入了命令模式,
此狀態下敲擊鍵盤動作會被Vim識別為命令,而非輸入字符,比如我們此時按下i,并不會輸入一個字符,i被當作了一個命令,以下是常用的幾個命令︰
- i切換到輸入模式,以輸入字符,
- ×洗掉當前游標所在處的字符,
- : 切換到底線命令模式,以在最底一行輸入命令,
輸入模式:
在輸入模式中,可以使用以下按鍵:
- 字符按鍵以及Shift組合,輸入字符
- ENTER,回車鍵,換行
- BACK SPACE,退格鍵,洗掉游標前一個字符
- DEL,洗掉鍵,洗掉游標后一個字符
- 方向鍵,在文本中移動游標
- HOME/END,移動游標到行首/行尾
- Page Up/Page Down,上/下翻頁
- Insert,切換游標為輸入/替換模式,游標將變成豎線/下劃線
- ESC,退出輸入模式,切換到命令模式
底線命令模式:
在命令模式下按下:(英文冒號)就進入了底線命令模式,游標就移動到了最底下,就可以在這里輸入一些底線命令了!
底線命令模式可以輸入單個或多個字符的命令,可用的命令非常多,
在底線命令模式中,基本的命令有(已經省略了冒號) :
- q 退出程式
- w 保存檔案
- wq 保存退出
按ESC鍵可隨時底線命令模式
使用Vim方法:
vim 檔案名

完整的演示說明
新建或者編輯檔案,按i進入編輯模式,撰寫內容,撰寫完成后退出編輯模式,esc,退出之后進入底線命令模式︰wq保存退出!
第一部分:一般模式可用的游標移動、復制粘貼、搜索替換等





第二部分∶一般模式切換到編輯模式的可用的按鈕說明

第三部分:一般模式切換到指令行模式的可用的按鈕說明


賬戶管理
一般在公司中 接觸不到root賬戶呀......??
簡介
Linux系統是一個多用戶多任務的分時作業系統,任何一個要使用系統資源的用戶,都必須首先向系統管理員申請一個賬號 ,然后以這個賬號的身份進入系統,
實作用戶賬號的管理,要完成的作業主要有如下幾個方面:
- 用戶賬號的添加、洗掉與修改,
- 用戶口令的管理,
- 用戶組的管理,
用戶賬號的管理
用戶賬號的管理作業主要涉及到用戶賬號的添加、修改和洗掉,
添加用戶賬號就是在系統中創建一個新賬號,然后為新賬號分配用戶號、用戶組、主目錄和登錄Shell等資源,
useradd 命令 添加用戶
useradd -選項 用戶名useradd-選項 用戶名
useradd -m 用戶名
-g 組名 # 添加用戶時分配組

理解一下本質:Linux中一切皆檔案,這里的添加用戶說白了就是往某一個檔案中寫入用戶的資訊了! /etc/passwd
userdel 洗掉用戶
userdel -r 用戶名 #洗掉用戶時將目錄一起洗掉
usermod 修改用戶
usermod -d 路徑 用戶名
切換用戶

root:

切換用戶:

hostname # 查看主機名
hostname 名字 # 修改主機名
密碼設定
我們一般通過root創建用戶的時候!要配置密碼!
Linux上輸入密碼是不會顯示的,你正常輸入就可以了,并不是系統的問題!
在公司中,我們一般拿不到公司服務器的root權限,都是一些分配的賬號!
超級用戶:
passwd username:
new password:
re password:
普通用戶:
passwd
(current) UNIX password:
new password: # 密碼不能太簡單
re password:
鎖定賬戶
password -l 用戶名 # 該用戶無法登錄
password -d 用戶名 # 清空用戶密碼
用戶組管理
每個用戶都有一個用戶組,系統可以對一個用戶組中的所有用戶進行集中管理,不同Linux系統對用戶組的規定有所不同,如Linux下的用戶屬于與它同名的用戶組,這個用戶組在創建用戶時同時創建,
用戶組的管理涉及用戶組的添加、洗掉和修改,組的增加、洗掉和修改實際上就是對 /etc/group檔案的更新,
創建用戶組 groupadd
groupadd 組名 # 創建用戶組
cat /etc/group # 查看
創建完用戶組后可以得到一個組的id 指定id groupadd -g 520 組名入果不指定就是自增1
洗掉用戶組 groupdel
groupdel 組名 # 洗掉
cat /etc/group # 查看
修改用戶組資訊 groupmod
-g # 修改id
-n # 修改組名
groupmod -g 666 -n 新組名 舊組名
切換用戶組
# 登錄當前用戶
$ newgrp root
擴展 檔案的查看
完成用戶管理的作業有許多種方法,但是每一種方法實際上都是對有關的系統檔案進行修改,
與用戶和用戶組相關的資訊都存放在一些系統檔案中,這些檔案包括/etc/passwd,/etclshadow,letclgroup等,
/ect/passwd
用戶名:口令(登錄密碼 不可見):用戶標識號:組標識號:注釋性描述:主目錄:登錄she11

這個檔案中的每一行都代表這一個用戶,我們可以從這里看出這個用戶的主目錄在那里,可以看到屬于哪一個組!
登錄口令:把真正的加密后的用戶口令字存放到/etc/shadow檔案中 保證安全性
用戶組的所有資訊都存放在/etc/group檔案中,
磁盤管理
df (列出檔案系統整體的磁盤使用量) du(檢查磁盤空間使用量)
-
df

-
du

-
檢查根目錄容量
du -sm /*
系統初期 usr目錄最大,很多檔案都在這里
Mac或者想使用Linux掛載我們的一些本地磁盤或者檔案! 了解即可
-
掛載:mount

-
卸載:umount -f [掛載位置] 強制卸載
除了這個之外,以后我們安裝了JDK,其實可以使用java中的一些命令來查看資訊!
行程管理
對于我們開發人員來說,其實Linux更多偏向 于使用即可! |
基本概念
- 在Linux中,每一個程式都是有自己的一個行程,每一個行程都有一個id號!
- 每一個行程呢,都會有一個父行程!
- 行程可以有兩種存在方式∶前臺!后臺運行!
- 一般的話服務都是后臺運行的,基本的程式都是前臺運行的!
命令
ps 查看當前系統中正在執行的各種行程的資訊
ps -xx:
-a # 顯示當前終端運行的所有資訊 (當前的行程)
-u # 以用戶的資訊顯示行程
-x # 顯示后臺運行行程的引數
# ps -aux 查看所有的行程
ps -aux|grep mysql #查看mysql的行程
ps -aux|grep java #查看java的行程
# | 在Linux叫管道符
# grep 過濾命令 查找檔案中符合條件的字串!
ps -ef : 可以查看到父行程的資訊
ps -ef|grep mysql #看父行程可以通過目錄樹結構查看
# 行程樹
pstree -pu
-p # 顯示父id
-u # 顯示用戶組
結束行程:kill
kill -9 行程的id # 強制結束行程
對于開發人員,常用的基本就以上這些
環境安裝
安裝軟體一般有3種方式
- rpm
- 解壓縮
- yum在線安裝
JDK安裝
開發Java必要的環境
- 官網下載 JDK包 rpm
- 安裝Java環境
# 檢測當前系統是否存在Java環境
java -version
# 如果有需要卸載
rpm -qa|grep jdk # 檢測jdk版本資訊
rpm -e --nodeps jdk
# 卸載后可安裝
rpm -ivh rpm包
# 配置環境變數


配置環境變數:/etc/profile
rpm 無需配置 解壓縮需要配置

確保Linux的防火墻埠是開啟的,如果是阿里云,需要保證阿里云的安全組策略是開放的!
# 查看firewall服務狀態
systemctl status firewalld
# 開啟、重啟、關閉、firewalld.service服務
# 開啟
service firewalld start
# 重啟
service firewalld restart
# 關閉
service firewalld stop
# 查看防火墻規則
firewall-cmd --list-all # 查看全部資訊
firewall-cmd --list-ports # 只看埠資訊
# 開啟埠
開埠命令:firewall-cmd --zone=public --add-port=80/tcp --permanent
重啟防火墻:systemctl restart firewalld.service
命令含義:
--zone #作用域
--add-port=80/tcp #添加埠,格式為:埠/通訊協議
--permanent #永久生效,沒有此引數重啟后失效
Tomcat 安裝
- 將檔案移動到/usr/tomcat/下,并解壓!
# mv apache-tomcat-9.0.22.tar.gz /usr
# cd /usr
# ls
apache-tomcat-9.0.22.tar.gz
# tar -zxvf apache-tomcat-9.0.22.tar.gz # 解壓
- 運行Tomcat,進入bin目錄,和我們以前在Windows下看的都是一樣的
# 執行:startup.sh -->啟動tomcat
# 執行:shutdown.sh -->關閉tomcat
./startup.sh
./shutdown.sh
- 確保Linux的防火墻埠是開啟的,如果是阿里云,需要保證阿里云的安全組策略是開放的!
安裝MySQL
視頻====》mysql安裝
教程====》Linux環境yum,安裝MySQL
部署SpringBoot專案
-
首先將專案打成jar包
-
將jar包上傳至服務器
-
執行命令
$ nohup java -jar test.jar >temp.txt &
//這種方法會把日志檔案輸入到你指定的檔案中,沒有則會自動創建,行程會在后臺運行,
安裝Docker(yum安裝)
-
官網安裝參考手冊:https://docs.docker.com/install/linux/docker-ce/centos/
-
確定你是CentOS7及以上版本
[root@192 Desktop]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
- yum安裝gcc相關(需要確保 虛擬機可以上外網 )
yum -y install gcc
yum -y install gcc-c++
- 卸載舊版本
yum -y remove docker docker-common docker-selinux docker-engine
# 官網版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 安裝需要的軟體包
yum install -y yum-utils device-mapper-persistent-data lvm2
- 設定stable鏡像倉庫
# 錯誤
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
## 報錯
[Errno 14] curl#35 - TCP connection reset by peer
[Errno 12] curl#35 - Timeout
# 正確推薦使用國內的
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 更新yum軟體包索引
yum makecache fast
- 安裝Docker CE
yum -y install docker-ce docker-ce-cli containerd.io
- 啟動docker
systemctl start docker
- 測驗
docker version
docker run hello-world
docker images
寶塔面板安裝
https://www.bilibili.com/video/av91821322
完結~~ 本篇文章由作者借鑒B站狂神說視頻而寫 原文鏈接:https://mp.weixin.qq.com/s/aMJeiQW5z5FzeEdsRn44vA
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/304140.html
標籤:Linux
