树莓派官方推荐的操作系统是Raspbian,这是一款免费的基于Debian Linux的操作系统,可以安装到所有版本的树莓派上。这就意味着如果不了解Linux的话,可能就无法随心所欲的捣鼓这个可人的尤物了。
Linux天生就是要使用CLI(command-line interface,命令行界面)操作的,因此学习树莓派就必须要会用Linux命令,本文介绍20个最常用的命令(见下表),让你能够轻松的在幽深的黑色CLI里看到色彩斑斓的世界。
默认的命令提示符如下:
pi@raspberrypi:~ $
表明你是在名为“raspberrypi”的主机上以用户“pi”的身份登录,并且正处在“pi”用户的主目录下面。你可以在后面输入各种Linux命令,然后按回车键即可执行。
当然,你也可以使用超级管理员“root”用户登录,命令提示符将如下所示:
root@raspberrypi:~ #
与“pi”用户不同的是,命令提示符为#,表明这是“root”用户,树莓派默认情况下并不会启用root账户,如果想以root身份执行命令,可以参照下面的sudo命令。
ls 列出当前目录下的文件#
ls命令
你可以尝试直接输入ls命令然后按回车,以及输入 ls -l命令再按回车之间有什么区别。显而易见,加上 -l 参数后目录下的文件以清单形式展现,你可以清晰的看到文件的类型、所属用户、创建时间等信息。其中第一列你会看到如下信息:
drwxr-xr-x
第一个字母 d 这表示该文件是一个目录(directory)文件,如果是普通文件第一个字母的位置将显示连字符“ - ”。
剩下9个字符以3个为一组,每一组各表示文件对于不同用户的权限,第一组 rwx 表示该文件所属的用户具有读(read)、写(write)和执行(execute)该文件的权限,第二组 r-x 表示同用户组的用户具有读和执行的权限(“ - ”表示不具备相关权限),第三组 r-x 表示其他用户具有读和执行的权限。
当然还有 ls -a列出包括隐藏文件在内的所有文件,Linux 的隐藏文件名以 “ . “开始。
有些Linux发行版会提供 ll 命令,该命令等价于 ls -l ,树莓派默认没有 ll 命令,不过可以通过修改用户主目录下的 .bashrc 文件,找到以下两行:
#alias ll=’ls -l’
#alias la=’ls -Al’
把前面的 # 删除,保存后重新进入终端即可使用 ll 命令。
pwd 输出当前目录#
有时候你可能想知道当前在什么目录下,那么可以通过pwd命令打印出出来。pwd就是print working directory(打印当前工作目录)的首字母缩写。
比如,假设你正在如下目录中:
/home/pi/projects/rebot/bin
但终端仅仅显示:
pi@raspberrypi: /bin $
你通过终端显示信息只知道你在 bin 目录下,却不知道全部路径信息,这时候就需要pwd命令。
cd 改变目录#
你可以 cd 到任何你想去的目录,只要你知道它的路径,这个路劲可以是绝对路径,也可以是相对路径。
假设你正在如下目录中:
/home/pi/projects/robot/bin/
你想去往 /home/pi/projects/ 目录,那么你即可以使用绝对路径:
$ cd /home/pi/projects
也可以使用相对路径:
$ cd ../../
其中 ../ 是指上一级目录,在这个例子中,bin目录往上两级就是projects目录。
如果robot目录下,还有一个lib目录和bin目录同级,那么你从bin目录去往lib目录就可以使用:
$ cd ../lib
也就是bin的上级目录下面的lib目录。
此外
输入 cd 命令可以直接回到pi用户的主目录 /home/pi/
输入 cd .. 命令可以回到当前目录的上一级目录
mkdir 新建目录#
如果你要在当前目录下新建一个目录 temp,那么你可以使用:
$ mkdir temp
如果你想把这个temp新建到/home/pi/projects下面,那么你可以使用:
$ mkdir /home/pi/projects/temp
前提是projects这个目录必须存在,并且你对其拥有写权限。
rmdir 删除目录#
如果你要把temp目录删除,可以使用:
$ rmdir temp
或者:
$ rmdir /home/pi/projects/temp
但这要求temp必须是个空空的目录,如果temp中还有其他内容,你可能需要使用:
$ rm -fr temp
系统会把temp及其里面的所有内容全部删除。
cat 显示或连接文件内容#
你发现当前目录下有一个GirlsPhoneNum文件,你可能迫不及待的想看一看,那么你可以使用:
$ cat GirlsPhoneNum
文件的全部内容将会打印在终端。
如果你发现还有一个BoysPhoneNum文件,你想两个文件一起看,那么你可以使用:
$ cat GirlsPhoneNum BoysPhoneNum
是的,男孩和女孩们的手机号码你就都有了。
rm 删除文件#
如果你觉得男孩的手机号码干扰你看更重要的东西,你可以把它删除:
$ rm BoysPhoneNum
这样你就算把回收站全倒出来也找不到它了。
mv 移动/重命名文件/目录#
如果你不想删除男孩儿们的手机号,只是想把他们移动的别的地方去,比如移动到/home/pi/boys,那么你可以:
$ mv BoysPhoneNum /home/pi/boys
前提是boys这个目录必须要存在,如果不存在的话,你需要使用mkdir命令新建一个。
如果你担心女朋友看到你电脑里存了好多女孩的号码,你可以给它改个名字:
$ mv GirlsPhoneNum MyTeachersNum
cp 复制文件/目录#
你可以吧女孩儿们的号码复制到妥当位置,以防被女友删除:
$ cp GirlsPhoneNum /home/pi/Study/Linux/RaspberryPi
如果你要复制整个目录到/home/pi下面:
$ cp -r GirlPhotos /home/pi
echo 显示在终端输入内容#
你可以试试下面的命令会输出什么
$ echo Hello Raspberry Pi
date 读取系统日期/时间#
终端下面并没有系统托盘可以让你看日期和时间,如果你想看时间的话,就要 date 一下。
grep 全面搜索正则表达式并打印#
这是一个功能爆表的命令,它可以通过正则表达式搜索文件或目录,也可以在一些命令的输出内容里进行查找。它的用法几乎可以写一本书,不过我们目前只需要了解一些最简单的用法即可。
比如你想知道刚才那个女孩们的手机号码文件里,有没有你想的JingJing的号码,你可以:
$ grep JingJing GirlsPhoneNum
man 显示命令帮助手册#
如果你不知道某个命令怎么用,或者你忘记了,你可以man一下:
$ man grep
输出的内容可能会让你崩溃,你可以用空格来翻页,回车看下一行,q退出。
sudo 以root权限执行#
树莓派默认使用”pi“用户登录,并且不会启用”root“用户,可能也印证了那句”只有菜鸟才以root身份登录“的Linux极客语录。
那么当你需要使用root身份来执行一些任务的时候,比如你需要把GirlsPhoneNum文件藏在/lib目录下,因为你女朋友无论如何也不会想到去看/lib这个存放库文件的目录,而往/lib目录里写文件一般都是需要root权限的,那么你可以使用sudo:
$ sudo cp GirlsPhoneNum /lib
然后系统会提示你输入当前用户也就是pi用户的密码,输入密码的时候终端里是不显示任何内容的,连星星*也不显示,输入之后按回车即可。
chmod 改变文件读写权限#
刚才介绍ls命令的时候,你大致了解了一个文件的权限可以用下面的形式来表示:
-rwxrwxrwx
如果需要对权限进行修改,就要用到chmod命令,这个命令可以使用直接方式和二进制方式两种来修改权限。
直接方式
u代表文件所属用户
g代表与文件所属用户同组的用户
o代表其他所有用户
比如一个文件的权限为:
-rwxrwxrwx
你希望其他所有用户仅具有读的权限,可以用命令:
$ chmod o-wx filename
这个文件的权限就变成了:
-rwxrwxr—
如果你想恢复原来的全部可读可写和可执行权限,就使用命令:
$ chmod o+wx filename
数值方式
我更喜欢数值方式,它为每一种权限分配了一个数值:
r = 4
w = 2
x = 1
将每一组所有权限的数值加起来就可以。比如744,代表文件所属用户具有rwx权限,同组用户和其他所有用户只具有r权限。如果你想将一个文件的权限设置为:
-rwxr-xr-x
那么可以使用命令:
$ chmod 755 filename
也许你有点晕,慢慢来,习惯就好。
./program 运行program程序#
如果你想运行某个程序(可执行文件),那么直接在终端里输入它的路径就可以,如果你要执行当前目录下的program可执行文件,你需要使用:
$ ./program
apt-get 安装/删除软件包#
那么树莓派下面怎么安装软件呢?或者卸载软件?
一般来讲你并不需要先去某个网站下载,然后安装,你可以直接使用包管理工具apt-get,比如你要安装vim编辑器,你可以:
$ sudo apt-get install vim
如果你想删除它,也很简单:
$ sudo apt-get remove vim
apt-get需要以root权限运行,所以在前面加上sudo。
如果你想对系统和已安装的软件包进行升级:
$ sudo apt-get update
$ sudo apt-get upgrade
有些Linux发行版使用yum或者dnf来管理软件包,不过这些和树莓派的Raspbian关系不大。
你也许还听说过用什么make之类的命令编译安装,这种操作可以等你把眼下的东西玩腻了再去搞。
exit 退出#
当你想退出终端,直接输入 exit 即可,表忘了输完按回车键。
reboot 重新启动#
如果你想重新启动系统的话:
$ sudo reboot
shutdown关机#
如果你想立即关闭系统:
$ sudo shutdown -h now