主頁 > 作業系統 > 《Vim使用技巧 第二版》學習筆記

《Vim使用技巧 第二版》學習筆記

2020-11-12 19:35:30 作業系統

這是我根據《Vim使用技巧 第二版》整理的,主要用于方便查找

模式

普通模式

x 洗掉當前字符

u 撤銷修改

. 重復動作

a 當前位置插入

A 行末插入(=$a

R 由普通模式進入替換模式

r 進入替換模式替換一個字符

gR 進入虛擬替換模式:按螢屏上實際顯示的寬度來替換字符,而不是按檔案中所保存的字符進行替換(它會把制表符當成一組空格進行處理)

gr 進入虛擬替換模式替換一個字符

o 在下面插入一行并在下一行開頭進入插入模式

O 在上面插入一行并在上一行開頭進入插入模式

s 洗掉當前字符并進入插入模式

[count]<Ctrl-a> 把當前游標之上或之后的第一個數字加上 [count](不輸入默認為1)

在指令前加上[count]可以指定指令重復的次數(但是能用重復就不要用次數)

ga 以十進制和十六進制的形式 顯示出游標所在字符的字符編碼

插入模式

<Ctrl-w> 洗掉前一個單詞

<Ctrl-u> 洗掉至行首

<Ctrl-o> 進入插入-普通模式:在此模式中,可以執行一個普通模式命令,執行完后,馬上又回傳到插入模式

<C-r>{register} 粘貼

<C-r><C-p>{register} 按原義插入暫存器內的文本,并修正任何不必要的縮進

<C-r>={算式} 把計算的結果插入

<C-v>{123} 以十進制字符編碼插入字符

<C-v>u{1234} 以十六進制字符編碼插入字符

<C-v>{nondigit} 按原義插入非數字字符

<C-k>{char1}{char2} 插入以二合字母 {char1}{char2} 表示的字符

可視模式

在可視模式中,要先選中選區,然后再觸發修改命令,這種次序顛倒的方式對所有的運算子命令都適用

v 激活面向字符的可視模式

V 激活面向行的可視模式

<C-v> 激活面向列塊的可視模式

gv 重選上次的高亮選區

命令列模式

適用于遠距離的操作

:[number] 跳轉到制定行

:{start},{end} 選擇一個范圍

@: 重復上一個Ex命令

@@ 重復上一個 @: 的命令

<C-d> 顯示全部可以補全的命令

<C-r><C-w> 在命令中插入當前游標中的單詞

q/ 打開查找命令歷史的命令列視窗

q: 進入命令列視窗模式,在這個模式下上下選擇歷史命令的時候,按回車執行;你甚至可以在這個模式里用正常的方式修改歷史命令

:!{cmd} 呼叫外部命令

:shell 啟動一個互動的shell會話

:read !{cmd} 在shell 中執行 {cmd} ,并把其標準輸出插入游標下方

:[range]write !{cmd} 在 shell 中執行 {cmd} ,以 [range] 作為其標準輸入

:[range]!{filter} 使用外部程式 {filter} 過濾指定的 [range]

:source *.vim 執行Ex腳本

:argdo {Ex命令} 對引數串列內的所有緩沖區執行一條Ex命令

關于范圍

. 代表當前行的地址

% 代表當前檔案中的所有行

/{tag}/ {tag} 所在行

:{address}+n 偏移行

:[range]t{address} 復制 [range] 內容到 {address}

:[range]m{address} 移動 [range] 內容到 {address}

:[range]normal{操作} 對 [range] 行進行普通模式的 {操作}

operator

當一個運算子命令被連續呼叫兩次時,它會作用于當前行,如 dd 洗掉當前行

c 修改(比洗掉多一個進入插入模式)

g~ 反轉大小寫

gu 轉換為小寫

gU 轉換為大寫

> 增加縮進

< 減少縮進

= 自動縮進

! 使用外部程式過濾{motion}所跨越的行

motion

gg 將游標定位到檔案的開頭

G 將游標定位到檔案的末尾

aw 表示整個單詞

ap 表示整個段落

operator + motion 使用例

cw 洗掉從游標位置到單詞結尾間的字符,并進入插入模式

dw 洗掉從游標起始位置到單詞結尾的內容

db 洗掉從游標起始位置到單詞開頭的內容,但會原封未動地留下最后一個字符

daw 洗掉整個單詞(delete a word,推薦使用)

關于洗掉

往前洗掉不會洗掉游標本身,往后洗掉會,游標看最左邊就好理解了

關于檔案

:ls 列出所有被載入記憶體中的緩沖區的串列,% 符號指明哪個緩沖區在當前視窗中可見,# 符號則代表輪換文
件,按 <C-^> 可以在當前檔案和輪換檔案間快速切換

:pwd 列印作業目錄(print working directory)

切換緩沖區

命令 用途
:bnext 切換到串列中的下一個緩沖區
:bprev 切換到串列中的上一個緩沖區
:bfirst 跳到串列的開頭
:blast 跳到串列的結尾
:bdelete N1 N2 N3:N,M bdelete 洗掉緩沖區
Glob模式 所匹配的檔案
:args *.* index.html
app.js
:args **/*.js app.js
lib/framework.js
app/controllers/Mailer.js
...etc
:args **/*.* app.js
index.html
lib/framework.js
lib/theme.css
app/controllers/Mailer.js
...etc

反引號指定檔案

:args `cat .chapters`

Vim 會在 shell 中執行反撇號(')括起來的命令,然后把 cat 命令的輸出作為 :args 命令的引數,雖然本例是用 cat 命令獲取 .chapters 檔案的內容,但實際上可以用這種方式執行任意可用的shell命令,

files/.chapters內容
the_vim_way.pml
normal_mode.pml
insert_mode.pml
visual_mode.pml

切分視窗

命令 用途
<C-w>s 水平切分當前視窗,新視窗仍顯示當前緩沖區
<C-w>v 垂直切分當前視窗,新視窗仍顯示當前緩沖區
:sp[lit] {file} 水平切分當前視窗,并在新視窗中載入{file}
:vsp[lit] {file} 垂直切分當前視窗,并在新視窗中載入{file}

在視窗間切換

命令 用途
<C-w>w 在視窗間回圈切換
<C-w>h 切換到左邊的視窗
<C-w>j 切換到下邊的視窗
<C-w>k 切換到上邊的視窗
<C-w>l 切換到右邊的視窗

實際上,<C-w><C-w> 完成的功能和 <C-w>w 相同,就是說可以一直按住 <Ctrl> 鍵,然后輸入 ww (或 wj,或上表的其他命令)來切換活動視窗,<C-w><C-w> 要比 <C-w>w 更容易按一些,盡管寫出來時它顯得更繁瑣,

(h, j, k, l 和上下左右方向鍵是等效的)

關閉視窗

Ex命令 普通模式命令 用途
:clo[se] <C-w>c 關倍訓動視窗
:on[ly] <C-w>o 只保留活動視窗,關閉其他所有視窗

改變視窗大小

也可以拖拽滑鼠

命令 用途
<C-w>= 使所有視窗等寬、等高
<C-w>_ 最大化活動視窗的高度
<C-w>| 最大化活動視窗的寬度
[N]<C-w>_ 把活動視窗的高度設為[N]行
[N]<C-w>| 把活動視窗的高度設為[N]列

:lcd {path} 設定當前視窗的本地作業目錄

:windo lcd {path} 為一個標簽頁中的所有視窗設定本地作業目錄

標簽頁操作

命令 用途
:tabe[dit] {filename} 在新標簽頁中打開 {filename}
<C-w>T 把當前視窗移到一個新標簽頁
:tabc[lose] 關閉當前標簽頁及其中的所有視窗
:tabo[nly] 只保留活動標簽頁,關閉所有其他標簽頁

在標簽頁間切換

Ex命令 普通模式命令 用途
:tabn[ext] {N} {N}gt 切換到編號為 {N} 的標簽頁
:tabn[ext] gt 切換到下一標簽頁
:tabp[previous] gT 切換到上一標簽頁

重排標簽頁

:tabmove [N] 重新排列標簽頁,當 [N] 為0時,當前標簽頁會被移到開頭;如果省略了 [N],當前標簽頁會被移到結尾,如果終端支持滑鼠,或是正在使用 GVim,:那么也可以通過滑鼠拖曳來進行重排操作,

檔案

打開檔案

:edit {file} 打開相對于作業目錄的檔案路徑

:edit %:h<Tab> % 符號代表活動緩沖區的完整檔案路徑,按 <Tab> 鍵會將其展開,:h 修飾符會去除檔案名,但保留路徑中的其他部分

:find {file} 在 path 里查找檔案并打開

:set path+={path} 把 {path} 加入查找路徑中

特殊的保存檔案

把檔案保存到不存在目錄中

:edit {file} 命令一般用于打開一個已存在的檔案,然而如果指定了一個不存在的檔案路徑,Vim 就會創建一個新的空白緩沖區,

:!mkdir -p %:h -p 引數使 mkdir 創建任何不存在的中間目錄,%:h 為不包含檔案名的路徑

用超級用戶權限保存檔案

:w !sudo tee % > /dev/null

快速移動和跳轉

行移動

命令 游標動作
j 向下移動一個實際行
gj 向下移動一個螢屏行
k 向上移動一個實際行
gk 向上移動一個螢屏行
0 移動到實際行的行首
g0 移動到螢屏行的行首
^ 移動到實際行的第一個非空白字符
g^ 移動到螢屏行的第一個非空白字符
$ 移動到實際行的行尾
g$ 移動到螢屏行的行尾

j, k, 0, $ 都用于實際行,加上 g 前綴用于螢屏行

單詞移動

命令 游標動作
w 正向移動到下一單詞的開頭
b 反向移動到當前單詞/上一單詞的開頭
e 正向移動到當前單詞/下一單詞的結尾
ge 反向移動到上一單詞的結尾

先學會用 w 和 b

W, B, E 和 gE 對應”字串“的操作

查找字符

下表為行內操作

命令 用途
f{char} 正向移動到下一個 {char} 所在之處
F{char} 反向移動到上一個 {char} 所在之處
t{char} 正向移動到下一個 {char} 所在之處的前一個字符上
T{char} 反向移動到上一個 {char} 所在之處的后一個字符上
; 重復上次的字符查找命令
, 反轉方向查找上次的字符查找命令

/{word} 或者 把游標移到單詞上按* 查找單詞

n 向下重復上一次查找單詞操作

N 向上重復上一次查找單詞操作

在可視模式中選擇分割符文本物件

選擇時游標必須在分割符內

一般以 i 開頭的文本物件會選擇分隔符內部的文本,而以 a 開頭的文本物件會選擇包括分隔符在內的整個文本,為了便于記憶,可以把 i 想成“inside”,而把 a 想成“around”或“all”,

文本物件 選擇區域 文本物件 選擇區域
a) 或 ab 一對圓括號 (parentheses) i) 或 ib 圓括號 (parentheses) 內部
a} 或 aB 一對花括號 {braces} i} 或 iB 花括號 {braces} 內部
a] 一對方括號 [brackets] i] 方括號 [brackets] 內部
a> 一對尖括號 i> 尖括號 內部
a' 一對單引號 'single quotes' i' 單引號 'single quotes' 內部
a" 一對雙引號 "double quotes" i" 雙引號 "double quotes" 內部
a` | 一對反引號 backticks | i` 反引號 backticks 內部
at 一對 XML 標簽tags it XML標簽tags內部

在普通模式中操作范圍文本物件

文本物件 選擇范圍
iw 當前單詞
aw 當前單詞及一個空格
iW 當前字串
aW 當前字串及一個空格
is 當前句子
as 當前句子及一個空格
ip 當前段落
ap 當前段落及一個空行

一般來說,d{motion} 命令和 aw、as 和 ap 配合起來使用比較好,而 c{motion} 命令和 iw 及類似的文本物件一起用效果會更好,

做標記

m{a-zA-Z} 用選定的字母標記當前游標所在位置,小寫位置標記只在每個緩沖區區域可見,大寫位置標記則全域
可見,

`{mark} 把游標移動到設定此位置標記時游標所在之處

'{mark} 跳到位置標記所在行,并把游標置于該行第一個非空白字符上

自動位置標記

位置標記 跳轉到
`` 當前檔案中上次跳轉動作之前的位置
`. 上次修改的地方
`^ 上次插入的地方
`[ 上次修改或復制的起始位置
`] 上次修改或復制的結束位置
`< 上次高亮選區的起始位置
`> 上次高亮選區的結束位置

% 在一組開、閉括號間跳轉

.vimrc 中加入以下內容可以激活 matchit 插件,它可以使 % 在配對的關鍵字間跳轉:

set nocompatible
filetype plugin on
runtime macros/matchit.vim

遍歷跳轉串列

:jumps 查看跳轉串列

<C-o> 后退

<C-i> 前進

遍歷改變串列

:changes 查看改變串列

g; 反向

g, 正向

跳轉到檔案

把游標放到某個字串上執行 gf 命令,可以跳轉到該檔案,

指定擴展名:suffixesadd 選項允許指定一個或多個檔案擴展名,當 Vim 用gf 命令搜尋檔案名時,會嘗試使用這些擴展名,用下面的命令可以設定此選項:

:set suffixesadd+=.h

指定搜尋目錄:設定 path(同上 find 的使用)

暫存器

{register}x 剪切字符

{register}d 剪切

{register}y 復制

{register}p 粘貼到游標后

{register}P 粘貼到游標前

{register}gp 粘貼到游標后,游標移動到被粘貼出來的文本結尾

{register}gP 粘貼到游標前,游標移動到被粘貼出來的文本結尾

:reg {register} 查看暫存器內容

register

"0 復制專用暫存器

"a - "z 有名暫存器

_ 黑洞暫存器

"+ 系統剪貼板

"* 選擇專用暫存器

"= 運算式暫存器

只讀暫存器

暫存器 內容
"% 當前檔案名
"# 輪換檔案名
". 上次插入的文本
": 上次執行的Ex命令
"/ 上次查找的模式

交換單詞:在可視模式下使用 p 命令時,Vim將用指定的暫存器內容來替換高亮選區中的文本,高亮選區中的內容與暫存器的文本被調包了,

在錄制宏的程序中,禁止使用滑鼠

q{register} 開始錄制(如果 register 是大寫,新內容會被追加到對應小寫暫存器的后面)

q 停止錄制

@{register} 執行宏

@@ 重復最近呼叫過的宏

:normal @{register} 在高亮選區中的每一行上執行這個宏

模式匹配

\c 查找模式忽略大小寫

\C 查找模式強制大小寫

\v 表示特殊含義

\V 使得其后的模式中只有反斜杠有特殊的意義

模式 說明
#\([0-9a-fA-F]\{6}\|[0-9a-fA-F]\{3}\) 使用 magic 搜索模式時,必須轉義 (、)、以及 { 字符,賦予它們特殊的含義
\v#([0-9a-fA-F]{6}|[0-9a-fA-F]{3}) 使用 \v 模式開關后,(、)、以及 { 字符會表現出特殊含義
\v#(\x{6}|\x{3}) 使用 \x 字符類代替 [0-9A-Fa-f],可以進一步精簡運算式

任何圓括號內部的匹配文本都會自動保存到一個臨時的倉庫,可以用 \1 參考這段被捕獲的文本,如果模式中包含不止一組圓括號,則可以用 \1、\2,直到 \9,參考被每對 () 捕獲的子匹配,另外,不論模式中是否使用了圓括號,元字符 \0 永遠會參考整個匹配,在括號前加上 % 可以不把內容賦值到暫存器中,

<> 兩符號將用于匹配單詞的邊界,它們本身不匹配任何字符,僅表示單詞與圍繞此單詞的空白字符(或標點符號)之間的邊界,

例: /\v<(\w+)\_s+\1> 專門用于匹配重復單詞

元字符 \zs 標志著一個匹配的起始,元字符 \ze 則用來界定匹配的結束,

例:如果查找 /Practical Vim,檔案中所有出現 “Practical Vim” 的地方都會被高亮起來,一旦將查找模式改為 /Practical \zsVim,則只有單詞 “Vim” 會被高亮,而單詞 “Practical” 會被排除于匹配之外,但它仍是模式的一部分,這樣一來,只有緊跟著單詞 “Practical” 的 “Vim” 才會被高亮,其他前面不是 “Practical” 的 “Vim” 則不會被匹配,這與通過 /Vim 命令進行簡單查找的結果有很大不同,

命令 用途
n 跳至下一處匹配,保持查找方向與偏移不變
N 跳至上一處匹配,保持查找方向與偏移不變
/<CR> 正向跳轉至相同模式的下一處匹配
?<CR> 反向跳轉至相同模式的上一處匹配
gn 進入面向字符的可視模式,并選中下一處匹配
gN 進入面向字符的可視模式,并選中上一處匹配

正向查找時要轉義 / 字符,反向查找時要轉義 ? 號,每次都要轉義符號 \

escape({string}, {chars}) {chars} 引數將指定哪些字符需要用反斜杠轉義

在最后添加 /e 可以讓游標停留在查找匹配的結尾

統計匹配總數

/{something}
:%s///gn

或者

/{something}
:vimgrep //g %

前者告訴我們總數,后者告訴我們每個所在的位置

substitute

:[range]s[ubstitute]/{pattern}/{string}/[flags]

輸入 <C-r>{register} 可以將暫存器的內容插入命令列

標志位

標志位 g 使得 subsititute 命令可在全域范圍內執行,即可以修改一行內的所有匹配,而不僅僅是第一處匹配,

標志位 c 讓我們有機會可以確認或拒絕每一處修改,

標志位 n 會抑制正常的替換行為,即讓 Vim 不執行替換操作,而只是報告本次 substitute 命令匹配的個數,

標志位 e 專門用于屏蔽錯誤提示,

標志位 & 僅僅用于指示 Vim 重用上一次 substitute 命令所用過的標志位,

特殊字符

符號 描述
\r 插入一個換行符
\t 插入一個制表符
\\ 插入一個反斜杠
\1 插入第1個子匹配
\2 插入第2個子匹配(以此類推,最多到 \9)
\0 插入匹配模式的所有內容
& 插入匹配模式的所有內容
~ 使用上一次呼叫 :substitute 時的 {string}
\={Vim script} 執行 {Vim Script} 運算式;并將回傳的結果作為替換 {string}

手動決定每一次替換——答案的含義

答案 用途
y 替換此處匹配
n 忽略此處匹配
q 退出替換程序
l “last” —— 替換此處匹配后退出
a “all” —— 替換此處與之后所有的匹配
<C-e> 向上滾動螢屏
<C-y> 向下滾動螢屏

:cfdo {cmd} 修改所有 quickfix 串列上的檔案

global

:[range] global[!] /{pattern}/ [cmd]

在預設情況下,global 命令的作用范圍是整個檔案,

{pattern} 域與查找歷史相互關聯,

global! 將指示 Vim 在沒有匹配到指定模式的行上執行 [cmd]

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/212401.html

標籤:Linux

上一篇:利用logrotate工具對catalina.out進行日志分割實戰

下一篇:QT:設定子視窗顯示在父視窗的位置(絕對坐標)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • CA和證書

    1、在 CentOS7 中使用 gpg 創建 RSA 非對稱密鑰對 gpg --gen-key #Centos上生成公鑰/密鑰對(存放在家目錄.gnupg/) 2、將 CentOS7 匯出的公鑰,拷貝到 CentOS8 中,在 CentOS8 中使用 CentOS7 的公鑰加密一個檔案 gpg -a ......

    uj5u.com 2020-09-10 00:09:53 more
  • Kubernetes K8S之資源控制器Job和CronJob詳解

    Kubernetes的資源控制器Job和CronJob詳解與示例 ......

    uj5u.com 2020-09-10 00:10:45 more
  • VMware下安裝CentOS

    VMware下安裝CentOS 一、軟硬體準備 1 Centos鏡像準備 1.1 CentOS鏡像下載地址 下載地址 1.2 CentOS鏡像下載程序 點擊下載地址進入如下圖的網站,選擇需要下載的版本,這里選擇的是Centos8,點擊如圖所示。 決定選擇Centos8后,選擇想要的鏡像源進行下載,此 ......

    uj5u.com 2020-09-10 00:12:10 more
  • 如何使用Grep命令查找多個字串

    如何使用Grep 命令查找多個字串 大家好,我是良許! 今天向大家介紹一個非常有用的技巧,那就是使用 grep 命令查找多個字串。 簡單介紹一下,grep 命令可以理解為是一個功能強大的命令列工具,可以用它在一個或多個輸入檔案中搜索與正則運算式相匹配的文本,然后再將每個匹配的文本用標準輸出的格式 ......

    uj5u.com 2020-09-10 00:12:28 more
  • git配置http代理

    git配置http代理 經常遇到克隆 github 慢的問題,這里記錄一下幾種配置 git 代理的方法,解決 clone github 過慢。 目錄 git配置代理 git單獨配置github代理 git配置全域代理 配置終端環境變數 git配置代理 主要使用 git config 命令 git單獨 ......

    uj5u.com 2020-09-10 00:12:33 more
  • Linux npm install 裝包時提示Error EACCES permission denied解

    npm install 裝包時提示Error EACCES permission denied解決辦法 ......

    uj5u.com 2020-09-10 00:12:53 more
  • Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包

    Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包。 18 (flaskApi) [root@67 flaskDemo]# yum -y install nginx 19 已加載插件:fastestmirror, langpacks 20 Loading ......

    uj5u.com 2020-09-10 00:13:13 more
  • Linux查看服務器暴力破解ssh IP

    在公網的服務器上經常遇到別人爆破你服務器的22埠,用來挖礦或者干其他嘿嘿嘿的事情~ 這種情況下正確的做法是: 修改默認ssh的22埠 使用設定密鑰登錄或者白名單ip登錄 建議服務器密碼為復雜密碼 創建普通用戶登錄服務器(root權限過大) 建立堡壘機,實作統一管理服務器 統計爆破IP [root ......

    uj5u.com 2020-09-10 00:13:17 more
  • CentOS 7系統常見快捷鍵操作方式

    Linux系統中一些常見的快捷方式,可有效提高操作效率,在某些時刻也能避免操作失誤帶來的問題。 ......

    uj5u.com 2020-09-10 00:13:31 more
  • CentOS 7作業系統目錄結構介紹

    作業系統存在著大量的資料檔案資訊,相應檔案資訊會存在于系統相應目錄中,為了更好的管理資料資訊,會將系統進行一些目錄規劃,不同目錄存放不同的資源。 ......

    uj5u.com 2020-09-10 00:13:35 more
最新发布
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:43:21 more
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:42:36 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:26:53 more
  • 設定Windows主機的瀏覽器為wls2的默認瀏覽器

    這里以Chrome為例。 1. 準備作業 wsl是可以使用Windows主機上安裝的exe程式,出于安全考慮,默認情況下改功能是無法使用。要使用的話,終端需要以管理員權限啟動。 我這里以Windows Terminal為例,介紹如何默認使用管理員權限打開終端,具體操作如下圖所示: 2. 操作 wsl ......

    uj5u.com 2023-04-19 09:25:49 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:19:04 more
  • Linux學習筆記

    IP地址和主機名 IP地址 ifconfig可以用來查詢本機的IP地址,如果不能使用,可以通過install net-tools安裝。 Centos系統下ens33表示主網卡;inet后表示IP地址;lo表示本地回環網卡; 127.0.0.1表示代指本機;0.0.0.0可以用于代指本機,同時在放行設 ......

    uj5u.com 2023-04-18 06:52:01 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:50 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:01 more
  • 你是不是暴露了?

    作者:袁首京 原創文章,轉載時請保留此宣告,并給出原文連接。 如果您是計算機相關從業人員,那么應該經歷不止一次網路安全專項檢查了,你肯定是收到過資訊系統技術檢測報告,要求你加強風險監測,確保你提供的系統服務堅實可靠了。 沒檢測到問題還好,檢測到問題的話,有些處理起來還是挺麻煩的,尤其是線上正在運行的 ......

    uj5u.com 2023-04-05 16:52:56 more
  • 細節拉滿,80 張圖帶你一步一步推演 slab 記憶體池的設計與實作

    1. 前文回顧 在之前的幾篇記憶體管理系列文章中,筆者帶大家從宏觀角度完整地梳理了一遍 Linux 記憶體分配的整個鏈路,本文的主題依然是記憶體分配,這一次我們會從微觀的角度來探秘一下 Linux 內核中用于零散小記憶體塊分配的記憶體池 —— slab 分配器。 在本小節中,筆者還是按照以往的風格先帶大家簡單 ......

    uj5u.com 2023-04-05 16:44:11 more