嵌入式开发学习(第一阶段 Linux基础)

DAY5Linux基础

内容提要:Vim编程器(进阶)(※※※※※)、网络相关指令、进程相关指令、磁盘相关指令、挂载与卸载、Linux共享环境搭建

Vim编程(进阶)

Vim常用指令

光标移动
  • 行间移动

    • gg键:命令模式下,移动光标到第一行
    • G键:命令模式下,移动光标到最后一行
    • :n:末行模式下,移动第n行,写法举例::6:移动到第六行
  • 列间移动

    • $键:移动光标到当前的行尾(最后一列),一般可以使用dhift+$(命令模式下)
    • 0键:移动光标到当前的行首(第一列)(命令模式下
  • 方向键:上下键实现行间移动,左右键实现列间移动

删除
  • 列删除
    • x键:删除当前光标所处右边一个字符(命令模式下
    • nx/X键:删除当前光标所处以及后面共n个字符,如:6x:删除从当前光标处共六个字符(命令模式下
    • X键:删除当前光标所处左边一个字符(命令模式下
    • D键:删除当前光标至行尾(最后一列)(命令模式下)
  • 行删除
    • dd键:删除当前光标所在行(命令模式下
    • ndd键:删除当前光标所在处至后面共n行,如:6dd:从光标所在处开始连续删除6行(命令模式下)
    • dG键:删除当前光标所在。(命令模式下)
    • :n,n2d:删除n1~n2行,如1,12d:表示删除1-12行(末行模式下
拷贝(类似于windows上的Ctrl+C)
  • 复制列(字符)
    • 多按几次ESC,然后按v,进入可视方式,移动方向键选中文本,然后按y,就完成拷贝。需要结合p键进行粘贴
  • 复制行
    • yy键:复制当前行(单行复制)(命令模式下),需要结合p键进行
    • nyy键:复制当前行至后续连续n行(多行复制),如:5yy从当前行开始连续复制5行(末行模式下),需要结合p键进行粘贴。
    • :n1,n2 copy dn:复制n1~n2行数据然后站到dn行,如3,14 copy 2,从第3行开始拷贝至第14 行,粘贴复制(末行模式下
粘贴(类似于Windows上的Ctrl+V)
  • p键:如果拷贝到是整行,粘贴在当前行下。如果拷贝的是字符粘贴在当前光标之后(配套yy,nny,复制列)(命令模式下
  • P键:如果拷贝到是整行,粘贴在当前行下。如果拷贝的是字符粘贴在当前光标之前(配套yy,nny,复制列)(命令模式下
撤销(类似于Windows上的Ctrl+Z)
  • u键:撤销上一步操作,相当于Ctrl+Z。(命令模式下
  • U键:撤销当前进行的所有操作。(命令模式下
  • ctrl+R:重新撤销的操作,可以理解为对撤销进行还原。(命令模式下)类似于Windows下的Ctrl+Y
字符查找(类似于Windows上的Ctrl+F)
  • /string:从光标所在处向后查找“string”字符串,输入完毕,需要按回车键:按n可往下继续查找,按N可往上找,举例:/int:要查询的字符串是int。(末行+命令

  • ?string:从光标所在处向后查找“string”字符串,输入完毕,需要按回车键:按n可往下继续查找,按N可往上找,举例:?int:要查询的字符串是int。(末行+命令

  • :set ic:查找式忽略大小写,查询之前设置,(默认忽略大小写),举例:f/F,匹配到f/F(末行模式下)

  • :set noic:查找式忽略大小写,查询之前设置,(默认忽略大小写),举例:f/F,匹配到f/F(末行模式下)

字符替换(类似于Windows上的Ctrl+F)

:%s /old_string/new_string:将全文每一行第一个匹配项old_string替换成new_string(末行模式下)

测试数据:

第一行:int main(int arge)
第二行:int main(int params)

需求:将int替换成void

指令::%s /int/viod回车

第一行:void main(int arge)
第二行:void main(int params)

:%s /old_string/new_string/g:将全文所有匹配项old_string替换成new_string(末行模式下)

测试数据:

第一行:int main(int arge)
第二行:int main(int params)

需求:将int替换成void

指令::%s /int/viod/g回车

第一行:void main(void arge)
第二行:void main(void params)

Vim其他指令(不分需要自己设置快捷键)

:set nu:设置行号(末行模式下

:set nonu:取消设置行好(末行模式下

ctrl+G:显示文件名,当前的行号,文件的总行数和文件位置的百分比(末行模式下

注意:删除、拷贝、粘贴、撤销、字符查找、字符替换常用指令需要重点记忆

虚拟机网络模式

在这里插入图片描述

1.桥接模式

直接连接物理网络,也就是和Windows共享一个网段,并且能够于Windows一样可以连接到互联网

可以理解为Windows和Linux分别连接路由器

好处:网络稍微会快一点

坏处:占用路由器的IP,如果路由器的载荷过大,网络会掉线

2.NAT模式

用于共享主机的IP地址,是由虚拟网卡分配网段和IP,并且能够于Windows一样可以连接到互联网

可以理解为Windows和Linux连接路由器,Linux由虚拟网卡分配

好处:不占用路由器IP

坏处:网络会稍微慢一点

3.仅主机模式

和Windows的网段不一样,不能连接网络

好处:数据安全

坏处:不能访问互联网

网络相关指令

指令

ping

执行者:所有用户

说明:测试网络是否通畅

语法:

ping [选项] 目标的IP或目标网址

选项:

-c n:显示n次应答后停止

范例:

ping 192.168.12.64      --测试IP是否可以联通
ping www.baidu.com      --测试网络是否可以联通
ping -c 5 192.168.12.64 --测试IP是否可以联通,显示5次应答后停止

注意:这个指令同样适用于Windows,但是不需要设置应答次数,因为Windows默认应答4次。Linux如果没有设置应答次数,ctrl+C退出。

ifconfig

执行者:所有用户(查询)|ROOT用户(设置)

说明:查看临时配置网络接口(所谓的临时设置,就是电脑一关机,所有配置失效)

语法:

ifconfig [网络接口名] [设置选项]

范例:

ifconfig       --查看本机所有网络接口信息(包含IP)
ifconfig es33  --查看指定的网络接口信息(ens33是网络接口途径)
sudo ifconfig ens33 192.168.12.64 --将ens33对应的网络IP临时设置为192.168.12.88

注意:Windows系统可以使用ipcofig指令查看网络接口信息。

netstat

执行者:所有用户

说明:查看网络的状态信息

语法:

netstat [选项] 

选项:

-l:只显示监听状态的套接字

-t:显示tcp协议的套接字

-a:显示所有套接字

-u:显示udp协议的套接字

-n:显示数字形式的IP

范例:

netstat -tuln

进程相关指令

相当于Windows的任务管理器

指令

ps

执行者:所有用户

说明:查看系统运行的进程

语法:

ps [选项]

选项:

-a:显示所有终端中的进程

-x:显示所有未连接终端的进程

-u:显示进程所有者的信息

范例

ps -aux     --BSD语法格式
ps -ef      --标准语法格式
top

执行者:所有用户

说明:查看实时的系统状态信息,包括进程的数据PID、进程属主、优先级、CPU等

语法:

top
kill

执行者:所有用户

说明:根据进程的PID终止进程

语法:

kill [选项] PID

选项:

-9:强制终止进程运行

范例:

kill -9 69487      --终止进程PID为69487进程
killall

执行者:所有用户

说明:根据进程名终止当前运行的进程

语法:

killall [选项] PID

选项:

-9:强制终止进程运行

范例:

killall -9 demo01     --终止进程PID为69487进程

磁盘相关指令

指令

du

执行者:所有用户

说明:显示某文件或者目录的磁盘大小

语法:

du [选项] [文件/目录]

选项:

-b:以Byte为单位显示大小,1Byte=8Bit

-k:以KB为单位显示大小,1KB = 1024Bytes

-m:以MB为单位显示大小,1MB = 1024KB

-h:以人们较容易阅读的GB,MB,KB等格式显示,最常用的选项

-s:进显示总计(用于显示目录的大小)

范例:

du -h ~
df

执行者:所有用户

说明:显示磁盘分区磁盘的使用详情

语法:

df [选项] [文件系统/挂载点/目录]

选项:

-a:以Byte为单位显示完整的磁盘使用情况

-h:以人们较容易阅读的GB,MB,KB等格式显示,最常用的选项

范例:

df -h              -- 检索目录
df -h /dev/sda1    -- 检索文件系统
df -h /mnt         -- 检索挂载点

挂载相关指令

什么是卸载与挂载

Linux中根目录以外的文件想要被访问,就需要将其关联Linux系统中的某个目录来实现。我们将这 种关联操作称之为挂载“挂载”,这个目录就是“挂载点”,Linux专门提供了一个用于挂载外部设备的 目录,叫做 /mnt。解除次关联关系的过程称之为“卸载”。

文件挂载指令

fdisk

执行者:ROOT用户

说明:查看所有磁盘列表,包括Linux自身+外部存储设备(查询所有可挂载的文件系统,对应的文件系统会在/dev下产生一个对应的设备文件)

语法:

[sudo] fdisk -l

演示:
在这里插入图片描述

注意:以上的/dev/sda1就是我们后续挂载需要的设备名每一个名字对应一个存储空间。在Linux中,对硬件的操作,说白了,就是其设备的读写。

mount(挂载)

语法:

mount [选项] 文件系统 挂载点

ntfs 手动挂载

说明:挂载一个文件系统(硬件外设对应的文件。一般在/dev目录下)

执行者:ROOT用户

选项:

-t:文件系统的类型,指定要挂载的设备上的文件系统是类型

-r:只读挂载

-w:只写挂载

​ 注意:如果不给定选项,挂载后可读可写,一般不添加选项

范例:

sudo mount /dev/sda1 /mnt/udisk
解释:挂载/dev/sda1对应的外部存储设备到/mnt/udisk目录,此时访问udisk目录,就相当于访问外部存储设备,比如U盘

说明:

我们每一个外设在接入Linux系统的时候,Linux系统会为每一个外部设备准备一个映射文件, 这个映射文件就存放在/dev目录。如果我们想要访问这个外设(存储外设),我们就需要访问/dev

下对应的映射文件(设备文件),或这个根据文件系统将外设挂载到我们指定的挂载点,这样我们 就可以正常访问这个外设。

umount(卸载)

语法:

umount [选项] 文件系统/挂载点

说明:卸载文件系统

执行者:ROOT用户

选项:

-t:文件系统的类型,指定要挂载的设备上的文件系统类型

-f:强制卸载

范例:

sudo -f umount /dev/sda1

Linux共享环境搭建

NFS网络文件系统

说明:这个主要是应用于Linux系统与Linux系统之间的通信。

服务端

步骤:

  1. 在被共享的系统中安装nfs服务
sudo apt-get install nfs-kernel-server

2.nfs服务端的配置

sudo apt-get update
sudo apt-get upgrade

3.exports文件末尾添加如下内容 说明:

home/st/share *(rw,sync,no_root_squash)

说明:

/home/st/share :要被共享的目录

\* :指定哪些用户可以访问

① `*` :表示所有可以ping通该主机的用户

② `192.168.11.* `:表示指定网段中的用户可以访问

​ ③192.168.11.13:表示指定IP的用户可以访问

(rw,sync,no_root_squash) :表示访问权限(其它选项:man 5 exports查看),可以1个,可以多个

​ ① ro :只读

②` rw `:读写

③ `sync` :同步

④` no_root_squash `:不降低root用户的权限

4… 重启nfs服务

sudo service nfs-kernel_server restart

或者

sudo /etc/init.d/nfs-kernel-server restart
客户端
  1. nfs客户端环境搭建

    sudo apt-get install nfs-common
    

2.nfs客户端查看服务端的共享目录(非必须),服务端IP

sudo showmount -e 服务端IP

范例:

sudo showmount -e 192.168.11.7
  1. 将共享目录挂载到本地目录
sudo mkdir /mnt/remote   --创建本地目录
sudo mount 主机IP:服务端共享文件目录 /mnt/remote   --将共享目录挂载到本地目录

范例:

 sudo mount 192.168.11.7:/home/st/share /mnt/remote
 cd /mnt/remote

Samba服务器搭建

说明:这个主要是应用于Linux系统与windows系统之间的通信。

服务器端环境搭建

安装samba服务

sudo apt-get install samba
samba服务器端配置
sudo vim /etc/samba/smb.conf 

在文件中可添加如下的内容:

 [shared]    
	 path=/home/st/share    
 	writeable=yes    
	 public=yes    
 	browseable=yes    
	 available=yes 

其中: [shared]:是windows系统所能看到的共享文件夹名称; path:linux 系统共享的文件目录

注意:

同时修改共享目录权限为: sudo chmod 777 共享目录

重新加载samba配置文件
 sudo service smbd reload
重新启动samba服务
sudo service smbd restart

至此Linux系统中samba服务就搭建完成了。

windows系统中就可以在 “运行” 中采用 \\192.168.11.7 来访问到Linux共享文件,注意该IP是 Linux 系统的IP.

在这里插入图片描述

ftp服务搭建

说明:实现两个系统之间的文件访问。

服务器端环境搭建

安装ftp服务

sudo apt-get install vsftpd
ftp服务器端配置
 sudo vim /etc/vsftpd.conf 

在文件中可开启如下的设置:

 local_enable=YES
 write_enable=YES

这两个设置缺省是注释掉的,也就是前面有#号。取消掉#就可以了。

重新启动ftp服务
 sudo service vsftpd restart

这样在Linux系统中ftp服务就搭建完成了。 在windows系统中可以使用任意一款FTP客户端软件来 连接Linux, 比如下图的FlashFXP.

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值