我常用的Linux命令

84 阅读6分钟

作为一个前端开发工程师,常使用 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 & (配合 & 让程序在后台运行)

部署流程常用组合

  1. 连接服务器: ssh user@your_server_ip
  2. 获取项目代码: git clone repository_url
  3. 进入项目目录: cd project_name
  4. 安装依赖(以前端 Node.js 为例): npm install
  5. 构建项目(前端): npm run build
  6. 启动后端服务(例如 Node.js): nohup node server.js & (或者使用 systemctl 管理服务)
  7. 查看日志: tail -f logs/app.log
  8. 重启服务(如果使用 systemctl): sudo systemctl restart project.service

常用命令组合示例

通常是多个命令的组合使用:

  1. 查找并杀死占用特定端口的进程:

    # 查找占用 3000 端口的进程信息(PID)
    sudo netstat -tunlp | grep 3000
    
    # 假设 PID 为 12345,强制杀死进程
    kill -9 12345
    
  2. 实时监控应用日志并高亮错误:

    tail -f /var/log/app/access.log | grep --color 'ERROR|WARN'
    
  3. 下载、解压项目包并启动:

    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

步骤:

  1. 编辑 Git Bash 的配置文件(如 ~/.bashrc 或 ~/.bash_profile):
nano ~/.bashrc
  1. 添加以下内容:
# 将 open 映射为 explorer(Windows)
open() {
   explorer "$@"
}
  1. 保存文件(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(指定输出文件名)

操作技巧:

  1. 打开终端
  2. 输入 tar -czvf (注意末尾有空格)。
  3. 将想要打包的文件夹直接拖入终端窗口(它会自动填充路径)。
  4. 按下回车即可。