Linux 概述,Linux 命令
1. Linux 概述
目前我们较为熟悉的操作系统有:
Windows Android IOS 鸿蒙
实际上 Linux 操作系统在生活中极为常见!!!
医疗设备,车辆控制设备,工业制造设备等,嵌入式设备操作系统首选都是 Linux 系统。
2. Linux 命令
2.1 Linux 终端/控制台打开
Linux 鼠标右键 --> 打开终端【推荐】
通过 Ubuntu 搜索功能,输入 ter 打开终端
在目标文件中鼠标右键 --> 在终端中打开【推荐】
2.2 Linux 目录结构
Linux 整体的目录结构和 Windows 不同, Windows 采用不同的盘符方式来区分不同的磁盘,但是 Linux 中没有分区/分盘的概念
Linux 中是采用【根目录】为最大文件夹方式管理整个系统中的所有文件/文件夹,任何一个文件或者文件夹【绝对路径】都是从【根目录】开始。
Linux 根目录 根目录在系统中的标识为 / ,根目录下是系统的资源文件,系统文件,系统配置文件,安装的软件目录…… 【注意重点】不要在根目录操作任何内容,有可能会导致整个Linux系统崩溃。
Linux 用户家目录/用户目录 用户家目录/用户目录在系统中的标识为 ~ ,每一个用户对应一个家目录/用户目录,家目录中包含用户的相关数据,相关操作,相关配置,较为自由,可以任意操作,对其他用户以及操作系统没有任何影响。 终端非指定文件夹打开时,默认【工作路径】是当前用户的家目录,在Linux终端中命令行前缀提示为: username@pcName:~$(自己取得用户名例如:theo@theo:~$) 有两种途径可以找到家目录 1、直接点击 Home ,就可以进入家目录文件 2、点击计算机(根目录)-> home -> theo(自己取的用户名)即可进入家目录页面
2.3 ls 查看命令
查看当前【工作目录】中文件或者文件夹情况
【工作目录】就是终端打开对应的文件是哪一个目录,当前目录就是工作目录。
1、命令案例 : theo@theo:~$ ls # 查看当前工作目录下的非隐藏文件或者文件夹,有一定颜色区分,告知是普通文件或者文件夹 theo@theo:~/111$ ls -a # 查看当前工作目录的所有文件或者文件夹,包括隐藏文件 or 文件夹,Linux 中隐藏文件 or 文件夹前缀是 . theo@theo:~/111$ ls -al # 查看当前工作目录的所有文件或者文件夹,包括隐藏文件 or 文件夹 -l 命令参数是展示文件或者文件夹的详情。
tips(技巧):
工作目录 Work Directory :是当前终端打开对应的文件夹。
Linux中,隐藏文件或者文件夹名称都是以 . 开头。
2、命令行文件详情内容分析 详情包括:类型、权限、文件个数、拥有者、限制组、文件大小、最后修改时间和文件名称。
2.4 cd 切换路径
cd ( change directory ) 作用:切换工作目录,在 cd 后需要加上目标工作目录的路径。
【注意】工作目录切换只能操作文件夹
theo@theo:~$ cd 111 # 切换当前工作目录到 111,111 在家目录中,可以直接使用对应的文件夹名称进行路径切换 theo@theo:~/111$ # 切换之后的控制台/终端前缀提示,路径提示告知当前工作目录是家目录中的 111 目录
绝对路径
是以 Linux 系统根目录 / 开头的路径,任何一个文件或则文件夹都有一个唯一的绝对路径。
操作使用的路径是 /home/theo/111
绝对路径在任意工作目录中,都可以直接达到对应文件夹位置。
相对路径
在 Linux 中是以当前工作路径去往其他路径的捷径,需要非常清楚路径关系。
路径标识符 . 【当前工作路径】和 ..【当前工作路径的上级目录】
例如:当前工作路径为 /home/theo/111,期望到/home /theo/theo/222文件夹
theo@theo:~/111$ cd ../222 theo@theo:~/222$ theo@theo:~$ cd .. # 切换到上级目录 theo@theo:/home$ cd ~ # 路径提示已经到达原本的上级目录,cd ~ 表示切换到家目录 theo@theo:~$ cd . # 路径提示已经到达切换到家目录,cd . 表示切换到当前目录 theo@theo:~$ # 路径提示没有变化
2.5 mkdir 创建文件夹【常用】
make directory 创建文件夹操作,可以在终端中指定目录中创建对应的文件夹
可以创建文件夹的路径/目录,必须有写入权限!
theo@theo:~$ mkdir a # 家目录中创建一个 a 文件夹 theo@theo:~$ cd a # 切换工作路径到 a 文件夹中 theo@theo:~/a$ mkdir 1 2 3 4 5 # 批量创建文件夹,文件夹名称之间使用空格隔开 theo@theo:~/a$ mkdir 1/a # 在 a 文件夹工作目录下,创建 1 文件夹中的 a 文件夹
2.6 touch 创建文件
touch 在命令行中,创建普通文件
【注意】创建的文件必须有后缀名,如果没有后缀名需要知晓对应的文件功能。
theo@theo:~/a$ touch 2.txt # 在当前工作目录下创建 2.txt 文件 theo@theo:~/a$ touch 1.c 2.c 3.c 3.txt # 在当前工作目录下同时创建多个文件,不同的文件使用空格隔开 theo@theo:~/a$ touch .qf # 在当前工作目录下创建 .qf 隐藏文件 theo@theo:~/a$ touch LOCK # 在当前工作目录下创建 LOCK 文件,没有明确类型名称,可以作为标记文件,用于后续的程序运行判断,运行条件
常用的文件后缀名有以下内容
.c .cpp .h .hpp .txt .md .doc .ppt .xlsx
2.7 cp 复制
cp copy 命令,可以复制文件,或者文件夹
theo@theo:~/a/1$ cp 1.c 2.c # 1.c 复制一份到 2.c theo@theo:~/a/1$ cp -r a b # 将 a 文件夹完整复制一份给 b 文件夹 #【注意】如果是文件操作,需要加入 -r 命令行参数
2.8 mv 移动
mv move 移动,可以移动文件,文件夹,或者重命名相关内容
theo@theo:~/a/1$ mv a c # a 是一个文件夹,c 是一个不存在的文件,当前操作是将 a 文件夹重命名为 c theo@theo:~/a/1$ mv 1.c b/2.c # 将 1.c 文件移动到 b 文件夹中,同时修改文件名称为 2.c theo@theo:~/a/1$ mv 2.c 1.c # 2.c 是一个文件,1.c 是一个不存在的文件,当前操作是将 2.c 文件重命名为 1.c theo@theo:~/a/1$ mv b c # b 是一个文件夹,c 是一个存在的文件,当前操作是将 b 文件夹移动到 c 文件夹中
2.9 rm 删除【慎用】
rm remove 删除操作,可以用于删除文件或者文件夹,删除操作并不是放入到回收站/垃圾桶,是直接在磁盘抹掉数据。删除操作不可逆,无法撤销。
theo@theo:~/a/1$ rm 1.c # 删除当前工作目录下 1.c 文件 theo@theo:~/a/1$ rm 1.txt 2.c 3.txt # 可以同时删除多个文件,不同的文件名称之间使用空格隔开 theo@theo:~/a/1$ rm c rm: 无法删除'c': 是一个目录 # rm: 无法删除'c': 是一个目录,文件夹不可以直接删除,需要命令行参数 theo@theo:~/a/1$ rm -rf c # -rf 是删除文件夹的命令行参数
rm 配合通配符完成批量操作
theo@theo:~/a/1$ rm *.c # 删除文件名称不限制,文件后缀名为 .c 的普通文件 theo@theo:~/a/1$ rm 1.* # 删除文件名为 1 的文件,文件类型不限制 theo@theo:~/a/1$ rm *.* # 删除当前工作目录下的任意普通文件,【注意】无法删除隐藏文件 theo@theo:~/a/1$ rm -rf * # 删除当前工作目录下的任意文件和文件夹,【注意】无法删除隐藏文件 theo@theo:~/a/1$ rm .* # 删除当前工作目录下的隐藏文件,可能会遇见无法删除的隐藏文件
2.10 sudo +chmod
sudo 超级权限命令
chmod 修改文件/文件夹操作权限命令
权限标记 | 对应数值 |
---|---|
r | 4 |
w | 2 |
x | 1 |
- | 0 |
例如: -rwxrwxr-w ==> 775 权限 拥有者: 可读可写可执行 r(4) + w(2) + X(1) ==> 7 同组人: 可读可写可执行 r(4) + w(2) + X(1) ==> 7 访客: 可读不可写可执行 r(4) + -(0) + X(1) ==> 5 也可倒推 755 权限 7 ==> r(4) + w(2) + X(1) 5 ==> r(4) + -(0) + X(1) 5 ==> r(4) + -(0) + X(1) 即为 rwxr-xr-x 拥有者 可读可写可执行 同组人 可读不可写可执行 访客 可读不可写可执行【注意】555权限(dr-xr-xr-x)的文件夹不具备写入数据的权限,无法正常创建文件或文件夹。
drwxrwxr-x 2 theo theo 4096 12月 26 20:10 1 theo@theo:~/q$ sudo chmod 555 1 # sudo 命令操作需要使用密码,修改当前 1 文件夹权限为 555 任意用户都没有写入权限,无法直接在文件夹中创建内容 [sudo] theo 的密码: (输入自己设置的密码) theo@theo:~/q$ ls -al 总用量 12 drwxrwxr-x 3 theo theo 4096 12月 26 20:08 . drwxr-xr-x 23 theo theo 4096 12月 26 20:06 .. dr-xr-xr-x 2 theo theo 4096 12月 26 20:10 1 theo@theo:~/q$ cd 1 theo@theo:~/q/1$ touch 1.c touch: 无法创建'1.c': 权限不够 theo@theo:~/q/1$ mkdir 1 mkdir: 无法创建目录"1": 权限不够 # 被修改权限后 1 文件夹不可写,不能直接创建 文件 1.c theo@theo:~/q/1$ sudo touch 1.c theo@theo:~/q/1$ sudo mkdir 1 # 可以通过 sudo 命令给予超级权限,创建文件和文件夹 theo@theo:~/q/1$ ls -al 总用量 12 dr-xr-xr-x 3 theo theo 4096 12月 26 20:20 . drwxrwxr-x 3 theo theo 4096 12月 26 20:08 .. drwxr-xr-x 2 root root 4096 12月 26 20:20 1 -rw-r--r-- 1 root root 0 12月 26 20:19 1.c -rw-rw-r-- 1 theo theo 0 12月 26 20:11 1.txt
2.11 tar 压缩 or 解压缩
压缩
theo@theo:~/111$ tar -cvf test.tar 1 2 # 将当前工作目录下的 1 和 2 文件夹压缩成 test.tar解压缩
theo@theo:~/111$ tar -xvf test.tar # 解压文件,压缩包内容解压到当前工作目录 theo@theo:~/111$ tar -xvf test.tar -C 2 # 解压文件,压缩包内容解压到 -C 指定的文件夹
2.11 其他补充命令
-
ifconfig 查看当前虚拟机网络情况
-
ping 用于网络测试,可以 ping 远端的 ip 地址,判断网络连接情况。
theo@theo:~/111$ ping www.baidu.com # ping 目标的网址 theo@theo:~/111$ ping 120.222.152.85 # ping 目标 ip
-
pwd 查看当前工作目录(print work directory)
theo@theo:~/111$ pwd /home/theo/111 # 绝对路径提示
-
clear 清理命令行屏幕,常用 ctrl + L
-
方向键上下 ↑/↓ 回顾之前的命令内容
-
cat
theo@theo:~/111$ cat 2.txt aaa bbb ccc ddd eee fff ggg hhh
-
tac
theo@theo:~/111$ tac 2.txt # 反向查看文本文档内容 hhh ggg fff eee ddd ccc bbb aaa
-
nl
theo@theo:~/111$ nl 2.txt #正向带行号查看文本文档内容 1 aaa 2 bbb 3 ccc 4 ddd 5 eee 6 fff 7 ggg 8 hhh
3. Vim 使用
3.1 Vim 概述
终端编译器之神,作者已经去世。开源,开放,包容一切的开发工具。 Vim 有三种模式 编辑模式 插入模式 命令模式
3.2 编辑模式
可以完成编辑相关的命令/指令,例如 复制,粘贴,删除,跳转
命令样式 效果解释 yy 复制光标所在行 y[n]y n表示数值,复制从光标所在行开始一共 n 行 dd 剪切光标所在行内容,如果仅剪切不粘贴,就是删除操作 d[n]d n表示数值,剪切光标所在行开始一共 n 行 p 粘贴当前剪切板中的内容 gg 光标直接在整个文档的第一行 [n]gg n表示行数,跳转到文档的指定行 hjkl 光标移动控制,h 左移动 j 下移动 k 上移动 l 右移动 u 撤销一次操作
i 在光标所在位置,直接开启插入模式 o 在光标所在位置,另起一行开始插入模式 shift + : 进入命令模式
3.3 插入模式
从编辑模式进入到插入模式,需要使用字母 i 或 o
i 插入模式直接从当前光标所在位置开始 0 插入模式从光标所在位置另起一行开始正常写代码操作
如果误使用 Ctrl + S , Ctrl + V , Ctrl + C 操作文件,需要使用 Ctrl + Q 退出
3.4 命令模式
可以用于操作关闭,保存,强制退出等功能。
命令 功能描述 w 保存当前文件 q 退出 ! 如果文件已修改,退出会提示未保存,可以使用 q! 强制退出 a vim 可以同时打开多个文件,a 命令可以操作当前打开的所有文件 vsplit 水平方向打开多个文件 【常用组合】
wa 保存 Vim 打开的所有文件内容
wq 保存退出当前 Vim 打开的文件
wqa 报错退出 Vim 所有文件内容
q! 退出当前文件且不保存文件
qa! 退出 Vim 打开的所有文件,且不保存