unbutu常用命令

重要提示:

  1. 打开终端: 在 Ubuntu 上,按 Ctrl + Alt + T 是最快打开终端窗口的方式。你也可以在应用程序菜单里搜索"Terminal"或"终端"。

  2. 命令结构: 通常命令格式是 命令 [选项] [参数]

    • 命令: 你要执行的操作(如 ls, cd)。
    • 选项 (Options): 通常以 - (短选项,如 -l) 或 -- (长选项,如 --help) 开头,用于修改命令的行为(如显示更多信息、按特定方式排序)。
    • 参数 (Arguments): 命令作用的对象(如文件名、目录名)。
  3. 空格: 命令、选项、参数之间必须用空格分隔。

  4. 大小写敏感: Linux 命令和文件名是区分大小写 的!File.txtfile.txt 被认为是两个不同的文件。

  5. 执行命令: 输入完命令后,按 Enter 键执行它。

  6. 提示符: username@computername:~$ 是常见的提示符。

    • ~ 波浪号代表你的家目录 (/home/你的用户名),是你登录后默认所在的位置,也是你个人文件的存储地。
    • $ 表示你当前是普通用户。如果是 #,则表示你是超级用户 (root),拥有最高权限,操作要非常小心!
  7. 命令历史: 按键盘的 (上箭头) 和 (下箭头) 键可以浏览之前输入过的命令,按 Enter 可以再次执行。按 history 命令可以查看所有历史记录。

  8. 自动补全: 输入命令、文件名或目录名的前几个字母后,按 Tab 键,系统会自动补全。如果按一次没反应,可能是存在多个匹配项,再按一次 Tab 会显示所有匹配项。强烈建议多用 Tab 键! 它能节省时间并减少拼写错误。

  9. 中断命令: 如果一个命令运行时间太长或你想停止它,按 Ctrl + C

  10. 清除屏幕: 输入 clear 或按 Ctrl + L 可以清空当前终端屏幕,让界面更清爽。


一、 导航与查看 (Navigation & Looking Around)

  1. pwd (Print Working Directory) - 显示当前目录

    • 功能: 告诉你你现在"站"在文件系统的哪个文件夹里。

    • 用法: pwd

    • 示例:

      text

      ruby 复制代码
      user@ubuntu:~$ pwd
      /home/user
  2. ls (List) - 列出目录内容

    • 功能: 查看当前目录下有哪些文件和子文件夹。

    • 常用选项:

      • -l: 使用长格式列出详细信息(权限、所有者、大小、修改时间)。
      • -a: 显示所有文件,包括隐藏文件(以 . 开头的文件,如 .bashrc)。
      • -h: 与 -l 一起用,以人类可读的格式显示文件大小(如 K, M, G)。
      • --color: 通常默认开启,用不同颜色区分文件类型(目录、普通文件、可执行文件等)。
    • 用法: ls [选项] [目录名] (如果不指定目录名,默认查看当前目录)

    • 示例:

      text

      ruby 复制代码
      user@ubuntu:~$ ls           # 列出当前目录内容 (简单列表)
      user@ubuntu:~$ ls -l        # 列出详细信息
      user@ubuntu:~$ ls -la       # 列出所有文件(包括隐藏文件)的详细信息
      user@ubuntu:~$ ls -lh /etc  # 以人类可读大小列出 /etc 目录的详细信息
  3. cd (Change Directory) - 切换目录

    • 功能: 从一个文件夹"走进"另一个文件夹。

    • 特殊符号:

      • . :代表当前目录(很少单独用 cd .,但在其他命令中很有用)。
      • .. :代表当前目录的上一级目录(父目录)。
      • ~ :代表你的家目录 (/home/你的用户名)。
      • - :代表上一次你所在的目录(在两个目录间来回切换很方便)。
    • 用法: cd [目录路径]

    • 示例:

      text

      ruby 复制代码
      user@ubuntu:~$ cd Documents      # 进入当前目录下的 Documents 子目录
      user@ubuntu:~/Documents$ cd ..   # 返回上一级目录 (即家目录 ~)
      user@ubuntu:~$ cd /usr/bin        # 直接切换到绝对路径 /usr/bin 目录
      user@ubuntu:/usr/bin$ cd ~        # 直接回到家目录
      user@ubuntu:~$ cd -               # 切换回上一次所在的目录 (比如 /usr/bin)
  4. cat (Concatenate) - 查看文件内容

    • 功能: 在终端里一次性显示 整个文件的内容。适合查看短小的文本文件(如配置文件、日志片段、脚本代码)。如果文件很长,内容会快速滚过屏幕,你可能只能看到最后一部分。

    • 用法: cat [文件名]

    • 示例:

      text

      ruby 复制代码
      user@ubuntu:~$ cat hello.txt   # 显示 hello.txt 文件的所有内容
    • 查看长文件的替代命令: less (推荐) 或 more。它们允许你分页浏览,按 空格 翻页,按 q 退出。

  5. less - 分页查看文件内容

    • 功能: 逐屏(分页)查看文件内容,非常适合浏览长文件 。比 more 功能更强(支持向前向后翻)。

    • 用法: less [文件名]

    • 常用操作 (在 less 查看界面中):

      • 空格 / Page Down: 向下翻一页。
      • b / Page Up: 向上翻一页。
      • / : 向上/向下移动一行。
      • /关键词: 在文件中向下 搜索关键词(如 /error 找 error),按 n 找下一个匹配项,按 N 找上一个。
      • ?关键词: 在文件中向上搜索关键词。
      • q: 退出 less
    • 示例:

      text

      ruby 复制代码
      user@ubuntu:~$ less /var/log/syslog  # 分页查看系统日志文件

二、 文件与目录操作 (File & Directory Operations)

  1. mkdir (Make Directory) - 创建新目录

    • 功能: 新建一个文件夹(目录)。

    • 常用选项:

      • -p: 递归创建目录。如果需要创建的目录的父目录不存在,会一并创建。例如要创建 project/code/src,但 project/code 不存在,用 -p 就能一次性创建整个路径。
    • 用法: mkdir [选项] 目录名

    • 示例:

      text

      ruby 复制代码
      user@ubuntu:~$ mkdir new_folder        # 在当前目录创建名为 new_folder 的目录
      user@ubuntu:~$ mkdir -p project/docs   # 创建 project 目录,并在其中创建 docs 目录 (如果 project 不存在也会创建)
  2. touch - 创建空文件或更新文件时间戳

    • 功能:

      1. 如果文件不存在 ,创建一个新的空文件
      2. 如果文件已存在,更新该文件的"最后修改时间"为当前时间(文件内容不变)。
    • 用法: touch 文件名

    • 示例:

      text

      ruby 复制代码
      user@ubuntu:~$ touch new_file.txt  # 创建一个名为 new_file.txt 的空文本文件
      user@ubuntu:~$ touch existing_file # 更新 existing_file 的时间戳
  3. cp (Copy) - 复制文件或目录

    • 功能: 复制文件或目录到另一个位置。

    • 常用选项:

      • -r-R (Recursive): 必须 在复制目录时使用,表示递归复制目录及其所有内容(子目录和文件)。
      • -i (Interactive): 如果目标位置存在同名文件,在覆盖前询问确认强烈建议新手加上 -i 或养成习惯,避免意外覆盖!
      • -v (Verbose): 显示复制过程的详细信息(复制了什么文件)。
    • 用法: cp [选项] 源文件或目录 目标文件或目录

    • 示例:

      text

      ruby 复制代码
      user@ubuntu:~$ cp file1.txt file1_backup.txt      # 复制 file1.txt 到当前目录,命名为 file1_backup.txt
      user@ubuntu:~$ cp -i important.doc ~/Documents/  # 复制 important.doc 到家目录下的 Documents 目录 (覆盖前询问)
      user@ubuntu:~$ cp -rv my_project/ backups/       # 递归复制整个 my_project 目录到 backups 目录 (显示详细信息)
  4. mv (Move) - 移动或重命名文件/目录

    • 功能:

      1. 移动: 将文件或目录从一个位置移动到另一个位置。
      2. 重命名: 如果在同一个目录 下操作,效果就是重命名
    • 常用选项:

      • -i (Interactive): 如果目标位置存在同名文件,在覆盖前询问确认同样强烈建议新手使用!
      • -v (Verbose): 显示移动过程的详细信息。
    • 用法: mv [选项] 源文件或目录 目标文件或目录

    • 示例:

      text

      ruby 复制代码
      user@ubuntu:~$ mv oldname.txt newname.txt      # 重命名:将 oldname.txt 改名为 newname.txt (在同一目录下)
      user@ubuntu:~$ mv report.pdf ~/Documents/     # 移动:将 report.pdf 移动到 Documents 目录
      user@ubuntu:~$ mv -i data/ /media/usbdrive/   # 移动 data 目录到 U 盘挂载点 (覆盖前询问)
  5. rm (Remove) - 删除文件或目录

    • 功能: 永久删除 文件或目录。Linux 命令行删除的文件通常无法从回收站恢复!请极其谨慎!

    • 常用选项:

      • -r-R (Recursive): 必须 在删除目录 时使用,表示递归删除目录及其所有内容(子目录和文件)。非常危险!
      • -f (Force): 强制删除,不提示确认。极其危险!慎用!
      • -i (Interactive): 删除前询问确认强烈建议新手始终加上 -i 或至少用于 -r 操作!
    • 用法: rm [选项] 文件或目录... (可以一次删除多个)

    • 示例:

      text

      ruby 复制代码
      user@ubuntu:~$ rm -i unwanted_file.txt    # 删除 unwanted_file.txt (删除前询问确认)
      user@ubuntu:~$ rm *.tmp                   # 删除当前目录下所有以 .tmp 结尾的文件 (* 是通配符)
      user@ubuntu:~$ rm -ri old_directory       # 递归删除 old_directory 目录及其所有内容 (删除每个文件/目录前都询问确认)
    • 警告: rm -rf /rm -rf * 在错误的位置执行会导致灾难性后果(删除所有文件或系统文件)! 执行 rm -r 前务必用 pwd 确认当前目录是否正确!

  6. file - 查看文件类型

    • 功能: 告诉你一个文件是什么类型的(文本文件?图片?可执行程序?目录?)。

    • 用法: file 文件名

    • 示例:

      text

      ruby 复制代码
      user@ubuntu:~$ file picture.jpg
      picture.jpg: JPEG image data, ...  # 识别为 JPEG 图片
      user@ubuntu:~$ file myscript.sh
      myscript.sh: Bourne-Again shell script, ... # 识别为 Bash 脚本
      user@ubuntu:~$ file somefile
      somefile: ASCII text              # 识别为普通文本文件

三、 系统信息与进程管理 (System Info & Processes)

  1. uname - 显示系统信息

    • 功能: 显示关于操作系统和硬件的基本信息。

    • 常用选项:

      • -a (All): 显示所有信息(最常用)。
      • -s (Kernel name): 显示内核名称(如 Linux)。
      • -r (Kernel release): 显示内核版本号。
      • -m (Machine): 显示硬件架构(如 x86_64)。
    • 用法: uname [选项]

    • 示例:

      text

      ruby 复制代码
      user@ubuntu:~$ uname -a
      Linux ubuntu 5.15.0-86-generic #96-Ubuntu SMP ... x86_64 GNU/Linux
  2. df (Disk Free) - 显示磁盘空间使用情况

    • 功能: 查看文件系统(硬盘分区)的总空间、已用空间、剩余空间和挂载点。

    • 常用选项:

      • -h (Human-readable): 以人类可读的单位显示大小(G, M)。
    • 用法: df [选项]

    • 示例:

      text

      ruby 复制代码
      user@ubuntu:~$ df -h
      Filesystem      Size  Used Avail Use% Mounted on
      /dev/sda1       20G   10G  9.0G  53% /
      tmpfs           1.9G     0  1.9G   0% /dev/shm
      ...             ...   ...   ...  ... ...
  3. du (Disk Usage) - 估算文件/目录占用的磁盘空间

    • 功能: 查看指定文件或目录(及其子目录)占用了多少磁盘空间。

    • 常用选项:

      • -h (Human-readable): 以人类可读的单位显示大小。
      • -s (Summarize): 只显示总计大小,不显示每个子目录的详情。
      • --max-depth=N: 显示深入到第 N 级子目录的汇总。
    • 用法: du [选项] [文件或目录...] (默认显示当前目录所有内容的大小)

    • 示例:

      text

      ruby 复制代码
      user@ubuntu:~$ du -sh Documents/  # 显示 Documents 目录的总大小
      1.5G    Documents/
      user@ubuntu:~$ du -h --max-depth=1 /var/log  # 显示 /var/log 下第一级子目录的大小
  4. top / htop - 动态查看系统进程和资源占用

    • 功能: 实时显示系统中运行的进程、CPU 使用率、内存使用情况、负载等系统状态。htoptop 的增强版(颜色更丰富,操作更方便,通常需要额外安装:sudo apt install htop)。

    • 用法: 直接输入 tophtop

    • 常用操作 (在 top/htop 界面中):

      • q: 退出。
      • k (top) / F9 (htop): 终止选中的进程 (kill)。需要输入进程 ID (PID)。
      • M: 按内存使用量排序。
      • P: 按 CPU 使用率排序。
      • u: 只显示某个用户的进程。
      • F (htop): 选择排序字段。
      • / (htop): 搜索进程。
    • 示例:

      text

      ruby 复制代码
      user@ubuntu:~$ top    # 启动 top
      user@ubuntu:~$ htop   # 启动 htop (如果已安装)
  5. ps (Process Status) - 查看当前进程快照

    • 功能: 显示当前时刻系统运行的进程信息。默认只显示当前用户在当前终端启动的进程。

    • 常用选项:

      • aux (组合选项最常用): 显示所有用户的所有进程详细信息。
      • -ef: 另一种显示所有进程的格式。
      • -u username: 显示指定用户的进程。
    • 用法: ps [选项]

    • 示例:

      text

      ruby 复制代码
      user@ubuntu:~$ ps           # 查看当前终端会话的进程
      user@ubuntu:~$ ps aux        # 查看系统所有进程的详细信息 (最常用)
      user@ubuntu:~$ ps -u bob     # 查看用户 bob 的进程
  6. kill / killall - 终止进程

    • 功能: 向运行中的进程发送信号,通常用于终止进程。需要知道进程的 ID (PID) 或名称。

    • 常用信号:

      • 15 (SIGTERM): 默认信号,请求进程正常终止(让它自己清理后退出)。
      • 9 (SIGKILL): 强制终止 信号。进程会被立即杀死,没有机会清理。仅在进程不响应 15 时使用。
    • 用法:

      • kill [信号] PID (通过进程 ID 杀进程)
      • killall [信号] 进程名 (通过进程名称杀所有同名进程) 使用要谨慎!
    • 示例:

      text

      ruby 复制代码
      user@ubuntu:~$ kill 1234          # 向 PID 为 1234 的进程发送 SIGTERM (15),请求其终止
      user@ubuntu:~$ kill -9 5678       # 强制杀死 PID 为 5678 的进程
      user@ubuntu:~$ killall -9 firefox # 强制杀死所有名为 firefox 的进程 (小心!)
    • 如何找 PID? 通常先用 ps aux | grep 进程名pgrep 进程名 查找。


四、 网络相关 (Networking)

  1. ping - 测试网络连通性

    • 功能: 向指定的网络主机(如 IP 地址或域名)发送 ICMP 回显请求包,测试你的电脑是否能到达该主机以及网络延迟。按 Ctrl+C 停止。

    • 用法: ping [选项] 目标主机

    • 示例:

      text

      ruby 复制代码
      user@ubuntu:~$ ping google.com       # 测试是否能连接到 google.com
      user@ubuntu:~$ ping 8.8.8.8          # 测试是否能连接到 Google 的 DNS 服务器
  2. ifconfig (旧) / ip addr (新) - 查看和配置网络接口

    • 功能: 显示和配置网络接口(网卡)的信息,如 IP 地址、MAC 地址、状态等。

    • 说明: ifconfig 是比较老的命令,在最新的 Ubuntu 中可能默认没有安装(但通常可以安装 net-tools 包获得)。推荐使用更新的 ip 命令。

    • 用法:

      • 查看所有接口信息: ifconfigip addr (或 ip a)
      • 查看特定接口: ifconfig eth0ip addr show eth0
    • 示例:

      text

      ruby 复制代码
      user@ubuntu:~$ ip addr     # 使用 ip 命令查看所有网络接口信息
      user@ubuntu:~$ ifconfig    # 使用 ifconfig 查看 (如果已安装)
  3. wget - 从网络下载文件

    • 功能: 在命令行中直接从互联网下载文件(支持 HTTP, HTTPS, FTP)。

    • 常用选项:

      • -O 文件名: 指定下载后保存的文件名。
      • -c: 继续中断的下载(断点续传)。
    • 用法: wget [选项] [URL]

    • 示例:

      text

      ruby 复制代码
      user@ubuntu:~$ wget https://example.com/largefile.zip         # 下载文件到当前目录
      user@ubuntu:~$ wget -O ubuntu.iso https://.../ubuntu-22.04.iso # 下载并命名为 ubuntu.iso

五、 权限管理 (Permissions - 稍微进阶,但很重要)

  1. chmod (Change Mode) - 修改文件/目录权限

    • 功能: 改变文件或目录的访问权限(读 r、写 w、执行 x)。Linux 权限系统是核心安全机制之一。

    • 理解权限: 权限分为三组:用户 (u) (文件所有者)、组 (g)其他 (o) (其他人)。每组有 r, w, x 三种权限。

    • 数字模式 (常用): 用三位八进制数表示权限 (如 755, 644)。

      • r (读) = 4

      • w (写) = 2

      • x (执行) = 1

      • 无权限 = 0

      • 每组权限是三个值的和:

        • 7 (4+2+1) = rwx
        • 6 (4+2+0) = rw-
        • 5 (4+0+1) = r-x
        • 4 (4+0+0) = r--
        • 0 (0+0+0) = ---
    • 符号模式: 使用 u/g/o/a (用户/组/其他/所有) 和 +/-/= (添加/移除/设置) 以及 r/w/x

    • 用法:

      • 数字模式: chmod [选项] 数字权限 文件或目录
      • 符号模式: chmod [选项] [ugoa...][[+-=][rwx...]...] 文件或目录
    • 示例:

      text

      ruby 复制代码
      # 数字模式:
      user@ubuntu:~$ chmod 755 my_script.sh  # 设置 my_script.sh: 用户(rwx), 组(r-x), 其他(r-x) (常用给可执行脚本)
      user@ubuntu:~$ chmod 644 config.txt    # 设置 config.txt: 用户(rw-), 组(r--), 其他(r--) (常用给配置文件)
      
      # 符号模式:
      user@ubuntu:~$ chmod u+x my_script.sh  # 给用户 (u) 添加 (+) 执行 (x) 权限
      user@ubuntu:~$ chmod go-rw secret.txt  # 移除组 (g) 和其他人 (o) 的读写 (rw) 权限
  2. sudo (SuperUser DO) - 以超级用户权限执行命令

    • 功能: 允许被授权的普通用户临时以超级用户 (root) 的身份执行命令。执行需要管理员权限的操作时必须使用(如安装软件、修改系统文件)。

    • 重要: 使用 sudo 时要格外小心,错误的命令可能导致系统损坏!只有在你理解命令含义时才使用。

    • 用法: sudo [命令]

    • 示例:

      text

      ruby 复制代码
      user@ubuntu:~$ sudo apt update          # 以 root 权限更新软件包列表
      user@ubuntu:~$ sudo nano /etc/fstab     # 以 root 权限编辑系统文件 fstab
    • 注意: 第一次使用 sudo 或在长时间未使用后使用,系统会要求输入当前用户的登录密码(输入时密码不会显示星号,这是正常的)。

  3. passwd - 修改用户密码

    • 功能: 修改当前登录用户的密码。

    • 用法: passwd

    • 示例:

      text

      yaml 复制代码
      user@ubuntu:~$ passwd
      Changing password for user.
      (current) UNIX password:  # 输入当前密码
      Enter new UNIX password:   # 输入新密码
      Retype new UNIX password:  # 再次输入新密码确认
      passwd: password updated successfully
    • 修改其他用户密码 (需要sudo): sudo passwd username


六、 软件包管理 (Package Management - Ubuntu 核心)

  1. apt (Advanced Package Tool) - 软件包管理工具

    • 功能: Ubuntu/Debian 系统上最重要的命令之一!用于安装、更新、升级、删除软件包。

    • 常用子命令:

      • sudo apt update刷新软件包索引 。从配置的软件源(仓库)下载最新的软件包列表信息。在安装或升级软件包之前强烈建议先运行此命令。它不会升级已安装的软件。
      • sudo apt upgrade升级所有可升级的软件包 。根据 apt update 获取的信息,将系统中已安装的软件包升级到仓库中的最新版本。通常会要求确认。
      • sudo apt install 软件包名安装指定的软件包(以及它依赖的其他包)。
      • sudo apt remove 软件包名卸载 指定的软件包,但保留其配置文件。
      • sudo apt purge 软件包名完全卸载 指定的软件包,同时删除其配置文件。
      • sudo apt autoremove自动删除不再需要的依赖包。在卸载软件后运行,可以清理掉那些为了满足依赖关系而自动安装、但现在没有任何其他软件依赖的包。
      • apt search 关键词搜索 软件包仓库中名称或描述包含关键词的软件包(不需要 sudo)。
      • apt show 软件包名显示 指定软件包的详细信息(版本、描述、依赖等,不需要 sudo)。
      • apt list --upgradable: 列出所有可升级的软件包(在 apt update 后使用,不需要 sudo)。
    • 用法: sudo apt [子命令] [选项] [软件包名]

    • 示例:

      text

      ruby 复制代码
      user@ubuntu:~$ sudo apt update                    # 更新软件包列表
      user@ubuntu:~$ sudo apt upgrade                   # 升级所有可升级软件
      user@ubuntu:~$ sudo apt install htop vlc          # 安装 htop 和 vlc 软件
      user@ubuntu:~$ sudo apt remove --purge oldapp      # 完全卸载 oldapp 并删除配置
      user@ubuntu:~$ sudo apt autoremove                # 清理不需要的依赖包
      user@ubuntu:~$ apt search "web browser"           # 搜索包含 "web browser" 的软件包

七、 获取帮助 (Getting Help)

  1. man (Manual) - 查看命令手册

    • 功能: 查看 Linux 命令、函数、配置文件等的官方详细手册。这是学习命令最权威、最全面的方式!

    • 用法: man [手册页名称] (手册页名称通常是命令名)

    • man 页面中的操作:

      • 空格 / Page Down: 向下翻页。
      • b / Page Up: 向上翻页。
      • /关键词: 在手册页中向下 搜索关键词(如 /option 找 option),按 n 找下一个匹配项,按 N 找上一个。
      • q: 退出 man
    • 示例:

      text

      ruby 复制代码
      user@ubuntu:~$ man ls      # 查看 ls 命令的详细手册
      user@ubuntu:~$ man apt     # 查看 apt 的手册
      user@ubuntu:~$ man chmod   # 查看 chmod 的手册
  2. 命令名 --help命令名 -h - 查看命令简要帮助

    • 功能: 快速查看命令支持的选项和基本用法摘要。比 man 更简洁,适合快速查阅。

    • 用法: 命令名 --help命令名 -h

    • 示例:

      text

      ruby 复制代码
      user@ubuntu:~$ ls --help
      user@ubuntu:~$ cp -h
相关推荐
uhakadotcom1 小时前
使用postgresql时有哪些简单有用的最佳实践
后端·面试·github
IT毕设实战小研1 小时前
基于Spring Boot校园二手交易平台系统设计与实现 二手交易系统 交易平台小程序
java·数据库·vue.js·spring boot·后端·小程序·课程设计
bobz9651 小时前
QT 字体
后端
泉城老铁1 小时前
Spring Boot 中根据 Word 模板导出包含表格、图表等复杂格式的文档
java·后端
用户4099322502121 小时前
如何在FastAPI中玩转APScheduler,实现动态定时任务的魔法?
后端·github·trae
风象南1 小时前
开发者必备工具:用 SpringBoot 构建轻量级日志查看器,省时又省力
后端
RainbowSea1 小时前
伙伴匹配系统(移动端 H5 网站(APP 风格)基于Spring Boot 后端 + Vue3 - 04
java·spring boot·后端
楽码2 小时前
理解自动修复:编程语言的底层逻辑
后端·算法·编程语言
RainbowSea2 小时前
伙伴匹配系统(移动端 H5 网站(APP 风格)基于Spring Boot 后端 + Vue3 - 03
java·spring boot·后端
Young55662 小时前
RAG?你真的了解RAG吗?
人工智能·后端