linux高級
軟件安裝
rpm(redhat package manager)安裝
軟件已經按照redhat的包管理規范進行打包,使用rpm命令進行安裝,但包之間可能有依賴關系,因此不能自行解決庫依賴問題,比較麻煩
yum安裝
一種在線軟件安裝方式,本質上還是rpm安裝,自動下載安裝包并安裝,安裝過程中自動解決庫依賴問題(安裝過程需要聯網)
源碼編譯安裝
軟件以源碼工程形式發布,需要自己編譯打包,類似.java文件需要編譯成.class文件安裝方式.
安裝JDK
操作步驟:
1、在/usr/local目錄下創建自定義soft目錄
2、使用FinalShell自帶的上傳工具將jdk的二進制發布包上傳到Linux
3、切換到soft目錄下
4、解壓安裝包,命令為tar -zxvf jdk-8u171-linux-x64.tar.gz
5、配置環境變量,使用vim命令修改/etc/profile文件,在文件末尾加入如下配置 按字母G跳轉到文件尾部
注意:/usr/local/soft/jdk1.8.0_171 路徑不固定,是你的jdk路徑位置,復制下面的路徑到配置文件/etc/profile
JAVA_HOME=/usr/local/soft/jdk1.8.0_171
CLASSPATH=.: J A V A H O M E / l i b P A T H = JAVA_HOME/lib PATH= JAVAH?OME/libPATH=JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
6、重新加載profile文件,使更改的配置立即生效,命令為source /etc/profile
7、檢查安裝是否成功,命令為java -version
安裝Tomcat
大體同上
查詢系統進程
ps -aux/-ef | grep tomcat
//|管道符將前面的結果作為后面的輸入
linux防火墻
不開放端口或關閉防火墻無法直接訪問tomcat
服務器不建議關閉防火墻
查看防火墻狀態 systemctl status firewalld/ firewall-cmd --state
關閉防火墻 systemctl stop firewalld
永久關閉防火墻(禁用開機自啟) systemctl disable firewalld
暫時開啟防火墻 systemctl start firewalld
永久開啟防火墻(啟用開機自啟) systemctl enable firewalld
重啟防火墻 systemctl restart firewalld
開放指定端口 firewall-cmd --zone=public --add-port=8080/tcp --permanent
關閉指定端口 firewall-cmd --zone=public --remove-port=8080/tcp --permanent
立即生效(重新加載) firewall-cmd --reload
查看開放端口 firewall-cmd --zone=public --list-ports
--zone=public 將端口號添加到防火墻中哪個區域 public: 公共區域,默認值。可以讓互聯網上所有的機器訪問這個端口號 internal: 內部區域,讓局域網中,內部中機器來訪問這個端口號 是public的一個子集
--add-port=端口/tcp 添加指定的端口號,使用TCP協議
--remove-port=端口/tcp 刪除指定的端口號,使用TCP協議
--permanent 永久的添加,主機重啟了也是起作用的
--list-all 顯示所有已經添加的端口號
--reload 重啟加載端口的規則,讓新的端口號起作用
開放端口
開啟系統防火墻->開放端口->重新加載防火墻
關閉tomcat
使用./shutdown.sh腳本或關閉進程
kill -9 進程號
//強制殺死進程
安裝Mysql
查詢系統安裝的軟件
rpm -qa
//查詢當前系統中安裝的軟件
rpm -qa | grep mysql
//查詢mysql
卸載現有的Mysql數據庫
rpm -e --nodeps 軟件名
啟動mysql
systemctl status mysqld
//查看mysql服務狀態
systemctl start mysqld
//啟動mysql服務
systemctl stop mysqld
//停止mysql服務
systemctl enable mysqld
//開機自啟mysql
查看mysql狀態
netstat -tunlp
//查看已經啟動的服務
netstat -tunlp | grep mysql
//查看mysql的服務信息
ps -aux | grep mysql
//查看mysql進程-l(listening)
//顯示監控中的服務器的Socket
-n(numeric)
//直接使用ip地址,不通過域名服務器
-p(programs)
//顯示正在使用Socket的程序識別碼和程序名稱
-t(tcp)
//顯示TCP傳輸協議的連線狀況
-u(udp)
//顯示UDP傳輸協議的連線狀況ps命令用于查看Linux中的進程數據
mysql登錄
查詢臨時密碼
一般存儲在/var/log/mysqld.log中
設置mysql密碼
①. 登錄mysql(復制日志中的臨時密碼登錄)mysql -uroot -p ②. 修改密碼 必須一步一步執行set global validate_password_length=4; 設置密碼長度最低位數set global validate_password_policy=LOW; 設置密碼安全等級低,便于密碼可以修改成rootset password = password('1234'); 設置密碼為1234③. 開啟訪問權限DCL-- 給root指定所有的權限,在任何電腦上可以遠程登錄 注意我的數據庫密碼是1234,這里要改成你的數據庫密碼grant all on *.* to 'root'@'%' identified by '1234';-- 從mysql數據庫中的授權表重新載入權限flush privileges;
修改mysql默認編碼
vim /etc/my.cnf
# 修改 /etc/my.cnf 文件
[mysqld]
init_connect = 'SET NAMES utf8'
character-set-server = utf8
collation-server =utf8_general_ci
Yum安裝軟件
參數:
-y
//在安裝過程中所有提示回答yes
install
//安裝指定的軟件
remove
//刪除指定的安裝包
list
//搜索指定安裝包
yum源
先通過
yum install wget
//安裝wget命令
下載阿里云yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
//清除yum緩存
yum makecache
//將服務器上的軟件包信息存放到本地緩存以提高搜索安裝軟件的速度
Git操作
yum list git
//列出git安裝包
yum install git -y
//在線安裝git
Maven安裝
配置環境變量
MAVEN_HOME=/usr/local/soft/apache-maven-3.5.4
PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
配置本地倉庫地址
配置阿里云私服
項目部署
手動部署項目
在IDEA中開發SpringBoot項目打包成jar包
手動執行package指令打成jar包上傳到linux服務器
在linux服務器中使用java -jar命令執行
后臺執行程序
使用nohup命令執行(no hang up)
//不掛斷地運行指定命令,退出終端不會影響程序運行
nohup java -jar xxx.jar &> hello.log &
&:讓命令在后臺運行
&> 將日志輸出到hello.log文件夾
自動部署項目
Shell腳本
Linux系統中的腳本程序,使用腳本解釋器可以自動執行
#!/bin/sh
#記事本打開,修改編碼格式為utf8,可解決上傳centos后中文亂碼問題
echo =================================
echo 自動化部署腳本啟動
echo =================================echo 停止原來運行中的工程
APP_NAME=helloworld
# 查詢系統中正在運行的helloworld的進程,并停止進程
tpid=`ps -aux|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; thenecho 'Stop Process...'kill -15 $tpid
fi
sleep 2
tpid=`ps -aux|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
# 停止后再次查詢,如果還存在,則通過kill -9 強制殺死
if [ ${tpid} ]; thenecho 'Kill Process!'kill -9 $tpid
elseecho 'Stop Success!'
fiecho 準備從Git倉庫拉取最新代碼
cd /usr/local/app/helloworldecho 開始從Git倉庫拉取最新代碼
# 拉取最新代碼
git pull
echo 代碼拉取完成echo 開始打包
# 執行打包,跳過單元測試
output=`cd`
mvn -DskipTests=true clean package
# 切換到當前工程的target目錄下
cd targetecho 啟動項目
# 后臺啟動該項目
nohup java -jar helloworld.jar &> helloworld.log &
echo 項目啟動完成
使用腳本進行批處理拉取打包啟動
linux權限
chmod命令控制用戶對文件的權限
權限分為讀?,寫(w),執行(x)
linux文件權限均以如下格式展示
rwxrwxrwx
分別代表
文件所有者(Owner)
用戶組(Group)
其他用戶(Other Users)
的rwx讀寫執行權限
沒有對應權限就將對應字母換成-
chmod可以使用八進制數來指定權限
eg:chmod 777 文件名
777對應九位二進制數
111111111即rwxrwxrwx全部權限
設置靜態IP
linux系統如果沒有配置IP地址默認動態獲取,但是如果IP地址發生變動就會使訪問項目變得非常繁瑣
所以需要在/etc/sysconfig/network-scripts/ifcfg-ens33 配置文件中修改對應配置
將IP地址變為靜態
BOOTPROTO=static
IPADDR="192.168.200.128"
重啟網絡服務
systemctl restart network
或者service network restart