學習Linux須知1.2之Linux命令的實戰
- 2022 年 5 月 24 日
- 筆記
- 學習Linux須知1.2之Linux命令的實戰
(一)學習Linux 的準備工作
1、在線學習linux
2、連接遠程服務器學習【下文的案例就是使用xshell連接遠程服務器(省事方便最推薦
)】
自己購買一台雲服務器,通過xshell 連接遠程服務器,然後動手使用linux命令,例如使用linux部署一個項目。
購買雲服務器、配置、安裝xshell、搭建環境的文章://www.cnblogs.com/shan333/p/16185323.html
- 文章下文的掌握使用Linux命令部署項目,使用的就是方式2連接遠程服務器學習
3、本地安裝虛擬機,然後通過虛擬機安裝Linux的發行版軟件(centos或ubuntu)
- 虛擬機VMware 安裝centos、常規配置、共享文件等的文章://www.cnblogs.com/shan333/p/16209226.html
- 掌握使用Linux命令部署項目,使用的就是方式3虛擬機運行centos://www.cnblogs.com/shan333/p/16209226.html
(二) Linux 學習建議
1、 建議:命令多動手敲,不熟悉命令不建議複製粘貼的懶惰行為。
2、 動手敲一遍使用linux命令部署一個項目,到這裡,就具備了linux的基本命令的掌握,足夠學習docker等其他板塊啦,遇到不會的動手百度或翻看手冊。
3、linux手冊://www.linuxcool.com/
(三) 使用Linux命令部署項目(方式2:使用xshell連接遠程服務器)
● ssh 命令,連接遠程的服務器
ssh ip地址
- ip地址,是你購買的遠程服務器的公網ip地址,舉例:
ssh 121.5.151.236
,若是使用虛擬機運行centos,則ssh命令不用執行,這個ssh命令跳過。
● pwd 命令,查看所在目錄的位置
pwd
● ifconfig 命令,查看網絡設備信息
ifconfig
◇ 看到有網卡在工作中即可up、running
[root@mysql ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.111 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::8c18:4c0c:35b:f89c prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:bf:7a:4b txqueuelen 1000 (Ethernet)
RX packets 396 bytes 43132 (42.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 189 bytes 25028 (24.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
......
# eth0:網卡名稱
# UP:表示網卡是開啟狀態
# BROADCAST:表示網卡支持廣播
# RUNNING:表示網卡的網線已經被接上,在工作中
# MULTICAST:表示網卡支持組播
# Link encap:網卡的接口類型,這裡是以太網
# HWaddr:網卡的硬件地址,俗稱的MAC地址
# inet addr:IPv4地址,如果是IPv6會寫成inet6 addr
# Bcast:廣播地址
# Mask:子網掩碼
# MTU:網絡最大傳輸單元
# Metric:到達網關的度量值,參考://m.chinabyte.com/network/191/12287691_gfh.shtml
# RX packets:網絡從啟動到現在為止接收的數據包大小,單位是位元組,error 發生錯誤的數據包,dropped 被丟棄的數據包
# TX packets:網絡從啟動到現在為止發送的數據包大小,單位是位元組,error 發生錯誤的數據包,dropped 被丟棄的數據包
# collisions:發生碰撞的數據包,如果發生太多次,表明網絡狀況不太好
# txqueuelen:傳輸數據的緩衝區的儲存長度
# RX bytes:總接收位元組總量
# TX bytes:總發送位元組總量
# Memory:網卡硬件的內存地址
● free 命令,檢查服務器的內存(是否足夠)
free -h
參數詳解
-h 以合適的單位顯示內存使用情況,最大為三位數,自動計算對應的單位值
# total: 內存總數
# used: 已經使用內存數
# free: 完全空閑內存
# shared: 多個進程共享的內存
# buffers: 用於塊設備數據緩衝,記錄文件系統metadata(目錄,權限,屬性等)
# cached: 用於文件內容的緩衝
# available:真正剩餘的可被程序應用的內存數
● df 命令,查看磁盤空間(是否足夠)
df -lh
# 參數詳解
# Used:已經使用的空間
# Avail:可以使用的空間
# Mounted on:掛載的目錄
● mkdir 命令,新建目錄
mkdir code
● cd 命令,切換目錄
cd code/
● git 命令,拉取項目代碼
git clone //gitee.com/yushanstar/code-shan-mp-server.git
問題:-bash: git: command not found
- 解決:給遠程Linux系統(遠程服務器)安裝上git,命令:yum install -y git
- 然後繼續執行拉取項目代碼的命令,拉取完成之後,使用ls命令查看
cd code-shan-mp-server/
或cd code-shan-mp-server
進入項目目錄 【cd 目錄的/,可以加或不加】
● ls 命令,查看所有文件
ls
● du 命令,查看目錄佔用空間
du -sh *
● cat 命令,查看文本文件
cat README.md
# 看到時一個java的springboot框架的項目---需要安裝jdk
● 查看系統版本
cat /etc/os-release
# 是rehat發行版的命令 # 看到時centos版本,那直接使用系統自帶的軟件管理器 yum
cat /etc/redhat-release
# 是debain發行版的命令
cat /etc/debian_version
● yum 命令,系統自帶的軟件管理器 yum
yum install java-1.8.0-openjdk* -y
使用yum 安裝jdk
● java -version 命令,查看java環境(jdk 版本)
java -version
● which 命令,查看文件位置
which java
# Linux which命令用於查找文件。
# which指令會在環境變量$PATH設置的目錄里查找符合條件的文件。
● wget 命令,下載安裝包
wget //dlcdn.apache.org/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.tar.gz
下載maven
問題:ERROR: cannot verify dlcdn.apache.org’s certificate, issued by 『/C=US/O=Let’s Encrypt/CN=R3』:
Issued certificate has expired.
To connect to dlcdn.apache.org insecurely, use `–no-check-certificate’.
- 解決:報錯證書問題,則安裝證書: yum install -y ca-certificates
- 然後執行執行wget命令下載maven的安裝包
ls
查看所有文件
● tar 命令,解壓
tar -zxvf apache-maven-3.8.5-bin.tar.gz
./apache-maven-3.8.5/bin/mvn
解壓後得到maven的二進制可執行文件
● help 命令,幫助手冊,查看相關的命令
./apache-maven-3.8.5/bin/mvn --help
./apache-maven-3.8.5/bin/mvn install
構建maven項目
問題:[INFO] Scanning for projects…
[INFO] ————————————————————————
[INFO] BUILD FAILURE
解決:
更改maven鏡像為阿里雲鏡像:
cd apache-maven-3.8.5/conf/ vim settings.xml # 更改maven鏡像為阿里雲鏡像,找到<mirrors>,將原來的鏡像<mirror> 注釋掉,然後添加阿里雲鏡像 <mirror> <id>nexus-aliyun</id> <mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf> <name>Nexus aliyun</name> <url>//maven.aliyun.com/nexus/content/groups/public</url> </mirror> <mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>//maven.aliyun.com/nexus/content/repositories/central/</url> </mirror>
然後退出回到目錄code-shan-mp-server下【命令是 cd ../../】,重新執行一下maven的構建命令
● find 命令,用來在指定目錄下查找文件
find -name '*.jar*'
查找jar包位置
# find 將開始在當前目錄(用"."表示)中查找任何擴展名為"java"的文件:
find . -name "*.java"
● cp 命令,複製
cp ./target/code-shan-mp-server-1.0.0.jar ./
將jar包複製到外面
● mv 命令,修改文件名稱
mv code-shan-mp-server-1.0.0.jar code-shan.jar
ls
查看改名後情況
mv(英文全拼:move file)命令用來為文件或目錄改名、或將文件或目錄移入其它位置。
(1) 只是重命名:目標目錄與原目錄一致,目標文件的名稱發生改變
- 都在當前目錄下(目錄相同),例如上面的
mv code-shan-mp-server-1.0.0.jar code-shan.jar
- 目錄相同:例如:mv /home/dir1/a.txt /home/dir1/b.txt
(2)只是移動:目標目錄與原目錄不一致,沒有指定新文件名
- 例如 redis-5.0.7.tar.gz 在 /home/shan 目錄下: mv redis-5.0.7.tar.gz /opt
(3)重名+移動:目標目錄與原目錄不一致,目標文件的名稱發生改變
- 例如:mv /home/dir1/dir2/a.txt /home/dir1/b.txt
● java -jar 命令,執行jar包
java -jar code-shan.jar
啟動java的maven項目
# 瀏覽器查看項目運行情況
地址:服務器的ip:8080/hello
# 看到 hello,shan,則部署運行項目成功啦
不過此時咱的界面卡住了----使用後台啟動項目
● nohup 命令,後台啟動程序
nohup java -jar code-shan.jar &
問題:命令:nohup java -jar code-nav.jar & 沒能讓項目跑起來【nohup java -jar 命令啟動jar包,項目仍然會莫名其妙掛掉的解決方法】
出現:nohup: ignoring input and appending output to 『nohup.out』
- 不是問題,這是一個提示信息,提示證明運行成功,同時把程序運行的輸出信息放到當前目錄的 nohup.out 文件中去。
# 查看程序是否跑起來
● jobs 命令,查看當前終端放入後台的任務
jobs
● ps 命令,查看所有進程,這裡是為了查看是否有(java)進程
ps -ef
● ps -ef|grep 命令,篩選出目標進程
ps -ef|grep 'java'
# 從文件內容查找匹配指定字符串的行:
grep "被查找的字符串" 文件名
ps命令 -ef參數
-e 系統所有進程
-f 全格式
-a 顯示終端上的所有進程
● netstat 命令,查看端口佔用
netstat -ntlp
● curl 命令,訪問相應的 Web 服務器
curl localhost:8080/dog
# 看到hello,shan 則運行部署成功
[root@iZwz9535z41cmgcpkm7i81Z code-shan-mp-server]# curl localhost:8080/hello
hello,shan[root@iZwz9535z41cmgcpkm7i81Z code-shan-mp-server]#
● clear 命令,清除一下
clear
● history 命令,查看歷史
history
☺ 其他命令,不會就到手冊或者百度查找
如果本文對你有幫助的話記得給一樂點個贊哦,感謝!