Linux 因具有内核源码公开、性能稳定、兼容 UNIX、支持多种处理器、网络功能强、安全性高、内核可以剪裁等一系列优点,在嵌入式领域得到广泛的应用。首先我们应该知道什么是linux操作系统,,linux操作系统由四部分组成。
1、用户应用程序
(User Applications)。用户应用程序是运行在 Linux 系统最高层的一个软件集合。当一个用户程序在操作系统之上运行时,它就是操作系统的一个进程。用户通过执行应用程序来满足自己的具体需求。
2、系统调用库
(System Library)。为了在应用程序中实现特定的任务,可以通过系统调用来调用操作系统内核中提供的函数,以实现特定的服务。系统调用库,就是用来连接用户进程与内核中某个具体服务函数的纽带。用户进程通过执行系统调用库(如 C 库)中的函数,能进入到内核态,运行内核中相对应的服务函数。
3、Linux 内核。
内核是操作系统的灵魂,包括内核抽象和对硬件资源(如 CPU)的访问,它负责管理内存和磁盘上的文件,负责启动系统并运行程序,负责从网络上接受和发送数据包等等。总之,内核实际上是抽象的资源操作到具体硬件操作细节之间的接口。
4、硬件。包括了所有可能的物理设备。
例如 CPU、内存、硬盘、网卡等等。用户应用程序的运行和操作系统密切相关,而系统调用接口可以说是操作系统内核的扩充,硬件则是操作系统内核赖以存的物质条件。这 4 个层次的依赖关系表现为:上层依赖于下层。每一层都只跟临近的层通信。
接下来我们学习linux系统的简单的操作命令
1.如何在linux中运行命令?
(1)打开shell;
(2)在命令提示符后面输入命令
行提示符:[kiosk@foundation0 Desktop]$
kiosk 表示用户
@ 表示分隔符
foundation0 表示主机短名称
Desktop 表示所在系统位置
$ 表示份提示符$表示普通用户,#表示超级用户
2.命令的组成
命令 参数 目标
-s 表示单词的缩写
--size 表示单词的全拼
3.虚拟机管理命令
rht-vmctl start desktop | server ##开启
rht-vmctl poweroff desktop | server ##关闭
rht-vmctl view desktop | server ##显示
rht-vmctl reset desktop | server ##重置,重置之后系统会有提示:Are you sure you want to reset desktop? (y/n)此时,你需要输入字符“y”进行确认
进入linux虚拟机,用户名是root,密码是redhat,以下图片为进入虚拟机之后的界面
在界面上右健,选择Open in Terminal就进入shell对话框
4.linux系统结构
(1)linux系统是个倒树型结构
(2)二级目录的作用
/bin ##二进制文件,系统常规命令
/boot ##系统启动分区,系统启动时读取的文件
/dev ##设备文件
/etc ##大多数配置文件
/home ##普通用户的家目录
/lib ##32位函数库
/lib64 ##64位库
/media ##手动临时挂载点
/mnt ##手动临时挂载点
/opt ##第三方软件安装位置
/proc ##进程信息及硬件信息
/root ##超级用户家目录
/run ##临时设备的默认挂载点
/sbin ##系统管理命令
/srv ##数据
/var ##数据
/sys ##内核相关信息
/tmp ##临时文件
/usr ##用户相关设定
5.linux下的文件管理
(1)建立文件
touch 文件名 建立空文件,或修改文件的时间戳
touch 文件名1 文件名2 文件名3 可以同时建立多个文件。
我们可以看以下界面的操作
可以看到,在没有输入新建文件夹命令之前,桌面上是没有文件的,之后输入命令后,桌面上新建了四个文件.
(2)建立目录
mkdir 文件名 表示建立单目录
mkdir -p 文件名1/文件名2/文件名3....... 表示建立多层目录
该图表示文件夹a里边还有文件夹b,文件夹b里边还有文件夹c。
(3)文件的删除
rm -f 文件名 表示强行删除文件不提示
rm -fr 目录名 表示强行删除目录本身和里面的内容不提示
我们通过操作已经删除了文件file2和目录a。
(4)文件的编辑
vim 文件名
进入文件后是浏览模式,不能编辑
输入<i> 进入插入模式写字符,界面下面会出现insert字符
编写完成后按<ESC>退出插入模式
输入:wq 完成文件编辑。w表示写入,q退出
我么可以看以下操作示例
表示打开文件file3
打开后还不能进入编辑模式,需要键盘输入<i>才可以进入编辑模式,下面出现--INSERT--,表示可以进行编辑。
我输入了hello world 之后按<Esc>退出编辑模式,再键盘输入:wq表示退出保存。
vim使用技巧
在浏览模式下
(a)字符大管理
yy 表示复制一整行
yl 表示复制一个字母
yw 表示复制一个单词
p 表示粘贴
dd 表示删除一整行
dl 表示删除一个字母
dw 表示删除一个单词
cc 表示剪掉整行
cl 表示剪掉一个字母
cw 表示剪掉一个单词
在这里需要注意的是:
当剪切后vim会进入插入模式,
如果要粘贴需要按<esc>退出插入模式然后粘贴
我给大家示例一下,可以看以下图片
这是我在file3中进行的操作,先是在命令窗口输入vim file3,接着进入file3中,在浏览模式下,进行以上操作,在键盘上按下yy和p,多次按p就会出现多组hello world,光标选中一个字母h,按下yl和p,多次按下p,可以多次粘贴h,按下yw表示选择了当前的字符串(字母之间没有空格表示一个字符串),接着按下p,就会复制粘贴选中的字符串hhhhhhhhhello。
此图是我进行删除命令之后的file3的内容,切记鼠标不能进行操作,只能通过键盘上的“上下左右”按键进行字母的选中,dd是删除当前选中的一行(光标目前就选中了一个字母);d为表示删除当前光标所在的那个单词(即字母之间 没有空格视为一个单词);dl表示删除当前所选的这个字母。cc;cl;cw和这些是一样的操作,只是剪掉而不是删除,在这里我不再进行示例。
u 表示撤销
ctrl+r 表示恢复
(b)字符的批量处理
ctrl + v 表示进入可视化模式,在可视化模式中可以批量选择字符并操作
如何批量添加字符
1)把光标移动到要加入字符所在列
2)ctrl + v 进入可视化模式
3)选中要家字符所在列
4)按<I>进入插入模式并写入要加入的字符
5)按<ESC>批量添加结束
如何批量修改
:%s/原有字符/修改后字符/g
相当于把所有的h改为d我么可以看一下修改后的结果
:1,5s/原有字符/修改后字符/g
:1,5s/r/q/g
表示把第1行到第5行的r全部更换成q。
(c)如何同时编辑多个文件
vim 文件名
在只读模式下键入
:sp 文件名
注意:
光标默认在哪个文件中操作的就是哪个文件
(键盘按下)ctrl+w 按完放开再按“上“或者“下“可以移动光标所在窗口
我们可以看出第一章图片光标在file文件中,通过操作 ctrl+w 按完放开再按“上“或者“下“可以移动光标所在窗口就可以对文件进行选择,第二张图显示 目前在file3文件中。
(d)vim的退出
正常退出方法
:q 表示当文件没有做任何修改时可用
:q! 表示当文件修改但不行保存修改时可用
:wq 表示退出保存
:wq! 表示当文件属于自己或用户为root时可用
异常退出
当vim非正常退出会产生.filename.swap文件
当此文件出现,vim工作异常
Found a swap file by the name ".file.swp" <<<异常退出未保存的数据
owned by: root dated: Wed Aug 1 02:59:25 2018
me: ~root/Desktop/file
modified: YES
user name: root host name: localhost
process ID: 2046
h swap file by the name ".file.swp"
owned by: root dated: Wed Aug 1 02:59:25 2018
ile opening file "file"
Swap file ".file.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:
只读打开 放弃未保存数据 恢复 删除.swp文件 退出 退出
进入文件
(e)文件查看
cat 文件名 表示输出文件的所有内容
cat -b 文件名 表示输出文件所有内容并加入行号
less 文件名 表示分页浏览
上或者下 表示向上或者向下移动一行
<pgup>或者<pgdn> 表示向上或者向下移动一页
/关键字 表示高亮显示关键字,n向下匹配N向上匹配
高亮i
q 表示退出
tail -n 文件名 表示显示文件的后多少行
head -n 文件名 表示显示文件的前多少行
(f)文件复制
cp sourcefile(源文件) destfile(目的文件) 表示文件复制
cp sourcefile1 (源文件) sourcefile2 (源文件) destdir/ (目的文件) 表示复制多个文件到目录中
cp -r sourcedir (源文件) destdir/ (目的文件) 表示复制目录
(g)文件的移动
mv sourcefile (源文件) destfile(目的文件) 表示重名命
mv sourcefile (源文件) destdir (目的文件) 表示移动
mv sourcedir (源文件) destdir (目的文件) 表示移动目录
mv test/* . 表示"."代表当前目录
(h)文件路径
1.相对路径
文件相对当前系统位置的一个名称简写
文件名称省略了当前路径的值
只有当前在此目录中时可以使用
文件名称不以/开头
文件名称会自动在字符前加入'pwd'显示的路径
2.绝对路径
是文件在系统中真实的位置
任何时间都可以精确表示一个文件的名称
文件名称以/开头
(i)关于路径的命令
pwd 表示显示当前工作目录
cd 表示切换当前工作目录
cd /mnt 表示切换到/mnt目录中
cd - 表示进入当前目录之前所在目录中
cd ~student 表示进入到student用户家目录