狂神说Linux学习笔记
Linux
- 一、Linux系統概述
- 1、開機
- 2、關機
- 3、系統目錄結構
- 二、環境搭建
- 1、安裝CentOS
- 2、使用工具連接與上傳
- 3、網卡設置
- 三、常用的基本命令(必會)
- 1、目錄管理
- 1. ls(列出目錄)
- 2. cd 命令 切換目錄
- 3. pwd顯示當前用戶所在的目錄
- 4. mkdir 創建一個目錄
- 5. rmdir 刪除目錄
- 6. cp (復制文件或者目錄)
- 7. rm(移除文件或者目錄)
- 8. mv 移動文件或者目錄(重命名文件)
- 9.`打包壓縮包命令tar`
- 10.查找命令`find`,`grep`
- 11.常用命令總結
- 2、基本屬性
- 1.看懂文件屬性
- 2. 修改文件屬性
- 3.文件內容查看
- 3.Vim編輯器
- 1. 什么是Vim編輯器
- 2.三種使用模式
- 3.完整的演示說明
- 4. Vim按鍵說明
- 4.賬號管理
- 1.簡介
- 2.用戶賬號的管理
- 3. useradd 命令 添加用戶
- 4. userdel 刪除用戶
- 5. usermod 修改用戶
- 6. su username(username你的用戶名)
- 7.用戶的密碼設置問題
- 8.鎖定賬戶!
- 9.用戶組管理
- 10.創建一個用戶組 groupadd
- 11.刪除用戶組 groupdel
- 12.修改用戶組的權限信息和名字 groupmod -g -n
- 13.切換用戶組
- 14.拓展:文件的查看
- 5.磁盤管理
- 1.df(列出文件系統整體的磁盤使用量)du(檢查磁盤空間使用量)
- 2.掛載 :mount
- 6.進程管理
- 1.基本概念
- 2.命令
- 四、環境安裝
- 1、JDK安裝
- 2、TomCat安裝
- 3、Docker安裝
- 1.安裝
- 五、項目部署
- 1、手工部署
- 2、通過shell腳本自動部署項目
- 六、VMware(拓展)
一、Linux系統概述
1、開機
開機會啟動許多程序,它們在Windows叫做“服務”(service),在Linux就叫做“守護線程”(daemon)。
一般來說,用戶登錄的方式有三種:
- 命令行登錄
- ssh登錄
- 圖形界面登錄
2、關機
在Linux領域內大多數用在服務器上,很少遇到關機操作,畢竟服務器上跑著一個服務是永無止境的,除非特殊情況下,不得已才會關機。
關機指令為:shutdown;
總結一下:不管是重啟還是關機,首先要運行sync命令,把內存中的數據寫入到磁盤中。
最高權限賬戶為root,可以操作一切。
3、系統目錄結構
運行后如圖所示:
以下是對這些目錄的解釋:
- /bin:bin是Binary的縮寫,這個目錄存放著最經常使用的命令。
- /boot:這里存放的是啟動Linux時使用的核心文件,包括一些連接文件以及鏡像文件。(不要亂動)
- /dev:dev是Device(設備)的縮寫,存放的是Linux的外部設備,在Linux中訪問設備的方式和訪問文件的方式是相同的。
- /ect:這個目錄用來存放所有的系統管理所需要的配置文件和子目錄。
- /home:用戶的主目錄,在Linux中,每一個用戶都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的。
- /lib:這個目錄里存放的系統最基本的動態連接共享庫,其作用類似于Windows里的DLL文件。
- /lost + found:這個目錄一般情況下是空的,當系統非法關機后,這里就存放了一些文件。(存放突然關機的一些文件)
- /media:Linux系統會自動識別一些設備,例如U盤,光驅等等,當識別后,linux會把識別的設備掛載到這個目錄下。
- /mnt:系統提供該目錄是為了讓用戶臨時掛載別的文件系統的,我們可以將光驅掛載在/mnt/上,然后進入該目錄就可以查看光驅里的內容了。(后面會把一些本地文件掛載在這個目錄下)
- /opt:這是給主機額外安裝軟件所擺放的目錄。比如你安裝一個ORACLE數據庫則就可以放到這個目錄下。默認為空。
- /proc:這個目錄是一個虛擬的目錄,它是系統內存的映射,我們可以通過直接訪問這個目錄來獲取系統信息。
- /root:該目錄為系統管理員,也稱為超級權限者的用戶主目錄。
- /sbin:s就是super User的意思,這里存放的是系統管理員使用的系統管理程序。
- /svr:該目錄存放著一些服務啟動之后需要提取的數據。
- /sys:這是linux2.6內核的一個很大的變化,該目錄下安裝了2.6內核中新出現的一個文件系統sysfs。
- /tmp:這個目錄是用來存放一些臨時文件的,用完就丟的文件可以放在這個目錄下
- /usr:這是一個非常重要的目錄,用戶的很多程序和文件都放在這個目錄里,類似windows下的program files目錄。
- /usr/bin:系統用戶使用的應用程序。
- /usr/sbin:超級用戶使用的比較高級的管理程序和系統守護線程。Super
- /usr/src:內核源代碼默認的放置目錄。
- var:這個目錄中存放著在不斷擴充著的東西,我們習慣將那些經常修改的目錄放在這個目錄下。包括各種日志文件。
- /run:是一個臨時文件系統,存儲系統啟動以來的信息。當系統重啟時,這個目錄下的文件應該被刪除掉或清除。
- /www:存放服務器網站相關的資源,環境,網站的項目
二、環境搭建
1、安裝CentOS
在虛擬機VMware16 pro 上安裝CentOS
VMware的使用方式:
點擊屏幕進入虛擬機、Ctrl + Alt將聚焦退出虛擬機!
使用ifconfig命令查看主機地址
查看服務器地址
2、使用工具連接與上傳
使用Xshell工具連接終端
- 使用虛擬機使用命令查看主機地址
- 使用云服務器使用控制臺查看主機地址
Ctrl + 鼠標滾輪,放大和縮小字體
使用XFTP工具上傳文件
3、網卡設置
修改網絡初始化配置,設定網卡在系統啟動時初始化
cd / 進入根目錄 cd etc 進入etc目錄 cd sysconfig 進入sysconfig目錄 cd network-scripts 進入network-scripts vi ifcfg-ens33 編輯ifcfg-ens33文件 輸入i進入編輯狀態 移動光標 #把ONBOOT改為yes即可 ONBOOT="yes" <Esc> : wq <Enter> 保存退出 重啟系統三、常用的基本命令(必會)
1、目錄管理
絕對路徑路徑的全稱::C:\Program Data\360safe\xxx.xx
相對路徑,比如說360safe目錄下,那這個文件xxx.xx文件,對應我們的相對配置就/xxx.xx
cd : 切換目錄命令!
./:當前目錄
cd… :返回上一級目錄
1. ls(列出目錄)
在Linux中 ls 是最經常使用的!
-a參數:all,查看全部的文件,包括隱藏文件
-l參數:列出所有的文件,包含文件的屬性和權限,沒有隱藏文件
所有的Linux可以組合使用!(d表示目錄,-表示文件)
ls -l 的命令可以簡寫為 ll
2. cd 命令 切換目錄
cd 目錄名 (絕對路徑都是以/開頭,相對路徑,對于當前目錄該如何尋找 …/ …/)
特殊說明:
- ~表示用戶的home目錄
- .表示目前所在的目錄
- …表示目前目錄位置的上級目錄
3. pwd顯示當前用戶所在的目錄
[root@Aug ~]# pwd /root [root@Aug ~]# cd /bin [root@Aug bin]# pwd /bin [root@Aug bin]# cd /usr/local [root@Aug local]# pwd /usr/local4. mkdir 創建一個目錄
mkdir [-p] dirName
說明:
-p:確保目錄名存在,不存在的就創建一個,通過此選項,可以實現多層目錄同時創建
5. rmdir 刪除目錄
[root@Aug test3]# cd /home [root@Aug home]# ls aug aug_ test1 test2 [root@Aug home]# rmdir test1 # 刪除目錄test1 [root@Aug home]# ls aug aug_ test2 [root@Aug home]# rmdir test2 # 刪除目錄test2 因為下存在其他目錄所以刪除失敗 rmdir: 刪除 "test2" 失敗: 目錄非空 [root@Aug home]# rmdir -p test2 rmdir: 刪除 "test2" 失敗: 目錄非空 [root@Aug home]# rmdir -p test2/test3/test4 # 必須加上-p參數以及目錄層級才可執行成功rmdir僅能刪除空的目錄,如果下面存在文件,需要先刪除文件,遞歸刪除多個目錄 -p 參數即可。
6. cp (復制文件或者目錄)
cp -r 原來的地方 新的地方
說明:
-r :如果復制的是目錄需要使用此選項,此時將復制該目錄下所有的子目錄和文件
cp -r hello/ ./world 將hello目錄和目錄下的所有文件復制到world目錄下
cp -r hello/* ./world 將hello目錄下所有文件復制到world目錄下
7. rm(移除文件或者目錄)
-f忽略不存在的文件,不會出現警告,強制刪除
-r遞歸刪除目錄
-i互動,刪除詢問是否刪除
8. mv 移動文件或者目錄(重命名文件)
mv 源文件 目標
-f 強制移動
-u 只替換已經更新過的文件
舉例:
mv hello.txt hi.txt 將hello.txt改名為hi.txt
mv hi.txt hello/ 將文件hi.txt移動到hello目錄中
mv hello/ world/ 如果hello目錄不存在,將hello目錄改名為world
mv hello/ world/ 如果hello目錄存在,將hello移動到world目錄中
9.打包壓縮包命令tar
作用:對文件進行打包、解包、壓縮、解壓
語法:tar [-zxcvf] fileName [files]
包文件后綴名 .tar表示只是完成了打包,并沒有壓縮
包文件后最為.tar.gz表示打包的同時還進行了壓縮
說明:
-z:z代表的是gzip,通過gzip命令處理文件,gzip可以對文件壓縮或者解壓
-c:c代表的是create,即創建新的包文件
-x:x代表的是extract,實現從包文件中還原文件
-v:v代表的是verbose,顯示命令的執行過程
-f:f代表的是file,用于指定包文件的名稱
tar -cvf 打包
tar -zcvf 打包壓縮
tar -xvf 解包
tar -zxvf 解壓
舉例:
打包
- tar -cvf hello.tar ./* 將當前目錄下所有文件打包,打包后的文件名為hello.tar
- tar -zcvf hello.tar.gz ./* 將當前目錄下所有文件打包并壓縮,打包后的文件名為hello.tar.gz
解包
- tar -xvf hello.tar 將hello.tar文件進行解包,并將解包后的文件放在當前目錄
- tar -zxvf hello.tar.gz 將hello.tar.gz文件進行解壓,并將解壓后的文件放在當前目錄
- tar -zxvf hello.tar.gz -C /usr/local 將hello.tar.gz文件進行解壓,并將解壓后的文件放在/usr/local目錄
常用:tar -zxvf xxxx.tar.gz -C /usr/local
10.查找命令find,grep
find:
作用:在指定目錄下查找文件
語法:find dirName -option fileName
舉例:
find . -name “*.java” 在當前目錄及其子目錄下查找.java結尾文件
find /itcast -name “.java” 在/itcast目錄及其子目錄下查找.java結尾的文件
grep:
作用:從指定文件中查找指定的文本內容
語法:grep word fileName
舉例:
- grep Hello HelloWorld.java 查找HelloWorld.java文件中出現的Hello字符串的位置
- grep hello*.java 查找當前目錄中所有.java結尾的文件中包含hello字符串的位置
11.常用命令總結
| 1 | ls | list | 查看當前目錄下的內容 |
| 2 | pwd | print work directory | 查看當前所在目錄 |
| 3 | cd[目錄名] | change directory | 切換目錄 |
| 4 | touch[文件名] | touch | 如果文件不存在,新建文件 |
| 5 | mkdir[文件名] | make directory | 創建目錄 |
| 6 | rm[文件名] | remove | 刪除指定文件 |
在執行Linux命令時,提示信息如果為亂碼,這是由于編碼形式倒是的,需要修改Linux的編碼
echo 'LANG="en_US.UTF-8" ' >> /etc/profile source /etc/profile- Tab鍵自動補全
- 連續兩次Tab鍵,會給出操作提示
- 使用上下箭頭快速調出曾經使用過的命令
- 使用clear命令或者ctrl+l的快捷鍵快速清屏
2、基本屬性
十個字母;1類型
1.看懂文件屬性
Linux系統是一種典型的多用戶系統,不同的用戶處于不同的地位,擁有不同的權限。為了保證系統的安全性,Linux系統對不同的用戶訪問同一文件(包括目錄文件)的權限做了不同的規定。
在Linux中我們可以使用 ll 或者 ls -l 命令來顯示一個文件的屬性以及文件所屬的用戶和組,如 :
實例中,boot文件的第一個屬性用“d”表示,“d”在Linux中代表該文件是一個目錄文件。
在Linux中第一個字符代表這個文件是目錄、文件鏈接文件等等:
- 當為[ d ]則是目錄
- 當為[ - ]則是文件
- 若是[ l ]則表示為鏈接文檔(link file)
- 若是[ b ]則表示為裝置文件里面的可供存儲的接口設備(可隨機存取裝置)
- 若是[ c ]則表示為裝置文件里面的串行端口設備,例如鍵盤、鼠標(一次性讀取裝置)
接下來的字符中,以三個為一組,且均為【rwx】的三個參數的組合
其中,[ r ]代表可讀(read)、[ w ]代表可寫( write )、[ x ]代表可執行(execute)
要注意的是,這三個權限的位置不會改變,如果沒有權限,就會出現[ - ]而已。
每個文件的屬性由左邊第一部分的10個字符來確定
從左至右用0 - 9 這些數字來表示。
第0位確定文件類型,第1 - 3位確定屬性(該文件的所有者)擁有該文件的權限。第4 - 6位確定屬組(所有者的同組用戶)擁有該文件的權限,第7-9位確定其他用戶擁有該文件的權限。
其中:
第1、4、7位表示讀權限,如果用“r”字符表示,則有讀權限,如果用“-”表示,則沒有讀權限
第2、5、8位表示寫權限,如果用“w”字符表示,則有讀權限,如果用“-”表示,則沒有寫權限
第3、6、9位表示執行權限,如果用“x”字符表示,則有執行權限,如果用“-”表示,則沒有執行權限。
在以上實例中,boot文件是一個目錄文件,屬主和屬組都為root。
2. 修改文件屬性
1、chgrp:更改文件屬組
chgrp [-R] 屬性名 文件名-R: 遞歸更改文件屬組,就是在更改某個目錄文件的屬組時,如果加上-R的參數,那么該目錄下的所有文件的屬組都會更改。
2、chown:更改文件屬組,也可以同時更改文件屬組
chown [-R] 屬性名 文件名 chown [-R] 屬性名:屬性名 文件名3、chmod:更改文件9個人屬性(必須要掌握)
你沒有權限操作此文件!
chmod [-R] xyz 文件或目錄Linux文件屬性有兩種設置方法,一種是數字(常用的是數字),一種是符號。
Linux文件的基本權限就有九個,分別是owner/group/others三種身份各有自己的read/write/execute權限。
文件的權限字符:【-rwx rwx rwx】,這九個權限三個三個一組,我們使用數字來代表各個權限,對照表如下:
r:4 w:2 x:1
可讀可寫不可執行 rw- 6
可讀可寫不可執行 rwx 7
chmod 777 文件賦予所有用戶可讀可執行
每種身份(owner/group/others)各自的三個權限(r/w/x)分數是需要累加的,例如當權限位:[-rwxrwx]分數是:
- owner = rwx = 4 + 2 + 1 = 7
- group = rwx = 4 + 2 + 1 = 7
- others = - - - = 0 + 0 + 0 = 0
chmod 770 filename
3.文件內容查看
Linux系統中使用以下命令來查看文件的內容:
-
cat 由第一行開始顯示文件內容,用來讀文章,獲取讀取配置文件都使用cat命令 cat -n 由1開始對所有輸出的行號編號
-
tac從最后一行開始顯示,可以看出tac是cat的倒著寫!
-
nl顯示的時候,順道輸出行號!看代碼的時候希望顯示行號!(常用)
-
more 一頁一頁的顯示文件內容(空格代表翻頁,enter代表向下看一行,:f行號)
操作說明: -
回車鍵 向下滾動一行
-
空格鍵 向下滾動一屏
-
b 返回上一屏
-
q或者Ctrl + c 退出more
-
less和more類似,但是比more更好的是,他可以往前翻頁!(空格下翻頁,上下鍵代表翻動頁面!退出q命令,查找字符串/要查詢的字符,向上查詢使用?要查詢的字符串,n繼續搜尋下一個,N向上尋找!)
-
head只看頭幾行(通過-n參數來控制顯示幾行)
-
tail 行數 只看尾巴幾行
tail [-f] fileName
-f 動態讀取文件末尾內容并顯示,通常用于日志文件的內容輸出
你可以用*man [命令]*來查看各個命令的使用文檔,如:man cp。
網絡配置目錄:cd /etc/sysconfig/network-scripts CentOS7
ifconfig命令查看網絡配置!
拓展:Linux鏈接的概念(了解即可)
Linux的鏈接分為兩種:硬鏈接、軟鏈接
硬鏈接: A----B;假設B是A的硬鏈接,那么他們兩個指向同一個文件!允許一個文件擁有多個路徑,用戶可以通過這種機制來建立硬鏈接到一些重要文件上,防止誤刪!
軟連接: 類似windows下的快捷方式,刪除的源文件,快捷方式也訪問不了!
創建連接 ln命令!
touch命令創建文件
echo輸入字符串,也可以輸入到文件中
刪除f1之后 查看 f2 和 f3的區別
[root@Aug home]# rm -rf f1 [root@Aug home]# ll 總用量 8 drwx------. 15 aug_ aug_ 4096 4月 25 20:43 aug_ -rw-r--r--. 1 root root 13 4月 26 14:13 f2 lrwxrwxrwx. 1 root root 2 4月 26 14:12 f3 -> f1 drwx-wx-wx. 2 root root 24 4月 26 11:19 Yang [root@Aug home]# cat f2 # f2 硬鏈接還在 i love dddd [root@Aug home]# cat f3 # f3(軟鏈接、符號鏈接)快捷方式失效! cat: f3: 沒有那個文件或目錄3.Vim編輯器
1. 什么是Vim編輯器
要使用vim命令,需要我們自己安裝,使用命令yum install vim
說明:
1、在使用vim命令編輯文件時,如果指定的文件存在則直接打開此文件。如果指定的文件不存在,則新建文件。
2、vim在進行文本編輯時共分為三種模式,分別為命令模式,插入模式和底線模式。這三種模式之間可以相互切換。我們在使用vim時一定要注意我們當前所處的是哪種模式。
vim通過一些插件可以實現和IDE一樣的功能!
Vim是從Vi發展出來的一個文本編輯器。代碼補全、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛的使用。尤其是Linux中,必須要會使用Vim (查看內容,編輯內容,保存內容!)
vi是老式的字處理器,不過功能已經很齊全了,但是還是有很多可以進步的地方。
Vim則是程序開發者的一項很好用的工具。
所有的Unix Like系統都會內建vi文本編輯器,其它的文本編輯器則不一定會存在。
Vim鍵盤圖:
2.三種使用模式
基本上vi/vim共分為三種模式,分別為命令模式(Command mde),輸入模式(Insert mode)和底線命令模式(Last line mode)。 這三種模式的作用分別是:
命令模式:
用戶剛剛啟動vi/vim,便進入了命令模式。
此狀態下敲擊鍵盤動作會被Vim識別為命令,而非輸入字符。比如我們此時按下i,并不會輸入一個字符,i被當作了一個命令。
以下是常用的幾個命令:
- i切換到輸入模式,以輸入字符。
- x刪除當前光標所在的字符。
- : 切換到底線命令模式,以在最后一行輸入命令。如果是編輯模式,需要先退出編輯模式!ESC
若想要編輯文本:啟動Vim,進入命令模式,按下i,切換到輸入模式。
命令模式只有一些最基本的命令,因此仍要依靠底線命令模式輸入更多命令。
- 命令模式下可以查看文件內容,移動光標(上下左右箭頭、gg【開頭】、G【末尾】)
- 通過vim命令打開文件后,默認進入命令模式
- 另外兩種模式需要首先進入命令模式,才能進入彼此
輸入模式:
在命令模式下按下 i 就進入了輸入模式。
在輸入模式中,可以使用以下按鍵:
- 插入模式下可以對文件內容進行編輯
- 在命名模式下按下[i,a,o]任意一個,可以進入插入模式,進入插入模式后,下方會出現【insert】字樣
- 在插入模式下按下Esc鍵,回到命令模式
- 字符按鍵以及Shift組合,輸入字符
- Enter,回車鍵,換行
- BACK SPACE,退格鍵,刪除光標前一個字符
- DEL,刪除鍵,刪除光標后一個字符
- 方向鍵,在文本中移動光標
- HOME/END,移動光標到行首/行尾
- Page Up / Page Down,上/下翻頁
- Insert,切換光標為輸入/替換模式,光標將變成豎線/下劃線
- ESC,退出輸入模式,切換到命令模式
底線命令模式
在命令模式下按下:(英文冒號)就進入了底線命令模式。光標就移動到了最底下,就可以在這里輸入一些底線命令了!
底線命令模式可以輸入單個或多個字符的命令,可用的命令非常多。
在底線命令模式中,基本的命令有(省略了冒號): wq(保存并退出)
- 底行模式下可以通過命令對文件內容進行查找、顯示行號、退出等操作
- 在命名模式下按下[:,/]任意一個,可以進入底行模式
- 通過/方式進入底行模式后,可以對文件內容進行查找
- 通過:方式進入底行模式后,可以輸出wq(保存并退出),q!(不保存退出)、set nu(顯示行號)
- q 退出程序
- w 保存文件
按ESC鍵可隨時退出底線命令模式。
可以將這三種模式想成底下的圖標來表示:
3.完整的演示說明
新建或者編輯文件,按i進入編輯模式,編寫內容,編寫完成后退出編輯模式,Esc,退出之后進入底線命令模式 : ! 輸入 wq保存退出!
4. Vim按鍵說明
第一部分:一般模式可用的光標移動、復制粘貼、搜索替換等
| h 或 向左箭頭(?) | 光標向左移動一個字符 |
| j 或 向下箭頭(?) | 光標向下移動一個字符 |
| k或 向上箭頭(?) | 光標向上移動一個字符 |
| l 或 向右箭頭(?) | 光標向右移動一個字符 |
| [Ctrl] + [f] | 屏幕【向下】移動一頁,相當于[Page Down]按鍵(常用) |
| [Ctrl] + [b] | 屏幕【向上】移動一頁,相當于[Page Up]按鍵(常用) |
| [Ctrl] + [d] | 屏幕【向下】移動半頁 |
| [Ctrl] + [u] | 屏幕【向上】移動半頁 |
| + | 光標移動到非空格符的下一頁 |
| - | 光標移動到非空格符的上一頁,配置文件中空格較多! |
| 數字< space > | 按下數字后再按空格鍵,光標會向右移動這一行的n個字符,快捷切換光標。例如輸入: 5 空格 ,數字+空格 即可 |
| 0或功能鍵[Home] | 這是數字【0】:移動到這一行的最前面字符處(常用) |
| $或者功能鍵[end] | 移動到這一行的最后面字符處(常用) |
| H | 光標移動到這個屏幕的最上方那一行的第一個字符 |
| M | 光標移動到這個屏幕的中央那一行的第一個字符 |
| L | 光標移動到這個屏幕的最下方那一行的第一個字符 |
| G | 移動到這個檔案的最后一行(常用) |
| nG | n為數字。移動到這個檔案的第n行,例如20G則會移動到這個檔案的第20行(可配合:set nu) |
| gg | 移動到這個檔案的第一行,相當于1G啊!(常用) |
| 數字< Enter > | 數字+Enter,光標向下移動n行(常用) |
| /word | 向光標之下尋找一個名稱為word的字符串。例如要在檔案內搜索word這個字符串,就輸入/vbird即可!(常用) |
| ? word | 向光標之上尋找一個字符串名稱為word的字符串 |
| n | 這個n是英文按鍵。代表重復前一個搜尋動作,舉例來說,如果剛剛我們執行/vbird去向下搜尋vbird這個字符串,則按下n后,會向下繼續搜尋下一個名稱為vbird的字符串。如果執行?vbird的話,那么按下n則會向上繼續搜尋名稱為vbird的字符串! |
| N | 這個N是英文按鍵。與n剛好相反,為【反向】進行前一個搜尋動作,例如/vbird后,按下N則表示【向上】搜尋vbird。 |
| x,X | 在一行字當中,x為向后刪除一個字符(相當于[del]按鍵),X為向前刪除一個字符(相當于[backspace]亦即是退格鍵)(常用) |
| nx | n為數字,連續向后刪除n個字符,舉例來說,我要連續刪除10個字符。 【10x】 |
| dd | 刪除游標所在的那一整行(常用) |
| ndd | n為數字。刪除光標所在的向下n行,例如20dd則是刪除20行(常用) |
| d1G | 刪除光標所在到第一行的所有數據 |
| dG | 刪除光標所在到最后一行的所有數據 |
| d$ | 刪除游標所在處,到該行的最后一個字符 |
| d0 | 那個數字是0,刪除游標所在處,到改行的最前面一個字符 |
| yy | 復制游標所在的那一行(常用) |
| nyy | n為數字,復制光標所在的向下n行,例如20yy則是復制20行(常用) |
| y1G | 復制游標所在行到第一行的所有數據 |
| yG | 復制游標所在行到最后一行的所有數據 |
| y0 | 復制光標所在的那個字符到該行行首的所有數據 |
| y$ | 復制光標所在的那個字符到該行行尾的所有數據 |
| p,P | p為將復制的數據在光標下一行貼上,P貼為貼在游標上一行!舉例來說,我目前光標在第20行,且已經復制了10行數據。則按下p之后,那10行數據會貼在原本的20行之后,亦即由21行開始貼。但如果是按下p呢?那么原本的第20行會被推到變成30行(常用) |
| J | 將光標所在行與下一行的數據結合成同一行 |
| c | 重復刪除多個數據,例如向下刪除10行,[10cj] |
| u | 復原前一個動作(常用) |
| [Ctrl] + r | 重復上一個動作(常用) |
第二部分:一般模式切換到編輯模式的可用的按鈕說明
| i,I | 進入輸入模式(Insert mode):i為【從目前光標所在輸入處】,I為【在目前所在行的第一個非空格符處開始輸入】 (常用) |
| a,A | 進入輸入模式(Insert mode):a為【從目前光標所在的下一個字符處開始輸入】,A為【從光標所在行的最后一個字符處開始輸入】 (常用) |
| o,O | 進入輸入模式(Insert mode):這是英文字母o的大小寫。o為【在目前光標所在的下一行處輸入新的一行】;O為在目前光標所在處的上一行輸入新的一行!(常用) |
| r,R | 進入取代模式(Replace mode):r只會取代光標所在的那一個字符一次;R會一直取代光標所在的文字,直到按下ESC為止。(常用) |
| [Esc] | 退出編輯模式,回到一般模式中(常用) |
第三部分:一般指令切換到指令行模式的可用的按鈕說明
| :w | 將編輯的數據寫入硬盤檔案中(常用) |
| :w! | 若文件屬性為【只讀】時,強制寫入該檔案。不過,到底能不能寫入,還是跟你對該檔案的檔案權限有關! |
| :q | 離開vi(常用) |
| :q! | 若曾修改過檔案,又不想儲存,使用!為強制離開不存儲檔案 |
| 注意以下,那個驚嘆號(!)在vi當中,常常具有【強制】的意思 | |
| :wq | 儲存后離開,若為:wq!則為強制存儲后離開(常用) |
| ZZ | 這是大寫的Z,若檔案沒有更動,則不存儲離開,若檔案已經被更改過,則存儲后離開! |
| :w[filename] | 將編輯的數據存儲成另一個檔案(類似另存新檔) |
| :r[filename] | 在編輯的數據中,讀入另一個檔案的數據,亦即將【filename】這個檔案內容加到游標所在行后面 |
| :n1,n2 w[filename] | 將n1到n2的內容存儲filename這個檔案 |
| :!command | 暫時離開vi到指令行模式下執行command的顯示結果!例如【:! Is/home】即可在vi當中看/home底下以Is輸出的檔案信息! |
| :set nu (設置行號,經常使用) | 顯示行號,設定之后,會在每一行的前綴顯示該行的行號 |
| :set nonu | 與set nu相反,為取消行號! |
4.賬號管理
一般在公司中,用的都不是root賬戶
1.簡介
Linux系統是一個多用戶多任務的分時操作系統, 任何一個要使用系統資源的用戶,都必須首先向系統管理員申請一個賬號,然后以這個賬號的身份進入系統。
用戶的賬號一方面可以幫助系統管理員對使用系統的用戶進行追蹤,并控制它們對系統資源的訪問,另一方面也可以幫助用戶組織文件,并為用戶提供安全性保護。
每個用戶賬號都擁有一個唯一的用戶名和各自的口令。
用戶在登錄時鍵入正確的用戶名和口令后,就能夠進入系統和自己的主目錄。
實現用戶賬號的管理,要完成的工作主要有如下幾個方面:
- 用戶賬號的添加、刪除與修改
- 用戶口令的管理
- 用戶組的管理
2.用戶賬號的管理
用戶賬號的管理工作主要涉及到用戶賬號的添加、修改和刪除。
添加用戶賬號就是在系統中創建一個新賬號,然后為新賬號分配用戶好、用戶組、主目錄和登錄Shell等資源。
屬主,屬組
3. useradd 命令 添加用戶
useradd -選項 用戶名
[root@Aug home]# useradd -m AstheWind # 創建一個用戶! [root@Aug home]# ls AstheWind aug_ YangLinux中一切皆文件,這里的添加用戶說白了就是往某一個文件中寫入用戶的信息了! /etc/passwd
選項
- m:自動創建這個用戶的主目錄/home/aug
- c: comment 指定一段注釋性描述
- -d :目錄 指定用戶主目錄,如果此目錄不存在,則同時使用-m選項,可以創建主目錄。
- -g:用戶組 指定用戶所屬的用戶組。
- -G:用戶組 用戶組指定用戶所屬的附加組。
- -m:使用者目錄如不存在則自動建立。
- -s:Shell文件,指定用戶的登錄Shell。
- -u:用戶號 指定用戶的用戶號,如果同時有-o選項,則可以重復使用其他用戶的標識號。
用戶名
- 只當新賬號的登錄名
4. userdel 刪除用戶
usermod 對應修改的內容 修改哪個用戶
如果一個賬號不在使用,可以從系統中刪除。
刪除用戶就是將etc/passwd等系統文件中該用戶記錄刪除,必要時還刪除用戶的主目錄。
刪除一個已有的用戶賬號使用userdel命令,其格式如下
常用的選項是-r,它的作用是把用戶的主目錄一起刪除。
userdel -r AstheWind 刪除用戶的時候將它的目錄也一并刪掉
5. usermod 修改用戶
修改用戶賬號就是根據實際情況更改用戶的有關屬性,如用戶號、主目錄、用戶組、登錄Shell等。
修改已有用戶的信息使用usermod命令,其格式如下:
usermod 選項 用戶名常用的命令有 -c , -d , -m , -g, -G , -s , -u 以及 -o等,這些選項的意義與useradd命令中的選項一樣,可以為用戶指定范圍新的資源值。
[root@Aug home]# usermod -d /home/233 wind修改完畢之后查看配置文件即可
[root@Aug home]# cat /etc/passwd6. su username(username你的用戶名)
root用戶
切換用戶的命令為:su username
從普通用戶切換到root用戶,還可以使用命令:sudo su
在終端輸入exit或logout或使用快捷方式ctrl + d,可以退回到原來的用戶,其實ctrl + d也是執行exit命令
在切換用戶時,如果想在切換用戶之后使用新用戶的工作環境,可以在su和username之間加 - ,例如 【su - root】
$表示普通用戶
#表示超級用戶,也就是root用戶
如果購買服務器后,主機名是一個隨機字符串!
7.用戶的密碼設置問題
一般通過root創建用戶的時候!要配置密碼
Linux上輸入密碼是不會顯示的,你正常輸入就可以了,并不是系統的問題
在公司中,一般拿不到公司的服務器的root權限,都是一些分配的賬號
如果是超級用戶的話:
如果是普通用戶:
passwd (current) UNIX password: new password: # 密碼不能太簡單! re password:8.鎖定賬戶!
root,比如張三辭職了!凍結賬號,一旦凍結,這個人就登錄不上系統了!
passwd -l wind # 鎖定之后這個用戶就不能登錄了! passwd -d wind # 沒有密碼也不能 登錄!
在公司中你一般觸及不到root用戶!作為一個開發拿不到!
9.用戶組管理
屬主、屬組
每個用戶都有一個用戶組,系統可以對一個用戶組中的所有用戶進行集中管理(開發、測試、運維、root)。不同Linux系統對用戶的規定有所不同,如shihoLinux下的用戶屬于與它同名的用戶組,這個用戶組在創建用戶的時同時創建。
用戶組的管理涉及用戶組的添加、刪除和修改。組的增加、刪除和修改實際上就是對/etc/group文件的更新。
10.創建一個用戶組 groupadd
創建完用戶組后可以得到一個組的id,這個id是可以指定的!-g 520如果不指定就是自增1
11.刪除用戶組 groupdel
12.修改用戶組的權限信息和名字 groupmod -g -n
13.切換用戶組
# 登錄當前用戶 wind $ newgrp root14.拓展:文件的查看
/etc/passwd
完成用戶管理的工作有很多種方法,但是每一種方法實際上都是對有關的系統文件進行修改。
與用戶和用戶組相關的信息都存放在一些系統文件中,這些文件包括 /etc/passwd,/etc/shadow,/etc/group等。
下面分別介紹這些文件的內容:
/etc/passwd文件是用戶管理工作涉及的最重要的一個文件
Linux系統中的每個用戶都在 /etc/passwd文件中有一個對應的記錄行,它記錄了這個用戶的一些基本屬性。
從上可以看到,/etc/passwd中一行記錄對應著一個用戶,每行記錄又被冒號(:)分割為7個字段,可以看出這個用戶的主目錄在哪里,可以看到屬于哪一個組,其格式和具體含義如下:
用戶名:口令(登錄密碼,不可見):用戶標識號:組標識號:注釋性描述:主目錄:登錄Shell /etc/shadow/
由于/etc/passwd文件是所有用戶可讀的,如果用戶的密碼太過簡單或規律比較明顯的話,一臺普通的計算機就能很容易的將他破解,因此對安全性能要求較高的Linux系統都把加密后的口令字分離出來,單獨存放在一個文件夾中,這個文件是/etc/shadow文件。有超級用戶才擁有該文件的讀權限,這保證了用戶密碼的安全性。
它的文件格式與/etc/passwd類似,有若干個字段組成,字段之間用“:”隔開,這些字段是:
登錄名 加密口令 最后一次修改時間 最小時間間隔 最大時間間隔 警告時間 不活動時間 失敗時間 標志/etc/group
用戶組的所有信息都放在/etc/group文件中。
5.磁盤管理
1.df(列出文件系統整體的磁盤使用量)du(檢查磁盤空間使用量)
[root@Aug home]# du -a 0 ./aug_/圖片 0 ./aug_/視頻 4 ./aug_/.bash_history 3944 ./aug_ 0 ./Yang/install.sh 0 ./Yang 0 ./wind/.mozilla/extensions 0 ./wind/.mozilla/plugins 0 ./wind/.mozilla 4 ./wind/.bash_logout 4 ./wind/.bash_profile 4 ./wind/.bashrc 4 ./wind/.cache/abrt/lastnotification 4 ./wind/.cache/abrt 4 ./wind/.cache 0 ./wind/.config/abrt 0 ./wind/.config 4 ./wind/.bash_history 4 ./wind/.Xauthority2.掛載 :mount
卸載 :umount -f [掛在位置] 強制卸載
6.進程管理
Linux中一切皆文件(文件:讀寫執行(查看,創建,刪除,移動,編輯,復制),權限(用戶、用戶組)。系統:(磁盤,進程))
1.基本概念
2.命令
ps 查看當前系統中正在執行的各種進程信息
ps-xx :
- -a 顯示當前終端運行的所有進程信息(當前進程的一個)
- -u以用戶的信息顯示進程
- -x顯示后臺運行進程的參數!
ps-xx|grep 過濾進程信息
ps-ef:可以查看到父進程的信息
結束進程:
kill -9 進程的id
表示強制結束該進程
四、環境安裝
軟件安裝的方式
- 源碼編譯安裝
軟件以源碼工程的形式發布,需要自己編譯打包 - rpm
軟件已經按照redhat的包管理規范進行打包,使用rpm命令進行安裝,不能自行解決庫依賴問題 - 解壓縮安裝(tomcat)
軟件已經針對具體平臺編譯打包發布,只要解壓,修改配置即可 - yum在線安裝
一種在線軟件安裝方式,本質上還是rpm安裝,自動下載安裝包并安裝,安裝過程中自動解決庫依賴問題
1、JDK安裝
開發Java的必要的環境!
卸載
安裝
配置環境變量: /etc/profile 在文件的最后面增加Java的配置和windows安裝環境變量一樣的
讓這個配置文件生效 `` source /etc/profile
檢查安裝是否成功:java -version
開啟端口:
# 開啟防火墻端口 firewall-cmd --zone=public --add-port=9000/tcp --permanent # 重啟防火墻 systemctl restart firewalld.service # 查看所有開啟的端口,如果是云服務器,需要配置安全組規則! firewall-cmd --list-ports2、TomCat安裝
ssm war 就需要放到tomcat中運行了!
3. 啟動tomcat! ./xxx.sh 腳本即可運行
4. 查看TomCat啟動是否成功,有多種方式:
- 查看啟動日志
more /usr/local/apache-tomcat-10.0.20/logs/catalina.out
tail -50 /usr/local/apache-tomcat-10.0.20/logs/catalina.out - 查看進程 ps -ef | grep tomcat
注意:
- ps命令是linux下非常強大的的進程查看命令,通過ps-ef可以查看當前運行的所有進程的詳細信息
- | 在Linux中稱為管道,可以將前一個命令的結果輸出給后一個命令作為輸入
- 使用ps命令查看進程時,經常配合管道符和查找命令grep一起使用,來查看特定的進程
- 運行Tomcat的bin目錄下的停止服務的腳本文件shutdown.sh
- 結束Tomcat進程
查看Tomcat進程,獲取進程id
執行 kill -9 5028
注意:kill命令是Linux提供的用于結束進程的命令,-9表示強制結束
# 查看firewall服務狀態 systemctl status firewalld、firewall-cmd --state# 暫時關閉防火墻 systemctl stop firewalld# 永久關閉防火墻 systemctl disable firewalld# 開啟防火墻 systemctl start 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# 開啟端口 開啟端口命令:firewall-cmd --zone=public --remove-port=80/tcp -- permanent#立即生效 firewall-cmd --reload重啟防火墻:systemctl restart firewalld.service命令含義: --zone # 作用域 --add-port=80/tcp # 添加端口,格式為:端口/通訊協議 --permanent # 永久生效,沒有此參數重啟后失效
注意:
1、systemctl是管理linux中服務的命令,可以對服務進行啟動、停止、重啟、查看狀態等操作
2、firewall-cmd是linux中專門用于控制防火墻的命令
3、為了保證系統安全,服務器的防火墻不建議關閉。
3、Docker安裝
聯網的情況下:yum install -y yum源
官網安裝手冊:Docker官網
在Linux下執行,一定要聯網,yum在線安裝
1.安裝
五、項目部署
1、手工部署
目前程序運行的問題:
- 線上程序不會采用霸屏的形式運行程序,而是將程序后臺運行
- 線上程序不會將日志輸出到控制臺,而是輸出到日志文件,方便運維查閱信息
2、通過shell腳本自動部署項目
操作步驟:
1、在Linux中安裝Git
①使用yum安裝git
yum list git 列出git安裝包yum install git 在線安裝git②使用Git克隆代碼
cd /usr/local/ git clone url2、在Linux中安裝Maven
Maven官網:鏈接
解壓
tar -zxvf apache-maven-3.8.5-bin.tar.gz -C/usr/local修改配置文件,加入以下內容
修改配置文件
插入以下內容
export MAVEN_HOME=/usr/local/apache-maven-3.8.5 export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH配置文件生效
source /etc/profile查看maven版本
mvn -version修改配置文件配置本地倉庫
vim /usr/local/apache-maven-3.8.5/conf/settings.xml加入以下配置
<localRepository>/usr/local/Maven_repository</localRepository>3、編寫Shell腳本(拉取代碼,編譯,打包,啟動)
進入/usr/local目錄下
創建目錄sh 并進入sh
mkdir sh cd sh創建編輯腳本文件bootStart.sh
vim bootStart.sh插入以下代碼(更改項目有關名稱)
#!/bin/sh each ========================================== echo 自動化部署 each ==========================================# APP_Name 后跟項目名稱 echo 停止原來運行的工程 APP_NAME =tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'` if [ ${tpid} ]; thenecho 'Stop Process...'kill -15 $tpid fi sleep 2tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'` if [ ${tpid} ]; thenecho 'Kill Process!'kill -9 $tpid elseecho 'Stop Success!' fiecho 準備從Git倉庫拉取最新代碼 cd /usr/local/項目目錄echo 開始從Git倉庫拉取最新代碼 git pull echo 代碼拉取完成echo 開始打包 output=`mvn clean package -Dmaven.test.skip=true`cd targetecho 啟動項目 nohup java -jar 項目成名.jar &> 日志名.log & echo 項目啟動完畢4、為了用戶授予執行Shell腳本權限
chmod(英文全拼:change mode)命令是控制用戶對文件的權限命令
Linux的權限分為:讀(r)、寫(w)、執行(x)三種權限
Linux的文件調用權限分為三級:文件所有者(Owner)、用戶組(Group)、其他用戶(Other Users)
只有文件所有者的超級用戶可以修改文件或目錄的權限
要執行shell腳本需要有對此腳本文件的執行權限,如有沒有則不能執行
shell腳本(Shell script),是一種Linux系統的腳本程序。
使用Shell腳本編程跟javascript、java編程一樣,只要有一個能編寫代碼的文本編輯器和一個能解釋執行的腳本解釋器就行了。
為用戶授權
6、執行Shell腳本
7、設置靜態ip
注意:不同的設備和系統與ifcfg-ens33文件名不一定一樣,具體名稱進入/etc/sysconfig/network-scripts/目錄下查看
修改文件/etc/sysconfig/network-scripts/ifcfg-ens33,內容如下
vim /etc/sysconfig/network-scripts/ifcfg-ens33編輯
TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" # 修改以下內容 BOOTPROTO="static" # 使用靜態IP地址,默認為dhcp IPADDR="192.168.81.128" # 設置的靜態IP地址 NETMASK="255.255.255.0" # 子網掩碼 GATEWAY="192.168.81.2" # 網關地址 DNS1="192.168.81.2" # DNS服務器DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="c1131c5e-3b0e-4774-9e2f-83c7dee8b2a6" DEVICE="ens33" ONBOOT="yes"重啟網絡服務使其生效
systemctl restart network六、VMware(拓展)
快照
保存當前系統信息為快照,隨時可以恢復,以防未來系統被你玩壞,就好比游戲中的歸檔!
平時的話,我們沒配置一個東西就可以拍攝一個快照,保留信息
2. 本地網絡配置
需要保證Linux虛擬機和本機處在一個網段!
Windows
Linux也必須要配置到對應的網段
/etc/sysconfig/network-scripts/
總結
以上是生活随笔為你收集整理的狂神说Linux学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于 someone could be
- 下一篇: php框架使用教程,php框架larav