Linux 常用命令
查看系统信息
常用的系统信息命令可以帮助快速辨别硬件架构和发行版。
查看 CPU 架构:
uname -m
常见输出示例:x86_64。
查看系统发行版信息:
cat /etc/os-release

后台任务
jobs / bg / fg
这组命令适合在同一个终端中暂存和恢复暂停的前台任务。
常用命令:
jobs:查看当前后台任务。bg %1:让编号为1的任务在后台继续运行。fg %1:把编号为1的任务恢复到前台。
screen
screen 可以在独立会话中运行命令,终端断开后仍然可以恢复查看。
常用操作:
screen:进入一个新的 screen 会话。Ctrl + A,再按D:从当前 screen 会话分离。screen -r:恢复之前的 screen 会话。
tmux
tmux 的作用与 screen 类似,常被用来管理长期运行的会话。
后台运行命令
将任务送入后台运行并丢弃输出是常见的需求,下面展示两种写法。
./someserver-linux-amd64 server &>/dev/null &
说明:
&>:重定向标准输出和标准错误。/dev/null:丢弃输出内容。- 最后的
&:让命令在后台执行。
注意:只使用 & 时,关闭终端后任务通常也会结束。
如果希望关闭终端后任务继续运行,可以使用 nohup:
nohup ./someserver-linux-amd64 server &>/dev/null &
进程信息
以下命令用于排查运行中的进程和其资源占用。
列出进程:
ps aux

按进程名查找
ps aux | grep nginx
也可以使用:
pgrep nginx
pgrep 只返回进程号。

查看 CPU 占用
top 显示实时的 CPU 和内存占用情况,默认按 %CPU 排序。
top

查看占用文件的进程
lsof 合 grep 可以定位占用某个文件或套接字的进程。
lsof | grep nginx

查看监听端口
ss -plnt 是查看监听端口及其进程的常用组合。
ss -plnt
参数说明:
p:显示进程 ID 和进程名。l:只显示监听中的 socket。n:以数字形式显示 IP 和端口。t:只显示 TCP 连接;如果要查看 UDP,可以改为u。

终止进程
使用 PID 终止某个进程:
kill 1234
终止 PID 为 1234 的进程。
killall nginx
pkill nginx
killall 和 pkill 都可以按进程名终止进程。
解压文件
不同压缩格式对应不同解压命令,按需执行即可。
.tar
tar -xvf filename.tar
参数说明:
-x:解压文件。-v:显示解压过程中的文件信息,可选。-f:指定文件名。-C:解压到指定目录。
解压到指定目录:
tar -xvf filename.tar -C /home/user/desktop
.tar.gz / .tgz
tar -xzvf filename.tar.gz
tar -xzvf filename.tgz
-z 表示文件使用 gzip 压缩。
.zip
unzip filename.zip
.zip 归档可以使用 unzip 直接展开。
.rar
unrar x filename.rar
.rar 通常使用 unrar 解压。
.7z
7z x filename.7z
.7z 格式则使用 7z 命令。
删除和新建
删除
rm file.txt
删除单个文件。
rm -r mydir
递归删除文件夹。
rm -rf mydir
强制递归删除文件夹,使用前务必确认路径,避免误删。
新建
touch file.txt
新建空文件。
echo "hello world!" > file.txt
写入文本并创建文件;如果文件已存在,会覆盖原内容。
mkdir mydir
新建文件夹。
systemd 服务
服务文件通常放在:
/etc/systemd/system/myservice.service
示例:
[Unit]
Description=My Script Service
After=network.target
[Service]
ExecStart=/usr/local/bin/myscript.sh
Restart=always
User=myuser
Group=mygroup
[Install]
WantedBy=multi-user.target
关键配置:
ExecStart:服务启动时执行的命令。Restart:服务异常退出后的重启策略。User/Group:服务运行时使用的用户和用户组。
常用命令:
sudo systemctl daemon-reload
sudo systemctl start my_service
sudo systemctl enable my_service
sudo systemctl stop my_service
sudo systemctl disable my_service
sudo rm /etc/systemd/system/my_service.service
sudo systemctl daemon-reload
说明:
- 修改或新增 service 文件后,需要执行
systemctl daemon-reload。 enable表示开机自启。disable表示取消开机自启。