Raspberry Pi - Linux Shell
Raspberry Pi - Linux Shell (命令行)
Section titled “Raspberry Pi - Linux Shell (命令行)”虽然 Raspberry Pi OS 提供了图形桌面环境,但 Linux Shell(也称为命令行或终端)提供了一种强大的基于文本的方式来与你的 Pi 交互。理解基本的 Shell 命令对于许多任务至关重要,包括系统管理、编程和自动化。Raspberry Pi OS 上的默认 Shell 是 Bash (Bourne Again SHell)。
打开终端窗口
Section titled “打开终端窗口”你可以通过几种方式从桌面环境访问 Shell:
- 点击任务栏顶部的终端图标(通常看起来像
>_或一个黑色屏幕)。 - 打开应用程序菜单(树莓派图标)-> 附件 -> 终端。
- 使用键盘快捷键:
Ctrl + Alt + T。
如果你的 Pi 直接启动到命令行(OS 的 Lite 版本),那么你已经处于 Shell 中了。
终端打开时,你会看到一个提示符,通常看起来像这样:
pi@raspberrypi:~ $让我们分解它的组成部分:
pi:当前登录用户的用户名(默认用户是pi)。@:分隔符。raspberrypi:机器的主机名(它在网络上的名称)。你可以更改这个名称。::分隔符。~:当前工作目录。波浪号(~)是用户主目录(例如/home/pi)的快捷方式。$:表示你以普通用户身份登录。如果你看到#符号,意味着你正在以超级用户 (root) 身份操作,该身份具有管理权限。
你在 $(或 #)符号后输入命令,然后按 Enter 键执行。
基本导航和文件管理
Section titled “基本导航和文件管理”列出文件和目录 (ls)
Section titled “列出文件和目录 (ls)”要查看当前目录的内容:
lsls 的常用选项:
ls -l:长列表格式(显示权限、所有者、大小、修改日期)。ls -a:显示所有文件,包括隐藏文件(名称以点.开头)。ls -h:与-l一起使用时,以人类可读的格式显示文件大小(例如 KB、MB、GB)。ls -t:按修改时间排序,最新的在前。ls -r:反转排序顺序。
你可以组合选项:ls -lah 显示所有文件,以长格式和人类可读的大小。
注意:Linux 命令和文件名是区分大小写的。MyFile.txt 与 myfile.txt 不同。
改变目录 (cd)
Section titled “改变目录 (cd)”要进入不同的目录:
cd DirectoryName示例:cd Documents 进入 Documents 目录(假设它存在于当前位置)。
特殊的 cd 命令:
cd ..:向上移动一级到父目录。cd ~或仅cd:回到你的主目录。cd /:进入文件系统的根目录。cd -:回到你之前所在的目录。
查找当前位置 (pwd)
Section titled “查找当前位置 (pwd)”要打印当前工作目录的完整路径:
pwd创建目录 (mkdir)
Section titled “创建目录 (mkdir)”要创建一个新目录:
mkdir NewDirectoryName示例:mkdir MyProject
你可以同时创建多个目录:mkdir Dir1 Dir2 Dir3
创建嵌套目录(父目录必须存在或使用 -p):mkdir -p ParentDir/ChildDir
移除空目录 (rmdir)
Section titled “移除空目录 (rmdir)”要移除一个空目录:
rmdir EmptyDirectoryName如果目录不为空,rmdir 将失败。
移除文件和目录 (rm)
Section titled “移除文件和目录 (rm)”要移除(删除)一个文件:
rm filename.txt要移除一个目录及其所有内容(请极端谨慎使用!):
rm -r DirectoryNamerm 的常用选项:
-r或-R:递归的,移除目录时必须使用。-f:强制,尝试不提示就移除(危险!)。-i:交互式的,在每次移除前提示确认。-v:详细模式,显示正在执行的操作。
注意:使用 rm 移除的文件通常无法恢复。标准 Shell 中没有回收站。在按 Enter 键之前务必仔细检查命令,尤其是在使用 -r 或通配符时。
复制文件和目录 (cp)
Section titled “复制文件和目录 (cp)”要复制一个文件:
cp source_file destination_file示例:cp report.txt report_backup.txt(在同一目录下创建一个副本)
要将文件复制到另一个目录中:
cp source_file destination_directory/示例:cp image.jpg Pictures/
要复制一个目录及其内容:
cp -r source_directory destination_directory/示例:cp -r MyProject Backups/
移动和重命名文件和目录 (mv)
Section titled “移动和重命名文件和目录 (mv)”要移动一个文件或目录:
mv source destination_directory/示例:mv draft.txt Documents/
要重命名一个文件或目录:
mv old_name new_name示例:mv temp_file.txt final_report.txt
查看文件内容
Section titled “查看文件内容”将文件的全部内容显示到屏幕上。最适合短文件。
cat filename.txt一次显示一屏幕的文件内容。允许向上和向下滚动(使用方向键、Page Up/Down)和搜索(输入 / 后跟搜索词)。按 q 键退出。
less long_file.loghead 和 tail
Section titled “head 和 tail”显示文件的开头 (head) 或结尾 (tail)。对于快速检查日志文件很有用。
head filename.txt # 默认显示前 10 行# 默认显示前 10 行tail filename.txt # 默认显示后 10 行# 默认显示后 10 行tail -n 20 filename.txt # 显示后 20 行# 显示后 20 行tail -f filename.log # 跟踪文件,显示新增的行(按 Ctrl+C 停止)# 跟踪文件,显示新增的行(按 Ctrl+C 停止)当你使用 ls -l 时,第一列显示文件权限,例如 -rw-r--r-- 或 drwxr-xr-x。
- 第一个字符:
-代表普通文件,d代表目录。 - 接下来的 3 个字符:文件所有者(用户)的权限。
- 再接下来的 3 个字符:文件所属组(组)的权限。
- 最后 3 个字符:其他所有人的权限。
权限类型:
r:读取权限(查看文件内容,列出目录内容)。w:写入权限(修改文件,在目录中创建/删除文件)。x:执行权限(将文件作为程序运行,使用cd进入目录)。-:权限被拒绝。
chmod 命令用于更改权限(例如,chmod +x script.sh 使脚本可执行)。
获取帮助 (man)
Section titled “获取帮助 (man)”要了解特定命令的更多信息,请使用手册 (man) 命令:
man command_name示例:man ls 显示 ls 命令的手册页。使用方向键滚动,按 q 键退出。
超级用户权限 (sudo)
Section titled “超级用户权限 (sudo)”许多管理任务(如安装软件、编辑系统文件、管理服务)需要 root 权限。为了避免直接以 root 身份登录(通常不推荐),请使用 sudo 命令以 root 权限运行单个命令。
sudo command_to_run_as_root示例:sudo apt update(更新软件包列表)。
在一次会话中首次使用 sudo 时,通常会提示你输入用户的密码(默认是 pi 用户的密码)。
Shell 快捷方式与效率
Section titled “Shell 快捷方式与效率”- Tab 补全: 开始输入命令或文件名,然后按
Tab键。Shell 将尝试自动补全。如果存在多个可能性,按两次Tab键通常会显示选项。 - 历史记录: 按向上箭头键可以调出之前的命令。使用向下箭头键在历史记录中向前移动。
Ctrl + R: 在命令历史中进行反向搜索。开始输入命令的一部分,它会显示最近的匹配项。Ctrl + C: 停止(中断)当前正在运行的命令。Ctrl + L: 清空终端屏幕。Ctrl + A: 将光标移动到行首。Ctrl + E: 将光标移动到行尾。
输入/输出重定向与管道
Section titled “输入/输出重定向与管道”重定向 (>, >>)
Section titled “重定向 (>, >>)”将命令的输出发送到文件而不是屏幕。
ls -l > file_list.txt # 用输出覆盖 file_list.txt# 用输出覆盖 file_list.txtls -l >> file_list.txt # 将输出追加到 file_list.txt 末尾# 将输出追加到 file_list.txt 末尾管道 (|)
Section titled “管道 (|)”将一个命令的输出作为另一个命令的输入。
ls -l | less # 分页查看长列表# 分页查看长列表dpkg -l | grep python # 列出已安装软件包并过滤包含 'python' 的行# 列出已安装软件包并过滤包含 'python' 的行系统关机与重启
Section titled “系统关机与重启”安全地关闭你的 Raspberry Pi:
sudo shutdown -h now或者,通常更简单:
sudo poweroff重启你的 Raspberry Pi:
sudo reboot在断开电源之前,务必进行正常关机,以避免损坏 MicroSD 卡。