菜鸟科技网

terminal命令行

什么是终端命令行?

一句话解释: 终端命令行是用户与计算机操作系统进行交互的一种方式,通过输入文本命令来控制计算机,而不是像我们平时那样使用图形界面。

terminal命令行-图1
(图片来源网络,侵删)

你可以把它想象成与计算机进行“文字对话”,你下达指令,计算机执行并返回结果。

为什么还要用命令行? 虽然图形界面直观易用,但命令行在很多方面具有巨大优势:

  • 高效与自动化: 命令行可以轻松地完成重复性任务,你可以写一个简单的脚本,一键重命名上千个文件,这在图形界面下几乎是不可能完成的。
  • 强大的功能: 很多高级系统工具和功能没有图形界面,只能通过命令行访问。
  • 远程管理: 管理服务器时,通常只通过命令行(如 SSH)进行远程操作,因为它速度快、资源占用少、稳定可靠。
  • 精确控制: 你可以对命令的每一个参数进行精细的调整,实现图形界面难以企及的精确操作。
  • 跨平台: 大多数核心命令(如 ls, cd, cp)在 Linux, macOS, 甚至 Windows (通过 WSL 或 PowerShell) 上都是通用的,学会后可以触类旁通。

如何打开终端?

不同的操作系统打开终端的方式略有不同。

macOS

  • 快捷键:Command (⌘) + 空格键 打开 Spotlight 搜索,输入 Terminal 或“终端”,然后按回车。
  • 应用程序: 打开“访达”,进入“应用程序” -> “实用工具”,找到“终端”。

Linux (以 Ubuntu 为例)

  • 快捷键:Ctrl + Alt + T
  • 应用程序菜单: 通常在“应用程序”或“活动”中可以找到“终端”或“Console”。

Windows

现代 Windows 系统对命令行支持越来越好,主要有两种选择:

terminal命令行-图2
(图片来源网络,侵删)
  • Windows Terminal (推荐):

    1. 在 Microsoft Store 中搜索并安装 “Windows Terminal”。
    2. 安装后,可以从开始菜单打开它,它集成了传统的 CMD、PowerShell 以及 WSL (Windows Subsystem for Linux) 等多种命令环境,功能强大且美观。
  • PowerShell / CMD (自带):

    • PowerShell: 在开始菜单搜索 PowerShell,推荐使用,功能比 CMD 更强大。
    • CMD: 在开始菜单搜索 cmd命令提示符,这是最传统的 Windows 命令行。

建议: 如果你是新手,并且想在 Windows 上获得最接近 Linux/macOS 的体验,强烈建议安装 WSL (Windows Subsystem for Linux),然后在 Windows Terminal 中运行 Ubuntu 等 Linux 发行版。


终端界面初探

打开终端后,你通常会看到一个类似这样的窗口:

terminal命令行-图3
(图片来源网络,侵删)
user@hostname:~$
  • user: 你的用户名。
  • hostname: 你的计算机名。
  • 这是你的当前工作目录。 是你的家目录 的简写,类似于 Windows 下的 C:\Users\YourName 或 macOS 下的 /Users/YourName
  • 这是命令提示符,表示终端已经准备好,等待你输入命令,有些系统可能显示为 或 ( 通常表示管理员/root权限)。

核心概念:命令 + 参数 + 选项

几乎所有的命令都遵循一个基本结构:

command [options] [arguments]
  • 命令: 你想执行的操作,如 ls, cd, mkdir
  • 选项: 用来修改命令行为的标志,通常以 或 开头。ls -l 中的 -l 表示“以长格式列表”。
  • 参数: 命令作用的对象,通常是文件名或目录名。ls Documents 中的 Documents 就是参数。

示例: ls -l /home

  • ls: 命令,意思是“列表”。
  • -l: 选项,意思是“长格式显示”。
  • /home: 参数,意思是“在 /home 这个目录下执行”。

最最最常用的基础命令(必须掌握)

这些命令是你在任何命令行环境下都会用到的基石。

文件和目录操作

命令 全称 作用 示例
ls list 列出当前目录下的文件和文件夹。 ls (列出), ls -a (列出所有,包括隐藏文件), ls -l (长格式列表)
cd change directory 切换目录 cd /var/log (切换到 /var/log 目录), cd .. (返回上一级目录), cd ~ (回到自己的家目录)
pwd print working directory 打印当前所在目录的完整路径 pwd (会输出类似 /home/user/docs 的路径)
mkdir make directory 创建一个新的目录 mkdir new_folder (创建 new_folder), mkdir -p parent/child (创建嵌套目录)
touch - 创建一个空文件,或者更新一个文件的时间戳。 touch hello.txt (创建 hello.txt 文件)
cp copy 复制文件或目录 cp source.txt dest.txt (复制文件), cp -r source_dir/ dest_dir/ (-r 选项用于递归复制目录)
mv move 移动文件或目录,也可以用来重命名 mv old_name.txt new_name.txt (重命名), mv file.txt /tmp/ (移动文件到 /tmp 目录)
rm remove 删除文件或目录。⚠️ 危险操作,删除前无法撤销! rm file.txt (删除文件), rm -r directory/ (-r 选项用于递归删除目录), rm -rf directory/ (-f 强制删除,极其危险,请慎用!)
man manual 查看命令的帮助手册,Linux 下最强大的命令之一。 man ls (查看 ls 命令的详细用法,按 q 退出)

查看文件内容

命令 全称 作用 示例
cat concatenate 一次性显示整个文件的内容,适合查看小文件。 cat hello.txt
less - 分页显示文件内容,适合查看大文件,可以上下翻页(j/k上下箭头),按 q 退出。 less large_log_file.log
head - 显示文件的开头几行,默认 10 行。 head -n 5 hello.txt (显示前 5 行)
tail - 显示文件的结尾几行,默认 10 行,对于查看日志文件非常有用。 tail -f /var/log/syslog (-f 选项可以实时追踪文件变化)

搜索和过滤

命令 全称 作用 示例
grep global regular expression print 在文本中搜索匹配的行 grep "error" /var/log/syslog (在日志文件中搜索包含 "error" 的行)
find - 在目录树中搜索文件 find . -name "*.txt" (在当前目录及其子目录中查找所有后缀为 .txt 的文件)

权限管理

命令 全称 作用 示例
chmod change mode 修改文件或目录的权限 chmod +x script.sh (给 script.sh 添加可执行权限)
chown change owner 修改文件或目录的所有者,通常需要 sudo 权限。 sudo chown user:group file.txt (将文件所有者改为 user,所属组改为 group)

进阶技巧

权限问题:sudo

当你执行一个需要管理员权限的命令时(比如修改系统文件),系统会拒绝,这时,你需要在命令前加上 sudo (superuser do)。

# 尝试编辑一个系统配置文件,可能会失败
nano /etc/hosts
# 使用 sudo 获取权限后再编辑
sudo nano /etc/hosts
# 系统会要求你输入当前用户的密码

命令历史

  • 按 和 键可以浏览之前执行过的命令。
  • Ctrl + R 可以搜索历史命令。

自动补全

这是命令行最伟大的发明之一!当你输入一个命令或文件名的一部分后,按 Tab 键,终端会自动补全剩余部分。

  • 如果有多个匹配项,按两次 Tab 键,会列出所有可能。

管道

管道可以将一个命令的输出,作为另一个命令的输入,这能让你把多个简单的命令组合成强大的功能链。

# 1. 列出所有文件和目录
ls -l
# 2. 只想看以 "a" 开头的文件
ls -l | grep "^a"
# 解释:`ls -l` 的输出通过管道 `|` 传递给了 `grep`,`grep` 再从中筛选出以 "a" 开头的行。

输入输出重定向

  • >: 覆盖重定向,将命令的输出写入一个文件,如果文件存在则覆盖。
    echo "Hello World" > hello.txt
  • >>: 追加重定向,将命令的输出追加到一个文件的末尾,如果文件不存在则创建。
    echo "This is a new line." >> hello.txt
  • <: 输入重定向,将文件内容作为命令的输入。
    sort < names.txt

学习路径建议

  1. 熟悉基本命令: 反复练习 ls, cd, pwd, mkdir, cp, mv, rm,在电脑上创建一个练习目录,在里面随意创建、复制、移动、删除文件和文件夹,直到形成肌肉记忆。
  2. 学会自救: man 命令,遇到任何不知道的命令,第一时间 man <command>,这是独立学习的关键。
  3. 探索文件系统: 使用 cd 在你的系统中四处逛逛,用 ls 看看不同目录里有什么,理解 , /home, /usr, /var 等常见目录的作用。
  4. 开始组合使用: 尝试使用管道和重定向。ls -l | grep ".txt" 来查找所有 txt 文件。
  5. 学习脚本: 当你觉得手动重复操作很烦人时,就是学习 Shell 脚本的最佳时机,从最简单的 for 循环开始,让命令帮你工作。

终端命令行起初看起来有些吓人,但只要你从基础开始,循序渐进,就会发现它是一个无比强大和高效的工具,它不仅是一种技能,更是一种全新的、与计算机交互的思维方式。

最重要的建议:不要怕! 在一个安全的环境(比如你自己的电脑)里大胆地去尝试,最坏的情况也就是删掉几个文件,这都可以恢复,祝你在命令行的世界里探索愉快!

分享:
扫描分享到社交APP
上一篇
下一篇