跳到主要内容
Hybrid Toolkit

工具

Linux 语法速查

几秒内查到 chmod、find、tar、管道等日常 Linux 写法。

搜命令名或想做的事,复制示例贴到终端。按 / 聚焦搜索框。

显示 66 条

Shell 语法

  • |

    command1 | command2

    把上一条命令的输出交给下一条。

    • ps aux | grep nginx

      在进程列表里过滤

    • cat access.log | grep 404 | wc -l

      统计匹配行数

    • ls -lt | head

      按修改时间倒序

  • >

    command > file command >> file

    把输出写入文件。> 覆盖,>> 追加。

    • echo hello > out.txt

      覆盖写入

    • echo more >> out.txt

      追加写入

    • ls > files.txt

      保存文件列表

  • 2>

    command 2> file command > file 2>&1

    把错误输出存下来,或和正常输出合并。

    • make 2> errors.txt

      只保存错误

    • cmd > all.log 2>&1

      正常和错误写到一起

    • cmd &> all.log

      同上,短写法

  • && ||

    cmd1 && cmd2 cmd1 || cmd2

    上一条成功才执行 &&,失败才执行 ||。

    • mkdir -p dist && cp app dist/

      建目录成功才复制

    • grep -q ready status.txt || echo missing

      找不到就提示

    • test -f .env && echo found

      判断文件是否存在

  • $VAR

    export NAME=value echo $NAME

    读取和设置环境变量。

    • export PATH="$PATH:/opt/bin"

      把目录加进 PATH

    • echo $HOME

      打印家目录

    • printenv PATH

      打印 PATH

  • quotes

    'literal' "expand $VAR"

    单引号原样保留;双引号里的 $VAR 仍会展开。

    • echo 'keep $HOME as text'

      不展开变量

    • echo "user is $USER"

      展开 $USER

    • grep "error 500" app.log

      带空格的关键字

  • *

    * ? [abc] **

    用通配符一次匹配多个文件名。

    • ls *.log

      所有 .log

    • rm file-?.txt

      单字符通配

    • cp src/*.{js,ts} dist/

      js 或 ts

  • tee

    command | tee file

    一边在屏幕上看输出,一边写入文件。

    • make | tee build.log

      边看边存

    • echo ok | tee -a notes.txt

      追加到文件

  • history

    history !! !n Ctrl+R

    重跑以前敲过的命令。

    • history 20

      最近 20 条

    • !!

      重跑上一条

    • !123

      重跑第 123 条

  • alias

    alias name='command'

    给常用命令起短名字。

    • alias ll='ls -lah'

      ll 等于 ls -lah

    • alias

      列出别名

    • unalias ll

      删除别名

  • echo

    echo [text]

    打印文本,常配合重定向使用。

    • echo hello

      打印文字

    • echo -n no-newline

      不换行

    • printf "%s\n" "$HOME"

      printf 写法

文件目录

  • ls

    ls [options] [path]

    列出目录里的文件。

    • ls

      只显示名字

    • ls -lah

      详细、含隐藏、可读大小

    • ls -lt

      最新的在前

  • cd

    cd [path]

    切换当前目录。

    • cd

      回家目录

    • cd /var/log

      进入路径

    • cd ..

      上一级

    • cd -

      上一次所在目录

  • pwd

    pwd

    显示当前路径。

    • pwd

      我在哪

  • mkdir

    mkdir [-p] dir

    创建目录。-p 会连同上级一起建。

    • mkdir logs

      建一个目录

    • mkdir -p src/app/utils

      连同上级一起建

  • rm

    rm [-r] [-f] path

    删除文件或目录,无法撤销。

    • rm file.txt

      删文件

    • rm -r old-dir/

      删目录

    • rm -rf tmp/

      强制、不询问危险

  • cp

    cp [-r] src dest

    复制文件或目录。

    • cp a.txt b.txt

      复制文件

    • cp -r src/ backup/

      复制目录

    • cp -p file.txt backup.txt

      保留时间戳

  • mv

    mv src dest

    移动或重命名。

    • mv old.txt new.txt

      改名

    • mv file.txt /tmp/

      挪到别的目录

  • find

    find <path> [expression]

    按名称、时间、类型或大小找文件。

    • find . -name "*.log"

      按文件名

    • find /var -mtime -7

      最近 7 天改过

    • find . -type f -size +100M

      大于 100MB

    • find . -name "*.tmp" -delete

      删掉匹配项危险

  • touch

    touch file

    新建空文件,或更新时间戳。

    • touch notes.txt

      建一个空文件

    • touch a.txt b.txt

      一次建多个

  • ln

    ln -s target link

    创建指向另一路径的软链接。

    • ln -s /opt/app/bin/tool ./tool

      创建软链接

    • ls -l tool

      确认链接指向

查看

  • cat

    cat file

    一次性打印整个文件。

    • cat README.md

      打印文件

    • cat a.txt b.txt

      两个文件拼在一起

    • cat > notes.txt

      键盘输入写入(Ctrl+D 结束)

  • less

    less file

    分页查看。q 退出,/ 搜索。

    • less /var/log/syslog

      打开日志

    • dmesg | less

      分页看命令输出

  • head

    head [-n N] file

    看文件开头几行。

    • head file.txt

      前 10 行

    • head -n 20 file.txt

      前 20 行

  • tail

    tail [-n N] [-f] file

    看末尾几行。-f 跟踪不断增长的日志。

    • tail file.txt

      后 10 行

    • tail -n 50 file.txt

      后 50 行

    • tail -f /var/log/nginx/access.log

      跟踪实时日志

  • wc

    wc [-l] [-w] [-c] file

    统计行数、词数或字符数。

    • wc -l file.txt

      行数

    • wc file.txt

      行、词、字节

  • diff

    diff file1 file2

    比较两个文件的差异。

    • diff a.txt b.txt

      基本对比

    • diff -u old.txt new.txt

      unified 格式

  • date

    date [+format]

    显示日期、时间或 Unix 时间戳。

    • date

      本地日期时间

    • date +%Y-%m-%d

      年月日

    • date +%s

      Unix 秒

文本

  • grep

    grep [options] pattern [file]

    找出包含某段文字的行。

    • grep error app.log

      在一个文件里搜

    • grep -i error app.log

      忽略大小写

    • grep -n -r "TODO" src/

      递归并显示行号

    • grep -v debug app.log

      反过来:不含该词的行

  • sed

    sed 's/old/new/g' file

    替换文件或管道里的文本。

    • sed 's/foo/bar/g' file.txt

      只打印替换结果

    • sed -i 's/foo/bar/g' file.txt

      直接改文件

    • sed '/^#/d' file.txt

      删掉注释行

  • awk

    awk '{print $N}' file

    取出某几列,或做简单合计。

    • awk '{print $1}' file.txt

      第一列

    • awk -F, '{print $1,$3}' data.csv

      CSV 的第 1、3 列

    • awk '{sum+=$1} END {print sum}' nums.txt

      对一列求和

  • cut

    cut -d SEP -f N file

    按分隔符取出某一列。

    • cut -d',' -f1 data.csv

      CSV 第一列

    • cut -d: -f1 /etc/passwd

      passwd 里的用户名

    • cut -c1-10 file.txt

      前 10 个字符

  • sort

    sort [options] file

    排序。-n 按数字排。

    • sort file.txt

      按字母

    • sort -n nums.txt

      按数字

    • sort -r file.txt

      倒序

  • uniq

    sort file | uniq

    去掉重复行。需要先 sort。

    • sort file.txt | uniq

      去重

    • sort file.txt | uniq -c

      统计出现次数

    • sort file.txt | uniq -d

      只看重复行

  • xargs

    command | xargs [command]

    把名单变成另一条命令的参数。

    • find . -name "*.log" | xargs grep error

      在找到的文件里 grep

    • cat urls.txt | xargs curl -O

      逐个下载 URL

    • find . -name "*.tmp" | xargs rm

      删除找到的文件

进程

  • ps

    ps [options]

    查看进程和 PID。

    • ps aux

      全部进程

    • ps aux | grep node

      按名字找

    • ps -ef --forest

      进程树

  • top

    top htop

    实时看 CPU 和内存。q 退出。

    • top

      交互监控

    • top -p 1234

      只看一个 PID

    • htop

      如果装了 htop

  • kill

    kill [-SIGNAL] PID

    按 PID 结束进程。先不要用 -9。

    • kill 1234

      正常结束 SIGTERM

    • kill -15 1234

      和默认一样

    • kill -9 1234

      强制结束危险

  • pkill

    pkill name killall name

    按进程名结束,不用记 PID。

    • pkill nginx

      按名字

    • killall node

      killall 写法

    • pgrep -a node

      先看匹配到谁

  • jobs

    jobs bg fg command &

    放到后台跑,或再拉回前台。

    • sleep 60 &

      放到后台

    • jobs

      列出任务

    • fg %1

      拉回前台

    • bg %1

      后台继续跑

  • nohup

    nohup command &

    断开终端后命令继续跑。

    • nohup ./server &

      退出后还跑

    • nohup npm start > app.log 2>&1 &

      输出写到日志

  • free

    free -h

    看内存和 swap。uptime 看负载。

    • free -h

      可读的内存数字

    • uptime

      运行时间和负载

  • uname

    uname [-a] [-r] [-m]

    看内核和架构。

    • uname -a

      全部内核信息

    • uname -r

      内核版本

    • lscpu

      CPU 信息

  • watch

    watch [-n N] command

    每隔几秒重复执行同一条命令。

    • watch -n 1 df -h

      每秒刷新

    • watch -n 2 'ps aux | grep nginx'

      盯着过滤后的进程

网络

  • ip

    ip addr ip route

    看网卡地址和路由。用来替代 ifconfig。

    • ip addr

      地址

    • ip route

      路由

    • ip link

      网卡

  • ping

    ping [-c N] host

    测试主机是否通。

    • ping 8.8.8.8

      直到 Ctrl+C

    • ping -c 4 example.com

      只 ping 4 次

  • ss

    ss -tuln

    看监听端口。用来替代 netstat。

    • ss -tuln

      正在监听的端口

    • ss -tulnp

      带上进程名

    • ss -tuln | grep :80

      过滤 80 端口

  • curl

    curl [options] URL

    发 HTTP 请求,适合调接口和下载。

    • curl https://example.com

      GET 响应体

    • curl -I https://example.com

      只看响应头

    • curl -X POST -H 'Content-Type: application/json' -d '{"ok":true}' https://api.example.com

      发 JSON POST

    • curl -o file.tgz https://example.com/file.tgz

      保存到文件

  • wget

    wget URL

    下载文件。

    • wget https://example.com/file.tgz

      下载

    • wget -c https://example.com/file.tgz

      断点续传

  • scp

    scp src user@host:dest

    通过 SSH 拷文件。

    • scp file.txt user@host:/tmp/

      本地 → 远程

    • scp user@host:/var/log/app.log .

      远程 → 本地

    • scp -r dist/ user@host:/var/www/

      拷目录

  • rsync

    rsync -avz src dest

    同步目录,只传有变化的部分。

    • rsync -avz ./src/ user@host:/opt/app/

      同步到服务器

    • rsync -avz --progress src/ dest/

      显示进度

    • rsync -avz --delete src/ dest/

      目标多余的也删掉

  • ssh

    ssh user@host

    登录远程机器。

    • ssh user@192.168.1.10

      密码或密钥登录

    • ssh -i ~/.ssh/id_ed25519 user@host

      指定私钥

    • ssh user@host -p 2222

      指定端口

  • lsof

    lsof -i :port

    看哪个进程占用了某个端口。

    • lsof -i :3000

      谁占用 3000

    • lsof -i TCP:80

      TCP 80

    • lsof -p 1234

      某 PID 打开的文件

压缩磁盘

  • tar

    tar -c|x -z -f archive.tar.gz [path]

    打包或解开 .tar.gz。z=gzip,c=创建,x=解开,f=文件名。

    • tar -czf backup.tar.gz src/

      打成 .tar.gz

    • tar -xzf backup.tar.gz

      解到当前目录

    • tar -tzf backup.tar.gz

      只看里面有什么

    • tar -xzf backup.tar.gz -C /tmp/

      解到指定目录

  • gzip

    gzip file gunzip file.gz

    压缩或解开单个文件。

    • gzip file.txt

      得到 file.txt.gz

    • gunzip file.txt.gz

      还原文件

    • gzip -k file.txt

      保留原文件

  • zip

    zip archive.zip files unzip archive.zip

    创建或解开 .zip。

    • zip backup.zip a.txt b.txt

      压缩若干文件

    • zip -r backup.zip src/

      压缩目录

    • unzip backup.zip

      解到当前目录

    • unzip -l backup.zip

      只看内容

  • df

    df -h

    按分区看磁盘剩余空间。

    • df -h

      所有分区

    • df -h .

      当前目录所在盘

  • du

    du -h [path]

    看哪些目录占空间。

    • du -sh .

      这个目录合计

    • du -h --max-depth=1

      只看下一级

    • du -h | sort -hr | head

      从大到小

权限

  • chmod

    chmod MODE file

    改权限。755=rwxr-xr-x,644=rw-r--r--。

    • chmod 755 script.sh

      属主可读写执行,其他人可执行(脚本/目录)

    • chmod +x script.sh

      加上可执行

    • chmod 644 file.txt

      属主读写,其他人只读(普通文件)

    • chmod -R 755 dir/

      递归

    • chmod 777 file

      谁都能写,尽量别用危险

  • chown

    chown user:group file

    改文件所有者和组。

    • chown www-data:www-data app.sock

      单个文件

    • chown -R deploy:deploy /var/www/

      递归

  • sudo

    sudo command su - user

    用 root 跑一条命令,或切换用户。

    • sudo apt update

      用 root 跑一条

    • sudo -u www-data command

      用另一个用户跑

    • su -

      切到 root shell

    • sudo visudo

      安全编辑 sudoers

  • whoami

    whoami id groups

    看当前用户和所在组。

    • whoami

      用户名

    • id

      UID 和组

    • groups

      组名

    • who

      谁登录着

包管理

  • apt

    apt update apt install pkg

    Debian / Ubuntu 安装软件。

    • sudo apt update

      刷新软件列表

    • sudo apt install curl

      安装

    • apt search nginx

      搜索

    • sudo apt remove curl

      卸载

    • apt show curl

      看包信息

  • dnf

    dnf install pkg yum install pkg

    Fedora / RHEL / CentOS 安装软件。

    • sudo dnf install curl

      Fedora/RHEL 安装

    • sudo dnf update

      更新

    • dnf search nginx

      搜索

    • sudo yum install curl

      旧的 yum 写法

服务

  • systemctl

    systemctl start|stop|status|enable name

    启动、停止或设置开机自启。

    • systemctl status nginx

      在不在跑

    • sudo systemctl start nginx

      现在启动

    • sudo systemctl restart nginx

      重启

    • sudo systemctl enable nginx

      开机自启

    • systemctl --failed

      失败的服务

  • journalctl

    journalctl -u name [-f]

    看服务日志。

    • journalctl -u nginx

      这个服务的日志

    • journalctl -u nginx -f

      实时跟踪

    • journalctl -p err -n 50

      最近的错误

    • dmesg | tail

      内核信息

使用说明

输入命令名,或你想做的事(解压、权限、杀进程)。也可以用分类筛选。复制示例后贴到终端。按 / 跳到搜索框。

常见问题

这是完整手册吗?
不是。每条命令只保留语法骨架和几条可复制示例。需要全部参数时再用 man 或 --help。
中文和英文都能搜吗?
可以。试试 find、chmod、解压、管道、杀进程。命令名、示例和提示里的词都能匹配。
会在服务器上执行命令吗?
不会。本页只帮你查语法,不会执行或上传任何内容。

相关工具