1. Ubuntu
-
Ubuntu内核是Linux,不收费,开源的macos内核是Unix,收费
-
Ubuntu是一个Linux内核的操作系统,Windows的内核是NT,收费
-
Ubuntu内核是Linux,不收费,开源的macos内核是Unix,收费
-
在使用Linux做嵌入式开发,只需要掌握C语言。
-
Linux操作系统的优点:免费,开源,支持多线程,有良好的桌面应用,多模块Ubuntu的优点:更新快,图形化应用,是Linux的发行版本。
-
GNU是一个计划(GNU is not Unix),打造一个开源的和Unix一样好用的操作系统,GNU仍然是一个半Linux的操作系统。
-
GPL协议(许可证)要求在GNU开源产品基础上二次开发的产品必须开放源码
2. 熟悉终端
1.su切换用户
su直接回车,默认切换到root用户
# su 用户名
su root
2.退出当前用户
直接在终端输入exit就可以了,退出当前登录用户,返回上—个登录用户。
exit
3.passwd修改用户密码
改密码的过程,所有需要输入密码的地方都不会回显,确认输入就可以sudo使用超级用户的权限执行后面的指令。
# passwd 用户名
sudo passwd root
# 修改超级用户的密码,因为是使用普通用户的身份,修改超级用户的密码所以需要加sudo
4.Linux的文件系统结构
倒插树结构,万物皆文件,挂载。
/ -- #根目录
|--bin #二进制文件执行的指令
|--etc #配置文件
|--home-- #用户目录
|--user1 #用户1
|--user2 #用户2
3. 文件操作
格式为:指令 参数 操作数
1. ls
操作
ls
为查看文件操作
ls -a #所有文件
ls -l #文件详细信息列表
ls -h #配合l使用,显示单位
drwxr-xr-x 3 isis isis 4.0K Apr 24 14:36 rust-study
d
为文件类型
文件类型 | 意思 |
---|---|
b | 块设备文件 |
- | 普通文件 |
c | 字符设备文件 |
l | 链接文件 |
d | 目录文件 |
s | 套接字文件 |
p | 管道文件 |
-
rwxr-xr-x
为权限信息 -
3
为硬链接文件的个数 -
isis
(前)为文件所属用户(如果没有修改过所属用户默认是创建文件的用户) -
isis
(后)为文件所属组用户 -
4.0K
为文件的大小 -
Apr 24 14:36
为时间戳,文件最后被修改的时间
2. chmod
操作
一个文件有三种用户rwxr-xr-x
从前到后有这些关系:
rwx | r-x | r-x |
---|---|---|
所属用户:u | 所属组用户g | 其他用户:o |
其中权限可分为三种:
权限 | r | w | x |
---|---|---|---|
意思 | 可读 | 可写 | 可执行 |
8进制 | 4 | 2 | 1 |
chmod
修改文件权限,
- 字母:
# chmod [用户][符号][权限] [文件]
# 符号为 + - =,分别表示加权 减权 赋权
chmod o+w dir1
- 数字:
# chmod [u权限][g权限][o权限] [文件]
# 权限为代号全加suode
chmod 777 dir1
3. cd
操作
cd
后面的目标路径只能是目录,不能是文件
# cd 目标路径
cd mydir/dir1 # 相对路径
cd /home/isis/mydir/dir1 # 绝对路径
4. pwd
操作
pwd # 当前目录的绝对路径
5. mkdir
操作
mkdir
用来创建目录
# mkdir 路径/目录名
mkdir ./mydir
# -p 嵌套创建
mkdir dir1/dir2/dir3 -p
6. rmdir
操作
rmdir
用来删除目录,只能删除空目录
# rmdir 目录名
rmdir mydir
7. rm
操作
rm
用来删除文件
# rm 路径/文件名
rm a.c
# 删除非空目录
# rm -r 路径/目录
rm -r dir1/dir2
8. touch
操作
touch
用来创建文件
# touch 文件名(可以跟多个文件名)
touch 1 2 3 4 5
【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。
【10】cat 查看文件的内容
cat 文件名
把文件的内容回显到终端
cat 1 > 2 重定向
1、如果文件2存在,把1中的内容覆盖掉2中的原有内容
2、如果2不存在,新建一个文件2,把1中的内容重定向到2中
cat 1 >> 2 追加
1、如果文件2存在,把1中的内容追加到2中的原有内容后面
2、如果2不存在,新建一个文件2,把1中的内容追加到2中
【11】echo 打印
echo 1234 ---->在终端回显1234
echo 不能加文件名
五、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
剪切:鼠标选中按y
格式化:选中要格式化的部分按=