欢迎光临
我们一直在努力

木下~Linux系统编程笔记之基础shell命令+Vim编辑器

第一部分 Linux 基础命令核心速查

1. 命令基础与帮助

  • 命令本质:对应系统可执行程序,通用格式:命令 [选项] [文件/路径]
  • 核心帮助查询:
    • man 命令:查看命令完整手册,按q退出
    • 命令 –help:查看命令简要用法
    • info 命令:查看命令详细信息文档
  • 终端通用快捷键:ctrl+l 清屏(等效clear命令)
  • 通用通配符:* 匹配任意字符,例*.c匹配所有.c 后缀文件

2. 目录与路径核心操作

命令核心用法功能说明
pwd 直接输入pwd 打印当前终端所在绝对路径
cd cd [路径] 切换到指定路径;无参数回到用户家目录
cd ~ 切换到当前用户家目录
cd .. 切换到上一级目录
cd / 切换到系统根目录
cd – 切换回上一次所在目录
ls ls [选项] [路径] 列出目录内容,无路径默认当前目录
ls -l 查看文件详细信息(类型、权限、大小、修改时间等)
ls -a 查看所有文件,包括隐藏文件(. 开头)
ls -i 查看文件 inode 索引号
ls -ila 组合参数,查看全量文件详细信息 + inode
mkdir mkdir 目录名 创建空目录,支持批量创建
mkdir -p 多级路径 递归创建不存在的多级目录
rmdir rmdir 空目录名 删除空目录,非空目录无法删除

3. 文件核心操作

命令核心用法功能说明
touch touch 文件名1 文件名2… 创建空白普通文件,支持批量创建
cat cat 文件名 查看文件全部内容,输出到终端
rm rm 文件名 删除普通文件,支持批量删除
rm -r 目录名 递归删除目录及目录内所有内容
mv mv 源文件 目标路径 移动文件到指定路径
mv 原文件名 新文件名 重命名文件 / 目录
cp cp 源文件 目标文件名 复制普通文件,目标文件存在则覆盖
cp -r 源目录 目标目录 递归复制目录及所有内容
echo echo 字符串 输出字符串到终端,默认自动换行
echo 字符串 > 文件名 覆盖写入字符串到文件,文件不存在则创建
echo 字符串 >> 文件名 追加写入字符串到文件末尾

4. 压缩与解压

格式压缩命令解压命令核心参数说明
tar 包 tar -cvf 压缩包名.tar 待压缩文件 tar -xvf 压缩包名.tar -c:压缩;-x:解压;-v:显示过程;-f:指定包名(必须放最后)
tar.gz tar -zcvf 压缩包名.tar.gz 待压缩文件 tar -zxvf 压缩包名.tar.gz -z:启用 gzip 压缩
zip zip 压缩包名.zip 待压缩文件 unzip 压缩包名.zip 直接压缩 / 解压 zip 格式

5. 用户与权限管理

用户操作
  • sudo passwd root:设置 root 用户密码
  • su [用户名]:切换用户,无参数默认切换到 root
  • sudo 命令:临时提升权限执行命令
  • useradd 用户名:创建新普通用户
  • userdel 用户名:删除用户
  • passwd 用户名:设置 / 修改用户密码
权限管理 chmod
  • 权限说明:r (读 = 4)、w (写 = 2)、x (执行 = 1),分三组:所有者 (u)、同组用户 (g)、其他用户 (o)
  • 数字法:chmod 777 文件名 (7=rwx,6=rw-,4=r–,0=—)
  • 符号法:chmod u+x 文件名 给所有者加执行权限;chmod o-w 文件名 给其他用户减写权限

6. 硬链接与软链接

特性硬链接软链接(符号链接)
本质 同一个 inode 的多个别名,等效原文件 独立文件,存放源文件路径,相当于快捷方式
创建命令 ln 源文件 链接名 ln -s 源文件 链接名
目录支持 不支持对目录创建 支持对目录创建
源文件删除 链接文件仍可正常使用,内容不变 链接文件失效,无法访问
inode 号 与源文件完全相同 有独立的 inode 号

7. GCC 编译器核心用法

  • 安装:sudo apt install gcc
  • 编译四阶段(了解原理):
  • 预处理:gcc xxx.c -E -o xxx.i 展开头文件、宏替换、删除注释
  • 编译:gcc xxx.i -S -o xxx.s 语法检查,生成汇编文件
  • 汇编:gcc xxx.s -c -o xxx.o 生成二进制目标文件
  • 链接:gcc xxx.o -o xxx 链接库 / 多文件,生成可执行文件
  • 日常编译高频用法
    • 单文件:gcc xxx.c -o xxx 编译生成名为 xxx 的可执行文件,无-o默认生成 a.out
    • 多文件:gcc *.c -o xxx -I 头文件路径 编译当前目录所有.c 文件,-I指定头文件目录
    • 库链接:-L 库路径 指定库文件目录,-l库名 指定链接的库名

8. 带参 main 函数

  • 函数原型:int main(int argc, char *argv[])
    • argc:参数个数,包含程序本身,至少为 1
    • argv:字符串指针数组,argv[0]是程序名,argv[1]~argv[argc-1]是传入的参数
  • 常用辅助函数:atoi(数字字符串) (头文件stdlib.h),将数字字符串转为 int 整数

第二部分 Vim 编辑器核心速查

1. Vim 启动方式

启动命令功能说明
vim 无文件名启动,保存时需指定文件名
vim filename 打开 / 创建 filename 文件,可读可写
vim -R filename 只读方式打开,可强制保存
vim -M filename 严格只读,不可修改
vim + filename 打开文件,光标定位到文件末尾
vim +num filename 打开文件,光标定位到第 num 行
vim +/string filename 打开文件,光标定位到第一个匹配 string 的位置

2. Vim 四大核心模式

模式进入方式核心功能
正常模式(默认) 任意模式按Esc返回 无法编辑,执行快捷键指令(光标移动、复制、删除等)
插入模式 正常模式按i/I/a/A/o/O/s/S 文本编辑、内容输入
命令模式 正常模式输入: 执行保存、退出、配置、查找替换等指令
可视模式 正常模式按v/V/Ctrl+v 选择文本,执行批量复制 / 删除 / 修改
插入模式高频入口
  • i:光标前插入;I:行首插入
  • a:光标后插入;A:行尾插入
  • o:下一行新建行插入;O:上一行新建行插入
  • s:删除光标字符后插入;S:删除整行后插入
可视模式子类型
  • v:普通字符选择,移动光标选中对应字符
  • V(Shift+v):行选择,以行为单位选中
  • Ctrl+v:块选择,矩形块选中,用于批量列操作

3. 核心操作快捷键(正常模式下)

3.1 光标移动
  • 基础移动:h(左)、j(下)、k(上)、l(右)
  • 单词跳转:w/W(下一个单词开头)、b/B(上一个单词开头)、e/E(当前单词末尾)
  • 行内跳转:0(行首)、^(行首非空白字符)、$(行尾)
  • 文件跳转:gg(文件开头)、G(文件末尾)、nG(跳转到第 n 行)
  • 屏幕跳转:H(屏幕顶部)、M(屏幕中间)、L(屏幕底部)
  • 翻页:Ctrl+f(前进一页)、Ctrl+b(后退一页)、Ctrl+d(前进半页)、Ctrl+u(后退半页)
  • 相同单词跳转:*(下一个相同单词)、#(上一个相同单词)
3.2 复制、粘贴、删除
  • 复制:yy(复制单行)、nyy(复制 n 行);可视模式选中后按y复制
  • 粘贴:p(光标下一行粘贴)、P(光标上一行粘贴)
  • 删除(剪切):
    • dd(删除单行)、ndd(删除 n 行);ggdG(删除全文)
    • cw(删除光标后一个单词,进入插入模式)
    • c$(删除光标到行尾)、c^(删除光标到行首)
    • cG(删除光标到文件末尾)、cgg(删除光标到文件开头)
    • 可视模式选中后按d/x删除
3.3 撤销与重做
  • u:撤销上一步操作
  • Ctrl+r:反撤销(重做)
3.4 查找与替换
  • 查找:正常模式输入/关键词,回车后按n跳转到下一个匹配项,N跳转到上一个
  • 替换(命令模式下):
    命令功能说明
    :s/old/new 替换当前行第一个 old 为 new
    :s/old/new/g 替换当前行所有 old 为 new
    :%s/old/new/g 替换全文所有 old 为 new
    :%s/^/xxx/g 全文每一行行首插入 xxx
    :%s/$/xxx/g 全文每一行行尾插入 xxx

4. 高频批量操作

4.1 多行注释(// 为例)
  • 光标定位到起始行行首,按Ctrl+v进入块选择模式
  • 移动光标选中所有需要注释的行的行首
  • 按Shift+i(I)进入行首插入,输入//
  • 按两次Esc,完成所有选中行的注释添加
  • 4.2 取消多行注释
  • 光标定位到起始行行首,按Ctrl+v进入块选择模式
  • 移动光标选中所有行的//符号
  • 按d/x删除,完成取消注释
  • 4.3 其他高频批量操作
    • 全文格式化:正常模式输入gg=G,自动格式化全文代码缩进
    • 全文选中:正常模式输入ggVG,选中全文内容

    5. 命令模式核心指令

    指令功能说明
    :w 保存当前文件
    :w 新文件名 另存为新文件
    :q 退出(已保存修改)
    :q! 强制退出,不保存修改
    :wq / 😡 保存并退出
    :wq! 强制保存并退出
    :e 文件名 关闭当前文件,打开新文件
    :e! 重新加载当前文件,丢弃所有修改
    :set paste 进入粘贴模式,避免外部粘贴代码排版错乱
    :set nopaste 退出粘贴模式
    :set nu / set number 显示行号
    :set nonu / set nonumber 隐藏行号
    :colors 配色名 临时切换 vim 配色方案

    6. Vim 永久配置(.vimrc)

    • 配置文件路径:~/.vimrc,修改后重启 vim 永久生效
    • 核心常用配置模板:

    " 字符编码设置,解决中文乱码
    set fileencoding=utf-8
    set fileencodings=utf-8,gb2312,gb18030,latin1
    set termencoding=utf-8
    set encoding=utf-8

    " 基础显示设置
    syntax on " 开启语法高亮
    set number " 显示行号
    set cursorline " 高亮当前行
    filetype on " 检测文件类型
    filetype plugin on " 加载对应文件类型插件

    " 缩进与tab设置
    set tabstop=4 " tab宽度4个空格
    set softtabstop=4
    set shiftwidth=4
    set autoindent " 自动缩进
    set smartindent " 智能缩进
    set cindent
    set expandtab " tab自动转为空格

    " 符号自动补全
    inoremap { {<CR>}<ESC>i
    inoremap [ []<ESC>i
    inoremap ( ()<ESC>i
    inoremap ' ''<ESC>i
    inoremap " ""<ESC>i

    " 快捷键映射
    inoremap jj <Esc> " 插入模式jj快速回到正常模式
    set pastetoggle=<F10> " F10切换粘贴模式

    " 配色方案
    color peachpuff

    " 兼容与基础优化
    set nocompatible
    set backspace=indent,eol,start

    配色方案:系统自带配色存放路径/usr/share/vim/vimxx/colors/,修改配置文件中color 配色名即可切换

    7. 避坑提示

    • 正常模式下Ctrl+s会锁定 vim,按Ctrl+q解锁
    • 外部粘贴代码建议先开启:set paste,避免缩进错乱
    • 所有模式下按Esc均可回到正常模式,是解决操作异常的核心快捷键
    赞(0)
    未经允许不得转载:171主机测评 » 木下~Linux系统编程笔记之基础shell命令+Vim编辑器
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址