文件与目录
📁
ls
查看目录中的文件和文件夹列表。
基本语法与选项
- 基本格式:`ls [选项] [路径]`
- -l:显示文件大小、权限、修改时间等详细信息。
- -a:显示所有文件,包括隐藏文件(以.开头的文件)。
- -h:以易读单位(KB/MB)显示文件大小。
ls -al → 查看包含隐藏文件在内的详细列表。
📂
cd
切换当前工作目录。
基本语法与选项
- 使用 `cd 路径` 切换到目标目录。
- `cd ..` 切换到上级目录,`cd ~` 切换到主目录。
- `cd -` 返回上一次所在的目录。
cd /var/log → 切换到 /var/log 目录。
📍
pwd
输出当前所在目录的完整路径。
基本语法与选项
- 是 Print Working Directory 的缩写。
- 在Shell脚本中也常用于将当前路径保存为变量。
🗂️
mkdir
创建新目录(文件夹)。
基本语法与选项
- 使用 `mkdir 文件夹名` 创建文件夹。
- 加上 -p 选项,即使中间路径不存在也能一次性创建。
mkdir -p project/src/utils → 一次性创建多层嵌套文件夹。
🗑️
rmdir
删除空目录。
基本语法与选项
- 无法删除有内容的目录,此时需要使用 `rm -r`。
✨
touch
创建空文件,或更新已有文件的修改时间。
基本语法与选项
- 若文件不存在则新建;若已存在,则仅将最后修改时间更新为当前时间。
touch notes.txt → 创建一个空文本文件。
📋
cp
复制文件或目录。
基本语法与选项
- 格式为 `cp 源 目标`。
- 必须加 -r 选项才能复制整个目录(文件夹)。
- -i 选项会在覆盖同名文件前询问确认。
cp -r src backup → 将整个 src 文件夹复制为 backup。
➡️
mv
移动文件或目录,或对其重命名。
基本语法与选项
- 在同一位置仅更改名称时相当于重命名文件;指定不同路径时则相当于移动。
mv old.txt new.txt → 重命名文件。
❌
rm
删除文件或目录。
基本语法与选项
- 默认只能删除文件,删除目录需要加 -r(递归)选项。
- -f 选项会不经确认强制删除,请谨慎使用。
- 没有回收站概念,一旦删除很难恢复。
rm -rf old_folder → 强制删除文件夹及其全部内容(请谨慎使用)。
📄
cat
将文件内容原样输出到屏幕。
基本语法与选项
- 也可以一次性连接输出多个文件(`cat a.txt b.txt`)。
- 常用于快速查看较短文件的内容。
🔎
find
查找符合条件的文件或目录。
基本语法与选项
- `find 路径 -name "模式"` 按名称搜索。
- 可用 -type f(文件)/ -type d(目录)指定类型。
- -mtime 选项可以按修改时间进行搜索。
find . -name "*.log" → 查找当前文件夹下所有扩展名为 .log 的文件。
🌳
tree
以树状结构一目了然地展示目录结构。
基本语法与选项
- 部分发行版未预装,可能需要单独安装(例如:`apt install tree`)。
- 可用 -L 数字 选项限制显示的文件夹深度。
权限与用户
🔐
chmod
更改文件或目录的访问权限(读/写/执行)。
基本语法与选项
- 权限按所有者、群组、其他用户的顺序,分别用读(4)、写(2)、执行(1)相加表示。
- 例如755表示所有者拥有全部权限,群组和其他用户只有读取和执行权限。
- 也可以用符号(+ / -)指定,如 `chmod +x script.sh`。
chmod 755 script.sh → 赋予所有者读/写/执行权限,其余用户只有读/执行权限。
👤
chown
更改文件或目录的所有者(用户)。
基本语法与选项
- 格式为 `chown 用户名 文件名`。
- 也可用 `chown 用户:群组 文件名` 同时更改所有者和群组。
chown user1 file.txt → 将 file.txt 的所有者改为 user1。
👥
chgrp
更改文件或目录所属的群组。
基本语法与选项
🛡️
sudo
以管理员(root)权限执行命令。
基本语法与选项
- 据说是 "Substitute User DO" 的缩写。
- 用于更改系统设置、安装软件包等普通用户权限无法完成的操作。
- 执行前会要求输入当前登录账户的密码。
🔄
su
切换到其他用户(默认是root)。
基本语法与选项
- 只输入 `su` 会尝试切换到 root,输入 `su 用户名` 则切换到指定账户。
- 与sudo不同,需要输入目标账户本身的密码。
🙋
whoami
输出当前登录用户的名称。
基本语法与选项
- 在脚本或远程服务器连接时,可用于快速确认当前使用的是哪个账户。
文本处理与搜索
🔍
grep
在文件或输入内容中查找包含特定字符串(模式)的行。
基本语法与选项
- 基本格式为 `grep "模式" 文件名`。
- -i 选项忽略大小写进行搜索。
- -r 选项递归搜索目录中的所有文件。
- -n 选项会同时显示匹配行的行号。
grep -rn "TODO" ./src → 在 src 文件夹下的所有文件中查找包含 TODO 的行及其行号。
✂️
sed
按照规则替换或编辑文本的流编辑器。
基本语法与选项
- 最常用的形式是字符串替换:`sed 's/old/new/g' 文件`
- 末尾的g表示替换该行中所有匹配项。
- 加上 -i 选项会直接修改原文件,而不是输出到屏幕。
sed -i 's/foo/bar/g' file.txt → 将 file.txt 中所有的 foo 替换为 bar 并保存。
🧮
awk
按行和列(字段)处理文本的编程语言兼命令。
基本语法与选项
- 默认以空格为基准,将每行拆分为字段(`$1`、`$2`……)处理。
- 常用于从日志文件中提取特定列。
awk '{print $1}' access.log → 只输出每行的第一个字段。
⬆️
head
只输出文件开头的几行。
基本语法与选项
- 默认是10行。
- 可用 -n 选项指定输出的行数(例如 `head -n 20`)。
⬇️
tail
只输出文件末尾的几行。
基本语法与选项
- 默认是10行。
- 实时查看日志文件时常用 -f(follow)选项。
tail -f /var/log/syslog → 实时持续显示日志文件中新增加的内容。
🔀
sort
按行对文本进行排序。
基本语法与选项
- 默认按字典顺序排序。
- -n 选项按数值排序。
- -r 选项反转排序顺序(倒序)。
🧹
uniq
将连续重复的行合并为一行。
基本语法与选项
- 对未排序的数据无法正常生效,通常与 `sort` 配合使用(`sort file | uniq`)。
- -c 选项会同时显示重复的次数。
🔢
wc
统计文件的行数、单词数和字符(字节)数。
基本语法与选项
- -l 只输出行数,-w 只输出单词数,-c 只输出字节数。
wc -l file.txt → 输出文件的总行数。
📜
less
可以按屏幕滚动查看文件内容的查看器。
基本语法与选项
- 与cat不同,不会一次性将整个文件读入内存,因此打开大文件也很快速轻便。
- 用方向键滚动,用 `/搜索词` 在文件内搜索,按q退出。
🆚
diff
按行比较两个文件的内容,显示差异。
基本语法与选项
- 会显示哪些行被添加、删除或修改,便于比较代码或配置文件。
diff old.txt new.txt → 显示两个文件之间不同的行。
进程与系统
⚙️
ps
显示当前正在运行的进程列表。
基本语法与选项
- `ps aux` 是最常用的形式,会详细显示所有用户的全部进程。
ps aux | grep nginx → 在运行中的进程里只查找名称包含 nginx 的进程。
📊
top
按CPU、内存使用量实时显示正在运行的进程。
基本语法与选项
- 屏幕会定期自动刷新,按q退出。
- 更易用的改进版 htop 也被广泛使用(需单独安装)。
🛑
kill
向进程发送信号使其终止。
基本语法与选项
- 格式为 `kill 进程ID(PID)`。
- 如果默认信号无法终止,可使用 -9(强制终止)选项。
kill -9 1234 → 强制终止PID为1234的进程。
💥
killall
通过进程名称一次性终止多个进程。
基本语法与选项
- 即使不知道PID,仅凭可执行文件名称就能终止进程,非常方便。
killall firefox → 终止所有名为 firefox 的进程。
🧾
jobs
显示当前终端会话中在后台运行或已停止的任务列表。
基本语法与选项
⏯️
bg / fg
将已停止的任务以后台(bg)或前台(fg)方式继续执行。
基本语法与选项
- 用Ctrl+Z暂停任务后,可以用 `bg` 在后台继续运行,或用 `fg` 重新调到前台。
🧰
systemctl
在基于systemd的Linux系统中管理服务(守护进程)。
基本语法与选项
- `systemctl start/stop/restart 服务名` 用于启动、停止、重启服务。
- `systemctl status 服务名` 用于查看当前状态。
- `systemctl enable 服务名` 用于设置开机自动启动。
systemctl restart nginx → 重启 nginx 服务。
💽
df
显示磁盘(文件系统)的总容量和使用情况。
基本语法与选项
df -h → 以GB/MB为单位显示各磁盘分区的使用情况。
📦
du
显示文件或目录占用的空间。
基本语法与选项
- 用 `du -sh 文件夹名` 可以一目了然地查看整个文件夹的总大小。
🧠
free
显示系统的内存(RAM)使用情况。
基本语法与选项
网络
📶
ping
向指定地址发送信号,检查网络连接状态和响应速度。
基本语法与选项
ping google.com → 持续检查到 google.com 的响应时间。
🌐
curl
向URL请求数据并获取响应的命令,常用于API测试等场景。
基本语法与选项
- 默认会将响应内容输出到屏幕。
- 用 -O 选项可将响应保存为文件,用 -I 选项可只查看响应头。
curl -I https://example.com → 只查看该网站的响应头。
⬇️
wget
下载URL指向的文件。
基本语法与选项
- 相比curl更专注于文件下载。
- 下载中途中断时,可用 -c 选项续传。
🔑
ssh
安全地连接(远程登录)到远程服务器。
基本语法与选项
ssh user@192.168.0.10 → 以 user 账户连接到该IP的服务器。
📤
scp
利用SSH在本地与远程服务器之间安全地复制文件。
基本语法与选项
- 格式为 `scp 源 目标`,服务器端路径写作 `user@主机:路径`。
scp file.txt user@server:/home/user/ → 将本地文件传输到远程服务器。
🧭
ip / ifconfig
查看网络接口的IP地址等配置信息。
基本语法与选项
- `ip addr` 是新版发行版的标准命令,`ifconfig` 是旧版发行版使用的方式(部分发行版需要单独安装)。
🔌
netstat / ss
查看当前打开的网络连接和端口状态。
基本语法与选项
- `ss` 是取代netstat的新命令,运行速度更快。
🛰️
traceroute
显示数据包到达目的地所经过的网络路径(中转节点)。
基本语法与选项
压缩与其他
📦
tar
将多个文件打包成一个归档文件,或将其解包。
基本语法与选项
- 打包和压缩常常同时进行,记住选项组合会很方便。
- c=创建,x=解压,z=gzip压缩,v=显示进度,f=指定文件名。
- 例如:-czvf(压缩并打包)、-xzvf(边解压边解包)。
tar -czvf backup.tar.gz ./project → 将 project 文件夹用gzip压缩为 backup.tar.gz。
🗜️
gzip / gunzip
将文件压缩为 .gz 格式(gzip),或解压(gunzip)。
基本语法与选项
- 只能压缩单个文件,打包多个文件时常与tar搭配使用。
🎁
zip / unzip
以 .zip 格式压缩或解压文件、文件夹。
基本语法与选项
- 与Windows等其他操作系统兼容性良好的压缩格式。
unzip archive.zip → 将 archive.zip 的内容解压到当前文件夹。
🕘
history
显示此前输入过的命令列表。
基本语法与选项
- 输入 `!编号` 可以重新执行history中对应编号的命令。
🏷️
alias
为常用的长命令注册一个简短的别名。
基本语法与选项
- 注册到Shell配置文件(如 ~/.bashrc)中,每次打开新终端时都会自动生效。
alias ll="ls -al" → 注册后只需输入 ll 即可执行 ls -al。
📚
man
查看命令的官方使用说明(手册)。
基本语法与选项
- 用方向键滚动,用 `/搜索词` 在说明书内搜索,按q退出。
man ls → 查看 ls 命令的全部选项和用法。
💬
echo
将字符串或变量的值输出到屏幕。
基本语法与选项
- 在Shell脚本中也常用于确认某个值,或向文件追加内容。
echo "text" >> file.txt → 在 file.txt 末尾追加一行内容为 text。
📌
which
查找某个命令实际执行时所对应的程序文件路径。
基本语法与选项
- 当同名命令安装了多个版本时,可用于确认实际执行的是哪个文件,非常有用。
which python3 → 显示 python3 命令实际执行的文件路径。
vi/vim 编辑器
📝
vi 기본 모드
vi(vim)有命令模式、插入模式、命令行模式三种模式,所有操作都是在这些模式之间切换完成的。
基本语法与选项
- 打开文件后默认处于命令模式(无法直接输入文字)。
- 按下 i、a 等键会切换到插入模式,此时可以输入文字。
- 在插入模式下按Esc会返回命令模式。
- 在命令模式下按冒号(:)会切换到命令行模式,用于输入保存、退出等命令。
vi file.txt → 打开 file.txt 并运行 vi。
✍️
i / a / I / A
切换到插入模式,开始输入文字。
基本语法与选项
- i:从光标位置的「前面」开始插入。
- a:从光标位置的「后面」开始插入。
- I:从行首开始插入,A:从行尾开始插入。
🔙
Esc
从插入模式等其他模式返回命令模式。
基本语法与选项
- vi的几乎所有操作都在命令模式下进行,因此养成完成操作后先按Esc回到命令模式,再进行下一步操作的习惯会很有帮助。
🧭
h / j / k / l
将光标逐格移动(左/下/上/右)。
基本语法与选项
- h:左,j:下,k:上,l:右。
- 这种方式是为了不让手离开基准键位就能快速移动而设计的,用来代替方向键。
🏃
w / b / e, 0 / $
按单词或行为单位移动光标。
基本语法与选项
- w:移动到下一个单词的开头,b:移动到上一个单词的开头。
- e:移动到当前(或下一个)单词的结尾。
- 0:移动到行首,$:移动到行尾。
📄
gg / G / :숫자
在整篇文档范围内一次性跳转到目标位置。
基本语法与选项
- gg:跳转到文档的第一行。
- G:跳转到文档的最后一行。
- 输入 `:数字` 后按Enter,可直接跳转到该行号。
:42 → 跳转到第42行。
✂️
dd
删除(剪切)当前行。
基本语法与选项
- 被删除的行会复制到临时存储区(寄存器),可用p粘贴。
- 配合数字使用时(`3dd`),可一次删除多行。
📋
yy
复制当前行(yank)。
基本语法与选项
- 与dd不同,只复制不删除。
- 加上数字如 `3yy`,可一次复制多行。
📥
p / P
粘贴复制或删除的内容。
基本语法与选项
- p:粘贴到光标「之后」的行/位置。
- P:粘贴到光标「之前」的行/位置。
↩️
u / Ctrl+r
撤销或重做操作。
基本语法与选项
- u:撤销(undo)刚才的操作。
- Ctrl+r:重做(redo)被撤销的操作。
🔡
x
删除光标所在的一个字符。
基本语法与选项
- 便于立即修正简短的打字错误。
- 加上数字如 `3x`,可一次删除多个字符。
🖍️
v / V
切换到用于选择范围的可视模式。
基本语法与选项
- v:按字符为单位选择范围。
- V:按行为单位选择范围。
- 选择范围后按d(删除)、y(复制)等,会应用到整个选定区域。
🔍
/ 패턴, ? 패턴, n / N
在文档中搜索目标字符串。
基本语法与选项
- /模式 + Enter:向光标下方搜索。
- ?模式 + Enter:向光标上方搜索。
- n:沿相同方向跳到下一个结果,N:沿相反方向移动。
/error → 查找文档中出现 error 的位置。
🔁
:%s/old/new/g
在整篇文档或指定范围内查找并替换字符串。
基本语法与选项
- 省略%时只应用于当前行,省略g时每行只替换第一个匹配项。
- 末尾加c(`:%s/old/new/gc`)时,会在替换前逐一确认。
:%s/foo/bar/g → 将文档中所有的 foo 替换为 bar。
💾
:w / :q / :wq / :q!
保存操作内容或退出编辑器。
基本语法与选项
- :w — 保存当前内容。
- :q — 退出编辑器(在没有更改的情况下)。
- :wq (或 ZZ) — 保存并退出。
- :q! — 不保存更改并强制退出。
:wq → 保存并退出 vi。
🔢
:set number
在每行开头显示行号。
基本语法与选项
- 用 `:set number`(或 `:set nu`)开启,用 `:set nonumber` 再次关闭。
🔂
.
按句点(.)键可以原样再重复一次刚才所做的编辑操作。
基本语法与选项