命令行与工具速查


一、系统信息

内核与 CPU

cat /proc/version                                          # 查看 Linux 内核版本
lscpu                                                      # CPU 概览
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l   # 物理 CPU 个数
cat /proc/cpuinfo | grep "cpu cores" | uniq                    # 每颗 CPU 核数
cat /proc/cpuinfo | grep "processor" | wc -l                   # 逻辑 CPU 个数(含超线程)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c         # CPU 型号
top                                                            # 实时查看负载

内存与磁盘

cat /proc/meminfo     # 内存详细信息
free                  # 内存使用概览
fdisk -l              # 磁盘信息
iostat -x 10          # IO 性能(每 10 秒刷新)

二、Shell 环境

cat /etc/shells       # 查看系统中的 shell

Zsh + Oh My Zsh

Zsh 是 Mac 自带的终极 shell,配合 Oh My Zsh 使用体验更好:

brew install zsh                  # 安装/升级 zsh
brew install wget                 # 安装 wget(Oh My Zsh 安装依赖)
 
# 安装 Oh My Zsh
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

三、常用命令

文件与目录

命令用途
cd / ls / mkdir切换目录 / 列出内容 / 创建目录
rmdir删除空目录(非空会失败)
rm -rf 目录名递归强制删除(-r 递归,-f 强制)
cp -r 源 目标递归复制目录
mv f1 f2移动或重命名
pwd显示当前路径
man 命令查看命令手册

查找文件

sudo find / -name nginx           # 全盘查找文件
which nginx                       # 查找可执行文件的安装位置
mdfind -name "xxxx.png"           # Mac 专用,利用 Spotlight 索引快速查找

权限

chmod 777 /var/lib/mysql          # 修改目录权限(所有人可读写执行)
sudo chmod 666 xxx                # 修改文件权限(所有人可读写)

包管理

rpm -qa wget                      # 检查是否安装过某个包(RPM 系)
brew install wget                 # Mac 用 Homebrew 安装

监控文件

tail -f filename                  # 实时监视文件最后 10 行(查看日志常用)

文件合并

copy /b file1+file2 output        # Windows 下合并二进制文件(如视频)

四、网络与进程

网络

ping 192.168.2.3 -t               # 长 ping(Windows,持续 ping)
ping 192.168.2.3                   # Mac/Linux 默认就是长 ping,Ctrl+C 停止

端口占用查询

# Linux/Windows
netstat -ano | findstr "8080"      # 查端口对应的进程号
tasklist | findstr "2448"          # 用进程号查进程名
 
# Mac
lsof -nP -iTCP:8081               # 查看指定端口
lsof -i :8090                     # 简写
sudo lsof -i -P | grep -i "listen"  # 查看所有进程监听的端口

进程管理

ps                                # 列出进程
ps -ef | grep nginx               # 查看 nginx 启动状态
kill -9 397                       # 强杀指定 PID 的进程
killall java                      # 杀掉所有 java 进程

五、远程操作

SFTP

get /var/www/fuyatao/index.php /home/fuyatao/           # 下载远程文件到本地
put /home/fuyatao/downloads/Linuxgl.pdf /var/www/fuyatao/  # 上传本地文件到远程
pwd                               # 查看远程路径
lpwd                              # 查看本机路径
lcd /local/path                   # 改变本机路径

SCP

scp /path/to/local/file username@remote_host:/path/to/remote/directory

六、Vim 速查

模式切换

按键操作
i在光标前插入
a在光标后插入(行尾:A
o / O在光标下方 / 上方开始新行
Esc回到普通模式

移动

按键操作
w / b按词向后 / 向前移动
$ / ^行尾 / 行首
gg / G文件首 / 文件尾(1Ggg
9k上移 9 行
H / M / L屏幕顶部 / 中部 / 底部

滚屏

按键操作
Ctrl+e / Ctrl+y向下 / 向上滚一行
Ctrl+u / Ctrl+d向上 / 向下滚半屏
Ctrl+f / Ctrl+b向下 / 向上滚整屏
zt / zb当前行移到屏首 / 屏末

编辑

按键操作
x删除(剪切)字符
dd删除(剪切)一行
dw / 3dw删除一个词 / 三个词
J合并下一行到当前行
y / yy复制 / 复制整行
p粘贴
u撤销
Ctrl+r重做
.重复上一个操作命令(除 uCtrl+r: 命令)

设置与退出

命令操作
:set showmode显示当前模式
:set nu / :set nonu显示 / 隐藏行号
:set hlsearch高亮搜索结果
Ctrl+g获取光标处信息
ZZ保存并退出
:q!强制不保存退出
F1 / :help查看帮助

七、Git 常用操作

远程仓库

git remote -v                         # 查看远程仓库地址
git remote set-url origin https://gitee.com/xxx/xxx.git   # 重定向远程仓库

撤销 commit

git log                               # 查看提交记录,找到目标 commit_id
git reset --hard commit_id            # 回退到指定 commit

.gitignore 不起作用

原因:文件已被 Git 追踪。需要清除缓存后重新添加:

git rm -r --cached .
git add .
git commit -m 'update .gitignore'

八、Nginx

# 目录:/usr/local/nginx(主要是 conf、sbin)
 
./nginx -t                            # 检查配置文件语法
./nginx                               # 启动
./nginx -s reload                     # 重启(重新加载配置)
./nginx -s stop                       # 停止
ps -ef | grep nginx                   # 查看启动状态

编译时带上 SSL 模块:

./configure --with-http_ssl_module

九、MongoDB

which mongod                          # 查找安装位置
sudo mongod --dbpath data --logpath log/mongod.log --logappend   # 指定路径启动
sudo mongod --config /usr/local/etc/mongod.conf                  # 用配置文件启动

十、FFmpeg

# 合并视频和音频(不重新编码,直接复制流)
ffmpeg -i 1.mp4 -i 1.mp3 -vcodec copy -acodec copy output.mp4