收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
- -L 将压缩文件中的全部文件名改为小写。
- -M 将输出结果送到more程序处理。
- -n 解压缩时不要覆盖原有的文件。
- -o 不必先询问用户,unzip执行后覆盖原有文件。
- -P<密码> 使用zip的密码选项。
- -q 执行时不显示任何信息。
- -s 将文件名中的空白字符转换为底线字符。
- -V 保留VMS的文件版本信息。
- -X 解压缩时同时回存文件原来的UID/GID。
- [.zip文件] 指定.zip压缩文件。
- [文件] 指定要处理.zip压缩文件中的哪些文件。
- -d<目录> 指定文件解压缩后所要存储的目录。
- -x<文件> 指定不要处理.zip压缩文件中的哪些文件。
- -Z unzip -Z等于执行zipinfo指令。
6、查看文件夹大小
du [选项][文件]
-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或–total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或–kilobytes 以KB(1024bytes)为单位输出。
-m或–megabytes 以MB为单位输出。
-s或–summarize 仅显示总计,只列出最后加总的值。
-h或–human-readable 以K,M,G为单位,提高信息的可读性。
-x或–one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L<符号链接>或–dereference<符号链接> 显示选项中所指定符号链接的源文件大小。
-S或–separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-X<文件>或–exclude-from=<文件> 在<文件>指定目录或文件。
–exclude=<目录或文件> 略过指定的目录或文件。
-D或–dereference-args 显示指定符号链接的源文件大小。
-H或–si 与-h参数相同,但是K,M,G是以1000为换算单位。
-l或–count-links 重复计算硬件链接的文件。
常用命令:
查看opt目录下面所有文件大小
du -sh /opt
查看当前目录所有文件
du -sh *
查看具体文件大小
[root@localhost ~]# du -sh 文件名.doc
4.0K 文件名.doc
7、文件数据排序
sort命令可以用于文件数据排序,然后将排序结果打印出来。
语法:
sort [选项] [文件]
常用选项:
选项 | 含义 |
---|---|
-b | 忽略每行前面开始出的空格字符 |
-c | 检查文件是否已经按照顺序排序 |
-d | 排序时,处理英文字母、数字及空格字符外,忽略其他的字符 |
-f | 排序时,将小写字母视为大写字母 |
-i | 排序时,除了040至176之间的ASCII字符外,忽略其他的字符 |
-m | 将几个排序号的文件进行合并 |
-M | 将前面3个字母依照月份的缩写进行排序 |
-n | 依照数值的大小排序 |
-o | <输出文件> 将排序后的结果存入制定的文件 |
-r | 以相反的顺序来排序 |
-t | <分隔字符> 指定排序时所用的栏位分隔字符 |
-k | 指定需要排序的栏位 |
8、去除文件重复行
使用uniq这个命令只能去除连续的的重复行。所以需要结合sort命令使用,先sort排序,然后uniq去除重复的
语法:
uniq [选项] [文件]
选项 | 含义 |
---|---|
-c | 打印每行在文本中重复出现的次数 |
-d | 只显示有重复的纪录,每个重复纪录只出现一次 |
-u | 只显示没有重复的纪录 |
9、vim命令
vi
和vim
是Linux很常用的文本编辑器,两种功能类似也稍有不同,鉴于命令操作比较多,本博客只挑vim命令,介绍一些比较常用的
vim命令使用,直接加上文件名就行
vim file1
-
vim的模式
- Normal 模式:进入Vim后的一般模式
- Insert 模式:按下i键后进入该模式,可以修改文档。
- Visual 模式:按下v键后进入该模式,可以选择文档内容。
-
vim退出
:q
:退出。:q!
:强制退出,放弃所有修改。:wq
:保存修改并退出。
-
一些快捷键
- 方向键也可以用h、j、k、l。
:0
到行首,:$
到行尾。- 按
/
查找,输入关键字查找,n下一个,N上一个
10、删除文件夹
示例:
rm -rf /var/log
删除文件:rm -f /var/log/test.log
注意:使用这个
rm -rf
的时候一定要格外小心,最好备份一下,linux没有回收站的
11、创建文件夹
创建文件夹a,使用如下命令
mkdir a
12、打印当前目录
打印当前的目录路径,使用pwd
命令
pwd
pwd:是 Print Working Directory (打印工作目录)的缩写,显示用户当前所处的工作目录
13、查看日志文件关键字
# 返回日志文件里有test关键字的所有行
cat log.log | grep "test"
tail log.log | grep "test"
grep -i "test" log.log
三、网络通信
1、netstat监控命令
netstat命令是用于监控进出网络的包和网络接口统计的命令行工具
语法:netstat [param]
param参数可以为:
- -h : 查看帮助
- -r : 显示路由表
- -i : 查看网络接口
2、linux检查网络
到网络配置文件目录
cd /etc/sysconfig/network-scripts
查看目录下的文件,找到ifcfg开头的文件
ls -ll
en33
这个后缀不固定,根据自己系统的查看
vi /etc/sysconfig/network-scripts/ifcfg-en33
修改ONBOOT=yes
,ONBOOT是指明在系统启动时是否激活网卡,只有在激活状态的网卡才能去连接网络,进行网络通讯其中en33是设备名,设置了linux网络,需要重启网络,可以用命令:
service network restart
3、SELinux简介
SELinux全称是 Security-Enhanced Linux,它是由美国国家安全局(NSA)贡献的,它为 Linux 内核子系统引入了一个健壮的强制控制访问Mandatory Access Control架构。详情可以参考SELinux 入门,SELINUX工作原理
其实SELinux的功能也就是类似于防火墙的功能,不过安全相对比较好,ok,所以本博客介绍一下SELinux的使用命令
getenforce命令,这个是查看当前SELinux的运行模式的指令,SEliunx有三种模式。分别是:
- Enforcing:强制模式。代表SELinux在运行中,且已经开始限制domain/type之间的验证关系
- Permissive:宽容模式。代表SELinux在运行中,不过不会限制domain/type之间的验证关系,即使验证不正确,进程仍可以对文件进行操作。不过如果验证不正确会发出警告
- Disabled:关闭模式。SELinux并没有实际运行
SEliunx模式快捷转换
# 转换为Permissive宽容模式
setenforce 0
# 转换为Enforcing强制模式
setenforce 1
查看selinux状态
getenforce
SELINUX模式可能会影响一下应用使用,临时禁用SELINUX(学习用的linux才可以禁用,生产的不建议禁用SELINUX)
setenforce
永久禁用SELINUX(学习用的linux才可以禁用,生产的不建议禁用SELINUX)
# 将SELINUX=enforce改成SELINUX=disabled
vi /etc/selinux/config
4、防火墙设置
查询linux系统防火墙开启状态
firewall-cmd --state
临时关闭防火墙(学习用的linux才可以禁用,生产的不建议禁用)
systemctl stop firewalld.service
永久关闭防火墙(学习用的linux才可以禁用,生产的不建议禁用)
systemctl disable firewalld.service
查询防火墙规则列表
iptables -L
把默认策略改成ACCEPT
iptables -P INPUT ACCEPT
清除防火墙规则
iptables -F
配置防火墙允许ip
iptables -I INPUT -s 192.168.0.0 -j ACCEPT
-A INPUT只在INPUT链中插入一条规则,-s匹配源地址,这里的0/0指可以是任何地址,-i指定网络接口 -d匹配目的地址 -p匹配协议类型,-j指定要采取的操作,这 ACCEPT表示允许连接
5、CURL命令使用
curl命令是一个利用URL规则在shell终端命令行下工作的文件传输工具;curl命令作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征;
语法:语法格式:curl [参数] [网址]
5.1 查看curl帮助
- 查看命令参数
curl的参数很多,可以用命令curl --help
查看:
[root@localhost ~]# curl --help
国内翻译过来的curl文档:curl参数介绍
5.2 查看curl手册
- 查看详细使用
也可以使用curl --manual
查看基本用法例子:
5.3 提取指定网页
- 查看网页源码
语法:curl uri
[root@localhost ~]# curl www.baidu.com
<!DOCTYPE html>
<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title></head> <body link=#0000cc> <div id=wrapper> <div id=head> <div class=head\_wrapper> <div class=s\_form> <div class=s\_form\_wrapper> <div id=lg> <img hidefocus=true src=//www.baidu.com/img/bd\_logo1.png width=270 height=129> </div> <form id=form name=f action=//www.baidu.com/s class=fm> <input type=hidden name=bdorz\_come value=1> <input type=hidden name=ie value=utf-8> <input type=hidden name=f value=8> <input type=hidden name=rsv\_bp value=1> <input type=hidden name=rsv\_idx value=1> <input type=hidden name=tn value=baidu><span class="bg s\_ipt\_wr"><input id=kw name=wd class=s\_ipt value maxlength=255 autocomplete=off autofocus></span><span class="bg s\_btn\_wr"><input type=submit id=su value=百度一下 class="bg s\_btn"></span> </form> </div> </div> <div id=u1> <a href=http://news.baidu.com name=tj\_trnews class=mnav>新闻</a> <a href=http://www.hao123.com name=tj\_trhao123 class=mnav>hao123</a> <a href=http://map.baidu.com name=tj\_trmap class=mnav>地图</a> <a href=http://v.baidu.com name=tj\_trvideo class=mnav>视频</a> <a href=http://tieba.baidu.com name=tj\_trtieba class=mnav>贴吧</a> <noscript> <a href=http://www.baidu.com/bdorz/login.gif?login&tpl=mn&u=http%3A%2F%2Fwww.baidu.com%2f%3fbdorz\_come%3d1 name=tj\_login class=lb>登录</a> </noscript> <script>document.write('<a href="http://www.baidu.com/bdorz/login.gif?login&tpl=mn&u='+ encodeURIComponent(window.location.href+ (window.location.search === "" ? "?" : "&")+ "bdorz\_come=1")+ '" name="tj\_login" class="lb">登录</a>');</script> <a href=//www.baidu.com/more/ name=tj\_briicon class=bri style="display: block;">更多产品</a> </div> </div> </div> <div id=ftCon> <div id=ftConw> <p id=lh> <a href=http://home.baidu.com>关于百度</a> <a href=http://ir.baidu.com>About Baidu</a> </p> <p id=cp>©2017 Baidu <a href=http://www.baidu.com/duty/>使用百度前必读</a> <a href=http://jianyi.baidu.com/ class=cp-feedback>意见反馈</a> 京ICP证030173号 <img src=//www.baidu.com/img/gs.gif> </p> </div> </div> </div> </body> </html>
- 显示头信息
curl -i https://www.baidu.com
打印信息:
[root@localhost ~]# curl -i https://www.baiud.com
curl: (7) Failed connect to www.baiud.com:443; Connection refused
[root@localhost ~]# curl -i https://www.baidu.com
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: keep-alive
Content-Length: 2443
Content-Type: text/html
Date: Mon, 13 Jul 2020 07:22:02 GMT
Etag: "588603eb-98b"
Last-Modified: Mon, 23 Jan 2017 13:23:55 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
...
- 显示通信过程
curl -v www.baidu.com
curl -v www.baidu.com
* About to connect() to www.baidu.com port 80 (#0)
* Trying 182.61.200.7...
* Connected to www.baidu.com (182.61.200.7) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: www.baidu.com
> Accept: */*
>
< HTTP/1.1 200 OK
< Accept-Ranges: bytes
< Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
< Connection: keep-alive
< Content-Length: 2381
< Content-Type: text/html
< Date: Mon, 13 Jul 2020 07:24:46 GMT
< Etag: "588604c8-94d"
< Last-Modified: Mon, 23 Jan 2017 13:27:36 GMT
< Pragma: no-cache
< Server: bfe/1.0.8.18
< Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
<
<!DOCTYPE html>
...
- 查看议定书
[root@localhost ~]# curl --trace-ascii output.txt https://www.baidu.com
- 查看时间
curl --trace-ascii output.txt --trace-time https://www.baidu.com
5.4 用curl进行认证
- referer设置
referer参数描述了一个网页的来源,可以按F12调试模式,查看:
访问百度时候,加上referer为csdn:
[root@localhost ~]# curl --referer https://blog.youkuaiyun.com https://www.baidu.com
- 用户代理设置
用户代理常被用于兼容ie,有时,您会看到获取带有curl的页面不会返回与使用浏览器获取页面时看到的页面相同的页面,这时候可以设置用户代理:
curl www.baidu.com --user-agent "Mozilla/5.0"
curl www.baidu.com -A "Mozilla/5.0"
5.5 curl文件操作
- 保存文件
语法:curl -o filename uri
[root@localhost ~]# curl -o baidu.html www.baidu.com
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2381 100 2381 0 0 22761 0 --:--:-- --:--:-- --:--:-- 22894
- 文件下载
语法:curl uri filename --silent|progress
- –silent:不显示进度条
- –progress:显示进度条
[root@localhost ~]# curl https://avatar.csdnimg.cn/3/5/E/1\_meituantech\_1564971608.jpg -omeituan.jpg --progress
######################################################################## 100.0%
- 上传文件
语法:$ curl --form upload=@localfilename --form press=OK [URL]
[root@localhost ~]# curl --form upload=@baidu.html --form press=OK url
5.6 设置cookie
设置cookie,可以用命令--cookie
-c cookie-file
可以保存服务器返回的cookie到文件,-b cookie-file
可以使用这个文件作为cookie信息,进行后续的请求。
$ curl -c cookies http://example.com
$ curl -b cookies http://example.com
[root@localhost ~]# curl -c "name=cookiename" www.baidu.com
也可以用–cookie-jar指定cookie文件
[root@localhost ~]# curl www.baidu.com --cookie-jar cookie\_file
指定可下载的最大文件大小,可以用命令–limit-rate
[root@localhost ~]# curl www.baidu.com --limit-rate 50k
5.7 RESTFul API
ps:-H指定请求header,-d指定参数
- CURL POST:
[root@localhost ~]# curl -H "Content-Type:application/json" -X POST localhost:9200/company/employees/1 -d '{"id" :1,"name":"admin","password":"123"}'
- CURL GET:
[root@localhost ~]# curl -X GET localhost:9200/company/employees/1?pretty=true
- CURL DELETE:
[root@localhost ~]# curl -X DELETE localhost:9200/company/employees/1
- CURL PUT:
curl -H "Content-Type:application/json" -X PUT localhost:9200/company/employees/1 -d '{"id" :1,"name":"admin","password":"111"}'
curl默认是GET方式请求url的,要调POST等接口,必须加上-X参数指定
比较详细的可以参考:
- CURL 官网教程:https://curl.haxx.se/docs/httpscripting.html
- 阮一峰老师教程:http://www.ruanyifeng.com/blog/2011/09/curl.html
四、系统管理
1、查看内核版本
uname命令用于查看内核版本
2、查看linux系统ip
查看linux的ip地址:可以用命令
ip addr
3、查看ip是否被占用
lsof -i:8080
4、uptime命令使用
uptime命令能够打印系统总共运行了多长时间和系统的平均负载。uptime命令可以显示的信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
用help参数参数
[shared@localhost~]$ uptime --help
Usage:
uptime [options]
Options:
-p, --pretty show uptime in pretty format
-h, --help display this help and exit
-s, --since system up since
-V, --version output version information and exit
For more details see uptime(1).
[shared@localhost~]$ uptime -V
uptime from procps-ng 3.3.10
Options:
- -p, --pretty show uptime in pretty format //比较美观的打印
- -h, --help display this help and exit // 查看参数帮助
- -s, --since system up since // 查看系统当前时间
- -V, --version output version information and exit // 查看版本
5、telnet命令使用
不管在window还是linux系统要校验某台服务器是否可以ping通,都可以使用命令,如果要加上断口的,linux可以使用telnet命令
语法:telnet ip port
telnet 127.0.0.1 8080
6、关机重启命令
关机命令:shutdown -h now(立刻进行关机)
halt(立刻进行关机)
poweroff(立刻进行关机)
重启命令:shutdown -r now(现在重新启动计算机)
reboot(现在重新启动计算机)
区别:shutdown
命令需要root用户或者具有root权限的用户才能操作,其它命令任意用户。halt 与 poweroff 具有相同的功能
7、查看系统当前登录用户
可以使用w
命令:
[root@localhost ~]# w
下面列举主要的
选项 | 含义 |
---|---|
-h | 不显示输出信息的标题 |
-l | 用长格式输出 |
-s | 用短格式输出,不显示登陆时间,JCPU 和 PCPU 时间 |
-V | 显示版本信息 |
只显示某个用户的信息 |
[root@localhost ~]# w [选项] [用户名]
8、切换登录用户
ps:切换用户可以使用命令
su root
进行系统用户切换
9、免密切换服务器
如果服务器设置了免密,在一台服务器免密切换到另外一台服务器,可以使用命令
ssh root@127.0.0.1
,然后输入密码即可
附录:
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
功能
7、查看系统当前登录用户
可以使用w
命令:
[root@localhost ~]# w
下面列举主要的
选项 | 含义 |
---|---|
-h | 不显示输出信息的标题 |
-l | 用长格式输出 |
-s | 用短格式输出,不显示登陆时间,JCPU 和 PCPU 时间 |
-V | 显示版本信息 |
只显示某个用户的信息 |
[root@localhost ~]# w [选项] [用户名]
8、切换登录用户
ps:切换用户可以使用命令
su root
进行系统用户切换
9、免密切换服务器
如果服务器设置了免密,在一台服务器免密切换到另外一台服务器,可以使用命令
ssh root@127.0.0.1
,然后输入密码即可
附录:
[外链图片转存中…(img-p58v3WeI-1715887376370)]
[外链图片转存中…(img-6c6iGdY7-1715887376370)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)