Ubuntu及Vim编辑器的使用方法和基础指令

    • 认识工具

      • Vmware (虚拟机)

      • Ubuntu (本质上是一个操作系统 具备可视化页面的操作系统)

        • 操作系统

          • 管理软件

        • 内核

          • windows

          • Unix

          • Linux

            • 免费

            • 开源

            • 稳定

            • 可以与硬件结合

      • 认识Ubuntu

        • 打开Ubuntu

          • 1.打开虚拟机 (通过路径打开Ubuntu 20.04进入操作系统)

            • 点击开启此虚拟机

          • 2.文件打开找到指定的Ubuntu存放路径打开即可

            • 如果纯在.lck文件,删除即可,lck代表锁住,即不打开操作系统 (默认密码为1)

          • 3.终端

            • 打开终端->点击右边终端 (黑色终端与红色终端的快捷键不同)

              • ctr+alt+t

                • 打开一个新的终端终结者(黑色)

              • ctr+shift+t

                • 已打开终端的情况下在当前终端在右侧打开一个新的窗口

              • ctr+shift+e (只能在终结终端使用)

                • 已打开终端的情况下在右侧打开一个新的终端

              • ctr+shift+o

                • 已打开终端的情况下在下方打开一个新的终端

            • 关闭终端

              • 点击x

              • 写指令exit

                • 退出终端/退出用户/按级退出

              • ctr+d

            • 快捷键

              • 放大终端

                • ctr++

              • 缩小终端

                • ctr+-

              • 复制

                • ctr+shift+c

              • 粘贴

                • ctr+shift+v

    • Vim编辑器

      • 写程序,类似于TXT,notepad++

      • vim使用方法

        • vim file

          • 创建一个文件——>file并打开

            • 需要手动保存创建文件不识别后缀名

        • vim -o file1 file2 ...

          • 上下创建多个.c文件——>file并打开

        • vim -O file1 file2 ...

          • 左右打开多个窗口

      • 模式(默认命令行模式)

        • 插入模式

          • 写程序

            • share 剪切 after 后面 insert 插入

        • 命令行模式

          • 复制,粘贴,剪切,撤回,反撤回...

            • 复制y

              • yy

                • 复制光标所在行

              • nyy

                • 复制第n行的内容

              • 选中y

                • 复制选中的内容

            • 粘贴p

              • 粘贴到光标所在下一行

            • 剪切d

              • dd

                • 剪切光标所在行

              • ndd

                • 剪切 第n行 的内容

              • 选中d

                • 剪切选中的内容

            • 撤回

              • u

            • 反撤回

              • ctr + r

            • 跳转

              • gg

                • 光标跳转到首行

                  • dgg:剪切本行及以上内容

              • G

                • 光标跳转到尾行

                  • dG:剪切本行及以下内容

              • ngg / nG

                • 把光标跳转到第n行的首行

            • 对齐

              • =

                • 选中代码和上一行对齐

                • gg=G

                  • 全文对齐

        • 底行模式

          • 保存,查找,退出,替换等

            • w

              • 保存

            • q

              • 退出

                • q!

                  • 强制退出

            • wq

              • 保存退出

                • w!

                  • 强制保存

            • wqa

              • 全部保存并退出

                • 快捷键:ctr + z

            • /字符串

              • 查找字符串并高亮显示

            • noh(no high light search)

              • 取消高亮显示

            • m,ny

              • 复制m到n行

            • m,nd

              • 剪切m到n行

            • 替换

              • s

                • m,ns/字符串1/字符串2/g

                  • 把第m-n行的字符串1全部替换为字符串2

                • %s/字符串1/字符串2 (%——>全选的意思)

                  • 替换全文字符串1为字符串2(只替换每一行第一个)

                  • %s/字符串1/字符串2 /g

                    • 替换全文字符串1为字符串2

    • 第一个程序

      • 创建源文件

        • vim ***.c

      • 自动补全主函数

        • 进入插入模式(a)

          • main + Tab

      • 自动补全头文件

        • Inc + Tab

      • 自动补全注释

        • Funh + Tab

      • 预处理

        • #

          • 表示预处理命令

        • <>

          • 默认在库文件中查找头文件

            • /user/include

        • “”

          • 默认在当前目录中查找,如果不存在,则在库文件中查找

      • 注释

        • 行注释

          • //

        • 多行注释

          • /* */

        • 宏注释

          • #if 0 #end if

            • if后面的数字代表判断符号,为0则注释,为1则运行

      • 主函数 (main)

        • int main(int argc, const char *argv[]) { return 0; }

          • int 函数返回值

          • main

            • 函数名

          • () 函数的标志

          • argc:终端输入字符个数

            • 外部传参的个数

              • 命令行参数个数

          • argv:存储终端输入的字符串

    • GCC编译器

      • GUN发布的应用于C和C++的编译器

      • 直接执行源文件

        • gcc ***.c

          • 默认生成一个a.out可执行文件

        • ./a.out

          • 执行当前目录下的a.out(二进制文件)文件

      • 修改可执行文件名

        • gcc ***.c -o 可执行文件名

          • 将a.out 改为 可执行文件名

      • gcc的分步编译 (ESC .iso)

        • 预处理>编译>汇编>链接>运行

          • 预处理

            • 展开头文件,替换宏,删除注释

              • gcc -E ***.c -o ***.i

          • 编译

            • 检查语法正确性,生成汇编文件

              • gcc -S ***.i -o ***.s

          • 汇编

            • 把汇编文件转换为二进制文件

              • gcc -c ***.s -o ***.o

          • 链接

            • 把二进制文件转换为可执行文件

              • gcc ***.o -o 可执行文件

          • 运行

            • ./可执行文件

    • 认识终端指令

      • Ubuntu@ubuntu:~$ 用户名/分隔符/主机名/分隔符/当前路径(家目录)

        • $ 普通用户

        • # 管理员

      • 切换用户指令

        • su

          • 例如su root(进入root用户)

            • root密码随机值 (需使用管理员权限sudo )

              • sudo su root

                • 输入ububtu 密码

                  • exit 退出root用户

          • su ubuntu

            • 进入一个新的ubuntu

      • 修改密码 (password密码的意思)

        • sudo passwd root(用户名)

      • 清屏

        • clear

          • 删除全部

        • ctr + l

          • 只有置顶,并未删除

      • 自动补齐

        • Tab

          • 使用方法:打出文件/文件夹前三个字母然后点击Tab键

      • 路径

        • 根目录 (/)

          • bin

            • 存储二进制文件,即可执行文件(Linux的常用命令。)

          • ROOT(根源)

            • 根用户(超级用户)的主目录

          • boot(启动)

            • 启动文件

              • 包含可引导的Linux内核和引导装载(boot loader)配置文件(GRUB)。

          • dev(device)

            • 设备文件

              • 用于与硬件设备进行交互

          • tmp(临时的:temporary)

            • 存放临时文件,该目录会被系统自动清理干净。

          • etc(其他)

            • 配置文件

              • 配置该目录存放系统管理时要用到的各种配置文件和子目录,例如网络配置文件、文件系统、X系统配置文件、设备配置信息、设置用户信息等。

          • lib/lib32/lib64/libx32

            • 链接的库文件,共享库文件

          • media

            • 自动挂载(外设自动识别的前提)

              • Ubuntu系统自动挂载CD-ROM,软驱,USB存储器后存放临时读取的文件

          • mnt

            • 手动挂载

              • 通常用于作为被挂载的文件系统的挂载点(共享文件)

          • opt

            • 用于安装第三方软件的目录

          • var

            • 存放经常变化的文件,例如日志和缓存

          • HOME (用户主目录的默认位置)

            • UBUNTU

              • picture文件

                • 图片

                  • 相对路径 (ubuntu)

                    • 登录计算机后,默认的路径 (~/Picture/图片)

                  • 绝对路径 (从根目录开始计算的路径)

                    • /home/ubuntu/Picture/图片

          • USER

            • 存放头文件

          • ...

      • shell

        • 格式

          • 指令 选项 参数

          • 指令 参数 选项

      • man

        • 查看手册

          • man man

          • 格式:man 章节 类型

      • ls

        • list directory contents(列出目录下的内容)

          • ls

            • 查看当前目录下的内容

          • ls 目录

            • 查看指定目录下包含的内容

              • 白色 文件

              • 蓝色 文件夹

              • 红色 压缩包

              • 绿色 安装包

          • ls -a(all)

            • 查看当前目录下所有的内容(包含隐藏文件)

          • ls -l(long)

            • 查看当前目录下的内容使用长列表格进行显示

              • -h

                • 单位为K M G等

          • -rw-rw-r-- 1 ubuntu ubuntu 131 Feb 22 22:20 1.c

      • 文件权限修改chmod (change file mode bits)

        • 功能:修改权限

          • 文件类型:bcd-lsp(背下)

            • b(block equipment):块设备文件

            • c(character equipment):字符设备文件

            • d(directory):目录

            • -:普通文件

            • l(link):软链接文件

            • s(socket):套接字文件

            • p(pipe):有名管道文件

          • R: read

          • W: write

          • X: 可执行

          • -: 不具备权限

          • 顺序只能是rwx

        • 字母表示法: +-=

          • 方法: chmod u-w 文件名(删除用户的可写权限) chmod o+w 文件名(添加其他用户的可写权限) chmod g=x 文件名(把用户所属组权限修改为只具备不可写可执行权限)

        • 八进制表示法(常用)

          • -/r--/--x/rw- r;4 w:2 x:1 -:0

            • chmod 664 文件名

              • -rw-rw-r--

            • chmod 5 文件名 = chmod 005 文件名

      • cd

        • 回到家目录

          • cd

        • 进入目录

          • cd dir

            • 进入dir目录里

        • 进入当前目录

          • cd .

        • 返回上一级目录

          • cd ..

        • 返回上一次打开的目录(并在终端打印绝对路径)

          • cd -

      • /*

        • 我们看到命令中以* 来指代目录下的所有文件。但是严格来说,* 这个通配符代表以点 “.” 开头的所有文件。以 “.” 开头的文件默认属于 Linux 下的隐藏文件。

      • 创建文件 (不识别后缀名)

        • touch

          • touch 文件名

            • 在当前目录下创建文件如果存在同名文件则时间戳修改

          • touch 文件名 文件名

            • 在当前目录下创建多个文件

          • touch Picture/file1

            • 在Picture目录下创建file1

      • 创建目录

        • mkdir

          • mkdir 目录1 目录2

            • 在当前目录下创建一个或多个目录(DOS命令)

          • -p

            • mkdir 目录1/目录2 -p

              • 在目录1下创建目录2,目录1若不存在,则创建目录1

          • mkdir 目录1/目录2

            • 在目录1下创建目录2,目录1必须存在,否则报错

      • 删除空目录

        • rmdir

          • rmdir 目录1 目录2 、、、

          • rmdir 目录1/目录2

            • 只删除目录2

          • rmdir 目录1/目录2 -p

            • 删除目录1 目录2

      • 删除 目录/文件

        • rm

          • rm 文件1 文件2 ...

            • 删除一个或多个文件

          • -r : 递归recursive,对目录及其下的内容进行递归操作

            • rm 目录1/目录2/目录3 -r

              • 删除目录3

            • rm 目录1 目录2 ... -r

              • 递归删除目录以及目录的内容

          • -f : 强制force,无需确认操作

            • rm home/* -rf

              • 删除家目录下的所有文件,仅留下家目录

          • -i : 选项用于在每一个删除动作前做个提示,需要用户明确给予确认才会删除。

          • --preserve-root : 保护根目录,这是默认行为。

          • --no-preserve-root : 不保护根目录。

      • tree

        • 安装tree

          • sudo apt install tree

          • 打开Picture文件的树状图

      • 输出字符串

        • echo (相当于“printf”)

          • echo 字符串

            • echo -n 字符串

              • 取消换行输出

          • echo ‘字符串’

          • echo “字符串”

          • echo -e

            • 转义字符字符串

              • echo -e ‘\thello world’

                • \t需要单引号或双引号引起来才能起转义字符的效果

      • 打印文件内容 (打开文件)

        • cat 文件名

        • cat -n 文件名

          • 在终端打印文件内容并且显示行号

      • 单向重定向

        • > (覆盖)

          • echo hello world > file

            • 如果文件file不存在,创建文件,把字符串写入到文件中 如果文件存在,修改时间戳,并将字符串替换原文件中的内容

          • cat file1 > file2

            • 打印file1 的内容 到file2

              • 若file2不存在,创建file2 ,把file1 的内容写入到file2 若file2存在,修改时间戳,把file1的内容替换到file2中

        • >> (追加)

          • echo 字符串 >> file

            • 如果file文件不存在,创建文件,把字符串追加到file文件中 如果file文件存在,修改时间戳,把字符串追加到file文件中

          • cat file1 >> file2

            • file1必须存在

              • 如果file2文件不存在,创建文件,把file1文件内容追加到file2文件中 如果file2文件存在,修改时间戳,把file1文件内容追加到file2文件内容后面

      • 拷贝文件/目录

        • cp

          • 文件拷贝文件

            • cp f1 f2

              • 把f1 拷贝一份命名为 f2 (f1 文件 必须存在)

                • 如果f2文件不存在,把f1文件拷贝一份命名为f2文件 如果f2文件存在,把f1文件拷贝一份命名为f2文件,覆盖f2文件内容

          • 文件拷贝目录

            • 文件和目录都必须存在

              • cp f1 dir

                • 把文件f1 放入dir目录中

          • 目录拷贝目录 (需要加选项 -r)

            • dir 必须存在

              • cp dir dir1 -r (-r 递归)

                • 如果dir1 不存在 把dir拷贝一份命名为dir1 如果dir1存在,则把dir拷贝一份存到dir1目录里面

      • 剪切(删除,复制,粘贴) 多用于重命名

        • mv

          • 文件剪切文件

            • mv f1 f2

              • 把f1 剪切命名为 f2,相当于重命名 (f1 文件 必须存在)

                • 如果f2文件不存在,把f1文件剪切一份命名为f2文件 如果f2文件存在,把f1文件剪切一份命名为f2文件,替换f2文件内容

          • 文件剪切目录

            • mv f1 dir

              • 把文件f1 放入dir目录中 (文件和目录都需存在)

                • 如果dir不存在f1同名文件,把f1文件剪切一份到f2文件下面 如果f2文件存在,把f1文件剪切一份命名为f2文件,覆盖f2文件内容

          • 目录剪切目录

            • mv dir dir1

              • dir必须存在

                • 如果dir1 不存在 把dir剪切一份重命名为dir1 如果dir1存在,则把dir剪切一份存到dir1目录里面

      • pwd

        • 显示绝对路径

      • 用户

        • 修改用户名

          • usermod

            • usermod -l 新的用户名 当前用户名

              • 但是不修改对应的家目录

        • 查看当前用户

          • whoami

        • 增加用户

          • sudo adduser 用户名

            • 新增一个用户

        • 删除用户

          • userdel 用户名

            • 其只能删除用户的账户信息,不会删除用户的系统中的文件及数据

      • Ubuntu的共享操作路径

        • /mnt/hgfs/51C_share

            • 将文件vim 复制到 C51_share中去

      • 窗口放大快捷键

        • window + ⬆

      • vim etc/sudoers

        • 添加权限

你可能感兴趣的:(vim)