@[Linux 命令和 Vim 操作toc]
Linux 命令和 Vim 操作
1. Linux 命令
1.1 Linux 介绍
主要内容
- Linux 命令
- Linux 文件系统,目录结构
Linux,一般指GNU/Linux(单独的Linux内核并不可直接使用,一般搭配GNU套件,故得此称呼),是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds)于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它支持32位和64位硬件,能运行主要的Unix工具软件、应用程序和网络协议。
Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。
2022年11月20日,Linux 提交了最后一批 drm-intel-next 功能补丁,Linux 6.2将迎来对英特尔锐炫独显的正式支持。
1.2 Linux 命令
1.2.1 终端(terminal)打开
计算机搜索打开
任意文件夹右键打开
快捷方式打开 Ctrl + Alt + T
补充功能,在启动器锁定终端,相当于在桌面创建对应的快捷方式
1.2.2 Linux 目录结构概述
Linux 没有分盘分区形式,采用的目录结构是从一个【根目录】开始,所有的路径都是基于文件夹完成的。
根目录,在 Linux 系统中是一个 /,是整个 Linux 系统的开始,根目录下有对应的系统文件夹,安装软件的文件夹,【注意重点】不要在根目录操作任何内容,有可能会导致整个 Linux 系统崩溃。
家目录/用户目录,完整的路径 /home/username,用户注册之后系统分配的用户目录,可以在用户目录中配置当前用户的基本信息,操作用户的文件内容,安装软件,配置运行环境。
家目录在 Linux 系统中,标记符号为 ~,终端非指定文件夹打开,默认【工作路径】是当前用户的家目录,在 Linux 终端中命令行前缀提示 username@pcName:~$
1.2.3 ls 查看命令
命令案例
hk@hk:~$ ls # 查看当前【工作目录 Work Directory】下,非隐藏文件和文件夹名称。 hk@hk:~$ ls -a # 查看当前工作目录,所有文件和文件夹名称,包括隐藏文件或者文件夹 hk@hk:~$ ls -al # 已详情列表模式,查看当前工作目录,所有文件和文件夹详情,包括隐藏文件或者文件夹,【详情包括】,类型,权限,拥有者,限制组,文件大小,文件名称,最后修改时间
tips:
- 工作目录 Work Directory 是当前终端打开对应的文件夹,就是工作目录
- Linux 中,隐藏文件或者文件夹名称,都是已 . 开头
命令行文件详情内容分析
1.2.4 cd 切换工作目录
cd ==> change directory,需要提供路径。【注意】工作目录切换只能操作文件夹
- 绝对路径
- 河南省郑州市高新区莲花街55号威科姆 D 座千锋教育
- 在 Linux 中是以 / 根目录开头的路径,例如 : /home/hk,绝对路径在系统中具备唯一性
- 相对路径
- 实验室在 4 教室,我在门口办公室
- 在 Linux 中是以当前工作路径去往其他路径的【捷径】,需要非常清楚路径关系
hk@hk:~/桌面/111/c$ cd ../b # 去往当前工作目录的上级目录中的 b 文件夹 hk@hk:~/桌面/111/b$ cd ../a # 去往当前工作目录的上级目录中的 a 文件夹 hk@hk:~/桌面/111/a$ cd .. # 去往当前工作目录的上级目录 hk@hk:~/桌面/111$ cd c # 当前工作目录,直接切换到 c 文件夹 hk@hk:~/桌面/111/c$ cd /home/hk # 利用绝对路径去往目标文件夹 hk@hk:~$
【重点补充】可以用于相对路径操作
- Linux 终端中的 . 表示当前工作目录
- Linux 终端中的 … 表示当前工作目录上级目录
1.2.5 mkdir 创建文件夹
在工作目录下创建对应的文件夹,可以同时创建多个文件夹内容
hk@hk:~$ mkdir 文件夹名称 # 可以创建指定名称的文件夹 hk@hk:~$ mkdir 文件夹名称1 文件夹名称2 文件夹名称3 # 可以同时创建多个文件夹
1.2.6 touch 创建普通文件
在命令行中,创建普通文件
【要求】创建的文件,必须有名称的文件后缀名,如果没有后缀名,需要知晓对应对应的文件功能。
hk@hk~$ touch 1.c # 创建一个 1.c 文件 hk@hk:~$ touch 1.c 2.c 3.c # 同时创建多个文件
常用的文件后缀名有以下内容
.c .cpp .h .hpp .txt .md .doc .ppt .xlsx
1.2.7 cp 复制操作
可以复制文件和文件夹到指定目录,同时也可以修改对应文件的名称。
hk@hk:~$ cp 1.txt 2.txt # 将 1.txt 复制一份,名称为 2.txt hk@hk:~$ cp 1.txt ./aaa # 将 1.txt 复制到 当前工作目录下的 aaa 文件中,文件名为 1.txt hk@hk:~$ cp -r aaa ccc # 复制 aaa 文件夹到当前工作目录,对应的文件夹名称为 ccc #【注意】如果是文件夹操作需要 -r 命令行参数内容
1.2.8 mv 剪切粘贴命令
可以剪切目标文件或者文件夹,移动到目标路径中,也可以作为文件或者文件夹重命名操作。
hk@hk:~$ mv 1.txt hello.txt # 重命名当前 1.txt 文件,改为 hello.txt hk@hk:~$ mv 1.txt abc # abc 是一个文件夹,将 1.txt 文件移动到 abc 中 hk@hk:~$ mv a b # a 和 b 都是已存在的文件夹,将 a 文件移动到 b 文件夹中 hk@hk~$ mv aaa ggg # aaa 是已存在文件夹,将 aaa 文件夹重命名为 ggg
1.2.9 rm 删除操作【慎用】
可以用于删除文件或者文件夹,删除操作并不是放入到回收站/垃圾桶,是直接在磁盘抹掉数据。删除操作不可逆,无法撤销。
hk@hk:~$ rm 1.c # 直接删除 1.c 文件,不是放入回收站。 hk@hk:~$ rm dir1 # 直接删除文件夹,无法删除 # Linux 提示 rm: 无法删除'dir1': 是一个目录 hk@hk:~$ rm -rf dir1 # 删除文件夹,需要加入 -rf 命令行参数,可以删除文件夹 hk@hk:~$ rm 1.c 2.c 3.c # 批量删除目标文件 hk@hk:~$ rm *.c # * 是一个通配符,当前表示删除所有的 .c 后缀名对应的文件 hk@hk:~$ rm 1.* # * 是一个通配符,删除文件名为 1,文件类型不限制 hk@hk:~$ rm *.* # * 是一个通配符,删除任意名称,任意文件类型普通文件 hk@hk:~$ rm -rf * # * 是一个通配符,删除所有的文件和文件夹
1.2.10 sudo 和 chmod 【重点】
sudo 是开启【超级管理员权限】,可以用于必要的修改文件权限,删除收保护文件,修改系统配置
chmod 修改文件或者文件夹的权限【RWX】
权限 | 权限解释 | 对应数值 |
---|---|---|
r | 可读 | 4 |
w | 可写 | 2 |
x | 可执行 | 1 |
例如: -rwxrwxr-x ==> 可以认为是 775 权限
- 拥有者 rwx 可读可写可执行,对应的权限数值 4 + 2 + 1 ==> 7
- 同组人 rwx 可读可写可执行,对应的权限数值 4 + 2 + 1 ==> 7
- 访客 r-x 可读不可写可执行,对应的权限数值 4 + 1 ==> 5
# 修改之前 drwxrwxr-x aaa 文件夹 hk@hk:~$ sudo chmod 555 aaa # 修改 aaa 文件夹为 555 权限,sudo 如果第一次在终端使用,需要输入密码,后续终端不关闭的情况下,无需二次输入 # 修改结果 dr-xr-xr-x aaa 文件夹 当前文件夹不具备写入数据权限,无法正常的创建文件或者文件夹 hk@hk:~/aaa$ sudo touch 1.c # aaa 文件没有写入权限,可以利用 sudo 强行授权创建
1.2.11 cat tac 和 nl 查看相关命令
cat 文本内容按照顺序展示
tac 文本内容按照倒序展示
nl 顺序展示文本内容,同时加入行号
1.2.12 其他补充命令
clear 清理当前终端屏幕内容,也可以使用 Ctrl + L 快捷键
ifconfig 查询当前计算机的网络情况,可以看到 ip 地址
方向键上下,可以回顾之前的命令内容
2. Vim Linux 编辑器之神
2.1 Vim 概述
Linux 常用编辑器,支持各种拓宽和插件,需要学习必要的指令
2.2 Vim 三种模式
插入模式,编辑模式和命令模式
2.3 编辑模式常用内容
支持文本快捷键操作,还有编辑指令,可以完成复制,粘贴,拷贝,删除,跳转等一系列功能
tips: 如果 dd or d[n]d 不使用 p 粘贴,可以当做是删除操作
hk@hk:~$ vim 1.cpp # vim 打开一个 1.cpp 文件
编辑模式指令 | 功能 |
---|---|
yy | 复制光标所在行 |
y[n]y | n 表示数字,对应多少行内容被复制 |
p | 在光标所在位置下一行开始,粘贴内容 |
u | 可以撤销操作,类似于 Ctrl + Z |
dd | 剪切光标所在行 |
d[n]d | n 表示数字,剪切光标所在行开始,之后多少行 |
[n]gg | n表示数字,可以直接跳转到目标第几行 |
hjkl | h光标左移,j光标向下,k光标向上,l光标右移 |
i | 在光标所在位置,直接开启插入模式 |
o | 在光标所在位置,另起一行开始插入模式 |
shift + : | 进入命令模式 |
2.4 命令模式常用内容
可以用于关闭,保存,强制退出
命令 | 功能描述 |
---|---|
w | 保存当前文件 |
q | 退出 |
! | 如果文件已修改,退出会提示未保存,可以使用 q! 强制退出 |
a | vim 可以同时打开多个文件,a 命令可以操作当前打开的所有文件 |
vsplit | 水平方向打开多个文件 |
用组合
- wa 保存 Vim 打开的所有文件内容
- wq 保存退出当前 Vim 打开的文件
- wqa 报错退出 Vim 所有文件内容
- q! 退出当前文件且不保存文件
- qa! 退出 Vim 打开的所有文件,且不保存
2.5 编辑模式
正常写代码操作
如果出现使用 Ctrl + S , Ctrl + V , Ctrl + C 操作文件,需要使用 Ctrl + Q 退出