本篇思维导图
一、VMware
双击“VMware-workstation-full-16.2.3-19376536.exe”进行安装,一路默认,解压“Ubuntu 18.04配置版.7z”文件 ,打开虚拟机后选择“打开虚拟机”,找到解压后的“Ubuntu 18.04配置版”一路双击,打开配置好的虚拟机。
问题与解决
安装VMware时,卡在安装网络驱动的位置
- 安装一个更高版本的VMware
- 使用清注册表的工具,清注册表
二、Ubuntu
Ubuntu是一个Linux内核的操作系统,
Windows的内核是NT,收费
Ubuntu内核是Linux,不收费,开源的
macos内核是Unix,收费
在使用Linux做嵌入式开发,只需要掌握C语言。
Linux操作系统的优点:免费,开源,支持多线程,有良好的桌面应用,多模块
Ubuntu的优点:更新快,图形化应用,是Linux的发行版本。
GNU是一个计划(GNU is not Unix),打造一个开源的和Unix一样好用的操作系统,GNU仍然是一个半Linux的操作系统。
GPL协议(许可证)要求在GNU开源产品基础上二次开发的产品必须开放源码
三、熟悉Linux下的终端
- 打开终端
- 点击终端图标
- 快捷键Ctrl+alt+t
- 鼠标右击桌面再打开终端
- 调整终端字体
- 放大:ctrl+shift+=
- 缩小:ctrl+-
- 关闭终端
- ctrl+d
- 鼠标点击右上角
- exit,退出终端的本质是没有上一个登录用户
- 分屏打开终端
紫色终端(每个人都能打开的)
- ctrl+shif+t
黑色终端
- ctrl+shift+e 左右分屏
- ctrl+shift+o 上下分屏
- 命令行提示符
ubuntu@ubuntu:~$
ubuntu | 用户名 |
@ | 分隔符 |
ubuntu: | 计算机名/主机名 |
~ | 当前所在路径 |
$ | 普通用户 |
#:超级用户的权限,超级用户是root
~:表示当前用户的家目录
- su 切换用户
- su 用户名
- su root (超级用户)
- su 直接回车,默认切换到root用户
- 退出当前用户
直接在终端输入exit就可以了,退出当前登录用户,返回上一个登录用户。
- passwd修改用户密码
- passwd 用户名
- sudo passwd root 修改超级用户的密码,因为是使用普通用户的身份,修改超级用户的密码所以需要加sudo
- 改密码的过程,所有需要输入密码的地方都不会回显,确认输入就可以
- sudo 使用超级用户的权限执行后面的指令。
- Linux的文件系统结构
倒插树结构,万物皆文件
四、文件相关操作
指令格式
指令 参数 操作数,三者之间一定要有空格作为分隔
有些指令也支持 指令 操作数 参数
【1】查看文件 ls
ls 回显当前路径下有哪些文件
ls 路径/目录名 该目录下有哪些文件
ls 路径/文件名 回显文件名
ls可以加参数
ls -a | 查看文件,包括隐藏文件(前面带.都是隐藏文件) |
ls -l | 显示文件的详细信息 |
ls -h | 带单位的显示文件的大小(的详细信息) |
drwxr-xr-x 2 ubuntu ubuntu 4.0K 四月 24 09:14 桌面
d:文件类型(共7种)
bcd-lsp
b:块设备文件 -:普通文件
c:字符设备文件 l:软链接文件
d:目录文件 s:套接字文件 p:管道文件
2:硬链接文件的个数
ubuntu:文件所属用户(如果没有修改过所属用户默认是创建文件的用户)
ubuntu:文件所属组用户
4.0k:文件的大小
四月 24 09:14:时间戳,文件最后被修改的时间
【2】文件的权限+修改 chmod
一个文件有三个用户,rwxrwxr-x,ls -l显示的文件权限,每三位对应一个用户
rwx rwx r-x
I I I
所属用户的权限u 所属用户的权限g 其他用户的权限o
所有用户:a
r | 可读 |
w | 可写 |
x | 可执行 |
-
chmod修改文件权限,字母
chmod 用户+/-/=权限 文件
练习:
1、给家目录中的Desktop(桌面)的组用户添加可写权限,给Desktop的所有用户取消可写权限,给Desktop的所属用户赋rwx权限。
-
八进制表示法修改文件权限
八进制数0-7,前导符0
r:4 w:2 x:1
chmod 八进制数 文件名,默认文件权限对应三个用户,需要三位八进制数
chmod 0八进制数 文件名,0表示八进制数的前导符,八进制数从左到右依次对应所属用户,所属组用户和其他用户的权限。
创建文件时的默认权限:0775(目录) 0664(文件)
练习:
1、通过八进制数的方式修改家目录下,Muisc(音乐)的权限,所属组用户添加可读权限,其他用户只有可执行权限。
【3】切换当前工作路径 cd
相当于windows下的双击文件夹
cd 目标路径,cd后面的目标路径只能是目录,不能是文件
cd 直接回车,切换到当前用户的家目录。
cd后面可以跟绝对路径也可以跟相对路径,
~是相对路径;
绝对路径:相对于根目录来说的路径,/home/ubuntu,根目录下的home下的Ubuntu目录
相对路径:相对于当路径而言的
相对于当前所在路径而言的,当前路径下的23041目录。
cd . 切换到当前路径
cd .. 切换到上一级路径
pwd---当前的绝对路径
练习:
1、用两种方法实现,从当前用户的家目录下,切换到根目录下的usr目录下的include目录
绝对路径:cd /usr/include
相对路径:cd ../../usr/include
【4】mkdir 创建目录
mkdir 路径/目录名,在给出的路径下,创建一个目录
mkdir dir1/dir2/dir3 -p,创建具有层级关系的目录,加-p参数是因为没有前面的 dir1/dir2
mkdir dir1/dir2/dir3 -pv,使创建具有层级关系的目录的过程可视化
练习:
1、在家目录下创建一个23041目录,再在23041下创建dir1/dir2/dir3
2、先把23041清空,再使用rmdir删除空目录23041
【5】rmdir 删除目录
rmdir只能删除空目录
【6】rm 删除文件
rm 路径/文件名,可以删除文件
rm -r 路径/目录名,可以删除非空目录
【7】touch 创建文件
touch 文件名(可以跟多个文件名)
touch 1 2 3 4 5 ---->创建了分别名为1 2 3 4 5的5个文件
清屏:ctrl+l 终端输入:clear
通配符 * 匹配一个或多个字符
例子:touch a1 a2 a3 a4 a5 想把这几个文件批量删除,rm a*就能实现删除a开头的所有文件。
【8】cp 复制文件
cp 目标路径/源文件名 目标路径/目标文件名
拷贝目录的时候,需要加-r参数
cp file1 file2
1、当前路径下file2文件存在时,把file1拷贝一份,覆盖掉之前的file2
2、当前路径下file2文件不存在时,把file1拷贝一份,新建一个file2,存的是file1中的内容
cp file1 /home/ubuntu 默认/home/ubuntu 是路径
1、/home/ubuntu,如果路径下不存在file1,就新建一个file1
2、当路径下,有名为file1的文件时,覆盖掉原有的file1
cp file1 /home/ubuntu/file2
1、/home/ubuntu,如果路径下不存在file2,相当于拷贝并且重名名
2、当路径下,有名为file2的文件时,覆盖掉原有的file2
cp指令,内容相同的文件会存在两份
【9】mv 移动文件
mv 目标路径/源文件名 目标路径/目标文件名
mv file1 file2
1、当前路径下不存在file2文件时,mv操作相当于给file1重命名为file2
2、当前路径下存在file2文件时,mv操作,把file1中的内容覆盖掉原有file2中的内容
mv file1 /home/ubuntu
1、/home/ubuntu下如果不存在file1,会把当前路径下的file1移动到/home/ubuntu目录下 2、/home/ubuntu下如果存在file1,会把当前路径下的file1移动到/home/ubuntu目录下覆盖掉原有的file1
mv file1 /home/ubuntu/file2
1、/home/ubuntu,如果路径下不存在file2,相当于移动并且重名名
2、当路径下,有名为file2的文件时,覆盖掉原有的file2
mv操作,内容相同的文件会存在一份
练习:
1、在家目录下,新建23041目录,在23041目录内,新建文件file1和file2,通过图形化界面,给file1和file2中添加不同的内容,先执行把file1重命名为file3;再把file3中的内容拷贝给file2,要求file2和file3都存在。
2、在1的基础上,把file2拷贝到家目录中。
3、在家目录下,创建一个mydir目录,在mydir下创建一个job目录,拷贝根目录下的bin目录下的bash文件到mydir中并重命名为text,把job重命名为hello。
练习1
练习2
练习3
五、vim编辑器
vim有四种常用模式
- 命令行模式
- 插入模式
- 底行模式
- 可视模式
【1】打开vim编辑器
vim/vi 文件名
vim 1
1、1本身就存在,打开vim编辑器,编辑文件1
2、如果1本身不存在,vim仍然可以打开,编辑后如果保存退出,就会创建文件1,如果直接退出文件1不会保存
【2】命令行模式
vim 文件名,默认就在命令行
插入行回到命令行,按一下esc
不能够写入信息,可以进行复制、粘贴、剪切、行间跳转
i)复制粘贴+剪切
yy: 复制光标所在行
nyy:复制光标所在行向下n行
p: 在光标所在下一行粘贴
dd: 剪切光标所在行
ndd:剪切光标所在向下n行 (剪切的内容不粘贴就相当于删除)
u: 撤销相当于windows下的ctrl+z
ctrl+r:反撤销
ii)行间跳转
gg跳到文件首行
G跳转到文件尾行
ngg:跳转到第n行
nG:跳转到第n行
$:跳到光标所在行行尾
0:跳到光标所在行行首
iii)格式化
gg=G 格式化
iv)查找单词
/word /要查找的单词,按下回车,查找到的内容会高亮显示
n:向下查找
N:向上查找
【3】插入行模式
从命令行模式下进入插入行模式,按下i/a/o,I/A/O
i(小写) 在光标所在前一位进行插入 日常代码 a 在光标的后一位进行插入 o 在光标所在的下一行插入 I(大写) 在光标所在行的行首进行插入 注释整行 A 在光标所在行的行尾进行插入 给某一行代码添加注释内容 O 在光标所在的上一行进行插入
【4】底行模式
可以观察vim编辑器的灰色条下面是否有:,有:说明在底行模式
- 在命令行模式下,按空格
- 在命令行模式下,按shift+;
i)文件的保存和退出
w:保存
q :退出 如果文件修改过,直接退出会给警告,可以按enter之后q!
强制退出或者wq保存退出
!:强制执行后面的指令
x :保存并退出 wq:保存并退出
ii)其他操作
noh:取消高亮
set nu:显示行号
set nonu:取消行号
vsp 文件名:左右打开两个文件
iii)替换单词
%s/old/new/ :替换每一行找到的第一个的单词
%s/old/new/g:全文替换
%s/old/new/gc:全文选择性替换
【5】可视模式
进入可视模式:
- 鼠标选中
- 小写v,块可视,选中一个
- 大写V,行可视,选中一行
粘贴:可视模式下的粘贴都在光标所在的后一位进行粘贴
复制:鼠标选中按y
剪切:鼠标选中按d
格式化:选中要格式化的部分按=
练习:
要求不允许切换工作路径
在家目录下创建mydir目录
把/etc/passwd和/etc/group复制到mydir中
把复制过来passwd重命名为passwd.txt,把group重命名为grp.txt
在mydir中嵌套创建dir1/dir2/dir3/dir4
把grp.txt复制到dir1/dir2中,把passwd.txt移动到dir4中
查看dir4中文件的详细信息
把家目录下的mydir删除
以下是本日课程所有练习代码截图:
桌面权限:
音乐权限:
切换根目录
练习cpmv命令1
练习cpmv命令2
练习cpmv命令3
创建目录后清空
课后大练习