目录
一、linux发展历史
二、安装和使用Ubuntu系统
1.我们采用的是虚拟机的方式安装:
2.使用虚拟机软件
3.打开一个终端
4.命令行提示符
三、linux文件系统的结构
四、linux常用命令
1.whoami命令
2.pwd命令
3.ls 命令
4.cd 命令
5.mkdir命令
6.rmdir命令
7.touch命令
8.rm 命令
9.cp 命令
10.mv 命令
11.exit 命令
12.clear 命令
13.cat 命令
14. tab 键补齐
五、vi编辑器
1.概念
2.打开vi编辑器
3.vi编辑器的三种模式
3.1 命令行模式
3.2 插入模式
3.3 底行模式
4.命令行模式常用的操作
5.底行模式常用的操作
1965年后,贝尔实验室Bell、麻省理工学院MIT、奇异公司GE,发起了Multics计划,让主机可以达成300个终端。后来因为资金不足、计划进度等问题,就退出研究了。
贝尔研究室退出了Multics计划,但是原计划的人员中有一位Ken Thompson(汤姆森.肯 UNIX之父),再也不能玩自己写的名为“star travel”的游戏了,因为这个游戏完全是基于 Multics 的。既然实验室撤出了项目,那就自己开发个操作系统来满足想玩游戏的愿望。1969年8月,这哥们趁老婆不在家,自己用4周时间写了一个核心程序(包括:内核,文件系统,编辑器,编译程序),汤姆森将Multics计划中的系统简化了,最后叫Unics(还不叫Unix)--B语言写的
1973年:Unix正式诞生。由于汤姆森这哥们,写的这个系统是在太好用了,经过贝尔实验室的流传与数次改版,成为如今用C语言写成的Unics核心,也就是Unix。
Unix的推广:从学校走进企业
Unix的版本主要两个分支:
AT&T System V ——就是俗称的“系统5”(贝尔实验室)
Berkley Software Distribution (BSD) (加州大学伯克利分校)
1984年Richard Mathew Stallman(斯托曼)发起GNU计划, GNU是一个组织 GNU is Not UNIX(免费的)
计划目的是:建立一个自由、开源的Unix系统。于是他不仅宣传让同事使用此内核程序,自己还编写C语言的编译器也就是gcc
其中GNU开发的几个重要软件:
Emacs 代码编辑器工具
GNU C (GCC)
GNU C Library (glibc)---printf scanf
Bash shell
GNU&GPL
GNU = GNU is Not Unix 一个组织
GPL = General Public License 一个开源产品的协议在我开源产品的基础上二次开发必须公开源码
1991年芬兰的赫尔辛基大学的Linus Torvalds(拖瓦兹,莱纳斯:linux之父),
他使用bash,gcc等工具写了一个内核程序,可以在386机器上运行,从此开始Linux的发展之路。
现在主流基于linux的系统的发行版本
centos、Ubuntu、Deepin(国产)、RedHat、Debian、Gentoo、Kali Linux、Arch Linux、Suse
Ubuntu:人道主义,桌面性能优越,更新及时
VMware:是一个虚拟机软件,可以用它来安装操作系统;
Ubuntu:是Ubuntu的镜像文件,可以直接通过vmware打开;
VMware和Ubuntu的下载安装配置教程可以参考另一篇文章,其中有详细描述:
http://t.csdn.cn/V29vxhttp://t.csdn.cn/V29vx
1.第一次运行时,点击开启此虚拟机,即可;
2.暂时不想使用Ubuntu了,可以点击挂起按钮,相当于休眠,下次可以快速打开。
3.挂起后,再想开启Ubuntu,直接点击继续运行此虚拟机即可;
Ubuntu是支持图形化界面操作的,但是等我们学过后面底层的课程,就会明白图形化界面是很占用资源的,所以,移植linux系统时,是不会移植图形化界面的,所以,我们要学会使用命令来操作linux系统。并且,以后工作开发过程中大部分公司都是使用终端软件连接公司的服务器操作,终端软件上面一般也只能使用命令。
终端就是我们用来敲命令的地方。
打开终端的方式:
1.点击左侧的终端图标来开启一个终端;
2.使用快捷键 ctrl + alt + t 打开一个新的终端;
3.使用快捷键 ctrl + shift + n 开开一个同路径的新终端;
4.使用快捷键 ctrl + shift + t 左右分屏打开同路径的终端;
5.终端字体放大: ctrl shift + (不是小键盘的+ 是 = 对应的 +)
6.终端字体缩小: ctrl -
7.linux中复制 粘贴 ctrl shift c 和 ctrl shift v
linux@hqyj:~$
linux : 当前登录的用户名
@ 分隔符
hqyj:主机名(暂时用户到)
~:用户当前所在的路径 ~表示用户的家目录
打开一个新终端,一般默认是在用户的家目录下
可以使用 pwd 命令来查看当前所在路径
$:表示用户的权限
$:普通用户
#:管理员用户(root)
普通用户只能操作自己的家目录下的文件,管理员用户拥有系统所有的权限。
su 用户名 可以切换用户
exit 退出当前用户,如果退到第一个登录的用户了,再输入exit 表示退出终端
注意:命令行提示符是提示给操作人员看的,他是可以通过环境变量PS1来修改的。
linux的文件系统是一个树形结构。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
绝对路径和相对路径:
绝对路径:相对于根目录的路径
相对路劲:相对于当前所在路径的路径
. 当前路径
.. 上一路径
linux 的命令格式
参数(有些命令是没有选项和参数的直接输入命令即可)
一般而言,选项都是-xx -xxx ,参数都是一个路径
注意:命令和选项之间,选项和参数之间一定要有空格
输入命令后按回车生效
显示当前使用的用户
显示当前所在的路径(绝对路径)
ls 列出当前所在路径下的所有文件
ls 路径名 列出指定路径下的所有文件,路径名既可以是绝对路径,也可以是相对路径
ls -a 列出当前路径下的所有文件(包括隐藏文件,linux中,以 . 开头的都是隐藏文件)
ls -l (小写的L)列出当前路径下的所有文件的详细信息
文件的详细信息包括:
-普通25 1rw-rw-r-- linux linux 72 11月 25 14:58 hw_cloud.txt
- 第一个符号表示文件的类型
linux中不以后缀名区分文件类型,linux常见的文件类型有7种:
bsp-lcd
b 块设备文件
s 套接字文件
p 管道文件
- 普通文件
l (小写的L)链接文件
c 字符设备文件
d 目录文件
rwxrw-r-- 三个一组,分为三组,表示文件的权限 (文件所属用户、文件所属组、其他人)
r 读权限
w 写权限
x 执行权限
- 对应位置没有相应权限
1 硬链接的个数
linux linux 文件的所属用户 文件的所属组
72 文件的大小 单位 字节 B
1Byte = 8bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
11月 25 14:58 文件的时间戳(文件最后一次修改的时间)
hw_cloud.txt 文件名
ls -lh 列出当前路径下的所有文件的详细信息,
文件的大小会自动转换单位 ( K M G ..)
cd 路径名 进入指定路径,绝对路径,相对路径均可
cd . 进入当前路径,没动
cd .. 进入当前路径的上一级路径
cd / 进入根目录
cd ~ 进入用户的家目录 cd 直接敲回车 也是进入家目录
cd - 进入上一次所在路径
mkdir dir1 在当前路径下创建一个名字为 dir1 的目录文件
mkdir ../dir2 在当前路径的上一级路径下创建一个名字为 dir2 的目录文件
mkdir dir1 dir2 dir3 在当前路径下创建三个目录文件,分别叫做 dir1 dir2 dir3
mkdir -p dir1/dir2/dir3 在当前路径的dir1目录下嵌套创建 dir2/dir3
rmdir 目录名 删除一个目录文件(要求必须是空目录)--不常用
touch 文件名 如果文件不存在,则表示创建一个名为文件名的新文件
如果文件存在,表示更新文件的时间戳
rm 文件名 删除一个文件
如果文件是一个目录文件,需要加 -r 选项
rm -f 文件名 忽略提示信息,强制删除文件
cp file1 file2 如果file2不存在,表示将当前路径下的 file1 复制一份儿起名为 file2
如果file2存在,会讲file1复制一份儿覆盖file2
cp 文件名 目录名 将文件复制一份儿,放到目录名对应的目录下
cp -r dir1 dir2 如果dir2不存在,表示将目录dir1 复制一份儿,起名为 dir2
如果dir2存在,表示将目录dir1 复制一份儿 放到目录dir2里面
mv file1 file2 如果file2不存在,表示将file1 重命名为file2
如果file2存在,表示将file1 重命名为file2,会覆盖原来的file2
mv 文件名 目录名 将文件移动到目录里
mv dir1 dir2 如果目录dir2 不存在,表示将目录dir1 重名名为 dir2
如果目录dir2存在,表示将目录dir1放到目录dir2里面
如果涉及到用户切换,表示退回上一个用户,
如果已经是打开终端时的第一个用户了,那么表示关闭当前终端
清屏 (或者使用快捷键 ctrl + l) 注意,是小写的L
cat 文件名 查看文件内容
cat -n 文件名 带行号显示文件内容
tab键可以用来补齐命令和路径。
补齐的规则---如果给定的信息足够识别唯一的文件,则按一下tab键就可以补齐
如果给定的信息不足以识别唯一的文件,按两下tab键,可以提示后面有哪些文件可以补齐
接着在输入一些关键信息,按tab键就可以补齐了。
vi编辑器是用来编辑文本的(写代码的),类似于window中的记事本 notepad++
vi 是 vim 早期的版本,但是我们的系统中 使用 vi 和vim 是一样的。
vi 文件名 表示将文件在vi编辑器中打开
(如果文件存在,则直接打开,如果文件不存在,则新建并打开)
打开一个文件时,默认就是命令行模式,主要是用来复制粘贴代码的
其他模式回到命令行模式按 esc 按键,一下不行就按两下
就是用来写代码的,进入插入模式的方式,在命令行模式下,按:
i 在光标所在位置前开始插入
a 在光标所在位置后开始插入
o 在光标所在行下面插入一个新行,并开始插入
I (大写的i)在光标所在行行首开始插入
A 在光标所在行行尾开始插入
O 在光标所在行上面插入一个新行,并开始插入
在命令行模式下按 冒号 进入底行模式,主要是用来保存退出等操作的。
控制光标的上下左右 h 左 l 右 j 下 k 上
yy 复制光标所在行
nyy 从光标所在行开始复制 n 行
p (小写)从光标所在行下面开始粘贴
P (大写)从光标所在行上面开始粘贴
dd 剪切光标所在行
ndd 从光标所在行开始剪切 n 行
gg 将光标定位到首行
G 将光标定位到尾行
ngg 将光标定位到第n行
u 撤销
ctrl + r 反撤销(重做)
shift + zz 保存退出 相当于底行模式的 :wq
/find 查找单词find在文件中出现的位置,
按n查找下一处
按N查找上一处
:w 保存
:q 退出
:wq 保存并退出
:q! 不保存强制退出
:x 保存并退出 等价于 :wq
:vsp 文件名 左右分屏打开多个文件
:wqa 保存退出打开的多个文件
:set nu 显示行号
:set nonu 取消显示行号
:noh 取消查找后单词的高亮显示
:%s/aaa/bbb/g 将全文的aaa都替换成bbb
:%s/aaa/bbb/gc 将全文的aaa都替换成bbb,
会每次询问是否替换 y 替换 n 不替换
:m,ns/aaa/bbb/g 将第 m 行至第 n 行的aaa都替换成bbb
***以上是本人有关嵌入式linux学习路线无偿分享的第一天,阅读之余动动小手点个关注,后续本人会持续更新相关内容同时无偿分享相关资料手册有需要的私信我,也欢迎各位大佬指点***