前置知识: Git

Linux 语法速查

1 minBeginner

常用 Linux 命令速查表,含使用场景、常见错误,支持搜索和复制

学习指引

前置知识

  • 了解操作系统的基本概念
  • 已安装 Linux 系统或可通过终端访问 Linux 环境

推荐学习顺序

  1. 先学习【文件与目录操作】分组,掌握基本文件管理
  2. 再学习【权限与用户管理】分组,掌握系统安全管理

文件与目录操作

Linux 最基础的操作。本组命令用于浏览、创建、删除和移动文件与目录,是日常使用频率最高的命令。

列出目录内容

ls -la /home
输出: total 32 drwxr-xr-x 4 root root 4096 Jun 15 10:00 . drwxr-xr-x 18 root root 4096 Jun 15 09:00 .. drwxr-xr-x 3 user user 4096 Jun 15 10:00 user
场景: 查看指定目录下的文件和子目录。加 -l 显示详细信息(权限、所有者、大小等),加 -a 显示隐藏文件。

常见错误

  • 错误: ls /hom(路径拼写错误) -- 解决: 使用 Tab 键自动补全路径,避免手动输入错误
进阶: ls -lh 以人类可读格式显示文件大小(如 4K、2M),ls -lt 按修改时间排序,ls -lS 按文件大小排序。

切换目录

cd /var/log
输出: (无输出,命令行提示符变为当前目录)
场景: 切换当前工作目录。cd ~ 回到用户主目录,cd - 返回上一次所在目录,cd .. 返回上级目录。

常见错误

  • 错误: cd /var/loog -- 解决: 先用 ls 确认目录名,或使用 Tab 键补全
  • 错误: cd log(未使用绝对路径且当前目录不对) -- 解决: 确认当前所在目录,或使用绝对路径 cd /var/log
进阶: cd 不带参数直接回到用户主目录,等同于 cd ~。pushd 和 popd 可实现目录栈操作,适合在多个目录间频繁切换。

创建目录

mkdir -p /data/project/src
输出: (无输出,表示成功)
场景: 创建新目录。加 -p 可递归创建多级目录,即父目录不存在时自动创建,不会报错。

常见错误

  • 错误: mkdir /data/project/src(父目录 /data/project 不存在且未加 -p) -- 解决: 使用 mkdir -p 递归创建,或先逐级创建父目录
  • 错误: mkdir /existing_dir -- 解决: 目录已存在,使用 ls 确认后再决定是否需要创建
进阶: mkdir -m 755 project 可在创建目录时直接设置权限,等同于创建后执行 chmod 755 project。

删除文件或目录

rm -rf /tmp/old_project
输出: (无输出,表示成功)
场景: 删除文件或目录。-r 递归删除目录及其内容,-f 强制删除不提示确认。此操作不可逆,务必谨慎使用。

常见错误

  • 错误: rm -rf / tmp/old_project(路径前多了空格) -- 解决: 路径中不要有多余空格,建议先使用 ls 确认路径后再删除
  • 错误: rm file.txt(误删重要文件) -- 解决: 重要操作前先备份,可使用 alias rm='rm -i' 设置删除前确认
进阶: 可安装 trash-cli 工具,使用 trash-put 代替 rm,文件会被移到回收站而非永久删除,支持 trash-restore 恢复。

复制文件或目录

cp -r /data/project /backup/project
输出: (无输出,表示成功)
场景: 复制文件或目录。-r 用于递归复制整个目录,不加 -r 只能复制文件。目标路径不存在时会自动创建。

常见错误

  • 错误: cp /data/project /backup/project(project 是目录但未加 -r) -- 解决: 复制目录必须加 -r 参数:cp -r /data/project /backup/project
  • 错误: cp file.txt /existing_dir/(目标目录中已有同名文件) -- 解决: 使用 cp -i 启用覆盖前确认提示
进阶: cp -a 可完整复制文件及目录,保留权限、所有者、时间戳等所有属性,常用于备份。

移动或重命名文件

mv old_name.txt new_name.txt
输出: (无输出,表示成功)
场景: 移动文件到其他目录,或对文件进行重命名。源路径和目标路径在同一目录下时为重命名,不同目录下为移动。

常见错误

  • 错误: mv file.txt /nonexistent_dir/file.txt -- 解决: 确保目标目录存在,或先创建目标目录
  • 错误: mv file.txt existing_file.txt -- 解决: 使用 mv -i 启用覆盖前确认提示
进阶: mv 命令在同一个文件系统内操作时几乎是瞬时的(只修改目录项),跨文件系统时才会实际复制数据。

权限与用户管理

Linux 安全体系的核心。本组命令用于管理文件权限和用户账户,确保系统安全与合理的访问控制。

修改文件权限

chmod 755 script.sh
输出: (无输出,表示成功)
场景: 修改文件或目录的访问权限。755 表示所有者可读写执行,组用户和其他用户可读和执行。也可使用符号模式:chmod u+x script.sh。

常见错误

  • 错误: chmod 777 /etc/passwd -- 解决: 系统文件不应设置 777 权限,应遵循最小权限原则
  • 错误: chmod 755 dir/(未加 -R 递归修改目录内文件) -- 解决: 使用 chmod -R 755 dir/ 递归修改目录及内部所有文件的权限
进阶: 数字模式中:4=读(r),2=写(w),1=执行(x)。755 = 所有者(4+2+1) + 组(4+1) + 其他(4+1)。符号模式更直观:chmod u+rwx,g+rx,o+rx script.sh。

修改文件所有者

chown user:group file.txt
输出: (无输出,表示成功)
场景: 修改文件或目录的所有者和所属组。普通用户只能修改自己拥有的文件,root 用户可修改任何文件的所有者。

常见错误

  • 错误: chown otheruser file.txt(当前用户不是 root 且不是文件所有者) -- 解决: 只有 root 用户或文件所有者才能修改所有者,需使用 sudo 提权
  • 错误: chown user file.txt(只改了所有者未改组) -- 解决: 使用 user:group 格式同时修改所有者和组,或用 chgrp 单独修改组
进阶: chown -R user:group directory/ 可递归修改目录及内部所有文件的所有者和组。

以管理员权限执行

sudo apt update
输出: [sudo] password for user: Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease
场景: 以超级用户权限执行命令。当普通用户权限不足时,在命令前加 sudo 可临时获取管理员权限。首次使用需输入当前用户密码。

常见错误

  • 错误: sudo rm -rf /(误操作) -- 解决: 执行 sudo 命令前务必仔细核对命令内容,避免使用危险的通配符和路径
  • 错误: user is not in the sudoers file -- 解决: 需要 root 用户将该用户添加到 sudo 组:usermod -aG sudo username
进阶: sudo -i 可切换到 root 用户的交互式 shell,sudo -u username command 可以指定用户身份执行命令。

创建新用户

sudo useradd -m -s /bin/bash newuser
输出: (无输出,表示成功)
场景: 创建新的系统用户。-m 自动创建用户主目录,-s 指定默认 shell。创建后需用 passwd 命令设置密码。

常见错误

  • 错误: sudo useradd newuser(未加 -m 参数) -- 解决: 使用 useradd -m 创建用户并自动生成主目录,或手动 mkdir /home/newuser
  • 错误: sudo useradd newuser(未设置密码) -- 解决: 创建用户后执行 sudo passwd newuser 设置初始密码
进阶: adduser 命令是 useradd 的交互式版本,会自动创建主目录、设置密码和拷贝配置文件,对新手更友好。