你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32MP1嵌入式Linux驱动开发指南V1.7-Ubuntu系统入门

[复制链接]
STMCU小助手 发布时间:2022-9-27 17:51
Ubuntu系统入门
1 `" g% `$ a  X/ k在上一章我们已经安装好虚拟机,并且在虚拟机中安装好了Ubuntu操作系统了,本章我们就来学习Ubuntu系统的基本使用,通过本章的学习为我们以后的开发做准备。Ubuntu系统是和Windows一样的大型桌面操作系统,因此功能非常强大,不是一章就能介绍完的,因此本章叫做《Ubuntu系统入门》。本章的主要目的是教会读者掌握后续嵌入式开发所需的Ubuntu基本技能,比如系统的基本设置、常用的shell命令、vim编辑器的基本操作等等,如果想详细的学习Ubuntu操作系统请参考其它更为详实的书籍,本章参考了《Ubuntu Linux从入门到精通》,这本书不厚,很适合用来作Ubuntu入门。
& Y) U1 S# A$ c2 _
, U* B7 v" s, g9 V/ k( |& S2.1 Ubuntu系统初体验
; t: r) P* p, E0 c( G" w8 ]) z2.1.1 Hello Ubuntu/ d6 [, @& _- O
上一章我们已经安装好了Ubuntu操作系统,我们再来回顾一下如何开机:. I! `& w0 s+ w# k7 b$ ], C9 u
1、打开VMware虚拟机软件,打开以后如图2.1.1.1所示:& _6 i- O! ]3 w, n! S: g
/ d: w+ i3 \7 a. v
08523a72f2e445edb497a4b8942a8c24.png
" r! d9 P* d. }" U3 j+ b4 ]6 \/ ]* `0 ]/ {; L9 w4 i
图2.1.1.1 WMware主界面& g+ c' l  g3 o: P0 g+ P  [. |
2、打开VMware上的开机按钮,打开方式如图2.1.1.2所示:
8 ~; e! S% B3 o2 l% R
0 b7 P* h2 c+ V fcb06f2ffa9d4a478c7cbbac581b1655.png " c% P# D* d# ?) p8 P; i

4 |" z, x7 E$ y! v) V图2.1.1.2 VMware开机按钮1 G/ T: L! z' t/ y2 Q! O
3、点击图2.1.1.2中两个开机按钮中的任意一个就会打开Ubuntu操作系统,首先进入图2.1.1.3所示的登陆界面,输入密码即可进入系统。, S& e2 V  j0 b/ w! d5 c8 v
) E1 D, U1 Y: |
7a13f3b5f9ff44f994e55e7b052c7f36.png . b4 e* M: _' h

% Q) _7 u1 {/ s  J) C- U图2.1.1.3 Ubuntu登陆界面
% q) L' ]# c/ k3 p+ _6 o. D在登陆界面输入密码,进入系统主界面,如图2.1.1.4所示:
& \! t4 \9 c% Q9 S5 ]( K& s; M/ d/ T8 u. G( I/ w4 T; G) c/ f; G
ad3845025ebb4937a673d9e85ecc40bb.png
: x+ q1 `6 J8 r3 v0 H* b* U$ ?  r, h$ _" P
图2.1.1.4 Ubuntu主界面
3 j' ?6 K. V, X进入主界面以后大家就可以看到和Windows基本一样,左侧有一列APP,第一个是firefox浏览器,可以用来上网,比如我们登陆百度网站,如图2.1.1.5所示:3 ~" c; `/ G2 K( R9 P, |. f) B! V
图2.1.1.5 firefox浏览器
( _% s0 q4 y2 Q, y9 V3 S8 f( o* d第二个是Thunderbird邮件/新闻,第三个是文件浏览器,打开以后可以浏览Ubuntu系统中的文件,打开以后如图2.1.1.6所示:
# _* l1 X: {, m4 W. E' f/ b# x' d, n' r6 \2 p' ?! i
42d7dbe7d6524dc983f658858c1d8c67.png $ B0 w: S% P6 `. F) F5 b+ Z& ~; ]% R
, A3 `( q% ^; @; v; P  Y
图2.1.1.6 文件浏览
4 _" }  u3 p0 `* A  A' h  k8 y' ^
& ]  l, T! f( h 42a113e686914a39aa4864ca9dab8642.png
9 n+ f) u. W) m# g2 ^. _2 x* `, t5 @
2 B1 q: s& w- C3 r, R这里还有其它一些APP,大家可以自行打开看一下这些APP都是干啥的,这里就不一一详细的介绍了。
/ ^7 ]: F! h8 x, a' z2.1.2 系统设置
8 G% n! q: d3 U. D& Z& h4 k我们会发现,Ubuntu的默认桌面很小,这是因为Ubuntu默认分辨率是800*600,因此我们首先要设置系统分辨率,调整到合适的大小。打开系统设置界面,打开方式如图2.1.2.1所示:
% n3 S8 A  T, l" V, K
7 |/ K5 F3 u8 k9 p 4c9a2a198c524cb5a51813ef41539b94.png 4 Y, I# c1 c' Y: }$ n
/ s( r' d* V4 H! C: n% u  F  Q. G
图2.1.2.1 打开系统设置
* U9 D; S2 A: Q- |# j# e2 Q5 C打开以后的系统设置界面如图2.1.2.2所示:
+ o$ C& ~- k# s
: A( y0 U3 e- E8 C! h2 U 3204b267e1dc4b738c1821655d81f9b1.png
0 M! Q" [1 G5 D) O9 X8 _' ^: B6 s* R/ M& g' V- J
图2.1.2.2 系统设置界面0 c/ G5 u4 U0 Q/ }7 |/ e, U
系统设置界面可以完成系统的大部分设置,我们找到“设备”选项并打开,打开以后如图2.1.2.3所示:
! e- x9 k( }. P" R% b! f; ]7 e: F, U0 P! T
20525eaa6dee4511acfc28d2399e510f.png 8 I- u( e- X4 A' L/ @- I
" Q: h2 T4 s" q
图2.1.2.3 设备界面
: s& H7 p, A0 S' V图2.1.2.3就是“设备”界面,选中“显示”这一栏,右边就是显示相关设置,就有分辨率选项,点击“分辨率”选项,如图2.1.2.4所示:4 [2 M% c! U: @4 V1 J0 V8 u6 U7 {: Q

2 {6 s" H; ^* K5 m( Y# R! b 2d4911f3fdc643a99762354dc3fce807.png
  ?) B8 r) Y6 A
- d, \% e; O, k  w8 n, h图2.1.2.4 分辨率设置项; F- i& g, e, ?7 E9 [/ L
从图2.1.2.4可以看出,Ubuntu安装好以后默认分辨率是800×600的,点击“分辨率”这一栏,可以对Ubuntu分辨率进行设置,由于默认分辨率太低,因此图2.1.2.4中看到的图像不完整,不过这不影响我们进行分辨率设置,大家根据自己所使用的显示器进行设置,比如我这里设置Ubuntu分辨率为1920×1200。设置好以后点击右上角的“应用”按钮,这里要注意,由于默认分辨率太小了,导致右上角的“应用”按钮看不到,所以需要拖动设置界面,把右侧的“应用”按钮拖出来,如图2.1.2.5所示:; z3 L3 R2 J1 t
5 A) D" Q* g/ O: X
7255127af6d04c38a13402ccb6c572fb.png 6 B5 K" s) Z$ b' G) ~

+ p: j, E4 Y7 h( {图2.1.2.5 显示界面的“应用”按钮
3 f& m3 T/ A0 U8 t, I% A1 o, p点击图2.1.2.5中的“应用”按钮以后会弹出来是否保留显示设置对话框,点击“保留更改”,如图2.1.2.6所示:
3 G( ]7 j2 v! M0 g1 `1 g* V' A& n8 d9 r  c6 H$ \5 F# M; F: ?
01513cbf192a4a6b8995415302bec17c.png
& ^" n  p  Y% ~2 d# s
6 V+ k6 D' C2 r+ V3 L图2.1.2.6 是否保留显示设置对话框( W$ r8 z& g# r( w
设置好分辨率以后Ubuntu的主界面就大了,看起来也舒服了。通过设置系统分辨率这个例子,我们就知道了如何设置Ubuntu系统,如果有需要设置其它东西的话都可以到系统设置里面去进行,这里就不一一详细的介绍了。
) J$ n% `4 M6 g0 A5 e) Z$ {. B7 {2.1.3 系统关机与锁定
" a2 O5 W. y# V/ M0 \当我们不使用Ubuntu系统以后就需要将其关机,就和我们使用Windows系统一样,千万不要通过直接退出VMware软件来关机!!关机很简单,在主界面,点击右上角的关机图标,然后选择关机选项,如图2.1.3.1所示:. b( e! M  y: d6 |& I1 p; S
8 j' ~' l2 ?" u0 ^% o+ R: u5 r
71c0b76b2abb4594b8a9eda4f8e41ef2.png 4 C7 T% O7 m; C; ~3 |
! s  Y( M2 D* }9 }2 K6 ]7 U! A- n! h& G

& }7 s. y- I; D1 F图2.1.3.1 关机
, K2 s; \6 E; d# @1 o& U点击在图2.1.3.1中的关机按钮以后,会弹出关机对话框,如图2.1.3.2所示:
9 j! |1 B7 h5 P' J+ z8 ]. J$ N+ n! e
3bb3aae08cb849028e72f9b429c9932f.png ! c  b; w; n+ s, @3 @4 T
. E3 m  h% l; h, [6 Z5 Q
图2.1.3.2 关机对话框
# a8 O0 H7 i! z' z4 R6 }2 f可以看到有三个选项:取消,重启和关机,想要重启就点击“重启”按钮,想要关机就点击“关机”按钮。
: p5 G% b, o( ^, T$ p2 S" P有时候我们需要临时离开,但是既不想关闭Ubuntu,又不想让别人看我们的Ubuntu,这个时候就可以锁定系统,点击主界面右上角,打开图2.1.3.1所示操作界面,然后点击中间的 图标即可锁定系统。4 c  j$ K) g6 y4 H- r3 {( Q" ~4 y
2.1.4 中文输入测试
  I; }5 z: u! J( v* W6 S我们是中国人,平时用的做多的肯定是中文,那么Ubuntu下中文输入是否和Windows一样呢?如何在Ubuntu下使用中文输入法。本节我们就以创建一个文本为例,介绍如何在Ubuntu中使用中文输入法。
+ U7 p. h! s2 R3 o2 l# ^Ubuntu有个奇葩的地方,那就是安装好以后点击鼠标右键没有新建文档选项,这样我们创建文本文档很不方便。我们要做一个简单的设置,点击Ubuntu系统主界面上的文件APP,找到名为“模板”的文件夹,如图2.1.4.1所示:
. @/ c/ |0 M  p: |5 _9 @
8 Y; A, b8 `( U4 E 688de11a740e4bc9b28c25d3cc75b192.png ' f! j0 L* i, U, a# V
' [3 Z5 L0 j3 @5 k+ @
图2.1.4.1 模板文件夹
8 W1 X3 C; t" ~* ~* ~) q2 v) G; G+ X打开图2.1.4.1中的“模板”文件夹,此文件夹默认是空的,在此文件夹中点击鼠标右键,选择“在终端打开”,如图2.1.4.2所示:
( w) G$ b/ O: ]/ E1 |; v: Y1 I* \! u" E# G
2c5596eb36d9437b8ca681c6a799801b.png 9 h7 {& A4 h: U3 A* [" \" b# Z& O+ p
7 X1 }0 P( V% Y7 ~" m( d
图2.1.4.2 在终端中打开文件夹1 y  y4 w7 @* Q
打开终端以后使用gedit创建一个文件,输入如下命令:
( [" ]* O: a* a( r9 r" w* \sudo gedit 无标题文档 //使用gedit创建一个空文件
. L$ S$ h, A! _% \. D) j0 l* |+ x9 `上述命令需要输入中文“无标题文档”,Ubuntu和Windwos下的输入法切换是一样的,按下“WIN+空格键”组合键即可进行输入法选择。& L3 }8 N& i: N1 B8 x  |
输入上面的命令以后会用gedit创建并打开一个空文件,如图2.1.4.3所示:
. `& F) f7 B* u/ m
* L, s8 y' h, P1 b5 k3 h# g6 b5 v e55ceb17a85841e091b11447fe90efad.png % D, D; W7 Q5 D

' H6 D9 ^( G" P6 G图2.1.4.3 gedit创建文件
7 L' F* U2 [' k直接点击图2.1.4.3右上角的“保存”按钮,此时就会在图2.1.4.1中的“模板”文件夹下创建了一个名为“无标题文档”的空文件,如图2.1.4.4所示:
) K: |* A2 \, T$ e: N0 V4 W& ]9 E" f7 o
a8e5dee9f294471383fdc785130f296b.png
2 {/ O- q, y" b1 Q! S0 p1 D0 X$ J1 b/ w6 ^
图2.1.4.4 新建的“无标题文档”文件
% b7 n! U( V7 {% w# f- P$ h" P重新回到主界面,在桌面上点击鼠标右键,此时就会有“新建文档”选项,如图2.1.4.5所示:. g* F6 B* N8 n
$ m2 P+ }! c9 `0 v$ B1 |
510c25fef6cd4531a3e50842b71f9cdc.png
# H) v, J8 V& F4 \* U* L2 p
' L1 y1 P8 i( v图2.1.4.5 新建文档
; d+ \! g* A5 P/ P点击图2.1.4.5中的“无标题文档”,此时就会在桌面上创建一个名为“无标题文档”的文件,如图2.1.4.6所示:) ]8 g1 K6 ?6 d$ s% Z8 T1 }
" T+ Q. W9 J; i8 S. O8 r
69c9c05051834a299f2f7ebebda41d8f.png : G; u9 N# l  H
& K2 ^# A4 W8 ?: _, v) z, H8 d
图2.1.4.6 新建的无标题文档
0 N8 e: B1 ~2 L6 S5 d9 j' |双击打开文档,打开以后如图2.1.4.7所示:$ T" J) o" Z3 L; K

$ s; f3 L5 P! x( b! g 816f150fccad4769a44dfe97519af0ab.png ( |: C. I: j4 }2 q
7 h" a* [0 _4 O2 G9 \2 J
图2.1.4.7 打开文档
, m# s- x4 Z6 ], z% k% Q+ g2 I打开文档以后,我们可以尝试在里面输入一些英文和数字,输入英文和数字是没有任何问题的,输入中文的话需要切换到Ubuntu自带的拼音输入法,前面也讲了,使用“WIN+空格键”,切换到拼音输入法以后就可以输入中文了,如图2.1.4.8所示:4 P4 s" P, Y1 `5 p& l2 C

/ b  e* z8 {# p f0ebbd2ed19a4610818fcf566689f40f.png : I) L1 ~1 l' k) d

- R) z3 ?, t2 q; l2 o( d# G图2.1.4.8 输入中文文本. q2 q, K* E1 }8 q
大家会发现Ubuntu下的拼音输入法使用起来跟Windows下的输入法差距太大了,没有Windows下的输入法好用,没办法,谁让桌面端Linux用的少呢,所以也就没有啥公司开发Linux下的输入法。) [; t3 V! y4 k3 K, H0 \" y2 z
通过上面几个小节中对Ubuntu的基本操作来看,基本和Windows下的操作差不多,嵌入式开发中不会通过图形界面操作Ubuntu,而是通过命令行操作的。这也是我们接下来着重要讲的:Ubuntu(Linux)终端操作,会涉及到很多命令,但是常用的命令就那几十个,不需要刻意的去背,使用习惯了就自然记住了。不要看到要记命令就觉得可怕。根据2080原则,80%情况下只使用那20%的命令,实际情况会更少,常用的可能就那5%~10%的命令。* B: R( k  v2 n" W) A% k' }% g
2.2 Ubuntu终端操作
. ]5 s7 y# B9 c# m5 H7 R, I本节就是我们学习Ubuntu操作系统的重点了,终端操作,也就是俗称的“敲命令”,不管是哪个版本的Linux发行版系统,它都会提供终端操作,Linux下的终端操作类似与Windows下的DOS操作。要使用终端首先肯定是要打开终端,在主界面上点击鼠标右键,然后选择打开终端,如图2.2.1所示:8 F/ ~% k' X- _0 Z* b& C/ y

4 Y9 O* e# Y* J2 N7 C: Y2 G b8b9d1df7df64919a9241ba3b648bca0.png
, d* C$ B4 J1 N$ F9 E% G* {. i1 E# m" r0 S) a, G) C; U, [# m
图2.2.1 打开终端' m" |, Q, T! [  f; p
打开终端以后如图2.2.2所示:
& P+ p1 ]+ [/ b4 k- T% J# s5 U( L& u9 T
f80a82c355d64035831a26e997f85ab0.png
. h% ~  v( k3 M; {% }8 h0 _0 t* W
图2.2.2 终端界面8 P, Y- ]1 y9 i: S8 c
我们就是在图2.2.2所示界面上输入命令的,终端默认会有类似下面一行所示的一串提示符:: b: e2 Q& h- D8 T. Z
zuozhongkai@zuozhongkai-virtual-machine: ~$: O( X6 ~8 r  D
上述字符串中,@前面的“zuozhongkai”是当前的用户名字,@后面的zuozhongkai-virtual-machine是我的机器名字。最后面的符号“$”表示当前用户是普通用户,我们可以在提示符后面输入命令,比如输入命令“ls”,命令“ls”是打印出当前所在目录中所有文件和文件夹,如图2.2.3所示:
6 l# ?* t# c( ^/ u4 Y& |. m! m- _9 _. A+ e, n
3f3fa0efd6d64c198fb230d2dd8551a4.png
3 A1 j) ]0 r, p: X$ N
5 w8 C! Y+ |9 k- L% G图2.2.3 ls命令
: T# r& _; L1 S在图2.2.3中我们输入了“ls”这个命令,然后打印出了当前目录下的所有文件和文件夹,后面我们学习命令的时候就是在终端中输入相应命令的。
1 ^4 y1 d# B% L2 k4 ]& V2.3 Shell操作! c4 G  t# J2 S% ~$ e
2.3.1 Shell简介$ d, ]' U! l2 J+ A. ?0 t
学习linux的时候会频繁的看到Shell这个词语?那么什么是Shell呢?网上搜索一下,各种专业的解释一堆,但是对于第一次接触Linux的人来说这些专业的词语只会让人更晕。简单的说Shell就是敲命令。国内把Linux下通过命令行输入命令叫做“敲命令”,国外人玩的比较洋气,人家叫做“Shell”。因此以后看到Shell这个词语第一反应就是在终端中敲命令,将多个Shell命令按照一定的格式放到一个文本中,那么这个文本就叫做Shell脚本。
' s$ w2 _; h/ n' {: g严格意义上来讲,Shell是一个应用程序,它负责接收用户输入的命令,然后根据命令做出相应的动作,Shell负责将应用层或者用户输入的命令传递给系统内核,由操作系统内核来完成相应的工作,然后将结果反馈给应用层或者用户。# U; g% m+ V( H: r- _' G: e
2.3.2 Shell基本操作
1 A5 T3 J9 ?# p( Q7 [0 x0 l前面我们说Shell就是“敲命令”,那么既然是命令,那肯定是有格式的,Shell命令的格式如下:
( n5 Y( u; P" w5 y9 u6 M. g  D* Wcommand -options [argument]
# H; `8 T' [% i0 w6 H2 h# Xcommand: Shell命令名称。
+ k; m- j. B) f5 Koptions:选项,同一种命令可能有不同的选项,不同的选项其实现的功能不同。
/ }) D- \' O! H# [5 `: Largument:Shell命令是可以带参数的,也可以不带参数运行。1 y4 K9 F# Z7 B
同样以命令“ls”为例,下面“ls”命令的三种不同格式其结果也不同:
* K9 M- K# j( U( N( Q4 Bls
+ I" H8 J. e" N7 Kls –l* d2 }5 J2 A' F( q7 W1 J9 }
ls /usr4 s2 \. b5 v: v7 Q, _- C5 S$ A& M4 y+ |
这三种命令的运行结果如图2.3.2.1所示:3 q0 m0 l% v( v

& p5 j  V" y3 l& m5 V2 C6 o 1457c12e5c264cfca5ead01a1458d291.png 6 D+ B& @  E% x- y  A2 i" I+ ^

/ I$ a: J6 ]4 Y图2.3.2.1 ls命令4 Z# r8 X/ l. D/ O2 R9 Z
在图2.3.2.1中“ls”命令用来打印出当前目录下的所有文件和文件夹,而“ls -l”同样是打印出当前目录下的所有文件和文件夹,但是此命令会列出所有文件和文件夹的详细信息,比如文件大小、拥有者、创建日期等等。最有一个“ls /usr”是用来打印出目录“/usr”下的所有文件和文件夹。& Y% n/ g' _% |! c7 q  H' m
Shell命令是支持自动补全功能的,因为Shell命令非常多,如果不作自动补全的话就需要用户去记忆这些命令的全部字母。使用自动补全功能以后我们只需要输入命令的前面一部分字母,然后按下TAB键,如果只有一个命令匹配的话就会自动补全这个命令剩下的字母。如果有多个命令匹配的话系统就会发出报警声音,此时在按下一次TAB键就会列出所有匹配的命令,比如我们输入字母“if”,然后按下TAB键,结果如图2.3.2.2所示:, C6 @7 H% p+ z

  O- Y/ b4 a4 d/ k; f 3cbe5af679c84695ade224b5fd2abba2.png , s- p/ ^0 L4 `# s. m; V
1 s# c  T8 M. n- U
图2.3.2.2 “if”开始的命令
% ]; x1 i/ ^5 f, U4 q从图2.3.2.2可以看出,以“if”开头的命令有5个,我们以“ifconfig”为例(Ubuntu系统装好以后默认是没有ifconfig命令的,需要手动安装,在终端中输入“sudo apt-get install net-tools”),此命令是用来查看网卡信息的,我们重新输入“ifc”然后在按一下TAB键,就会自动补全出“ifconfig”命令,因为以“ifc”开头的命令只有一个,结果如图2.3.2.3所示:; r5 U2 M& U) Y# A

8 n( r9 F  k7 B/ R; f- k& U bbd35d6742a84e4b99ce279b8a437da3.png
6 P5 k# N; i  B8 E( Q$ N6 @2 }. ~7 p) S  X0 @
图2.3.2.3 ifconfig命令结果% Q1 i) t$ V- H) n9 \% z% B% `% [
2.2.4 常用Shell命令8 a! x8 B; R9 {9 ~8 y. j) `
我们做嵌入式开发用的最多就是Shell命令,Shell命令是所有的Linux系统发行版所通用的,并不是说我在Ubuntu下学会了Shell命令,换另外一个Linux发行版操作系统以后就没用了(不同的发行版Linux系统可能会自定义一些命令)。本节我们先来介绍一些Shell下常用的命令:2 C# @5 h2 X* \2 X
1、目录信息查看命令ls: C( G. s0 i& v0 V( q7 a- `( P" X
文件浏览是最基本的操作了,Shell下文件浏览命令为ls,格式如下:
& [! |2 ~/ U8 j- i' s9 G6 @! qls [选项] [路径]
% F* _6 I' V5 p* n. @ls命令主要用于显示指定目录下的内容,列出指定目录下包含的所有的文件以及子目录,它的主要参数有:( ~9 m" a% L* i5 @
-a :显示所有的文件以及子目录,包括以“.”开头的隐藏文件。
2 M0 J8 K% {" T# Y-l :显示文件的详细信息,比如文件的形态、权限、所有者、大小等信息。
) t7 c9 L% ^, H* b9 z- h" _' P4 l-t :将文件按照创建时间排序列出。
, i$ c2 y- d9 K/ n$ O$ p-A :和-a一样,但是不列出“.”(当前目录)和“…”(父目录)。" n9 T4 E1 z5 G' c* d. b
-R :递归列出所有文件,包括子目录中的文件。
2 V  a! f+ S* O5 lShell命令里面的参数是可以组合在一起用的,比如组合“-al”就是显示所有文件的详细信息,包括以“.”开头的隐藏文件,ls命令使用如图2.2.4.1所示:% E# |" u' H0 w9 ^

5 j, s% N/ G: ^" W" Q图2.2.4.1 ls命令演示1 Z$ `  o/ u  R. |
注意图2.2.4.1中tmp文件夹是我为了演示方便,自己创建的,里面的文件a,b和c也是我创建的,关于文件夹和文件的创建后面会详细的讲解。
3 I5 b. I  C' D1 B4 z% P+ Q2、目录切换命令cd
0 [" |& z! X0 d/ ?9 l7 [" ?$ _要想在Shell中切换到其它的目录,使用的命令是cd,命令格式如下:
& V1 k+ X$ r. Z8 D' u+ k2 D/ Ccd [路径]/ w7 @* ^+ L2 c9 H
路径就是我们要进入的目录路径,比如下面所示操作:
6 a  R6 O7 H3 |5 O& y/ S* X6 tcd / //进入到根目录“/”下,Linux系统的根目录为“/”,
9 ]$ @" L; y" Scd /usr //进入到目录“/usr”里面。+ y6 p  m) D3 t
cd … //进入到上一级目录。1 d0 Y+ {5 u$ x# y% j
cd ~ //切换到当前用户主目录
) [! l7 D3 a2 w: ^, I' l- D) A6 Z, `比如我们要进入到目录“/usr”下去,并且查看“/usr”下有什么文件,操作如图2.2.4.2所示:
. Q2 z2 O1 J% l/ d$ [
0 d& G: D5 U5 C; X, A 7ec8bf43a288446c98b309da8a43d3af.png 5 J* ^& `  A' G  s0 |
( n' N: g$ v# W6 @0 D
图2.2.4.2 cd命令演示! Y: x* A( d  [' w+ ~
在图2.2.4.2中,我们先使用命令“cd /usr”进入到“/usr”目录下,然后使用“ls”命令显示“/usr”目录下的所有文件。仔细观察图2.2.4.2可以看到,当我们切换到其它目录以后在符号“$”前面就会以蓝色的字体显示出当前目录名字,如图2.2.4.3所示:7 U5 E9 V7 u6 I9 l4 `

; G8 E& U; p/ F4 P( l 69ea9284577747549bab1580845acc03.png
4 i1 {4 H( ]7 |( _* l4 k
; n  e* Z  \7 ]3 M7 A图2.2.4.3 目录路径显示
) R( S! v1 L' o* A. J! U3、当前路径显示命令pwd1 G, Y( w$ F8 y, D+ e

4 P! t8 d; Q8 V! P9 l1 c4 e 24d6173a83f842639cb29c85d836ae4c.png 2 ^9 D( n" U! _4 G
  q, p7 ~9 O8 J2 e) W
图2.2.4.4 pwd命令
! d* }. z) l: M4、系统信息查看命令uname
' _% S) U$ F' X' y. p# ]  j* ?要查看当前系统信息,可以使用命令uname,命令格式如下:
! W1 Y0 l$ e: H2 C' \  O* _! suname [选项]
5 w) M$ c) Y5 b$ {( }可选的选项参数如下:
5 T: B6 O( D2 F- z. V6 v. h5 m( S5 y, C-r :列出当前系统的具体内核版本号。8 p% t8 e! j9 E
-s :列出系统内核名称。
) ?8 S* y6 M: H8 S8 G$ P( S-o :列出系统信息。
" g: C0 D2 A( ~使用如图2.2.4.5所示:
1 D- H$ o* I/ u5 |8 h; i
8 L" W9 I4 Q" @) ?' M f43e192b587549328c3b0717cb8f12be.png
- d1 o9 G5 W( N7 |- @- S* t& ~6 M& b( w; G
图2.2.4.5 uanme命令操作3 k& s! `) I- M
5、清屏命令clear" c2 g3 y5 f8 u" Q& X
clear命令用于清除终端上的所有内容,只留下一行提示符。
# ^, a/ H* o) z6、切换用户执行身份命令sudo
8 [# N6 |) B, S: |3 E! P1 g9 }Ubuntu(Linux)是一个允许多用户的操作系统,其中权限最大的就是超级用户root,有时候我们执行一些操作的时候是需要用root用户身份才能执行,比如安装软件。通过sudo命令可以使我们暂时将身份切换到root用户。当使用sudo命令的时候是需要输入密码的,这里要注意输入密码的时候是没有任何提示的!命令格式如下:3 n2 t! ^/ d$ D9 H1 c
sudo [选项] [命令]
, l9 `( z3 ~  A, e! E) ?选项主要参数如下:6 S& W# c( X" ^% \; ?  z: O
-h :显示帮助信息。
. X: ]* g" @* A-l :列出当前用户可执行与不可执行的命令' @# T% f; V5 ?  X2 V$ U; n4 v- G* I9 y
-p :改变询问密码的提示符。$ e' g! `2 j/ o& S( y% e2 r
假如我们现在要创建一个新的用户test,创建新用户的命令为“adduser”,创建新用户的权限只有root用户才有,我们在装系统的时候创建的那个用户是没有这个权限的,比如我的“zuozhongkai”用户。所以创建新用户的话需要使用“sudo”命令以root用户执行“adduser”这个命令,如图2.2.4.6所示:* K) m% V1 J4 H; b4 _1 r) P0 V

: E% Z9 F0 ^  _0 R b88cf1e7d46f422dae172b8751e8f18e.png
! y, x/ l; j/ V& W: w9 k: E
3 g- \& e4 ~* u9 s) _( N图2.2.4.6 sudo命令演示( b* L, v! r, y; t* N4 G
在图2.2.4.6中,我们一开始直接使用“adduser test”命令添加用户的时候提示我们“adduser:只有 root 才能将用户或组添加到系统。”所以我们要在前面加上“sudo”命令,表示以root用户执行adduser操作。+ D5 q; V" y* ?  a
7、添加用户命令adduser, ^: I  A- e/ ]9 j# ~0 r) A4 F
在讲解sudo命令的时候我们已经用过命令“adduser”,此命令需要root身份去运行。命令格式如下:3 e( g" i3 H4 u  F; r* T: j
adduser [参数] [用户名]) n: ?7 Y' G' Z3 E0 }) }
常用的参数如下:
0 S3 W) d, X5 |- z- Y-system :添加一个系统用户9 e" Z- a; A: x( o
-home DIR :DIR表示用户的主目录路径
; V1 B; X* n& l5 S- Z, |3 t-uid ID :ID表示用户的uid。
$ L+ |4 L/ ?$ y+ y-ingroup GRP :表示用户所属的组名。4 o" F$ {% j9 i% l, t/ O7 h
adduser的使用我们前面已经演示过了,大家可以试着再添加一个用户。
; t; g) ^9 ?& K/ E8、删除用户命令deluser6 Y2 M4 ?7 V2 h4 p/ z
前面讲了添加用户的命令,那肯定也有删除用户的命令,删除用户使用命令“deluser”,命令参数如下:. h, R+ ?7 d2 U! [4 V! r
deluser [参数] [用户名]
/ G1 j$ ~. M7 J% i主要参数有:! I+ v% _- V# s$ g
-system :当用户是一个系统用户的时候才能删除。, I8 Y' G3 ?1 F( F  g3 t
-remove-home :删除用户的主目录& m/ t4 p1 y. ?: O0 B# ~* S4 x
-remove-all-files :删除与用户有关的所有文件。  ^3 n  B4 I" ?/ G9 D, r
-backup :备份用户信息( g9 B$ E5 J2 \6 D  k5 S  k# `
同样的,命令“deluser”也要使用“sudo”来以root用户运行,以删除我们前面创建的用户test为例,deluser使用如图2.2.4.7所示:
* k6 j! U9 |) e8 u0 s# y5 |# a! S. x7 X8 n
e490376e9cf74ee08eec10aa39408e4d.png 4 @0 L. j% g5 N$ h3 g2 N
5 n# p8 @+ W* |% s( x
图2.2.4.7 命令deluser演示" |4 M) ?/ N# t7 I. v
9、切换用户命令su
# V, ~* c4 ?4 M. j4 `前面在讲解命令“sudo”的时候说过,“sudo”是以root用户身份执行一个命令,并没有更改当前的用户身份,所有需要root身份执行的命令都必须在前面加上“sudo”。命令“su”可以直接将当前用户切换为root用户,切换到root用户以后就可以尽情的进行任何操作了!因为你已经获得了系统最高权限,在root用户下,所有的命令都可以无障碍执行,不需要在前面加上“sudo”,“su”命令格式如下:
$ |& {( c# P3 a3 b* Z9 L" @su [选项] [用户名]5 ]; E3 E8 `3 d
常用选项参数如下:
+ w( c5 W$ T1 l% w8 X# t. o0 [0 [-c –command :执行指定的命令,执行完毕以后恢复原用户身份。% w6 c0 t# {" n3 ?' Q: h
-login :改变用户身份,同时改变工作目录和PATH环境变量。
1 L+ s" c' H0 c$ B  H& H) M' R* j-m :改变用户身份的时候不改变环境变量
7 `8 ~8 {' S% {  S6 k" q-h :显示帮助信息
* g1 t+ I5 R$ o4 h以切换到root用户为例,使用如图2.2.4.8所示:4 ~$ h, Q1 I/ e2 x$ g
% X/ j, y  ~- E+ h$ L$ ~
7be1314a84ce4189badf8ee57fa8b48c.png
5 P! E3 s4 Z( y6 P2 ?% }0 B# @
! ?' v' e$ S- B7 X9 F" J+ j' D7 K图2.2.4.8 su命令演示. D2 D% i- Q2 O& n+ g5 ]! z& _( O
在图2.2.4.8中,先使用命令“sudo su”切换到root用户,su命令不写明用户名的话默认切换到root用户。然后输入密码,密码正确的话就会切换到root用户,可以看到切换到root用户以后提示符的“@”符号前面的用户名变成了“root”,表示当前的用户是root用户。并且以“#”结束。  b  N3 Q  Y/ Y
注意!!由于root用户权限太大,稍微不注意就可能删除掉系统文件,导致系统奔溃,因此强烈建议大家,不要以root用户运行Ubuntu。当要用到root身份执行某些命令的时候使用“sudo”命令即可。( K$ p; h9 g  O& L! a. b
要切换回原来的用户,使用命令“sudo su 用户名”即可,比如我要从root切换回zuozhongkai这个用户,操作如图2.2.4.9所示:: v( L! o+ K# U. g: K# D- T

% m9 W0 }( v4 U  p% s- e! I. { f5917ad910e34a48b9972f2f6ab43fce.png
/ W: ], h; J2 K/ G" C6 v* @. ?3 w  A) r3 }. Q7 w
图2.2.4.9 切换回原来用户
+ l( g+ |$ d/ q+ N5 Y10、显示文件内容命令cat) c. N. p# f3 ~- _! L6 R
查看文件内容是最常见的操作了,在windows下可以直接使用记事本查看一个文本文件内容,linux下也有类似记事本的软件,叫做gedit,找到一个文本文件,双击打开,默认使用的就是gedit,如图2.2.4.10所示:
0 |  j1 d0 }0 b3 Y
, k: }6 Q% n  h& ^- G, q. {% m 0a587e8386ae495c8500241f0c0144b4.png . m# L  n9 {* ~+ U. \
$ u( n4 r) L. L8 e. W" j
图2.2.4.10 gedit打开文档9 r2 {) `/ o: ^) C. ^2 [8 u3 L
我们现在讲解的是Shell命令,那么Shell下有没有办法读取文件的内容呢?肯定有的,那就是命令“cat”,命令格式如下:
& Q6 n  v: c! U' }9 @cat [选项] [文件]3 P$ o3 a+ m2 X. E  F0 g9 Y
选项主要参数如下:  t( g5 b; y8 b$ F6 ?
-n :由1开始对所有输出的行进行编号。" c; M6 O+ l+ \  Z! u
-b :和-n类似,但是不对空白行编号。: |# v# T$ K" {
-s :当遇到连续两个行以上空白行的话就合并为一个行空白行。
- b& _) z- m, ~4 q+ C. i比如我们以查看文件“/etc/environment”的内容为例,结果如图2.2.4.11所示:
: Y' y8 q( |2 E& {5 f; E) q. r
; _  ?: ^- \- g  \. r  D a56de9dcece74d85ac0cd577a2902905.png
% H4 Z0 S  e% y1 C
7 [# O8 @# `! u4 a; r; t图2.2.4.11 命令cat演示
# X2 u, t/ W+ d- y& |11、显示和配置网络属性命令ifconfig
6 G5 M) s/ i: q9 z% d5 B. N' |ubuntu默认没有ifconfig命令,需要自己手动安装,在终端输入如下命令:
! f* o* z; A) V- [- b( H0 @sudo apt-get install net-tools. k) {6 v/ t4 c& N+ X& V
ifconfig是一个跟网络属性配置和显示密切相关的命令,通过此命令我们可以查看当前网络属性,也可以通过此命令配置网络属性,比如设置网络IP地址等等,此命令格式如下:& }# P1 q) i3 w! Q' U; D* U
ifconfig interface options | address; O  `0 s5 f: E! i9 l9 C
主要参数如下:5 X6 V# J" U1 Z6 Y1 H
interface :网络接口名称,比如eth0等。
# M! f0 \& ^( o3 }0 iup :开启网络设备。
& z* ^' u4 ~7 T  |down :关闭网络设备。
" A% f& a3 n# Cadd :IP地址,设置网络IP地址。: p5 |- T/ b, m  b& u
netmask add 子网掩码。3 \% Y8 F- ]* v
命令ifconfig的使用如图2.2.4.12所示:
: h- c5 i+ `5 b
  R9 U# {  l4 U1 O9 O0 F) a8 k% a4 r 9016f85698714702aa898f8c4c1a460f.png ( V' e/ a1 G& y( g4 p

9 ]) w% k8 L/ N0 Z7 I5 w7 W% U) X图2.2.4.12 ifconfig命令演示8 a0 N+ M/ P; ^( [3 G
在图2.2.4.12中有两个网卡:ens33和lo,ens33是我的电脑实际使用的网卡,lo是回测网卡。可以看出网卡ens33的IP地址为192.168.1.130,我们使用命令“ifconfig”将网卡ens33的IP地址改为192.168.1.253,操作如图2.2.4.13所示:
$ j7 u2 L+ ~  F" v5 d& k% N; }- O: \, x& e4 W# Q! m
13af98324cb64012add574f5587fdd9e.png
* _0 E. D. d7 j: b& i" i5 C
7 }: u0 \) e# _图2.2.4.13 修改网卡IP地址  M$ r: ^. Q( G1 M% X
从图2.2.4.13可以看出,我在使用命令“ifconfig”修改网卡ens33的IP地址的时候使用了“sudo”,说明在Ubuntu下修改网卡IP地址是需要root用户权限的。当修改完以后使用命令“ifconfig ens33”再次查看网卡ens33的命令,发现网卡ens33的IP地址变成了192.168.1.253* Y! K: [; [* s. l3 \, v# D  W) ~
12、系统帮助命令man  [' h& N" W1 e4 K$ s5 h
Ubuntu系统中有很多命令,这些命令都有不同的格式,不同的格式对应不同的功能,要完全记住这些命令和格式几乎是不可能的,必须有一个帮助手册,当我们需要了解一个命令的详细信息的时候查阅这个帮助手册就行了。Ubuntu提供了一个命令来帮助用户完成这个功能,那就是“man”命令,通过“man”命令可以查看其它命令的语法格式、主要功能、主要参数说明等, “man”命令格式如下:$ Q9 {1 |9 a9 w/ _3 E
man [命令名]
/ y& t! ~- |7 v3 |' u比如我们要查看命令“ifconfig”的说明,输入“man ifconfig”即可,如图2.2.4.14所示:
& q7 @2 C+ F' F/ u图2.2.4.14 man命令演示+ c8 n. B3 z7 K0 C
在终端中输入图2.2.4.14所示的命令,然后点击回车键就会打开“ifconfig”这个命令的详细说明,如图2.2.4.15所示:
. G6 T0 P6 G) z! b! D5 f2 U6 C# n) P2 z+ M  R9 l8 y# j% t
b861677680b24609ba6c4ccbb4db8e8b.png ; J: v0 B% P: Z% r

+ _! ?% x& V9 r! V! j; g. h$ t  q" t/ m图2.2.4.15 命令“ifconfig”详细介绍信息" z6 Z# h1 F% |4 C4 H! Z% ^. e" z
图2.2.4.15就是命令“ifconfig”的详细介绍信息,按“q”键退出到终端。* X; @' O) D/ o( v, f
13、 系统重启命令reboot. D5 a" h& _& o
通过点击Ubuntu主界面右上角的齿轮按钮来选择关机或者重启系统,同样的我们也可以使用Shell命令“reboot”来重启系统,直接输入命令“reboot”然后点击回车键接口,如图2.2.4.16所示:
- N3 U8 v/ [( z) H1 R" c) i, G+ J2 X+ I, m
51e6e96b4f24442487e7aa7fece57f6d.png : C9 ]  \8 T. e7 B
( v! u* f$ a/ V+ J+ D2 D5 O
图2.2.4.16 reboot命令演示6 v7 I0 w- A" n4 j% n
14、系统关闭命令poweroff
* n" a0 v$ q/ g& b使用命令“reboot”可以重启系统,使用命令“poweroff”就可以关闭系统,在终端中输入命令“poweroff”然后按下回车键即可关闭Ubuntu系统,如图2.2.4.17所示:
) `0 G! V) s; U6 h) R5 f5 C4 I; [* E. i4 S1 `- Z
ac1104bacf164112bd838540f2254ab3.png
5 a3 L/ M; d: Q+ |. y
: u% v! k9 h' P6 x% u/ q$ T" D图2.2.4.17 poweroff命令演示
) r! E' b. C( X) l" [4 H- M: T15、软件安装命令install
7 X6 p# {: l4 _截至目前,我们都没有讲过Ubuntu下如何安装软件,因为Ubuntu安装软件不像Windows下那样,直接双击.exe文件就开始安装了。Ubuntu下很多软件是需要先自行下载源码,下载源码以后自行编译,编译完成以后使用命令“intsall”来安装。当然Ubuntu下也有其它的软件安装方法,但是用的最多的就是自行编译源码然后安装,尤其是嵌入式Linux开发。命令“install”格式如下:
1 D' N( ?0 S) I: s9 S
9 H' K8 M2 ?; n+ o1 y
  1.         install [选项]...  [-T]         源文件                 目标文件) M  H# c+ G: G  N
  2. 或:install [选项]...                   源文件...         目录' |8 S+ a1 o+ d' C
  3. 或:install [选项]...         -t         目录                 源文件...
    $ c, b8 y; H" A1 }/ _0 X
  4. 或:install [选项]...         -d         目录...
复制代码
2 ]4 O- P- j! e, b! y0 n! `6 @
“install”命令是将文件(通常是编译后的文件)复制到目的位置,在前三种形式中,将源文件复制到目标文件或将多个源文件复制到一个已存在的目录中同时设置其所有权和权限模式。在第四种形式会创建指定的目录。命令“install”通常和命令“apt-get”组合在一起使用的,关于“apt-get”命令我们稍后会讲解。5 }4 j3 G% O4 K; q  }) r% g6 q9 w
以上就是Shell最基本一些命令,还有一些其它的命令我们在后面在讲解,循序渐进嘛。! Y6 J! {4 v) ]- \; ^
————————————————
, n+ R, N* a! l, e, ~2 Y' z版权声明:正点原子$ g: p3 L/ v) q
/ L4 [1 U7 @& X' {) M8 q
赞 收藏 评论0 发布时间:2022-9-27 17:51

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版