模塊
- 認識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.bt.cn/bbs/thread-19376-1-1.html
完結~~ 本篇文章由作者借鑒B站狂神說視頻而寫 原文鏈接:https://mp.weixin.qq.com/s/aMJeiQW5z5FzeEdsRn44vA