本文总结了一些常用的Linux命令,主要用于日常操作和系统管理。希望对学习Linux的朋友有所帮助。
查看某个PID是如何启动的
在 Linux 中,要查看一个进程(已知 PID)具体是“怎么拉起来的”,最核心的手段是查看 /proc 虚拟文件系统下的对应进程目录。
假设进程 PID 是 1234,可以通过以下几个步骤全面还原它的启动现场:
查看完整的启动命令 (cmdline)
这是最准确的方法,能看到启动程序时传入的所有参数。由于该文件中的参数是以隐藏的 \0(空字符)分隔的,直接查看会粘在一起,建议配合 tr 命令将其替换为空格:
cat /proc/1234/cmdline | tr '\0' ' '这会输出类似:/usr/bin/python3 /opt/app/main.py --config /etc/config.json,让你清楚地看到它是带了什么参数启动的。
查看真正的可执行文件路径 (exe)
如果你看到启动命令里用的是相对路径(比如 ./start.sh)或者系统别名,想知道到底指向硬盘上的哪个实际文件,可以查看 exe 软链接:
ls -l /proc/1234/exe输出结果会指向程序真正的物理路径(例如 -> /usr/local/bin/node)。
查看启动时的当前工作目录 (cwd)
程序的运行往往依赖它启动时所在的目录(比如读取相对路径的配置文件)。通过查看 cwd (Current Working Directory) 可以知道进程是从哪个目录下被拉起的:
ls -l /proc/1234/cwd箭头指向的目录就是程序启动时所在的路径。
查看运行时的环境变量 (environ)
有些程序是通过环境变量配置拉起的(比如 JAVA_HOME 或 ENV=prod)。你可以查看它启动时加载的所有环境变量:
cat /proc/1234/environ | tr '\0' '\n'这里用换行符替换空字符,方便一行一行检查它的环境配置是否正确。
快捷替代方案:使用 ps 命令
如果你只需要粗略看一下,也可以直接用 ps 命令:
ps -fww -p 1234-f表示全格式显示(包含 UID、父进程 PPID、启动时间等)。-ww表示加宽输出,防止启动命令太长被屏幕截断。- 注意:如果该进程是通过
systemd拉起的后台服务,你也可以直接执行systemctl status 1234来查看它的服务状态和对应的ExecStart启动配置。
改变文件夹权限
在 Linux 中,如果从别人的 home 目录复制文件,通常需要使用 chown(修改所有者)和 chmod(修改读写权限)这两个命令来将文件完全“变成你的”。
具体操作步骤如下:
修改文件的所有者 (chown)
如果你是用 sudo 复制的,或者保留了原文件的属性,文件的所有者可能还是原来的用户或 root。你需要将其改回你自己的账号。
打开终端,使用以下命令(-R 表示递归,如果是文件夹会连同里面的所有文件一起修改):
sudo chown -R $USER:$USER /目标文件或文件夹的路径注:$USER 是 Linux 的环境变量,会自动识别为你当前登录的用户名。冒号前后的 $USER 分别代表“所属用户”和“所属用户组”。
添加读写权限 (chmod)
有时候,即便你变成了文件的所有者,但如果原文件是“只读”的,你复制过来后依然无法修改或删除。你需要给自己加上读写(甚至执行)权限:
# 给自己(所有者,u代表user)添加读(r)和写(w)权限chmod -R u+rw /目标文件或文件夹的路径场景举例:
假设你把别人目录下的 project_data 文件夹复制到了自己的 ~/Documents 下,一整套最稳妥的处理命令就是:
sudo chown -R $USER:$USER ~/Documents/project_datachmod -R u+rw ~/Documents/project_data