作为一个前端开发工程师,常使用 Linux 部署前后端项目。我来列举一下常用的终端命令。
如果需要查询更多linux命令,我常用的网站是菜鸟教程
可以分为以下几大类:
一、基础操作与文件管理
这是最基本也是使用频率最高的命令,用于导航、查看和管理项目文件。
| 命令 | 作用 | 描述来源 | 描述内容 |
|---|---|---|---|
ls | 列出目录内容 | 菜鸟教程 | 列出指定目录下的内容。如果不带任何参数,ls 会列出当前工作目录下的文件和目录。常用参数 -l (详细信息), -a (包含隐藏文件)。 |
cd | 切换目录 | 菜鸟教程 | 用于切换当前工作目录至指定的目录。 |
pwd | 显示当前路径 | 菜鸟教程 | 用于显示用户当前所处的目录。 |
mkdir | 创建目录 | 菜鸟教程 | 用于创建新目录。常用参数 -p 可以递归创建目录。mkdir one/two/three |
rm | 删除文件或目录 | 菜鸟教程 | 用于删除文件或目录。使用需谨慎。 常用参数 -r (递归删除目录), -f (强制删除,不提示)。 |
cp | 复制文件或目录 | 菜鸟教程 | 主要用于复制文件或目录。常用参数 -r (递归复制目录)。 |
mv | 移动或重命名 | 菜鸟教程 | 用于移动文件、目录或对其进行重命名。 |
touch | 创建空文件或更新文件时间戳 | 菜鸟教程 | touch newfile.txt |
find | 在目录下搜索文件 | 菜鸟教程 | find . -name "*.log" |
tar | 归档与压缩 | GNU Tar 官方文档 (简述) | GNU tar (tape archive) 程序是一个工具,用于创建和操作 tar 归档文件。它常用于打包项目文件或解压部署包。 |
编译安装的源代码(Source Code)
tar -zxvf 文件名.tar.gz # 假设是 .tar.gz 格式
cd 解压后的文件夹名称
./configure # 检查系统环境和依赖
make # 编译源代码
sudo make install # 将编译好的程序安装到系统路径
二、文件查看与编辑
| 命令 | 作用 | 示例 |
|---|---|---|
cat | 查看文件全部内容 | cat config.ini |
less | 分页查看文件内容 | less access.log |
head | 查看文件头部(前 N 行) | head -n 10 file.log |
tail | 查看文件尾部(后 N 行),常用于实时查看日志 | tail -f app.log (持续输出新内容) |
grep | 搜索文件内容(匹配行) | netstat -tunlp|grep 8080(筛选本机8080端口的服务 |
vi/vim/nano | 编辑文件(vim 更常用) | vim server.conf ,vim下按i进行编辑,按esc退出编辑,按:wq保存并且退出vim |
三、权限管理
| 命令 | 作用 | 示例 |
|---|---|---|
chmod | 更改文件或目录的权限 | chmod 755 script.sh |
chown | 更改文件或目录的所有者 | chown user:group project_folder |
sudo | 以超级用户权限执行命令 | sudo apt update |
四、系统和进程管理
| 命令 | 作用 | 示例 |
|---|---|---|
netstat/ss | 查看网络连接、路由表、接口统计等(ss 是新一代工具) | netstat -tunlp (查看监听端口) |
df | 查看磁盘空间使用情况 | df -h (以人类可读格式显示) |
du | 查看文件或目录占用的磁盘空间 | du -sh project/ |
ps | 查看当前正在运行的进程 | ,ps -ef | grep 进程关键字 |
top / htop | 实时查看系统资源占用和进程信息 | top |
kill | 终止进程 | kill 12345 (PID 为 12345 的进程) |
killall | 按名称终止进程 | killall node |
| systemctl | 管理系统服务(启动、停止、重启、查看状态) | sudo systemctl start nginx / systemctl status project.service |
对于 Linux 系统的设置,我是通过【极其详尽的OpenWRT软路由系统安装与设置教程(物理机安装)】 通过这视频,了解并且使用了一些设置 Linux 硬盘以及网络相关的命令。
五、网络和远程连接
| 命令 | 作用 | 描述来源 | 描述内容 |
|---|---|---|---|
ssh | 远程连接 | 技术蛋老师 | ssh -P 2222 user@192.168.1.100 |
scp | 远程文件复制 | 菜鸟教程 | 基于 SSH 协议,用于在本地主机和远程主机之间安全地复制文件。 |
curl / wget | 网络请求/下载 | 技术蛋老师 | curl 用于发送 HTTP/HTTPS 请求, |
curl -O https://raw.githubusercontent.com/jaywcjlove/linux-command/blob/master/README.md | |||
netstat | 网络统计 | 菜鸟教程 | 用于显示网络连接、路由表、接口统计等网络相关信息。在部署中最常用于查看端口占用情况。 |
六、项目部署和环境相关
| 命令 | 作用 | 示例 |
|---|---|---|
unzip/tar | 压缩和解压缩文件 | tar -zxf archive.tar.gz |
nohup | 让程序在后台持续运行(即使关闭终端) | nohup node app.js & (配合 & 让程序在后台运行) |
部署流程常用组合
- 连接服务器:
ssh user@your_server_ip - 获取项目代码:
git clone repository_url - 进入项目目录:
cd project_name - 安装依赖(以前端 Node.js 为例):
npm install - 构建项目(前端):
npm run build - 启动后端服务(例如 Node.js):
nohup node server.js &(或者使用systemctl管理服务) - 查看日志:
tail -f logs/app.log - 重启服务(如果使用 systemctl):
sudo systemctl restart project.service
常用命令组合示例
通常是多个命令的组合使用:
-
查找并杀死占用特定端口的进程:
# 查找占用 3000 端口的进程信息(PID) sudo netstat -tunlp | grep 3000 # 假设 PID 为 12345,强制杀死进程 kill -9 12345 -
实时监控应用日志并高亮错误:
tail -f /var/log/app/access.log | grep --color 'ERROR|WARN' -
下载、解压项目包并启动:
wget http://example.com/project.tar.gz tar -zxf project.tar.gz cd project/ npm install && npm run start
其他
tailscale模块
在mac上的tailscale不可用
/Applications/Tailscale.app/Contents/MacOS/Tailscale status
把这个添加在path里面。
在文件末尾添加以下行:
alias tailscale='/Applications/Tailscale.app/Contents/MacOS/Tailscale'
# 如果您使用的是 bash,则运行 source ~/.bashrc
source ~/.zshrc
在 Windows 里面使用 git bash
如果你想在 Git Bash 中直接使用类似macos的 open .,来实现在终端里面打开系统,自带文件管理器功能;可以通过 别名(alias) 或 函数 将 open 映射到 explorer:
步骤:
- 编辑 Git Bash 的配置文件(如
~/.bashrc或~/.bash_profile):
nano ~/.bashrc
- 添加以下内容:
# 将 open 映射为 explorer(Windows)
open() {
explorer "$@"
}
- 保存文件(
Ctrl+O→ 回车 →Ctrl+X),然后重新加载配置:
source ~/.bashrc
可能出现的问题
如果在打开一个新的git bash 窗口之后,通常会跳出一个这个warn,这个警告可以忽略;并且警告只在第一次打开新的窗口会出现。
WARNING: Found ~/.bashrc but no ~/.bash_profile, ~/.bash_login or ~/.profile.
This looks like an incorrect setup.
A ~/.bash_profile that loads ~/.bashrc will be created for you.
使用终端命令行压缩
这是最快速、最专业的方法,能够保留文件权限并精确控制压缩过程。
基本命令格式:
tar -czvf 压缩包名称.tgz 要打包的目录路径
-
参数解释:
-c: Create(创建归档)-z: Gzip(使用 gzip 压缩)-v: Verbose(显示压缩进度,可选)-f: File(指定输出文件名)
操作技巧:
- 打开终端。
- 输入
tar -czvf(注意末尾有空格)。 - 将想要打包的文件夹直接拖入终端窗口(它会自动填充路径)。
- 按下回车即可。