树莓派了解Linux基本命令
阅读原文时间:2023年07月09日阅读:2

本节我们来了解一些基本的Linux命令(在树莓派上操作),看完之后,当你再面对Linux黑黑的命令框时至少不会不知所措,你可以用这些基本的命令完成一些需要的操作,比如查找、编辑、查看文件,查看基本的系统信息,上传、下载文件。因为树莓派Raspberry PI OS的图形化界面已经比较人性化了,跟Windows界面也很接近,凡是不能双击解决的问题,那就右键再点击解决,所以此处就不再赘述了。图形化界面操作倒腾就行了,不怕,出了问题还可以系统重刷,不然怎么叫折腾呢。

保安三问(图片来源于网络)

当你登录到Linux系统上后,首先就是常说的“保安三问”之人生哲学问题:我是谁?我在哪儿?我要干什么? 这不只是人生哲学问题,当你面对操作系统的时候,这是首先要解决的问题,不然你就什么也做不了了。

这个问题通过whoami命令即可获得,如下运行后我们得到pi,即当前的用户。也许有人就问了,我还不知道自己是谁了,这也要单独运行命令么?就像我们之前说的,命令行中@之前的就是当前用户,所以这么说你也可以不用运行命令直接看到。但是当我们有需要通过脚本命令运行时就有必要通过命令行确定当前的用户。

pi@raspberrypi4:~ $ whoami
pi

用户是后续一切操作的前提,Linux系统是一个多用户系统,支持多个用户同时使用,用户名(账号)就是用户在系统中的唯一标识,系统通过账户实现对用户的管理,管理用户的权限、分组等。

Linux系统中的账户包括用户账户(又分为普通用户账户和超级用户账户/管理员账户)和组账户(标准组和私有组)。

这个问题可以通过pwd命令来获得,获取当前用户所在的目录,如下运行得到我们当前所在的位置是/home/pi目录,即根目录home下的pi文件夹下。

在命令提示符中“:”与“$”之间即是当前用户所在的目录,这里有一个~表示当前用户的用户目录,即用户pi的用户目录/home/pi

pi@raspberrypi4:~ $ pwd
/home/pi

Linux系统下的目录结构与我们常见的Windows系统其实都是树结构的,只是目录的功能分类不一样,Windows系统相关运行文件多放在C盘,而Linux系统根目录则是如下:

pi@raspberrypi4:/ $ ll
总用量 80
drwxr-xr-x   2 root root  4096 5月  27 12:01 bin
drwxr-xr-x   4 root root  3584 1月   1  1970 boot
drwxr-xr-x  17 root root  3980 11月 21 20:55 dev
drwxr-xr-x 121 root root 12288 11月 21 20:42 etc
drwxr-xr-x   3 root root  4096 9月  26  2019 home
drwxr-xr-x  16 root root  4096 9月  26  2019 lib
drwx------   2 root root 16384 9月  26  2019 lost+found
drwxr-xr-x   3 root root  4096 11月  8  2019 media
drwxr-xr-x   2 root root  4096 9月  26  2019 mnt
drwxr-xr-x   4 root root  4096 9月  26  2019 opt
dr-xr-xr-x 187 root root     0 1月   1  1970 proc
drwx------  19 root root  4096 11月 16 15:19 root
drwxr-xr-x  30 root root   900 11月 22 12:30 run
drwxr-xr-x   2 root root  4096 8月  12 12:38 sbin
drwxr-xr-x   2 root root  4096 9月  26  2019 srv
dr-xr-xr-x  12 root root     0 1月   1  1970 sys
drwxrwxrwt  17 root root  4096 11月 22 12:09 tmp
drwxr-xr-x  11 root root  4096 10月 13 23:54 usr
drwxr-xr-x  12 root root  4096 12月  7  2019 var

上述命令llls -l别名,用来显示当前目录下有哪些文件、文件夹,我们通过在根目录下使用该命令获得根目录下的文件目录。树莓派中这个是默认添加了别名的,有的Linux系统默认没有这个命令别名,可以通过alias命令手动在/etc/bashrc中添加alias ll='ls -l'

乍一看,这么多目录还是有点眼晕啊,我们可以简单列一下,系统目录下的文件不要随便乱改哦(当然是你有管理员权限的时候)。

  • bin 存放二进制可执行文件(lscatmkdir等)
  • boot 存放用于系统引导时使用的各种文件
  • dev 用于存放设备文件
  • etc 存放系统配置文件
  • home 存放所有用户文件的根目录
  • lib 存放跟文件系统中的程序运行所需要的共享库及内核模块
  • mnt 系统管理员安装临时文件系统的安装点
  • opt 额外安装的可选应用程序包所放置的位置
  • proc 虚拟文件系统,存放当前内存的映射
  • root 超级用户目录
  • sbin 存放二进制可执行文件,只有root才能访问
  • tmp 用于存放各种临时文件
  • usr 用于存放系统应用程序,比较重要的目录/usr/local 本地管理员软件安装目录
  • var 用于存放运行时需要改变数据的文件

在知道了我们在哪里之后,我们如果想去哪里该如何操作呢?可以通过cd命令(Change Directory)来改变目录,到达我们想去的目录。

pi@raspberrypi4:~ $ cd /home/pi/Documents/
pi@raspberrypi4:~/Documents $

上述命令我们通过命令跳转到了~/Documents目录。

此外常用的目录地址简写:

./  代表当前目录
../  代表当前目录的上一层目录
/  代表根目录
~/  代表用户目录

这里我们介绍一些常用的操作文件操作命令,创建、剪切、复制、编辑、查找等操作。

pi@raspberrypi4:~ $ mkdir folder
pi@raspberrypi4:~ $ cd folder/
pi@raspberrypi4:~/folder $ touch file.txt
pi@raspberrypi4:~/folder $ nano file.txt

首先,我们通过mkdir命令在用户目录下创建了一个名为folder的文件夹,然后进入到该文件夹目录下,通过touch命令创建了一个名为file.txt的空文件。然后我们通过nano命令,一个类似于记事本的命令行文本编辑程序,打开该空文件,界面就是下方这样。

  GNU nano 3.2                              file.txt

test
this is a test file.
当然,也是可以输入中文的。

                                     [ 已读取 3 行 ]
^G 求助        ^O 写入        ^W 搜索        ^K 剪切文字    ^J 对齐        ^C 游标位置
^X 离开        ^R 读档        ^\ 替换        ^U 还原剪切    ^T 拼写检查    ^_ 跳行

上述编辑器界面下方是功能键提示,表示Ctrl键,M表示Alt键。因此,G表示的就是同时按下Ctrl键和G键。通过组合键Ctrl+X关闭该文件,会提示是否保存修改,输入“y”,保存退出文件。

pi@raspberrypi4:~/folder $ cp file.txt file_cp.txt
pi@raspberrypi4:~/folder $ mv file.txt file_mv.txt
pi@raspberrypi4:~/folder $ mv file_mv.txt ../file.txt
pi@raspberrypi4:~/folder $ ll
总用量 4
-rw-r--r-- 1 pi pi 66 11月 22 20:22 file_cp.txt
pi@raspberrypi4:~/folder $ rm file_cp.txt
pi@raspberrypi4:~/folder $ ll
总用量 0

上述,cp将文件file.txt复制到了本目录下的file_cp.txtmv将文件file.txt移动到本目录下file_mv.txt(相当于重命名操作),mv将文件file_mv.txt移动到上一级目录下,并重命名为file.txt。通过ll命令查看本目录下只剩下file_cp.txt一个文件了,通过rm命令将file_cp.txt删除,然后查看本目录下已经没有文件了。

pi@raspberrypi4:~/folder $ mv ../file.txt ./
pi@raspberrypi4:~/folder $ ll
总用量 4
-rw-r--r-- 1 pi pi 66 11月 22 20:12 file.txt
pi@raspberrypi4:~/folder $ cat file.txt
test
this is a test file.
当然,也是可以输入中文的。
pi@raspberrypi4:~/folder $ find file.txt
file.txt
pi@raspberrypi4:~/folder $ find file*
file.txt

然后将移动到上一层目录的文件file.txt移动到本目录下,通过cat命令可以直接查看文件内容,并输出到命令行。此外,可以通过find命令查找目录下的相关文件,搭配通配符“*”使用效果更好(你可能不一定记得目录下的要查找的文件名称)。

此外,还有万能的帮助命令,如果你对某个命令的使用不是太清楚,可以直接使用man命令查找帮助,比如man nano来查看nano的帮助文件描述(不过都是英文的)。

NANO(1)                         General Commands Manual                         NANO(1)

NAME
       nano - Nano's ANOther editor, an enhanced free Pico clone

SYNOPSIS
       nano [options] [[+line[,column]] file]...

DESCRIPTION
       nano  is  a small and friendly editor.  It copies the look and feel of Pico, but
       is free software, and implements several features  that  Pico  lacks,  such  as:
       opening  multiple  files,  scrolling  per line, undo/redo, syntax coloring, line
       numbering, and soft-wrapping overlong lines.

       When giving a filename on the command line, the cursor can be put on a  specific
       line  by  adding  the  line number with a plus sign (+) before the filename, and
       even in a specific column by adding it with a comma.

       As a special case: if instead of a filename a dash (-) is given, nano will  read
       data from standard input.

EDITING
       Entering text and moving around in a file is straightforward: typing the letters
       and using the normal cursor movement keys.  Commands are entered  by  using  the
       Control  (^)  and the Alt or Meta (M-) keys.  Typing ^K deletes the current line
       and puts it in the cutbuffer.  Consecutive ^Ks will put all  deleted  lines  to‐
       gether  in  the  cutbuffer.   Any cursor movement or executing any other command
       will cause the next ^K to overwrite the cutbuffer.  A ^U will paste the  current
       contents of the cutbuffer at the current cursor position.
 Manual page nano(1) line 1 (press h for help or q to quit)
  • whoami 查看当前用户
  • pwd命令查看用户的当前目录
  • 可用 cd 命令来切换目录
  • .表示当前目录
  • .. 表示当前目录的上一级目录(父目录)
  • ~ 表示用户主目录的绝对路径名
  • ls 显示文件或目录信息
  • mkdir 当前目录下创建一个空目录
  • rmdir 要求目录为空
  • touch 生成一个空文件或更改文件的时间
  • cp 复制文件或目录
  • mv 移动文件或目录、文件或目录改名
  • rm 删除文件或目录
  • cat 查看文本文件内容
  • man 查看帮助命令

本小节主要了解Linux系统下的基本文件操作命令,当你在面对这个黑黑的框框的时候,是不是有点跃跃欲试呢。下一节,我们将通过虚拟机搭建一个Linux环境,以便趁热试试手(而不用先急着入手树莓派)。

欢迎关注我的公众号,持续更新中~~~