嵌入式Linux开发环境学习(二)
嵌入式Linux开发环境学习(二)
一、嵌入式Linux命令
网络命令
ifconfig/ip
-
配置网络接口命令----
ifconfig/ip
-
基本语法:
ifconfig [参数] [网卡名称] [操作]
-
现阶段常用操作:直接使用ifconfig命令查看系统的IP地址,MAC地址,网络接口状态
-
命令代替:
ip
命令作为Linux系统中最新的网络配置命令,在功能上覆盖了ifconfig
命令
-
文件操作命令/符号
重定向符
-
>
:输出重定向-
作用:将标准输出写入文件(覆盖模式)
-
常用示例:
ls > file.txt
-
-
>>
:追加重定向-
作用:将标准输出写入文件(追加模式)
-
常用示例:
echo "new" >> file.txt
-
-
<
:输入重定向-
作用:将文件内容作为标准输入
-
常用示例:
sort < input.txt
-
-
|
:管道符-
作用:将一个命令的标准输出作为另一个命令的标准输入
-
常用示例:
ls | grep ".txt"
-
通配符简介
-
通配符是一类特殊字符,它们本身不代表自己,而是作为”占位符“或“通配符”,用来匹配文件或路径名中的一部分,在命令中使用通配符时,shell会首先展开通配符,将其替换为所有匹配的文件名,然后再将完整的命令传递给执行程序,其主要作用为让用户能够用简洁的模式一次性的操作多个文件,而无需一次次的输入文件名
-
常见通配符如下:
-
*
:星号用来匹配任意长度的任意字符串(例如 ls *.txt:列出所有以.txt结尾的文件) -
?
:问号用来匹配任意单个字符(例如ls ?.txt:列出所有由单个字符后跟.txt组成的文件)
-
正则表达式简介
在Linux系统中,正则表达式是一种强大的文本匹配工具,相较于通配符,其语法更加复杂,通配符主要用于文件名/路径名匹配(由shell处理),而正则表达式常用于复杂的文本搜索和模式匹配,应用于grep,awk,sed等命令和脚本编程中,它能够通过特定语法规则快速定位,过滤或替换复杂的文本模式练习网站
grep
-
作用:在指定文件中查找文件里符合条件的字符串或正则表达式
-
语法结构:
grep [选项] [文件名]
-
-i:忽略大小写进行查找匹配
-
-v:反向查找匹配
-
-n:显示匹配的行号
-
-r:递归查找子目录中的文件
-
-l:只打印匹配的文件名
-
-c:只打印匹配的行数
-
-
常用示例:
grep -r -n ”hello“ /(在根目录下递归寻找含有hello的行)
find
-
作用:在指定目录下查找文件和目录
-
语法格式:
find [路径] [选项] [匹配内容]
-
新学习的选项:-exec,-xargs,-type
-
-exec:
-
语法格式:
find [路径] [选项] -exec 命令 {}\;
-
{}:是一个占位符,会被当前找到的文件路径替换
-
\;是转义的分号,用于标记-exec参数的结束
-
-
功能介绍:对find匹配到的结果进行进一步的处理
-
实现逻辑:每匹配到一个文件,就启动一个新的进程来执行指定的命令
-
假设find找到三个文件:file1.txt file2.txt file3.txt find . -name "*.txt" -exec ls -l{} \; 实际相当于执行: ls -l ./file1.txt ls -l ./file2.txt ls -l ./file3.txt
-
-
用法示例:find . -name "*.c" | xargs grep -n "main"(查找当前目录下的.c文件,并输出含有main的行)
-
-
-
-xargs:
-
常见语法格式:find [搜索路径] [搜索条件] -print0 | xargs -0 [选项] [命令]
-
功能介绍:将找到的文件批量处理,尽可能减少命令执行的次数
-
实现逻辑:
-
假设find找到三个文件:file1.txt file2.txt file3.txt find . -name "*.txt" | xargs ls -l 实际相当于执行: ls -l ./file1.txt ./file2.txt ./file3.txt
-
-
-
-type:
-
功能介绍:按照文件类型匹配目标文件
-
文件类型选项介绍:
-
d:目录文件
-
c:字符型设备文件
-
f:普通文件
-
s:套接字文件
-
-
which
-
功能:查找命令文件,会在环境变量$PATH设置的目录里查找符合条件的文件
-
语法结构:which [命令名]
-
wc
-
功能介绍:统计文件内容,例如文件的字节数,字数或是列数
-
语法格式:wc [选项] [文件名]
-
-c:统计字节数
-
-l:统计行数
-
-w:统计单词数
-
-
用法示例:wc -c file.txt //统计目标文件中的字节数
-
split
-
功能介绍:文件分割,将一个大文件分割成多个相同属性的小文件
-
语法格式:split [选项] [要拆分的源文件] [输出文件前缀]
-
-l:设置分割文件后每个文件的行数
-
-b:设置分割后每个文件的大小
-
-
常见示例: split -b 10M file.txt f //以10MB一份的大小进行文件分割
-
sort
-
功能介绍:文本排序工具,默认以行为单位,从每行的首字符开始,按照ASCII比较
-
语法格式:sort [选项] [文件名]
-
-b:忽视每行前面出现的空格
-
-f:将小写字符视作大写字母进行排序
-
-r:反序排列
-
-t<分隔符>:指定分隔符、
-
-k:对指定列进行排序
-
-
常用示例:sort -r names.txt //逆序排列目标文件中结果
-
cut
-
功能介绍:用于显示每行从开头算起num1到num2的文字的命令
-
语法结构:cut [选项] [文件]
-
-b:以字节为单位进行分割
-
-c:以字符为单位进行分割
-
-d:自定义分隔符
-
-f:与-d一起使用,指定分隔符
-
-
常用示例:cut -c1,3,5 data.txt //提取每行的1,3,5个字符
-
进程管理命令
ps
-
功能介绍:显示进程状态
-
语法结构:ps [选项]
-
-e:显示所有进程
-
-f:显示完整格式的详细信息,包括进程之间的层级关系
-
-a:显示当前终端下的所有进程
-
-
kill
-
功能介绍:终结指定命令
-
语法结构:kill [进程号]
二、嵌入式Linux开发工具
vim
-
功能简介:一个功能强大且高度可定制的文本编辑器,是vi的增强版本
-
语法格式:vim [选项] [文件名]
三种工作模式
-
命令模式
-
初始模式,打开文件时的默认格式,此状态下敲击键盘会被识别为命令
-
常用命令:
i -- 切换到输入模式,在光标当前位置开始输入文本 x -- 删除当前光标所在处的字符 : -- 切换到底线命令模式,以在最底一行输入命令 a -- 进入插入模式,在光标下一个位置开始输入文本 o:在当前行的下方插入一个新行,并进入插入模式 O -- 在当前行的上方插入一个新行,并进入插入模式 dd -- 剪切当前行 yy -- 复制当前行 p(小写) -- 粘贴剪贴板内容到光标下方 P(大写)-- 粘贴剪贴板内容到光标上方 u -- 撤销上一次操作 Ctrl + r -- 重做上一次撤销的操作 :w -- 保存文件 :q -- 退出 Vim 编辑器 :q! -- 强制退出Vim 编辑器,不保存修改
-
-
插入模式
-
在命令模式下按下i/o/a即可切换到插入模式,此状态下可以正常对文本内容进行编辑
-
按下esc键可以切换到命令模式
-
-
底线命令模式
-
在命令模式下按下:(英文冒号)即可切换到命令行模式,此状态下可以执行不同命令
-
按下esc按键退回到命令模式
-
vim配置
-
vim原生状态下使用及其不便,需要一步步的配置来提高编写效率
-
配置流程
-
在根目录下创建.vimrc文件(vim ~/.vimrc)
-
修改.vimrc文件内容(将如下内容复制到.vimrc文件中即可)
syntax on "语法高亮
set number "显示行号
set tabstop = 4 "设置缩进大小
set autoindent "开启自动缩进
set mouse = a "设置鼠标可用
set cursorline "高亮显示光标当前所在行
set cindent "针对C语言的自动缩进
set st = 4 " Set the width of the soft tab to 4 spaces
set shiftwidth = 4 "设置自动缩进宽度为4个空格
set sts = 4 "设置插入模式下tab键的大小为4个空格
set ruler "显示光标当前所在位置的行号和列号
set showmode "显示当前vim的工作模式
set bg = dark "设置暗色背景
set hlsearch "搜索高亮
set laststatus = 2 "显示状态栏
复制时去掉注释
-
配置效果
三、远程连接Linux操作系统
为了解决虚拟机卡顿和云服务器使用问题,需要通过远程连接来对系统进行操作
SSH协议介绍
Secure Shell(SSH)是制定在应用层基础上的安全网络协议,它是专为远程登录会话(可以使用Windows远程登录Linux服务器进行文件互传)和其它网络服务提供安全性的协议,可以有效的弥补网络中的漏洞,通过ssh,可以把所有传输的数据进行加密,传输的数据是经过压缩的,所以可以加快传输的速度。
连接步骤
-
首先需要在Linux操作系统中安装SSH客户端和服务器,分别通过
sudo apt-get install openssh-client
和sudo apt-get install openssh-server
命令来完成 -
然后需要下载第三方软件来连接服务器,这里使用的是MobaXterm软件进行远程连接,连接步骤简单