notes 笔记notes 笔记
Home
Article
Category
Tag
Timeline
Home
Article
Category
Tag
Timeline
  • build

    • 环境变量
  • browse

    • 2fa
    • sse
    • token
  • database

    • mongodb

      • start
    • mysql

      • curd
      • 安装
      • join
      • 多对多
      • 性能优化
      • 表设计
      • 常见问题
  • docker

    • github-actions

      • local
      • prod
    • docker-compose
    • index
    • podman
  • file

    • 文件下载
    • 原生 node.js下载文件
  • git

    • index
    • multiple-github-accounts
    • auto-commit
    • pat
    • rebase
  • linux

    • grep
    • index
    • ssh
    • vim
    • windows
  • network

    • best-proxy-way
    • git-via-https
    • github-push-fail
  • nginx

    • acme.sh
    • cache
    • https
    • index
    • safe
  • node

    • fnm
    • tool
  • obsidian

    • ish
    • start
  • react

    • index
    • set-state
  • summary

    • index
  • vue

    • index
    • typescript
  • libs
  • open-source

系统信息

uname -a # 显示操作系统名称、主机名、内核版本、硬件架构等信息
lsb_release -a # 提供Linux 发行版的详细信息,包括名称、版本号和代号

文件目录

ls -la # 列出全部文件并显示详细信息
ls -la # 查看文件的详细信息(文件大小)
ls a* # 列出当前目录下的所有以a字母开头的文件
ls -l *.txt # 列出当前目录下的所有后缀名为txt的文件

mkdir foo # 创建 foo 目录
mkdir -p foo/bar/baz # 创建多层目录
mkdir -m 777 foo # 创建 foo 目录,权限为 777

rmdir -p foo/bar/baz # 删除多层目录,仅能删除空目录

touch a.txt # 创建 a.txt 文件

cp a.txt b.txt # 把a文件复制到b文件
cp a.txt ./foo # 把a文件复制到 foo 目录下
cp -a foo bar # 把 foo 目录下所有文件复制到新目录 bar

mv a.txt b.txt # 把文件a重命名为b
mv a.txt ./foo # 把a文件移动到 foo 目录

tail -n 50 a.txt # 查看文件最后50行
cat a.txt # 查看文件内容
cat -n a.txt # 查看文件并给文件内容标上行号
cat a.txt >> b.txt # 把a文件的内容组合到b文件的末尾
echo 'hello' > a.txt # 添加内容到a文件(会覆盖已有内容)
echo 'hello' >> a.txt # 追加内容到a文件(没有内容相当于创建文件)
cat >> 文件名 # 追加内容,运行后,输入内容(每一行输入后按Enter 键)并在最后按 Ctrl + D 退出
cat > 文件名 # 覆盖内容
cat >> 文件名 << EOF # 追加多行内容,运行后,输入多行内容,最后在单独的一行输入你之前定义的分隔符,例如 EOF,按Enter 键退出

rm -rf foo # 强制递归删除 foo

find / -name openrestry # 全局查找 openrestry 的文件目录

chmod

chmod +r foo # 可读
chmod +w foo # 可写
chmod +x foo # 可执行

alias

当前命令行生效

alias ll='ls -la' # 创建 ll 别名(等号前后不能有空格)
alias # 查看当前别名列表
unalias ll # 删除 ll 别名
unalias -a # 删除所有别名

如果需要永久生效,需要添加到环境变量中。

# 在 Linux 下编辑 .bashrc
vim ~/.bashrc
# 将新建的别名命令逐行写入
alias ll='ls -la'
# 刷新
source ~/.bashrc

上传下载

# 上传 foo.html 到服务器 /usr/share/nginx/html 目录下
scp ./foo.html 用户名@ip地址:/usr/share/nginx/html
# 上传 bar 目录 到服务器 /usr/share/nginx/html 目录下
scp -r bar 用户名@ip地址:/usr/share/nginx/html
# 上传 dist 目录下所有文件 到服务器 /usr/share/nginx/html/app 目录下
scp -r dist/* user@remote_host:/usr/share/nginx/html/app/
# 下载 /usr/share/nginx/html/foo.html 文件 到 当前目录下
scp 用户名@ip地址:/usr/share/nginx/html/foo.html ./

另外常用的上传还有 rsync 命令,它可以实现增量备份和同步,在传输大量文件时通常效率更高,因为它只传输变更的部分。

# 同步本地目录到远程目录
rsync -avz /path/to/local/dir user@remote_host:/path/to/remote/dir
# 上传 dist 目录下所有文件 到服务器 /usr/share/nginx/html/app 目录下
rsync -avz dist/ user@remote_host:/usr/share/nginx/html/app/
# 增量备份本地目录到远程目录
rsync -avz --delete /path/to/local/dir user@remote_host:/path/to/remote/dir
  • -a :归档模式,保留文件权限、所有权等信息。
  • -v :详细模式,显示传输过程。
  • -z :压缩传输,提高效率。
  • --delete :在源目录中删除的文件,在目标目录中也会被删除,以保持两边文件的一致性。 使用 --delete 前请确认源目录正确无误,最好先加 --dry-run 测试。--dry-run 会模拟执行同步过程,显示哪些文件会被传输、哪些会被删除,但不会真正执行任何操作。

清空文件内容

重定向 (最快)

  • > filename
  • echo "" > filename
  • : > filename (冒号是shell内置的true命令)
  • true > filename
  • 优点:非常快,简单直接,推荐使用。
  • 其它的还有 cat truncate dd 命令也可以

lsof 查询端口

ss:网络连接的"扫描仪"

netstat太慢,改用ss -antp

dstat:系统资源的"仪表盘"

dstat --top-cpu

perf:性能瓶颈的"显微镜"

perf record -g -p 2345

最近更新:: 2025/12/30 00:02
Contributors: qyhever
Prev
grep
Next
ssh