当前位置:首页>Linux>Linux杂记 -- GNU/Linux 入门指南(1)

Linux杂记 -- GNU/Linux 入门指南(1)

  • 2026-09-02 19:03:51
Linux杂记 -- GNU/Linux 入门指南(1)

1.1 常用快捷键

终端操作基础

本文档中的示例假设你使用的是符合 POSIX 标准的 shell(如 bash、sh、zsh、ksh 等)。
GNU/Linux 的大部分功能都通过终端实现。大多数 Linux 发行版都包含终端模拟器,允许用户通过桌面环境与 shell 交互。Shell 是一个命令行解释器,负责执行用户输入的命令。Bash(Bourne Again SHell)是许多 Linux 发行版的默认 shell,也是 macOS 的默认 shell。
以下快捷键适用于使用 Emacs 键位绑定的 Bash(默认设置):

打开终端

Ctrl + Alt + T 或 Super + T

光标移动

【 Ctrl + A 】:移动到当前输入行的行首
【 Ctrl + E 】:移动到当前输入行的行尾
【 Ctrl + XX 】:在行首和光标当前位置之间切换
【 Alt + F 】:向前移动一个单词
【 Alt + B 】:向后移动一个单词
【 Ctrl + F 】:向前移动一个字符
【 Ctrl + B 】:向后移动一个字符

文本编辑

【 Ctrl + U 】:从当前位置剪切到行首,加入剪贴板。如果在行尾,则剪切整行
【 Ctrl + K 】:从当前位置剪切到行尾,加入剪贴板。如果在行首,则剪切整行
【 Ctrl + W 】:删除光标前的单词,加入剪贴板
【 Ctrl + Y 】:粘贴剪贴板中最近一次剪切的内容(撤销当前光标位置的最后一次删除)
【 Alt + T 】:交换光标前最后两个单词的位置
【 Alt + L 】:从光标位置到单词末尾转为小写
【 Alt + U 】:从光标位置到单词末尾转为大写
【 Alt + C 】:从光标位置到单词末尾首字母大写(如果光标在单词开头则整个单词首字母大写)
【 Alt + D 】:从光标位置删除到单词末尾(如果光标在单词开头则删除整个单词)
【 Alt + . 】:打印上一条命令的最后一个单词
【 Ctrl + T 】:交换光标前最后两个字符

历史命令访问

【 Ctrl + R 】:搜索历史命令
【 Ctrl + G 】:退出历史搜索模式,不执行命令
【 Ctrl + J 】:将当前匹配的命令复制到命令行,不执行,允许修改后再运行
【 Alt + R 】:恢复从历史中拉取的命令的原始状态(如果你已经编辑过它)
【 Ctrl + P 】:显示上一条执行的命令(等同于向上箭头)
【 Ctrl + N 】:显示下一条执行的命令(等同于向下箭头)

终端控制

【 Ctrl + L 】:清屏,效果等同于 clear 命令
【 Ctrl + S 】:停止所有屏幕输出。适用于运行有大量长输出的命令时。但这不会停止正在运行的命令
【 Ctrl + Q 】:恢复被 Ctrl+S 停止的屏幕输出
【 Ctrl + C 】:结束当前运行的进程并返回提示符
【 Ctrl + D 】:退出当前 shell 会话,效果等同于 exit 或 logout 命令。在某些命令中,作为文件结束符(EOF)表示已达到文件末尾
【 Ctrl + Z 】:挂起(暂停)当前运行的前台进程,返回 shell 提示符。然后可以使用 bg 命令让该进程在后台运行。要再次将该进程带到前台,使用 fg 命令。要查看所有后台进程,使用 jobs 命令
【 Tab 】:自动补全文件和目录名
【 Tab Tab 】:当输入的字符不能唯一匹配到文件或目录名时,显示所有可能性

特殊字符

【 Ctrl + H 】:等同于退格键(Backspace)
【 Ctrl + J 】:等同于回车键(历史上为换行符 Line Feed)
【 Ctrl + M 】:等同于回车键(历史上为回车符 Carriage Return)
【 Ctrl + I 】:等同于 Tab 键
【 Ctrl + G 】:响铃字符
【 Ctrl + @ 】:空字符
【 Esc 】:等同于 Alt 修饰键的死键

关闭终端

【 Ctrl + Shift + W 】:关闭终端标签页
【 Ctrl + Shift + Q 】:关闭整个终端
另外,你可以在 bash 中使用 set -o vi 切换到 vi 键位绑定。使用 set -o emacs 切换回 Emacs 键位绑定。

1.2 文件管理命令

Linux 使用特定的约定来表示当前目录和父目录,这对初学者可能有些困惑。
当你在 Linux 终端中时,你处于所谓的"当前工作目录"。通常你的命令提示符会显示完整的工作目录路径,或者只显示该目录的最后一部分。你的提示符可能看起来像以下几种:
user@host ~/somedir $user@host somedir $user@host /home/user/somedir $
这表示你的当前工作目录是 /home/user/somedir。
在 Linux 中,.. 代表父目录,. 代表当前目录。
因此,如果当前目录是 /home/user/somedir,那么执行 cd ../somedir 不会改变工作目录。
下表列出了一些最常用的文件管理命令:

目录导航

命令用途
pwd获取当前工作目录的完整路径
cd -导航到上一次工作的目录
cd ~ 或 cd导航到当前用户的家目录
cd ..进入当前目录的父目录(注意 cd 和 .. 之间的空格)

列出目录内容

命令用途
ls -l以长格式(表格形式)列出当前目录的文件和目录(建议总是使用 -l 选项以获得更好的可读性)
ls -ld dir-name列出目录 dir-name 的信息,而不是其内容
ls -a列出所有文件,包括隐藏文件(Linux 中以 . 开头的文件名为隐藏文件)
ls -F在文件名末尾附加符号以指示类型(* 表示可执行文件,/ 表示目录,@ 表示符号链接,= 表示套接字,\| 表示命名管道,> 表示门)
ls -lt按最后修改时间排序列出文件,最近修改的文件显示在顶部(-l 选项提供长格式,可读性更好)
ls -lh以人类可读的格式列出文件大小
ls -lR递归显示所有子目录
tree从当前目录开始生成文件系统的树形表示

文件/目录的创建、复制和删除

命令用途
cp -p source destination将文件从源位置复制到目标位置。-p 表示保留,复制时保留文件的原始属性,如文件所有者、时间戳、组、权限等
cp -R source_dir destination_dir递归地将源目录复制到指定目标
mv file1 file2Linux 没有专门的 rename 命令,因此 mv 用于移动/重命名文件,将 file1 重命名为 file2
rm -i filename每次删除文件前询问确认。如果你是 Linux 命令行的新用户,应该总是使用 rm -i。可以指定多个文件
rm -R dir-name递归删除目录 dir-name
rm -rf dir-name递归删除目录,忽略不存在的文件,从不提示任何信息。使用此命令时要小心! 可以指定多个目录
rmdir dir-name删除空目录 dir-name。此命令只能删除空目录
mkdir dir-name创建目录 dir-name
mkdir -p dir-name/dir-name创建目录层级结构。根据需要创建父目录(如果它们不存在)。可以指定多个目录
touch filename创建文件 filename(如果不存在),否则将文件的时间戳更新为当前时间

文件/目录权限和组

命令用途
chmod <specification> filename更改文件权限。规格说明:u 用户,g 组,o 其他,+ 添加权限,- 移除权限,r 读,w 写,x 执行
chmod -R <specification> dir-name递归更改目录权限。要更改目录及其内部所有内容的权限,使用此命令
chmod go=+r myfile为所有者和组添加读权限
chmod a+rwx myfile允许所有用户读、写或执行
chmod go-r myfile从组和其他用户移除读权限
chown owner1 filename将文件的所有权更改为用户 owner1
chgrp grp_owner filename将文件 filename 的主要组所有权更改为组 grp_owner
chgrp -R grp_owner dir-name递归地将目录 dir-name 的主要组所有权更改为组 grp_owner。要更改目录及其内部所有内容的组所有权,使用此命令

1.3 Hello World

在终端中输入以下代码,然后按回车:
echo "Hello World"
这将产生以下输出:
Hello World

最新文章

随机文章