Linux基本操作指令和vim編譯器

基本指令

查看日期與日歷

data 指令

顯示日期

  • 用法1:data
    • CST:China Standard Time 時區,中國標準時間
  • 用法2: data +指定格式
    常用格式:
    • “+%Y-%m-%d”(%F): 2025-06-16
    • “+%H:%M:%S”(%T): 20:19:45
    • “+%F%T”
    • 用法3:date -d “-1 day”
      獲取之前或者之后的某個時間(備份)
      符號可選值:+(之后)或者-(之前)
      單位的可選值:year,month,day,hour,minute,second
    • 格式參數
      • %F:表示完整的時間年月日
      • %T:表示完整的時分秒
      • %Y:表示四位年份
      • %m:表示兩位月份
      • %d:表示日期
      • %H:表示小時
      • %M:表示分鐘
      • %S:表示秒數

cal 指令

calendar,顯示日歷

  • 用法1:#cal
    含義:顯示當前月份的日歷。等價于 #cal -1
  • 用法2:#cal -3
    含義:顯示上一個月+本月+下個月的日歷
  • 用法3:#cal 年份
    含義:顯示某年的日歷
  • 用法4:#cal 月份 年份
    含義:顯示某年某月的日歷

關機與重啟

reboot 指令

重新啟動計算機

shutdown 指令

關機 (慎用)

  • 用法1:shutdown -h now “關機提示” 或者 shutdown -h 21:30 “關機提示”
    在這里插入圖片描述
    如果想要取消關機計劃的話,則可以按照下面方式嘗試:
  • shutdown -c
    • 取消關機計劃

其他指令

clear指令/ctrl + l快捷鍵

清除終端(把之前的信息的隱藏到了最上面)

man指令

manual,手冊(包含了 Linux 中全部命令手冊,英文)
語法:#man 命令 (退出按下q鍵)
在這里插入圖片描述

service 指令

控制一些軟件的服務啟動/停止/重啟

  • 用法:#service 服務名 start/stop/restart

vim 編譯器

一、 vi和vim

vi 編輯器是所有 Unix 及 Linux 系統下標準的編輯器,類似于 Windows 系統下的記事本。很多軟件默認使用 vi 作為他們編輯的接口。vim 是進階版的 vi,vim 可以視為一種程序編輯器。

復制 /etc/passwd 文件到自己的目錄下(不要直接修改 /etc/passwd),后面使用 passwd 文件演示 vim 命令

cp /etc/passwd ./passwd
  • cp 是復制命令
  • /etc/passwd 是源文件
  • ./passwd 表示復制到當前目錄,命名為 passwd

下載 vim:sudo apt-get install vim

  • 用法1:vim 文件路徑
    含義:打開指定的文件
  • 用法2:vim +數字 文件的路徑
    含義:打開指定的文件,并且將光標移動到指定行
  • 用法3:vim +/關鍵詞 文件的路徑
    含義:打開指定的文件,并且高亮顯示關鍵詞,快速定位到文件中的某個關鍵詞,便于查找內容
  • 用法4:vim 文件路徑1 文件路徑2 文件路徑3
    含義:同時打開多個文件,比較多個文件或同時編輯多個文件。
  • 用法5:vim -d 文件路徑1 文件路徑2
    含義:兩個文件顯示不同
用法作用說明示例
vim 文件打開單個文件直接打開并編輯指定文件vim /etc/passwd
vim +行數 文件定位到特定行打開文件后跳到特定行vim +20 myfile.txt
vim +/關鍵詞 文件定位關鍵詞高亮顯示關鍵詞,并跳轉vim +/function main myfile.c
vim 文件1 文件2 文件3打開多個文件在同一實例中編輯多個文件vim a.c b.c
vim -d 文件1 文件2文件差異比對打開兩個文件進行差異比較vim -d v1.txt v2.txt

二、 vim三種模式

vim 中存在三種模式:命令模式、編輯模式(輸入模式)、末行模式。

  • 命令模式:打開文件之后默認進入該模式,可以輸入快捷鍵進行一些操作:刪除、復制、粘貼、移動光標等
  • 編輯模式:可以對文件的內容進行編輯
  • 末行模式:可以在末行輸入命令來對文件進行操作:搜索、替換、保存、退出、撤銷、高亮等

在這里插入圖片描述

模式切換按鍵說明:

  • 進入編輯模式:
    • i:insert,光標處
    • I:行首(第一個非空字符)
    • a:append,下一個字符
    • A:行尾
    • o:open,下邊插入一空行
    • O:上邊插入一空行
    • s:subst,取代當前字符
    • S:取代當前行
  • 退回命令模式:[Esc]
  • 進入末行模式:
    • :
    • / 或 ?:進入末行模式,后面接字符串進行查找
  • 退出 vim:
    • q:退出
    • wq:保存并退出
    • q!:強制退出
    • x:文件沒有修改時直接退出,在文件修改的情況下保存并退出(不要使用X,X是文件進行加密)

異常退出:在編輯文件之后并沒有正常 wq(保存退出),而是遇到突然關閉終端或者斷電的情況,則會顯示下面的效果,這個情況稱之為異常退出
在這里插入圖片描述
解決辦法:刪除隱藏的臨時文件(以 .swp 結尾)

三、命令模式

打開文件之后默認進入該模式

1. 光標移動

  • 光標上下左右移動:方向鍵 或 kjhl
  • 光標上下左右移動指定行或字符:[數字]方向鍵 或 [數字]kjhl
  • 光標移動到行首:^
  • 光標移動到行尾:$
  • 光標移動到首行:gg
  • 光標移動到末行:G
  • 自動格式化程序:gg=G
  • 光標移動到指定行:[數字]G 或 [數字]gg
  • 向上翻屏:按鍵 ctrl + b 或 PgUp
  • 向下翻屏:按鍵 ctrl + f 或 PgDn

2. 復制/粘貼/剪切

  • 復制光標所在行:yy
  • 光標所在行的下一行新開一行粘貼(paste):p
  • 以光標所在行為準(包含當前行),向下復制指定的行數:[數字]yy
  • 剪切/刪除光標所在行(剪切了不粘貼就是刪除)(delete):dd
  • 剪切/刪除光標所在行為準(包含當前行),向下剪切/刪除指定行:[數字]dd
  • 剪切/刪除光標所在的當前行之后的內容:D
  • 可視化操作(view):v(可視模式)、V(可視行)、ctrl + v(可視塊),然后按下方向鍵來選中需要操作的區塊按下 y 復制或按下 d 刪除

3. 撤銷/恢復

  • 撤銷(undo):u 或者 :u (末行模式)
  • 恢復(取消)之前的撤銷操作:ctrl + r

四、 末行模式

1. 保存與退出文件

  • 保存操作(write)
  • 保存::w
  • 另存為::w 路徑
  • 退出(quit)::q
  • 保存并退出::wq
  • 強制執行:!
  • 不保存,強制退出::q!
  • 強制保存退出::wq!

2. 查找與替換

  • 查找:/關鍵詞 或 ?關鍵詞
    • 在搜索結果中切換上/下一個結果(next):N/n
  • 取消高亮(no highlight)::nohl
  • 替換
    • 替換光標所在行第一條原數據:: s/原數據/新數據
    • 替換光標所在行全部原數據:: s/原數據/新數據/g
    • 替換整個文件每行第一條原數據::%s/原數據/新數據
    • 替換整個文件全部原數據::%s/原數據/新數據/g
  • 符號含義:
    • %表示整個文件
    • g表示全局(global)

3. 顯示行號

  • 顯示行號(臨時)(number)::set nu
  • 取消顯示行號::set nonu

4. 執行 shell 指令

  • 執行 shell 指令::![shell 指令]
    舉例::!ls /
    在這里插入圖片描述

當外部命令執行結束之后按下任意鍵回到 vim
在這里插入圖片描述

5. 切換文件

  • 查看當前已經打開的文件名稱::files
    在這里插入圖片描述
  • 切換指定文件::open 已經打開的文件名
  • 切換到上一個文件(back prev)::bp
  • 切換到下一個文件(back next)::bn

五、分屏查看

1.啟動分屏

vim可以實現分屏操作,一個屏幕被多個文件給分占,有左右和上下兩種分屏的方式。

  • 啟動左右分屏:vi -On 文件1 文件2
    在這里插入圖片描述

在這里插入圖片描述

  • 啟動上下分屏:vi -on 文件1 文件2
    在這里插入圖片描述
    在這里插入圖片描述

2.編輯器中分屏

  • 上下分割當前打開的文件
ctrl+w s
  • 上下分割,并打開一個新的文件
:sp filename
  • 左右分割當前打開的文件
ctrl+w v
  • 左右分割,并打開一個新的文件
:vsp filename

3.關閉分屏

  • 關閉當前窗口
ctrl+w c
  • 關閉當前窗口,如果只剩最后一個,則退出vim
ctrl+w q

4.分屏間光標的移動

vim中的方向鍵是h,j,k,l,要在各個屏之間切換,只需要先按一下ctrl+w

  • 把光標移動到上邊的屏
ctrl+w k 或者 ctrl+w 上方向鍵
  • 把光標移動到下邊的屏
ctrl+w j或者 ctrl+w 下方向鍵
  • 把光標移動到右邊的屏
ctrl+w l或者 ctrl+w 右方向鍵
  • 把光標移動到左邊的屏
ctrl+w h或者 ctrl+w 左方向鍵
  • 把光標移動到另一個屏
ctrl+w w

六、vim的配置

sudo vim /etc/vim/template.c

#include<stdio.h>
#include<string.h>                                                              
#include<unistd.h>
#include<pthread.h>
#include<fcntl.h>int main(int argc, char* argv[])
{return 0;
}

sudo vim ~/.vimrc

set number
" 突出顯示當前行
set cursorline
" 設定 tab 長度為 4
set tabstop=4
" 搜索時高亮顯示被找到的文本
set hlsearch
" 開啟新行時使用智能縮進
set smartindent
" 顯示命令
set showcmd
" 命令行高度
set cmdheight=2
" 設置頭文件及主函數模板                                                         
autocmd BufNewFile *.c 0r /etc/vim/template.c
  • 臨時配置:末行模式下輸入的配置
  • 全局配置文件:/etc/vim/vimrc(不需要修改)
  • 個人配置文件:~/.vimrc

在 /etc/vim/template.c 中寫入模板:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <pthread.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <sys/mman.h>
#include <mqueue.h>
#include <time.h>
#include <semaphore.h>int main(int argc, char *argv[])
{return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/909576.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/909576.shtml
英文地址,請注明出處:http://en.pswp.cn/news/909576.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

“從HTTP到TCP/IP的旅程“-----深入淺出Java Web通信

先放結構圖&#xff1a; 一、引言&#xff1a;網絡通信就像寄快遞 想象一下我們在網上買了一本書&#xff0c;整個配送過程是這樣的&#xff1a; 應用層&#xff1a;你在購物網站填好收貨地址&#xff08;HTTP請求&#xff09;傳輸層&#xff1a;快遞公司把包裹打包&#xf…

docker build使用代理以實現構建過程中下載Github源碼等操作

在通過Dockerfile構建docker容器的過程中&#xff0c;經常會需要在構建過程中拉取Github上的代碼。當宿主機配好代理&#xff0c;但容器內是一個隔離的環境&#xff0c;若想在容器內訪問&#xff0c;則需再打通容器和宿主機之間的代理配置。 方法一&#xff1a; 若宿主機上的…

Docker 快速搭建一個基于 GPT-Vis 組件的統計圖表生成服務

以下是對工具簡單介紹&#xff1a; 可以在服務端使用 GPT-Vis 統計圖表組件直接渲染成圖片支持Docker一鍵部署&#xff0c;提供統計圖表渲染生成API接口支持多種GPT-Vis支持的組件&#xff0c;包括折線圖、柱形圖、餅圖、面積圖、條形圖、直方圖、散點圖、詞云圖、雷達圖、思維…

hal庫練習1

要求&#xff1a;一個按鍵實現呼吸燈的控制&#xff0c;一個按鍵控制LED燈的閃爍&#xff0c;串口發送數據控制燈的開關 定時器配置 1.選擇需要的定時器2.配置基礎參數&#xff08;根據時鐘樹給定時器輸入的時鐘&#xff09;3.打開中斷4.在主函數里打開中斷 定時器掃描按鍵 …

java線程(4)

程序(program) 是為完成制定任務,用某種語言編寫的一組指令的集合.簡單的話說:就是我們寫的代碼. 進程 1.進程是指進行中的程序,比如我們使用QQ,就啟動了一個進程,操作系統就會為該進程分配內存空間,當我們使用迅雷,又啟動了一個進程,操作系統將為迅雷分配新的內存空間. 2、…

02《F8Framework》核心入口 FF8.cs

FF8.cs類是 F8Framework的核心入口 采用單例模式 提供對各個功能模塊的全局訪問 【特點】通過靜態類FF8統一訪問所有功能 1.模塊化設計&#xff1a; 每個功能獨立 通過 ModuleCenter 統一管理 2.懶加載機制&#xff1a; …

【硬件】相機的硬件測試

相機測試 author: Alla Imatest 提供超過 30 種測試項目&#xff0c;主要包括&#xff1a; 1&#xff09;圖像基礎參數?&#xff1a;MTF&#xff08;調制傳遞函數&#xff09;、畸變、均勻性、動態范圍 2&#xff09;色彩與光學特性?&#xff1a;白平衡誤差、飽和度、gamma …

Profinet與Modbus TCP協議轉換技術:西門子S7-1500(主站)和歐姆龍NJ PLC的高效數據交換

一、項目背景 某大型現代化智慧農業養殖場致力于打造全方位智能化的養殖環境。其養殖系統中&#xff0c;環境監測與調控部分選用了西門子S7-1500PLC作為Profinet協議主站。該PLC憑借強大的運算能力和豐富的功能模塊&#xff0c;能夠精準地采集和處理養殖場內的溫度、濕度、空氣…

希爾伯特變換,實信號轉復信號的FPGA實現思路

希爾伯特變換將實信號轉復信號的原理 將實信號的相位推遲90度后作為復信號的虛部。 錯誤實現方式 實信號經過希爾伯特濾波后得到復信號的虛部&#xff0c;之后直接與實信號組成復信號。而由于濾波器本身會對信號延時&#xff0c;故I路與Q路并不是相差90度&#xff0c;所以此方…

多模態大語言模型演進:從視覺理解到具身智能的技術突破

多模態大語言模型演進:從視覺理解到具身智能的技術突破 多模態大語言模型(MLLMs)正在重塑人工智能的邊界,實現從"看見"到"理解"再到"行動"的全鏈條智能。本文將深入解析蘋果最新多模態研究進展,揭示視覺-語言模型十年演進的技術脈絡,剖析…

window顯示驅動開發—渲染管道

支持 Direct3D 版本 10 的圖形硬件可以使用共享可編程著色器核心進行設計。 GPU) (圖形處理單元可以編程著色器核心&#xff0c;這些著色器核心可以跨構成呈現管道的功能塊進行計劃。 這種負載均衡意味著硬件開發人員不需要使用每種著色器類型&#xff0c;而只需要使用執行呈現…

時序數據庫Apache IoTDB核心技術深度解析

一、引言 ?背景?&#xff1a;5G技術加速了IoT領域的發展&#xff0c;物聯網設備數據的收集、存儲和計算需求日益增長。Apache IoTDB作為一款專為物聯網時序數據設計的軟件系統&#xff0c;在2020年被Apache基金會認可為頂級項目。 二、IoT領域發展趨勢 ?5G與IoT?&#x…

Next.js面試題:API深度解析

Next.js面試題&#xff1a;API深度解析 Next.js 通過 App Router 的引入徹底改變了 Web 開發范式。在這個新時代&#xff0c;深入理解 Next.js 的 API 函數不再只是錦上添花&#xff0c;而是技術面試中的關鍵區分點。這些函數構成了構建高性能、可擴展、現代化 Web 應用的基石…

Docker-MCP quickstart

項目概述 Docker-MCP 是一個 支持mcp的Docker 管理服務器&#xff0c;它允許 客戶端 通過 MCP&#xff08;Model Control Protocol&#xff09;接口直接與 Docker 進行交互。該項目提供了一套工具&#xff0c;使 AI 助手能夠創建容器、部署 Docker Compose 、獲取容器日志以及…

git 的變基操作(適合一個功能進行了多次commit提交,提交記錄過多不美觀)

git提交的 commit 的記錄很多&#xff0c;想多個 commit 進行合并&#xff0c;對代碼進行整理&#xff0c;幫助更好的閱讀代碼 IDEA 的操作步驟&#xff1a; 這里&#xff0c;給出你想進行合并的記錄 hash 值&#xff0c;完了點擊“Rebase”進行合并 點擊后&#xff0c;會進行…

【完整源碼+數據集+部署教程】路邊廣告牌實例分割系統源碼和數據集:改進yolo11-SEAMHead

研究背景與意義 研究背景與意義 隨著城市化進程的加快&#xff0c;路邊廣告牌作為重要的商業宣傳媒介&#xff0c;越來越多地出現在城市的各個角落。它們不僅承擔著信息傳播的功能&#xff0c;還對城市的視覺環境產生了深遠的影響。然而&#xff0c;隨著廣告牌數量的激增&…

C++ 中文件 IO 操作詳解

在C中&#xff0c;文件操作是通過流(stream)來實現的。標準庫提供了三種主要的文件流類來處理文件IO操作&#xff1a; ofstream&#xff1a;用于寫入文件&#xff08;output file stream&#xff09;ifstream&#xff1a;用于讀取文件&#xff08;input file stream&#xff0…

第32節 Node.js 全局對象

在Node.js中我們可以直接訪問到全局對象。 這些對象在所有模塊里都是可用的&#xff0c;有些對象不是在全局作用域而是在模塊作用域里&#xff0c;這些情況將在本文的內容中進行介紹。 global {Object} 全局命名空間對象。 在瀏覽器中&#xff0c;全局作用域就是頂級域。如…

Linux文件屬性和權限概述-linux026

Linux文件屬性和權限概述 Linux 系統作為多用戶操作系統&#xff0c;通過文件屬性和權限機制來控制不同用戶對文件和目錄的訪問&#xff0c;從而保證系統的安全性。不同的用戶對同一文件可以有不同的訪問權限&#xff0c;這些權限包括 讀取&#xff08;read&#xff09;、寫入…

nuScenes介紹

目標檢測指標 指標內容mAP&#xff08;mean Average Precision&#xff09;bev下2d中心點的距離來評價&#xff0c;而不是像2d檢測里用iou來評價mATE&#xff08;Average Translation Error&#xff09;中心點的2D歐式距離mASE&#xff08;Average Scale Error&#xff09;中心…