Linux基礎


模塊

  1. 認識Linux
  2. 基本的命令(文件操作、目錄管理、文件屬性、Vim編輯器、磁盤、賬戶管理)
  3. 軟件的安裝與部署

簡介

為什么要學習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 /

如下圖所示

image-20210710153213200

樹狀目錄結構:

image-20210710153656840

解釋:

image-20210710154600346

image-20210710154742698

常用基本命令(掌握)

目錄管理

相對路徑 、絕對路徑

cd : 切換目錄命令!

./ : 當前目錄

cd. . : 返回上一級目錄

image-20210710155422042

ls / ll (列出目錄)

在Linux中 ls 命令是最常用的

-a 參數 : all , 查看全部的文件,包括隱藏文件

-l 參數 : 列出所有的文件,包括文件的屬性與權限,無法查看隱藏文件

所有Linux可以組合使用

image-20210710160417644

image-20210710160446940

cd命令 切換目錄

cd 目錄名 (絕對路徑/相對路徑)

  • 絕對路徑:以 /開頭
  • 相對路徑: ../

image-20210710162516051

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

image-20210710162805353

touch : 新建文件

touch index.js

mkdir 創建目錄

image-20210710163156251

rmdir 移除目錄

rmdir 只能刪除空的目錄,如果下面存在文件,需要先刪除文件按

遞歸刪除多個目錄加 rmdir -p

cp (復制文件按或者目錄)

cp (源地址,目標地址)

image-20210710164518256

當文件名相同時詢問你是否覆蓋 y:覆蓋/n:取消

rm (移除文件或者目錄)

-f :忽略不存在的文件、強制刪除  極其危險
-r : 遞歸刪除目錄!
-i : 互動刪除 詢問是否刪除
rm -rf /  # 系統中所有的文件都被刪除了 也就是刪庫跑路的做法 非常刺激!

mv 移動文件或者命令 重命名文件

-f :強制移動
-u :只替換已經更新過的文件

image-20210710165608693

reset :重新初始化終端/清屏。
clear :清屏。
history :查看命令歷史
help :幫助

基本屬性

明白文件屬性

Linux系統是一種典型的多用戶系統,不同的用戶處於不同的地位,擁有不同的權限。為了保護系統的安全性,Linux系統對不同的用戶訪問同一文件(包括目錄文件)的權限做了不同的規定。

在Linux中我們可以使用llls -l命令來顯示一個文件的屬性以及文件所屬的用戶和組,如:

image-20210710170309166

實例中,boot文件的第一個屬性用"d"表示。"d"在Linux中代表該文件是一個目錄文件。

在Linux中第一個字符代表這個文件是目錄、文件或鏈接文件等等:

  • 當為[ d ]則是目錄
  • 當為[ -]則是文件
  • 若是[ b]則表示為裝置文件里面的可供儲存的接口設備(可隨機存取裝置)
  • 若是[ c]則表示為裝置文件里面的串行端口設備,例如鍵盤、鼠標(一次性讀取裝置)

接下來的字符中,以三個為一組,且均為『rwx』的三個參數的組合。其中,[ r ]代表可讀(read)、[ w ]代表可寫(write)、[ x]代表可執行(execute)。

要注意的是,這三個根限的位置不會改變,如果沒有權限,就會出現減號[ - ]而已。每個文件的屬性由左邊第一部分的10個字符來確定(如下圖) ∶

image-20210710170741582

image-20210710170855391
image-20210710171004401

修改文件屬性

chgrp 更改文件屬組

chgrp [-R]屬組名 文件名

-R :遞歸更改文件屬組,就是在更改某個目錄文件的屬組時,如果加上-R的參數,那么該目錄下的所有文件的屬組都會更改。

image-20210710171609523

chown 更改文件屬組,也可以同時更改文件屬組

chown [-R] 屬組名 文件名
chown [-R] 屬組名:屬組名 文件名

image-20210710171913916

上面兩個很少使用

chmod 更改文件9個屬性

解決 你沒有權限操作此文件!

chmod [-R] xyz 文件或者目錄

image-20210710172045751

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

image-20210710172923631

文件內容查看

Linux系統中使用以下命令來查看文件的內容:

  • cat由第一行開始顯示文件內容

  • tac 從最后一行開始顯示,可以看出tac是cat的倒着寫!

    image-20210710174750473

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

    image-20210710174936017

  • more一頁一頁的顯示文件內容

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

  • head只看頭幾行

    image-20210710175235373

  • 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(查看內容,編輯內容,保存內容!)

鍵盤圖:

image-20210710181902379

三種使用模式

基本上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 文件名

image-20210710183212267

完整的演示說明

新建或者編輯文件,按i進入編輯模式,編寫內容,編寫完成后退出編輯模式,esc,退出之后進入底線命令模式︰wq保存退出!

第一部分:一般模式可用的光標移動、復制粘貼、搜索替換等

image-20210710191108026
image-20210710191157877


image-20210710191400990


image-20210710191506700
image-20210710191554669


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

image-20210710191642158

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

image-20210710191757874

image-20210710191856982

賬戶管理

一般在公司中 接觸不到root賬戶呀......😕

簡介

Linux系統是一個多用戶多任務的分時操作系統,任何一個要使用系統資源的用戶,都必須首先向系統管理員申請一個賬號 ,然后以這個賬號的身份進入系統。

實現用戶賬號的管理,要完成的工作主要有如下幾個方面:

  • 用戶賬號的添加、刪除與修改。
  • 用戶口令的管理。
  • 用戶組的管理。

用戶賬號的管理

用戶賬號的管理工作主要涉及到用戶賬號的添加、修改和刪除。

添加用戶賬號就是在系統中創建一個新賬號,然后為新賬號分配用戶號、用戶組、主目錄和登錄Shell等資源。

useradd 命令 添加用戶

useradd -選項 用戶名useradd-選項 用戶名
useradd -m 用戶名
-g 組名  # 添加用戶時分配組

image-20210710193042849

理解一下本質:Linux中一切皆文件,這里的添加用戶說白了就是往某一個文件中寫入用戶的信息了! /etc/passwd

userdel 刪除用戶

userdel -r 用戶名   #刪除用戶時將目錄一起刪除

usermod 修改用戶

usermod  -d 路徑 用戶名

切換用戶

image-20210710193916138
root:
image-20210710194250275
切換用戶:
image-20210710194432082

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

image-20210711105456519

這個文件中的每一行都代表這一個用戶,我們可以從這里看出這個用戶的主目錄在那里,可以看到屬於哪一個組!

登錄口令:把真正的加密后的用戶口令字存放到/etc/shadow文件中 保證安全性

用戶組的所有信息都存放在/etc/group文件中。

磁盤管理

df (列出文件系統整體的磁盤使用量) du(檢查磁盤空間使用量)

  • df
    image-20210711110535318

  • du
    image-20210711110759093

  • 檢查根目錄容量

du -sm /*

系統初期 usr目錄最大,很多文件都在這里

Mac或者想使用Linux掛載我們的一些本地磁盤或者文件! 了解即可

  • 掛載:mount
    image-20210711111323542

  • 卸載:umount -f [掛載位置] 強制卸載

除了這個之外,以后我們安裝了JDK,其實可以使用java中的一些命令來查看信息!

進程管理

對於我們開發人員來說,其實Linux更多偏向 於使用即可! |

基本概念

  1. 在Linux中,每一個程序都是有自己的一個進程,每一個進程都有一個id號!
  2. 每一個進程呢,都會有一個父進程!
  3. 進程可以有兩種存在方式∶前台!后台運行!
  4. 一般的話服務都是后台運行的,基本的程序都是前台運行的!

命令

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必要的環境

  1. 官網下載 JDK包 rpm
  2. 安裝Java環境
# 檢測當前系統是否存在Java環境
java -version
# 如果有需要卸載
rpm -qa|grep jdk # 檢測jdk版本信息
rpm -e --nodeps jdk

# 卸載后可安裝
rpm -ivh rpm包

# 配置環境變量

image-20210711120514805
image-20210711120542736

配置環境變量:/etc/profile

rpm 無需配置 解壓縮需要配置
image-20210711121416803
確保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 安裝

  1. 將文件移動到/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   # 解壓
  1. 運行Tomcat,進入bin目錄,和我們以前在Windows下看的都是一樣的
# 執行:startup.sh -->啟動tomcat
# 執行:shutdown.sh -->關閉tomcat
./startup.sh
./shutdown.sh
  1. 確保Linux的防火牆端口是開啟的,如果是阿里雲,需要保證阿里雲的安全組策略是開放的!

安裝MySQL

視頻====》mysql安裝

教程====》Linux環境yum,安裝MySQL

部署SpringBoot項目

  1. 首先將項目打成jar包

  2. 將jar包上傳至服務器

  3. 執行命令

$ nohup java -jar test.jar >temp.txt &
//這種方法會把日志文件輸入到你指定的文件中,沒有則會自動創建。進程會在后台運行。

安裝Docker(yum安裝)

  1. 官網安裝參考手冊:https://docs.docker.com/install/linux/docker-ce/centos/

  2. 確定你是CentOS7及以上版本

[root@192 Desktop]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
  1. yum安裝gcc相關(需要確保 虛擬機可以上外網 )
yum -y install gcc
yum -y install gcc-c++
  1. 卸載舊版本
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
  1. 安裝需要的軟件包
yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 設置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
  1. 更新yum軟件包索引
yum makecache fast
  1. 安裝Docker CE
yum -y install docker-ce docker-ce-cli containerd.io
  1. 啟動docker
systemctl start docker
  1. 測試
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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM