![嵌入式Linux开发技术](https://wfqqreader-1252317822.image.myqcloud.com/cover/138/43738138/b_43738138.jpg)
2.1.3 Linux的Shell与基本命令
2.1.3.1 Linux Shell
Shell是Linux的交互界面,提供用户与内核进行交互的操作接口。Shell接收用户输入的命令并把接收到的命令送入内核中去执行。
Shell实际上是一个命令解释器,用于解释用户输入的命令并且把命令发送到内核。Shell有自己的编程语言,用于编辑命令,以及编写由Shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,如具有循环结构和分支控制结构等。使用Shell编程语言编写的Shell程序与其他应用程序具有同样的效果。
Linux提供可视的命令输入界面—X Window的图形用户界面(GUI),提供了很多桌面环境系统,有窗口、图标和菜单,所有的管理都可以通过鼠标控制。
2.1.3.2 Linux的基本命令
开发Linux应用程序,需要熟悉Linux的基本命令。Linux的基本命令如下:
(1)查询当前目录文件列表命令:ls。ls命令在默认状态下将按首字母升序的方式列出当前文件夹下面的所有文件,可以结合以下参数查询更多的信息,例如:
![](https://epubservercos.yuewen.com/05A69C/23020642901652606/epubprivate/OEBPS/Images/42374_27_1.jpg?sign=1739939820-lN70CmWqtCBi6VKKDpNSHS9p8IZcvr5j-0-e102461a5bc6b9e2bde6c08d47575a9e)
(2)查询当前所在目录命令:pwd。要想知道当前所处的目录,可以使用pwd命令,该命令会显示整个目录名。
(3)进入指定目录命令:cd。该命令可将当前目录改变为指定的目录。若没有指定目录,则回到用户的主目录。为了改变到指定的目录,用户必须拥有对指定目录的读权限。
(4)在屏幕上输出字符命令:echo。例如:
![](https://epubservercos.yuewen.com/05A69C/23020642901652606/epubprivate/OEBPS/Images/42374_27_2.jpg?sign=1739939820-7QImvPDZE9ynfoHq5wqjAc1Nxm4QjjDF-0-dc04c8caa1d90f55c090bc6cfc9fe210)
(5)读取文件内容命令:cat。例如:
![](https://epubservercos.yuewen.com/05A69C/23020642901652606/epubprivate/OEBPS/Images/42374_27_3.jpg?sign=1739939820-IJMKRnPUSxhFxIssIWXpOqbp6JCswBqm-0-a026dbc7324b1715e8d8614d90c5078f)
(6)复制文件命令:cp。该命令的格式为:
![](https://epubservercos.yuewen.com/05A69C/23020642901652606/epubprivate/OEBPS/Images/42374_27_4.jpg?sign=1739939820-gb3Oga8DJCRznjmqaqAmgDHipvANfet7-0-f5e4abb5c66e0051508a42444806d293)
说明:把指定的文件复制成目标文件或把多个文件复制到指定的目标目录中。例如:
![](https://epubservercos.yuewen.com/05A69C/23020642901652606/epubprivate/OEBPS/Images/42374_27_5.jpg?sign=1739939820-S031GVXICgM43ZnB1L9ARDIfJQ3qmzeP-0-790e156ec1118df3c5f6cc72c9180794)
(7)移动文件命令:mv。该命令的格式为:
![](https://epubservercos.yuewen.com/05A69C/23020642901652606/epubprivate/OEBPS/Images/42374_27_6.jpg?sign=1739939820-Xyk6BQag0COx8Ty6pZwL2FYHm6837uPe-0-878fc6302cf8d12ef340e3b50ee46bdd)
说明:把指定的文件移动到目标文件或把多个文件移动到指定的目标目录中。例如:
![](https://epubservercos.yuewen.com/05A69C/23020642901652606/epubprivate/OEBPS/Images/42374_27_7.jpg?sign=1739939820-LBTBEWND7yg1JI9hWiHxjqlMVuOxpO8M-0-f7a39717f8588ed50e0dad8db26eacf4)
(8)建立一个文本文件命令:touch。例如:
![](https://epubservercos.yuewen.com/05A69C/23020642901652606/epubprivate/OEBPS/Images/42374_27_8.jpg?sign=1739939820-v1twst6ObVqUwnBbIHc0QsfvEEn1UepC-0-c55796934dd7baf63e5d96bf2bf63fe4)
(9)建立一个目录命令:mkdir。该命令的格式为:
![](https://epubservercos.yuewen.com/05A69C/23020642901652606/epubprivate/OEBPS/Images/42374_27_9.jpg?sign=1739939820-y6jp90CCNxZVNZ6tAFP5uSKr0IebnqtY-0-3218e0c41cd9c898679149496c81425a)
说明:该命令用于创建由dir-name命名的目录。要求创建目录的用户在当前目录中(dir-name的父目录中),具有写权限,并且dir-name不能是当前目录中已有的目录或文件名。例如:
![](https://epubservercos.yuewen.com/05A69C/23020642901652606/epubprivate/OEBPS/Images/42374_28_1.jpg?sign=1739939820-DbIzSgWLqhIctg4rIER2t60le2OTxOgW-0-f7cdec4d407436be09dc4d4c44518bbc)
(10)删除文件/目录命令:rm。该命令的格式为:
![](https://epubservercos.yuewen.com/05A69C/23020642901652606/epubprivate/OEBPS/Images/42374_28_2.jpg?sign=1739939820-codKNpbKn9ctZwSCM7rGpk7N6ub0ng9Y-0-e0ef26ffeec14d7a0c11395ca3abcaa9)
说明:该命令的功能是删除某个目录中的一个或多个文件或目录,也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是断开了链接,原文件保持不变。
(11)访问权限命令:chmod、chown和chgrp。在确定一个文件的访问权限后,用户可以利用chmod命令来重新设定不同的访问权限。也可以利用chown命令来更改某个文件或目录的所有者,利用chgrp命令来更改某个文件或目录的用户组。例如:
![](https://epubservercos.yuewen.com/05A69C/23020642901652606/epubprivate/OEBPS/Images/42374_28_3.jpg?sign=1739939820-GqdVqhP7XzwsyMhDGx7GWiCFxA4zcOqR-0-3fd54c8747989dc3ac9bf6d8918cd613)
通常使用1、2和4来分别表示文件的执行、写和读权限。例如754,7表示当前用户的权限,4+2+1=7,即当前用户具有读、写、执行的权限;5表示当前用户所在组的权限,4+1=5,即当前用户组所在组对文件有读、执行权限,没有写权限;4:代表其他用户对该文件仅有读权限。例如,将文件123.txt的权限修改为761,代码如下:
![](https://epubservercos.yuewen.com/05A69C/23020642901652606/epubprivate/OEBPS/Images/42374_28_4.jpg?sign=1739939820-H0wHecJN9ttDrgTkjAjtZ4iv87erwgxy-0-3130db815359948f469cd7f8d8c056b6)
(12)修改密码命令:passwd。使用passwd命令不仅可以为每一位新增的用户设置密码,还可以随时修改密码。
(13)关机与重启命令:shutdown。shutdown命令可以安全地关闭或重启Linux系统,执行该命令后,会自动进行数据同步的工作。需要特别注意的是,该命令只能由超级用户使用。该命令的一般格式为:
![](https://epubservercos.yuewen.com/05A69C/23020642901652606/epubprivate/OEBPS/Images/42374_28_5.jpg?sign=1739939820-zzr2t6zeFuV1DEKNODU0eigDvILr2rXI-0-bcbe459aa178a2dd8edc4b782559de52)
其中,选项的含义如下:
● -k:并不真正关机,只是向所有的用户发出警告信息。
● -r:关机后立即重新启动。
● -h:关机后不重新启动。
● -f:快速关机,重新启动时跳过fsck。
● -n:快速关机,不经过init程序。
● -c:取消一个正在运行的shutdown命令。
(14)压缩/解压缩命令:tar命令。tar的参数可通过“tar-help”查询。压缩示例如下:
![](https://epubservercos.yuewen.com/05A69C/23020642901652606/epubprivate/OEBPS/Images/42374_28_6.jpg?sign=1739939820-aWCebeW7gmD2LfUWZApauhlwOQm0TicH-0-e69ca41f913a5aced7dfb49f9826c5d9)
![](https://epubservercos.yuewen.com/05A69C/23020642901652606/epubprivate/OEBPS/Images/42374_29_1.jpg?sign=1739939820-UXWlkeP6ESfC0Rtbcm0dYY7Ix5fTaIG7-0-536c42caa0d4d558c9b1b33301e0e6ea)
解压缩示例如下:
![](https://epubservercos.yuewen.com/05A69C/23020642901652606/epubprivate/OEBPS/Images/42374_29_2.jpg?sign=1739939820-kyVGxAai2BqtlJlMNjWTR8xOfH8sjGUf-0-26218342b9762889d05097168100d0ae)
(15)系统管理命令:ps、kill。ps命令用于显示当前系统中由该用户运行的进程列表,例如:
![](https://epubservercos.yuewen.com/05A69C/23020642901652606/epubprivate/OEBPS/Images/42374_29_3.jpg?sign=1739939820-iRNklmNy6hJJwYbuqXmejick8ShAxaH7-0-bef5c320549c4a06357a6ce1004febbc)
kill命令用于将特定的信号输出到指定PID(进程号)的进程,并根据该信号完成指定的行为。其中可能的信号有进程挂起、进程等待、进程终止等。例如:
![](https://epubservercos.yuewen.com/05A69C/23020642901652606/epubprivate/OEBPS/Images/42374_29_4.jpg?sign=1739939820-O71mgmHol6hQVrBesaITfWR0CKbNAUjg-0-cf042e23c0dd8ed46e59ef74806129b8)
(16)系统查看命令。例如:
![](https://epubservercos.yuewen.com/05A69C/23020642901652606/epubprivate/OEBPS/Images/42374_29_5.jpg?sign=1739939820-4Ab1enThDcFl47nEby2dRIFkV10itvAq-0-888f159f7624c1eb50a8481ff6a8b4f4)