Ubuntu(Linux)终端操作,会涉及到很多命令,但是常用的命令就那几十个,不需要刻意的去背,使用习惯了就自然记住了。不要看到要记命令就觉得可怕。根据 2080 原则,80%情况下只使用那 20%的命令,实际情况会更少,常用的可能就那 5%~10%的命令。




android cuttlefish 开机执行shell 安卓命令行终端shell_Ubuntu

打开中端



打开终端以后如图所示:




android cuttlefish 开机执行shell 安卓命令行终端shell_IP_02

终端界面



我们就是在图所示界面上输入命令的,终端默认会有类似下面一行所示的一串提示符:

zuozhongkai@zuozhongkai-virtual-machine: ~$

上述字符串中,@前面的“zuozhongkai”是当前的用户名字,@后面的 zuozhongkai-virtual-machine 是我的机器名字。最后面的符号“$”表示当前用户是普通用户,我们可以在提示符后面输入命令,比如输入命令“ls”,命令“ls”是打印出当前所在目录中所有文件和文件夹,如图所示:




android cuttlefish 开机执行shell 安卓命令行终端shell_IP_03

ls命令



在图中我们输入了“ls”这个命令,然后打印出了当前目录下的所有文件和文件夹,后面我们学习命令的时候就是在终端中输入相应命令的。

学习 linux 的时候会频繁的看到 Shell 这个词语?那么什么是 Shell 呢?网上搜索一下,各种专业的解释一堆,但是对于第一次接触 Linux 的人来说这些专业的词语只会让人更晕。简单的说 Shell 就是敲命令。国内把 Linux 下通过命令行输入命令叫做“敲命令”,国外人玩的比较洋气,人家叫做“Shell”。因此以后看到 Shell 这个词语第一反应就是在终端中敲命令,将多个Shell 命令按照一定的格式放到一个文本中,那么这个文本就叫做 Shell 脚本。

严格意义上来讲,Shell 是一个应用程序,它负责接收用户输入的命令,然后根据命令做出相应的动作,Shell 负责将应用层或者用户输入的命令传递给系统内核,由操作系统内核来完成相应的工作,然后将结果反馈给应用层或者用户。

前面我们说 Shell 就是“敲命令”,那么既然是命令,那肯定是有格式的,Shell 命令的格式如下:

command -options [argument]

command: Shell 命令名称。

options:选项,同一种命令可能有不同的选项,不同的选项其实现的功能不同。

argument:Shell 命令是可以带参数的,也可以不带参数运行。

同样以命令“ls”为例,下面“ls”命令的三种不同格式其结果也不同:

lsls –lls /usr

这三种命令的运行结果如图所示:




android cuttlefish 开机执行shell 安卓命令行终端shell_Ubuntu_04

ls命令



在图中“ls”命令用来打印出当前目录下的所有文件和文件夹,而“ls -l”同样是打印出当前目录下的所有文件和文件夹,但是此命令会列出所有文件和文件夹的详细信息,比如文件大小、拥有者、创建日期等等。最有一个“ls /usr”是用来打印出目录“/usr”下的所有文件和文件夹。

Shell 命令是支持自动补全功能的,因为 Shell 命令非常多,如果不作自动补全的话就需要用户去记忆这些命令的全部字母。使用自动补全功能以后我们只需要输入命令的前面一部分字母,然后按下 TAB 键,如果只有一个命令匹配的话就会自动补全这个命令剩下的字母。如果有多个命令匹配的话系统就会发出报警声音,此时在按下一次 TAB 键就会列出所有匹配的命令,比如我们输入字母“if”,然后按下 TAB 键,结果如图所示:




android cuttlefish 开机执行shell 安卓命令行终端shell_Ubuntu_05

“if”开始的命令



从图可以看出,以“if”开头的命令有 5 个,我们以“ifconfig”为例,此命令是用来查看网卡信息的,我们重新输入“ifc”然后在按一下 TAB 键,就会自动补全出“ifconfig”命令,因为以“ifc”开头的命令只有一个,结果如图所示:




android cuttlefish 开机执行shell 安卓命令行终端shell_Shell_06

ifconfig命令结果



我们做嵌入式开发用的最多就是 Shell 命令,Shell 命令是所有的 Linux 系统发行版所通用的,并不是说我在Ubuntu 下学会了 Shell 命令,换另外一个 Linux 发行版操作系统以后就没用了(不同的发行版Linux 系统可能会自定义一些命令)。本节我们先来介绍一些 Shell 下常用的命令:

1、目录信息查看命令 ls

文件浏览是最基本的操作了,Shell 下文件浏览命令为 ls,格式如下:

ls [选项] [路径]

ls 命令主要用于显示指定目录下的内容,列出指定目录下包含的所有的文件以及子目录,

它的主要参数有:

-a 显示所有的文件以及子目录,包括以“.”开头的隐藏文件。

-l 显示文件的详细信息,比如文件的形态、权限、所有者、大小等信息。

-t 将文件按照创建时间排序列出。

-A 和-a 一样,但是不列出“.”(当前目录)和“..”(父目录)。

-R 递归列出所有文件,包括子目录中的文件。

Shell 命令里面的参数是可以组合在一起用的,比如组合“-al”就是显示所有文件的详细信息,包括以“.”开头的隐藏文件,ls 命令使用如图所示:




android cuttlefish 开机执行shell 安卓命令行终端shell_Shell_07

ls命令演示



注意图 中 tmp 文件夹是我为了演示方便,自己创建的,里面的文件 a,b 和 c 也是

我创建的,关于文件夹和文件的创建后面会详细的讲解。

2、目录切换命令 cd

要想在 Shell 中切换到其它的目录,使用的命令是 cd,命令格式如下:

cd [路径]

路径就是我们要进入的目录路径,比如下面所示操作:

cd / //进入到根目录“/”下,Linux 系统的根目录为“/”, cd /usr //进入到目录“/usr”里面。cd .. //进入到上一级目录。cd ~ //切换到当前用户主目录

比如我们要进入到目录“/usr”下去,并且查看“/usr”下有什么文件,操作如图所示:




android cuttlefish 开机执行shell 安卓命令行终端shell_linux命令行_08

cd命令演示



在图中,我们先使用命令“cd /usr”进入到“/usr”目录下,然后使用“ls”命令显示“/usr”目录下的所有文件。仔细观察可以看到,当我们切换到其它目录以后在符号“$”前面就会以蓝色的字体显示出当前目录名字,如图所示:




android cuttlefish 开机执行shell 安卓命令行终端shell_Ubuntu_09

目录路径显示



3、当前路径显示命令 pwd

pwd 命令用来显示当前工作目录的绝对路径,不需要任何的参数,使用如图所示:




android cuttlefish 开机执行shell 安卓命令行终端shell_Ubuntu_10

PWD命令



4、系统信息查看命令 uname

要查看当前系统信息,可以使用命令 uname,命令格式如下:

uname [选项]

可选的选项参数如下:

-r 列出当前系统的具体内核版本号。

-s 列出系统内核名称。

-o 列出系统信息。 使用如图所示:




android cuttlefish 开机执行shell 安卓命令行终端shell_IP_11

uname命令操作



5、清屏命令 clear

clear 命令用于清除终端上的所有内容,只留下一行提示符。

6、切换用户执行身份命令 sudo

Ubuntu(Linux)是一个允许多用户的操作系统,其中权限最大的就是超级用户 root,有时候我们执行一些操作的时候是需要用 root 用户身份才能执行,比如安装软件。通过 sudo

命令可以使我们暂时将身份切换到 root 用户。当使用 sudo 命令的时候是需要输入密码的,这里要注意输入密码的时候是没有任何提示的!命令格式如下:

sudo [选项] [命令]

选项主要参数如下:

-h 显示帮助信息。

-l 列出当前用户可执行与不可执行的命令

-p 改变询问密码的提示符。

假如我们现在要创建一个新的用户 test,创建新用户的命令为“adduser”,创建新用户的权限只有 root 用户才有,我们在装系统的时候创建的那个用户是没有这个权限的,比如我的“zuozhongkai”用户。所以创建新用户的话需要使用“sudo”命令以 root 用户执行“adduser”这个命令,如图所示:




android cuttlefish 开机执行shell 安卓命令行终端shell_IP_12

sudo命令演示



在图 2.2.4.6 中,我们一开始直接使用“adduser test”命令添加用户的时候提示我们“adduser:

只有 root 才能将用户或组添加到系统。”所以我们要在前面加上“sudo”命令,表示以 root 用户执行 adduser 操作。

7、添加用户命令 adduser

在讲解 sudo 命令的时候我们已经用过命令“adduser”,此命令需要 root 身份去运行。命令格式如下:

adduser [参数] [用户名]

常用的参数如下:

-system 添加一个系统用户

-home DIR DIR 表示用户的主目录路径

-uid ID ID 表示用户的uid。

-ingroup GRP 表示用户所属的组名。

adduser 的使用我们前面已经演示过了,大家可以试着再添加一个用户。

8、删除用户命令 deluser

前面讲了添加用户的命令,那肯定也有删除用户的命令,删除用户使用命令“deluser”,命令参数如下:

deluser [参数] [用户名]

主要参数有:

-system 当用户是一个系统用户的时候才能删除。

-remove-home 删除用户的主目录

-remove-all-files 删除与用户有关的所有文件。

-backup 备份用户信息

同样的,命令“deluser”也要使用“sudo”来以 root 用户运行,以删除我们前面创建的用户 test 为例,deluser 使用如图所示:




android cuttlefish 开机执行shell 安卓命令行终端shell_Ubuntu_13

命令deluser演示



9、切换用户命令 su

前面在讲解命令“sudo”的时候说过,“sudo”是以 root 用户身份执行一个命令,并没有更改当前的用户身份,所有需要 root 身份执行的命令都必须在前面加上“sudo”。命令“su”可以直接将当前用户切换为 root 用户,切换到 root 用户以后就可以尽情地尽情任何操作了!因为你已经获得了系统最高权限,在 root 用户下,所有的命令都可以无障碍执行,不需要在前面加上“sudo”,“su”命令格式如下:

su [选项] [用户名]

常用选项参数如下:

-c –command 执行指定的命令,执行完毕以后回复原用户身份。

-login 改变用户身份,同时改变工作目录和 PATH 环境变量。

-m 改变用户身份的时候不改变环境变量

-h 显示帮助信息

以切换到 root 用户为例,使用如图所示:




android cuttlefish 开机执行shell 安卓命令行终端shell_Shell_14

su命令演示



在图中,先使用命令“sudo su”切换到 root 用户,su 命令不写明用户名的话默认切换到 root 用户。然后输入密码,密码正确的话就会切换到 root 用户,可以看到切换到 root 用户以后提示符的“@”符号前面的用户名变成了“root”,表示当前的用户是 root 用户。并且以“#”结束。

注意!!由于 root 用户权限太大,稍微不注意就可能删除掉系统文件,导致系统奔溃,因此强烈建议大家,不要以 root 用户运行Ubuntu。当要用到 root 身份执行某些命令的时候使用“sudo”命令即可。

要切换回原来的用户,使用命令“sudo su 用户名”即可,比如我要从 root 切换回zuozhongkai这个用户,操作如图所示:




android cuttlefish 开机执行shell 安卓命令行终端shell_Shell_15

切换为原来用户



10、显示文件内容命令 cat

查看文件内容是最常见的操作了,在windows 下可以直接使用记事本查看一个文本文件内容,linux 下也有类似记事本的软件,叫做 gedit,找到一个文本文件,双击打开,默认使用的就是 gedit,如图所示:




android cuttlefish 开机执行shell 安卓命令行终端shell_IP_16

打开文档



我们现在讲解的是 Shell 命令,那么 Shell 下有没有办法读取文件的内容呢?肯定有的,那就是命令“cat”,命令格式如下:

cat [选项] [文件]

选项主要参数如下:

-n 由 1 开始对所有输出的行进行编号。

-b 和-n 类似,但是不对空白行编号。

-s 当遇到连续两个行以上空白行的话就合并为一个行空白行。

比如我们以查看文件“/etc/environment”的内容为例,结果如图所示:




android cuttlefish 开机执行shell 安卓命令行终端shell_linux命令行_17

命令cat演示



11、显示和配置网络属性命令 ifconfig

ifconfig 是一个跟网络属性配置和显示密切相关的命令,通过此命令我们可以查看当前网络属性,也可以通过此命令配置网络属性,比如设置网络 IP 地址等等,此命令格式如下:

ifconfig interface options | address

主要参数如下:

interface 网络接口名称,比如 eth0 等。

up 开启网络设备。

down 关闭网络设备。

add IP 地址,设置网络 IP 地址。

netmask add 子网掩码。

命令 ifconfig 的使用如图所示:




android cuttlefish 开机执行shell 安卓命令行终端shell_linux命令行_18

ifconfig命令演示



在图中有两个网卡:ens33 和 lo,ens33 是我的电脑实际使用的网卡,lo 是回测网卡。可以看出网卡 ens33 的 IP 地址为 192.168.31.235,我们使用命令“ifconfig”将网卡 ens33 的IP 地址改为 192.168.31.20,操作如图所示:




android cuttlefish 开机执行shell 安卓命令行终端shell_Shell_19

修改网卡IP地址



从图中可以看出,我在使用命令“ifconfig”修改网卡 ens33 的 IP 地址的时候使用了“sudo”,说明在 Ubuntu 下修改网卡 IP 地址是需要 root 用户权限的。当修改完以后使用命令 “ifconfig ens33”再次查看网卡 ens33 的命令,发现网卡 ens33 的 IP 地址变成了 192.168.31.20。

12、系统帮助命令 man

Ubuntu 系统中有很多命令,这些命令都有不同的格式,不同的格式对应不同的功能,要完全记住这些命令和格式几乎是不可能的,必须有一个帮助手册,当我们需要了解一个命令的详细信息的时候查阅这个帮助手册就行了。Ubuntu 提供了一个命令来帮助用户完成这个功能,那就是“man”命令,通过“man”命令可以查看其它命令的语法格式、主要功能、主要参数说明等, “man”命令格式如下:

man [命令名]

比如我们要查看命令“ifconfig”的说明,输入“man ifconfig”即可,如图所示:




android cuttlefish 开机执行shell 安卓命令行终端shell_Ubuntu_20

man命令演示



在终端中输入图所示的命令,然后点击回车键就会打开“ifconfig”这个命令的详细说明,如图所示:




android cuttlefish 开机执行shell 安卓命令行终端shell_Ubuntu_21

命令ifconfig详细用法信息



上图就是命令“ifconfig”的详细介绍信息,按“q”键退出到终端。

13、 系统重启命令 reboot

通过点击 Ubuntu 主界面右上角的齿轮按钮来选择关机或者重启系统,同样的我们也可以使用 Shell 命令“reboot”来重启系统,直接输入命令“reboot”然后点击回车键接口,如下图所示:




android cuttlefish 开机执行shell 安卓命令行终端shell_Ubuntu_22

reboot命令演示



14、系统关闭命令 poweroff

使用命令“reboot”可以重启系统,使用命令“poweroff”就可以关闭系统,在终端中输入命令“poweroff”然后按下回车键即可关闭 Ubuntu 系统,如图所示:




android cuttlefish 开机执行shell 安卓命令行终端shell_linux命令行_23

poweroff命令使用



15、软件安装命令 install

截至目前,我们都没有讲过 Ubuntu 下如何安装软件,因为Ubuntu 安装软件不像Windows下那样,直接双击.exe 文件就开始安装了。Ubuntu 下很多软件是需要先自行下载源码,下载源码以后自行编译,编译完成以后使用命令“intsall”来安装。当然 Ubuntu 下也有其它的软件安装方法,但是用的最多的就是自行编译源码然后安装,尤其是嵌入式 Linux 开发。命令“install”格式如下:

install [选项]... [-T] 源文件 目标文件或:install [选项]... 源文件... 目录或:install [选项]... -t 目录 源文件...或:install [选项]... -d 目录...

“install”命令是将文件(通常是编译后的文件)复制到目的位置,在前三种形式中,将源文件复制到目标文件或将多个源文件复制到一个已存在的目录中同时设置其所有权和权限模式。在第四种形式会创建指定的目录。命令“install”通常和命令“apt-get”组合在一起使用的,关于“apt-get”命令我们稍后会讲解。

以上就是 Shell 最基本一些命令,还有一些其它的命令我们在后面在讲解,循序渐进嘛。