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
相关推荐
brzhang20 分钟前
颠覆你对代码的认知:当程序和数据只剩下一棵树,能读懂这篇文章的人估计全球也不到 100 个人
前端·后端·架构
躲在云朵里`32 分钟前
SpringBoot的介绍和项目搭建
java·spring boot·后端
喵个咪1 小时前
Golang微服框架Kratos与它的小伙伴系列 - 分布式事务框架 - DTM
后端·微服务·go
brzhang1 小时前
我见过了太多做智能音箱做成智障音箱的例子了,今天我就来说说如何做意图识别
前端·后端·架构
晴空月明2 小时前
结构型模式-架构解耦与扩展实践
后端
WanderInk3 小时前
在递归中为什么用 `int[]` 而不是 `int`?——揭秘 Java 参数传递的秘密
java·后端·算法
why技术3 小时前
哎,我糊涂啊!这个需求居然没想到用时间轮来解决。
java·后端·面试
寻月隐君3 小时前
Rust 核心概念解析:引用、借用与内部可变性
后端·rust·github
万粉变现经纪人3 小时前
如何解决pip安装报错ModuleNotFoundError: No module named ‘django’问题
后端·python·pycharm·django·numpy·pandas·pip
ai小鬼头3 小时前
创业心态崩了?熊哥教你用缺德哲学活得更爽
前端·后端·算法