Linux 命令和 vi/vim 命令

embedded/2024/11/26 10:05:20/

Linux 命令概览

1. 文件和目录操作

  • 列出目录内容

    • ls:列出当前目录内容
    • ls -l:以长格式列出
    • ls -a:显示隐藏文件
    • ls -lh:以长格式和人类可读方式显示大小
    • ls -R:递归列出子目录
    • ls -d */:仅列出目录
    • ls -t:按修改时间排序
    • ls -S:按文件大小排序
  • 改变当前目录

    • cd /path/to/directory:切换到指定目录
    • cd ..:切换到上级目录
    • cd ~:切换到用户主目录
    • cd -:切换到上一个目录
    • cd ~username:切换到指定用户的主目录
  • 显示当前目录

    • pwd:显示当前工作目录的完整路径
  • 创建目录

    • mkdir newdir:创建新目录
    • mkdir -p path/to/newdir:创建多级目录
  • 删除空目录

    • rmdir emptydir:删除空目录
  • 删除文件或目录

    • rm file.txt:删除文件
    • rm -r directory:递归删除目录
    • rm -rf directory:强制递归删除
    • rm -i file.txt:删除前提示确认
  • 复制文件或目录

    • cp file1.txt file2.txt:复制文件
    • cp -r dir1 dir2:递归复制目录
    • cp -u file1.txt /path/to/destination:仅当目标文件较旧时复制
  • 移动或重命名文件

    • mv file.txt newfile.txt:重命名文件
    • mv file.txt /path/to/destination:移动文件
    • mv -i file.txt /path/to/destination:移动前提示确认
  • 创建空文件或更新文件时间戳

    • touch newfile.txt:创建空文件
    • touch -m file.txt:更新修改时间戳
    • touch -a file.txt:更新访问时间戳

2. 文件查看和编辑

  • 显示文件内容

    • cat file.txt:显示文件内容
    • cat file1.txt file2.txt > combined.txt:合并文件内容
    • cat -n file.txt:显示带行号的内容
    • cat -E file.txt:显示行尾的换行符
  • 分页显示文件内容

    • less file.txt:分页显示文件内容
      • q:退出 less
      • /pattern:搜索
      • n:重复搜索
      • N:反向搜索
      • g:跳转到开头
      • G:跳转到末尾
  • 显示文件前几行

    • head file.txt:显示前10行
    • head -n 5 file.txt:显示前5行
    • head -c 100 file.txt:显示前100个字节
  • 显示文件最后几行

    • tail file.txt:显示最后10行
    • tail -n 5 file.txt:显示最后5行
    • tail -f log.txt:实时显示新增内容
    • tail -c 100 file.txt:显示最后100个字节
  • 简单的文本编辑器

    • nano file.txt:打开文件进行编辑
      • Ctrl + O:保存文件
      • Ctrl + X:退出编辑器
      • Ctrl + K:剪切整行
      • Ctrl + U:粘贴剪切的行
      • Ctrl + W:搜索文本
      • Alt + R:替换文本
  • 强大的文本编辑器

    • vim file.txt:打开文件进行编辑

3. 系统信息

  • 显示系统中正在运行的进程

    • top:显示系统资源使用情况和运行中的进程
      • q:退出 top
      • P:按 CPU 使用率排序
      • M:按内存使用率排序
  • 显示当前进程

    • ps:显示当前用户的进程
    • ps aux:显示所有用户的进程
    • ps -ef:显示所有进程的详细信息
    • ps -C processname:显示指定进程的信息
  • 终止进程

    • kill PID:终止指定进程
    • kill -9 PID:强制终止指定进程
    • killall processname:终止所有指定进程
  • 显示磁盘空间使用情况

    • df:显示所有文件系统的磁盘使用情况
    • df -h:以人类可读方式显示
    • df -T:显示文件系统的类型
  • 显示目录或文件的磁盘使用情况

    • du -sh /path/to/directory:显示目录总大小
    • du -ah /path/to/directory:显示所有文件和子目录的大小
    • du -a | sort -n -r | head -n 10:显示最大的10个文件
  • 显示系统信息

    • uname:显示内核名称
    • uname -a:显示所有系统信息
    • uname -m:显示机器硬件架构
    • uname -r:显示内核版本
  • 显示网络接口配置

    • ifconfig:显示网络接口配置(某些系统可能需要安装 net-tools)
    • ip addr:显示网络接口配置
    • ip link:显示网络接口状态

4. 用户和权限

  • 显示当前用户名

    • whoami:显示当前登录的用户名
  • 切换用户身份

    • su:切换到超级用户
    • su username:切换到指定用户
    • su -:切换到超级用户并加载环境变量
    • su - username:切换到指定用户并加载环境变量
  • 以超级用户或其他用户的身份执行命令

    • sudo command:以超级用户身份执行命令
    • sudo -u username command:以指定用户身份执行命令
    • sudo -i:以超级用户身份打开一个 shell
    • sudo -l:列出当前用户可以执行的 sudo 命令
  • 更改文件或目录的权限

    • chmod 755 file.txt:设置权限为 rwxr-xr-x
    • chmod +x script.sh:添加可执行权限
    • chmod -R 755 /path/to/directory:递归设置权限
  • 更改文件或目录的所有者

    • chown user:group file.txt:更改所有者和组
    • chown -R user:group /path/to/directory:递归更改所有者和组
    • chown :group file.txt:仅更改文件的组

5. 压缩和解压

  • 打包或解包文件

    • tar -cvf archive.tar file1 file2:创建 tar 文件
    • tar -xvf archive.tar:解包 tar 文件
    • tar -czvf archive.tar.gz file1 file2:创建 gzip 压缩 tar 文件
    • tar -xzvf archive.tar.gz:解压 gzip 压缩 tar 文件
    • tar -cjvf archive.tar.bz2 file1 file2:创建 bzip2 压缩 tar 文件
    • tar -xjvf archive.tar.bz2:解压 bzip2 压缩 tar 文件
  • 压缩或解压缩文件

    • gzip file.txt:压缩文件
    • gunzip file.txt.gz:解压缩文件
    • gzip -d file.txt.gz:解压缩文件
    • zip archive.zip file1 file2:创建 zip 文件
    • unzip archive.zip:解压 zip 文件
    • zip -r archive.zip /path/to/directory:递归压缩目录
    • unzip -l archive.zip:列出 zip 文件的内容

6. 网络

  • 测试网络连接

    • ping google.com:测试与 google.com 的连接
    • ping -c 4 google.com:发送4次 ICMP 请求
    • ping -s 1024 google.com:发送1024字节的数据包
  • 显示网络状态

    • netstat -an:显示所有网络连接
    • netstat -tuln:显示监听的 TCP 和 UDP 端口
    • netstat -r:显示路由表
    • netstat -i:显示网络接口统计信息
  • 安全地登录远程计算机

    • ssh user@hostname:以 user 身份登录到 hostname
    • ssh -p 2222 user@hostname:指定端口登录
    • ssh -i keyfile user@hostname:使用指定的私钥文件登录
  • 安全复制文件到远程计算机或从远程计算机复制文件

    • scp file.txt user@hostname:/path/to/destination:将本地文件复制到远程主机
    • scp user@hostname:/path/to/file.txt /local/path:从远程主机复制文件到本地
    • scp -r /local/dir user@hostname:/remote/dir:递归复制目录

7. 软件管理

  • Debian/Ubuntu 包管理工具

    • sudo apt-get update:更新包列表
    • sudo apt-get upgrade:升级已安装的包
    • sudo apt-get install package:安装包
    • sudo apt-get remove package:卸载包
    • sudo apt-get autoremove:自动卸载不再需要的依赖包
    • sudo apt-get clean:清理下载的包文件
    • sudo apt-get autoclean:清理不再需要的包文件
  • Red Hat/CentOS 包管理工具

    • sudo yum update:更新所有包
    • sudo yum install package:安装包
    • sudo yum remove package:卸载包
    • sudo yum list installed:列出已安装的包
    • sudo yum search keyword:搜索包
  • Fedora 包管理工具

    • sudo dnf update:更新所有包
    • sudo dnf install package:安装包
    • sudo dnf remove package:卸载包
    • sudo dnf list installed:列出已安装的包
    • sudo dnf search keyword:搜索包
  • 跨发行版的包管理系统

    • sudo snap install package:安装包
    • sudo snap remove package:卸载包
    • sudo snap list:列出已安装的 snap 包
    • sudo snap refresh:更新所有 snap 包

8. 其他

  • 显示命令的手册页

    • man ls:显示 ls 命令的手册页
    • man 1 ls:显示 ls 命令的手册页(第1部分)
    • man 5 crontab:显示 crontab 文件格式的手册页(第5部分)
  • 显示命令的简短描述

    • whatis ls:显示 ls 命令的简短描述
  • 查找程序文件的位置

    • whereis ls:查找 ls 命令的二进制文件、源代码和手册页
  • 查找可执行文件的位置

    • which ls:查找 ls 命令的可执行文件位置
  • 查看或执行历史命令

    • history:显示命令历史
    • !command:重新执行最近的 command
    • !123:重新执行命令历史中的第123条命令
    • history | grep command:搜索命令历史
  • 创建命令别名

    • alias ll='ls -l':创建 ll 别名,等同于 ls -l
    • unalias ll:删除 ll 别名
    • alias:显示所有别名
  • 输出文本

    • echo "Hello, World!":输出 Hello, World!
    • echo $PATH:输出 PATH 环境变量的值
    • echo -e "line1\nline2":输出多行文本
  • 显示或设置系统日期和时间

    • date:显示当前日期和时间
    • date +%Y-%m-%d:显示当前日期,格式为 YYYY-MM-DD
    • sudo date --set="2024-10-10 12:00:00":设置系统日期和时间为 2024-10-10 12:00:00
  • 查找文件

    • find /path/to/search -name "filename":在指定目录中查找名为 filename 的文件
    • find /path/to/search -type d:查找目录
    • find /path/to/search -type f:查找文件
    • find /path/to/search -mtime -7:查找过去7天内修改过的文件
    • find /path/to/search -size +100M:查找大于100MB的文件
  • 搜索文本

    • grep pattern file.txt:在 file.txt 中搜索 pattern
    • grep -i pattern file.txt:忽略大小写搜索
    • grep -r pattern /path/to/search:递归搜索目录
    • grep -v pattern file.txt:反向搜索,显示不包含 pattern 的行
    • grep -n pattern file.txt:显示行号
  • 排序

    • sort file.txt:按字母顺序排序
    • sort -r file.txt:按字母顺序逆序排序
    • sort -n file.txt:按数字排序
    • sort -k 2 file.txt:按第二列排序
  • 去重

    • uniq file.txt:去除连续重复的行
    • sort file.txt | uniq:去除所有重复的行
  • 提取字段

    • cut -d ',' -f 1,3 file.csv:以逗号为分隔符,提取第1列和第3列
    • cut -c 1-10 file.txt:提取前10个字符
  • 流编辑器

    • sed 's/old/new/' file.txt:替换文件中的 old 为 new
    • sed -i 's/old/new/' file.txt:直接修改文件内容
    • sed '1,5d' file.txt:删除前5行
    • sed '/pattern/d' file.txt:删除包含 pattern 的行
    • sed -n '1,5p' file.txt:打印第1行到第5行
  • 文本处理

    • awk '{print $1}' file.txt:打印每行的第一个字段
    • awk -F ',' '{print $1, $3}' file.csv:以逗号为分隔符,打印第1列和第3列
    • awk 'NR==1,NR==5' file.txt:打印第1行到第5行
    • awk '/pattern/ {print $0}' file.txt:打印包含 pattern 的行

Vi/Vim 命令

1. Vi/Vim 的三种主要模式

  1. 普通模式(Normal Mode):启动 vi/vim 后默认进入的模式,在此模式下可以使用键盘快捷键进行文件浏览和编辑操作。
  2. 插入模式(Insert Mode):在此模式下可以输入文本。可以通过在普通模式下按下 i 键(insert)、a 键(append)等进入。
  3. 命令行模式(Command-line Mode):在此模式下可以执行命令,如保存文件、退出编辑器等。通常通过在普通模式下按下 : 键进入。

2. 基本操作

普通模式下的命令

  • 移动光标

    • h:左移一格
    • j:下移一行
    • k:上移一行
    • l:右移一格
    • 0:移动到行首
    • $:移动到行尾
    • w:向前移动到下一个单词的开始
    • b:向后移动到上一个单词的开始
    • G:移动到文件的最后一行
    • gg:移动到文件的第一行
    • 10G:移动到文件的第10行
    • Ctrl + f:向下翻一页
    • Ctrl + b:向上翻一页
    • Ctrl + d:向下翻半页
    • Ctrl + u:向上翻半页
  • 编辑操作

    • dd:删除当前行
    • x:删除光标所在位置的字符
    • u:撤销上一步操作
    • Ctrl + r:重做上一步撤销的操作
    • p:在光标后粘贴文本
    • P:在光标前粘贴文本
    • y:复制(yank)光标所在位置的文本
    • yy:复制当前行
    • d$:删除从光标到行尾的文本
    • d0:删除从光标到行首的文本
    • D:删除从光标到行尾的文本
    • C:删除从光标到行尾的文本并进入插入模式
    • S:删除当前行并进入插入模式
    • J:合并当前行和下一行
  • 搜索和替换

    • /pattern:向前搜索 pattern
    • ?pattern:向后搜索 pattern
    • n:重复上次搜索
    • N:反向重复上次搜索
    • :s/old/new/:替换单个匹配项
    • :%s/old/new/g:替换所有匹配项
    • :%s/old/new/gc:替换所有匹配项,并提示确认
    • *:搜索光标所在单词
    • #:反向搜索光标所在单词
  • 文件操作

    • :w:保存文件
    • :q:退出编辑器
    • :wq 或 ZZ:保存并退出
    • :q!:不保存并强制退出
    • :e!:放弃更改并重新加载文件
    • :set nu:显示行号
    • :set nonu:隐藏行号
    • :set hlsearch:开启搜索高亮
    • :set nohlsearch:关闭搜索高亮
    • :set wrap:开启自动换行
    • :set nowrap:关闭自动换行
    • :set tabstop=4:设置制表位为4个空格
    • :set shiftwidth=4:设置缩进宽度为4个空格
    • :set expandtab:将制表符转换为空格
    • :set noexpandtab:不将制表符转换为空格

插入模式

  • 进入插入模式

    • i:在当前光标前插入文本
    • a:在当前光标后插入文本
    • I:在当前行首插入文本
    • A:在当前行尾插入文本
    • o:在当前行之下新建一行并进入插入模式
    • O:在当前行之上新建一行并进入插入模式
    • R:进入替换模式
    • Ctrl + t:增加一个缩进
    • Ctrl + d:减少一个缩进
    • Ctrl + y:向上复制一行
    • Ctrl + e:向下复制一行
  • 退出插入模式

    • Esc:从插入模式返回到普通模式

命令行模式

  • 文件操作

    • :w filename:将当前缓冲区内容写入指定文件
    • :r filename:读取文件内容到当前缓冲区
    • :w !sudo tee %:保存需要管理员权限的文件
    • :w !command:将当前缓冲区内容作为命令的标准输入
  • 窗口操作

    • :sp filename:水平分割窗口并打开文件
    • :vsp filename:垂直分割窗口并打开文件
    • Ctrl + w h:左移窗口
    • Ctrl + w j:下移窗口
    • Ctrl + w k:上移窗口
    • Ctrl + w l:右移窗口
    • :qall:关闭所有窗口
    • :only:只保留当前窗口
    • :tabnew filename:在新标签页中打开文件
    • gt:切换到下一个标签页
    • gT:切换到上一个标签页
  • 宏录制

    • qa:开始录制宏,存储在寄存器 a 中
    • q:停止录制宏
    • @a:执行寄存器 a 中的宏
    • @@:重复执行上次的宏
  • 多文件编辑

    • :e filename:打开另一个文件
    • :n:切换到下一个文件
    • :N:切换到上一个文件
    • :args:显示当前编辑的文件列表
    • :bufdo command:在所有缓冲区中执行命令
    • :tabdo command:在所有标签页中执行命令

3. 实用技巧

  • 可视选择模式

    • v:进入字符选择模式
    • V:进入行选择模式
    • Ctrl + v:进入列选择模式
    • y:复制选中的文本
    • d:删除选中的文本
    • ::在选中的行上执行命令
    • >:向右缩进选中的行
    • <:向左缩进选中的行
  • 多文件编辑

    • :args file1 file2:打开多个文件
    • :next:切换到下一个文件
    • :prev:切换到上一个文件
    • :first:切换到第一个文件
    • :last:切换到最后一个文件
  • 快速跳转

    • Ctrl + o:跳转到上一个位置
    • Ctrl + i:跳转到下一个位置
    • Ctrl + p:向上搜索历史命令
    • Ctrl + n:向下搜索历史命令
  • 自定义配置

    • 编辑 ~/.vimrc 文件来定制 Vim 行为
    • 常见配置:
      set nu                  " 显示行号
      set tabstop=4           " 设置制表位为4个空格
      set shiftwidth=4        " 设置缩进宽度为4个空格
      set expandtab           " 将制表符转换为空格
      set autoindent          " 自动缩进
      set smartindent         " 智能缩进
      set hlsearch            " 开启搜索高亮
      set incsearch           " 增量搜索
      set ignorecase          " 忽略大小写
      set smartcase           " 智能大小写

http://www.ppmy.cn/embedded/140590.html

相关文章

Linux 从 apt / yum 更新、升级中排除 / 保留 / 阻止特定软件包

注&#xff1a;本文为 “Linux 从 apt / yum 更新、升级中排除 / 保留 / 阻止特定软件包” 的两篇相关文章合辑。 从 Yum 更新中排除特定 / 某些包的三种方法 作者&#xff1a; Magesh Maruthamuthu 译者&#xff1a; LCTT geekpi 2019-09-07 14:58 作为系统更新的一部分&am…

Linux系统编程之进程基础知识

概述 在Linux系统中&#xff0c;进程是指一个正在运行的程序实例。每个进程都有一个唯一的进程标识符&#xff0c;即PID&#xff0c;操作系统通过这个PID来唯一识别和管理各个进程。进程不仅仅是程序代码的运行实例&#xff0c;它还包含了程序运行时所需的各种资源&#xff0c;…

【JavaEE初阶】枫叶经霜艳,梅花透雪香-计算机是如何运行的?

本篇博客给大家带来的是与计算机相关的知识点, 包括:计算机的组成, 指令, 进程(重点). 文章专栏: JavaEE初阶 若有问题 评论区见 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 . 1. 计算机的组成 1.1 计算机的发展史 计算…

基于SSM的校园订餐管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

【Qt流式布局改造支持任意位置插入和删除】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、源代码二、删除代码三、扩展总结 前言 最近在做一个需求需要流式布局&#xff0c;虽然官方example里有一个流式布局范例&#xff0c;但是不能满足我的需求…

蒙特卡洛方法(Monte Carlo,MC)

目录 1 序言 2 Monte Carlo法计算积分 3 最优化计算Monte Carlo法 1 序言 蒙特卡罗方法(Monte Carlo)是由冯诺依曼和乌拉姆等人发明的&#xff0c;“蒙特卡罗”这个名字是出自摩纳哥的蒙特卡罗赌场&#xff0c;这个方法是一类基于概率的方法的统称。是一种应用随机数来进行…

PMP–一、二、三模、冲刺–分类–5.范围管理–技巧–引导

文章目录 技巧一模5.范围管理--3.定义范围--工具与技术--引导--在研讨会和座谈会中使用引导技能来协调具有不同期望或不同专业知识的关键干系人&#xff0c;使他们就项目可交付成果以及项目和产品边界达成跨职能的共识。引导&#xff1a;题干关键词 “需求不同、需求差异、需求…

【jvm】new对象的过程

目录 1. 说明2. 类加载3. 对象创建4. 返回对象引用 1. 说明 1.在Java中&#xff0c;使用new关键字创建对象的过程是一个复杂而精细的过程&#xff0c;它涉及多个步骤&#xff0c;包括类加载、内存分配、初始化等。 2. 类加载 1.加载&#xff1a;Java虚拟机&#xff08;JVM&a…