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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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;中心…