文章目录
一、如何删掉远程服务器中的虚拟环境?
在Linux系统下删除conda虚拟环境:
python
# 删除虚拟环境
conda remove -n your_env_name(虚拟环境名称) --all
python
# 删除虚拟环境中的包
conda remove --name $your_env_name $package_name(包名)
我想尝试删掉某个虚拟环境,发现:
python
(wzk_base) wangzhenkuan@3090:~$ conda remove -n xhl_base --all
Remove all packages in environment /home/miniconda3/envs/xhl_base:
## Package Plan ##
environment location: /home/miniconda3/envs/xhl_base
The following packages will be REMOVED:
_libgcc_mutex-0.1-main
blas-1.0-mkl
brotlipy-0.7.0-py38h27cfd23_1003
ca-certificates-2020.12.8-h06a4308_0
certifi-2020.12.5-py38h06a4308_0
cffi-1.14.3-py38h261ae71_2
chardet-3.0.4-py38h06a4308_1003
conda-package-handling-1.7.2-py38h03888b9_0
cryptography-3.2.1-py38h3c74f83_1
idna-2.10-py_0
intel-openmp-2020.2-254
ld_impl_linux-64-2.33.1-h53a641e_7
libedit-3.1.20191231-h14c3975_1
libffi-3.3-he6710b0_2
libgcc-ng-9.1.0-hdf63c60_0
libstdcxx-ng-9.1.0-hdf63c60_0
mkl-2020.2-256
mkl-service-2.3.0-py38he904b0f_0
mkl_fft-1.2.0-py38h23d657b_0
mkl_random-1.1.1-py38h0573a6f_0
ncurses-6.2-he6710b0_1
numpy-1.19.2-py38h54aff64_0
numpy-base-1.19.2-py38hfa32c7d_0
openssl-1.1.1i-h27cfd23_0
pip-20.2.4-py38h06a4308_0
pycosat-0.6.3-py38h7b6447c_1
pycparser-2.20-py_2
pyopenssl-19.1.0-pyhd3eb1b0_1
pysocks-1.7.1-py38h06a4308_0
python-3.8.5-h7579374_1
pyyaml-5.3.1-py38h7b6447c_1
readline-8.0-h7b6447c_0
requests-2.24.0-py_0
ruamel_yaml-0.15.87-py38h7b6447c_1
setuptools-50.3.1-py38h06a4308_1
six-1.15.0-py38h06a4308_0
sqlite-3.33.0-h62c20be_0
tk-8.6.10-hbc83047_0
tqdm-4.51.0-pyhd3eb1b0_0
urllib3-1.25.11-py_0
wheel-0.35.1-pyhd3eb1b0_0
xz-5.2.5-h7b6447c_0
yaml-0.2.5-h7b6447c_0
zlib-1.2.11-h7b6447c_3
Proceed ([y]/n)? y
Preparing transaction: done
Verifying transaction: failed
EnvironmentNotWritableError: The current user does not have write permissions to the target environment.
environment location: /home/miniconda3/envs/xhl_base
uid: 1015
gid: 1234
但当前用户没有足够的权限来写入该环境。这通常是由于以下一些情况引起的:
缺少权限:您的用户没有足够的权限来在目标环境中进行写操作。这可能是因为您没有以管理员身份运行操作,或者您正在尝试修改受限制的环境。
环境位置问题:可能您的 conda 环境位于某个需要特殊权限的位置。确保您有权限写入该位置。
环境已损坏:有时候,环境可能已经损坏或不可写,导致无法进行操作。您可以尝试创建一个新的 conda 环境并验证是否存在相同的问题。
解决办法是给我自己一些权限:
python
sudo chmod 777 /home/miniconda3/ -R
通过运行以下命令,我们为 /home/miniconda3/ 目录及其所有子目录和文件设置了递归的权限为 777。
这将给予所有用户对该目录的完全读取、写入和执行权限。请注意,使用权限 777 可能会造成安全风险,因为任何用户都可以对目录中的文件进行更改或删除。请谨慎使用此权限,并仅在必要时使用。
顺利删掉了虚拟环境!
二、如何删掉远程服务器中的用户?
首先我们查看服务器中有哪些用户:
python
cat /etc/passwd
我们尝试删除:
python
userdel xuhuiling
代码报错:
python
userdel: Permission denied.
userdel:无法锁定 /etc/passwd,请稍后再试。
在Linux系统中,要删除一个用户账户,通常需要超级用户(root权限)或具备管理用户账户的权限才能执行这个操作。在我们的情况下,执行userdel命令时出现了"Permission denied"错误,这是因为我当前的用户没有足够的权限来删除用户账户。
要删除一个用户账户,可以按照以下步骤进行:
- 使用sudo命令:如果有sudo权限(即可以以管理员身份运行命令),可以使用sudo userdel命令来删除用户。例如:
python
sudo userdel xuhuiling
然后,系统会要求输入管理员密码以确认删除。
- 使用root权限:如果拥有root用户的访问权限,可以直接以root身份登录,然后执行userdel命令,无需使用sudo。示例:
python
su - # 切换到root用户
userdel xuhuiling # 删除用户
请谨慎操作,因为删除用户会永久删除其用户文件夹和相关数据。
我们选择使用:
python
sudo userdel xuhuiling
但是还是报错:
python
userdel: user xuhuiling is currently used by process 2215850
错误信息表明用户 xuhuiling 当前正在被一个或多个进程使用,因此无法立即删除该用户。在删除用户之前,我们需要确保没有任何正在运行的进程或服务在使用该用户。以下是可以采取的步骤:
- 查找并停止相关进程:使用 ps 或 top 命令来查找使用 xuhuiling 用户的进程。然后使用 kill 命令停止这些进程。例如:
python
ps aux | grep xuhuiling
看起来有两个会话正在使用用户 xuhuiling。这两个会话似乎是通过 su 命令启动的,这意味着它们是以用户 xuhuiling 的身份运行的。在删除用户之前,我们需要确保这两个会话已经退出。
这样便能顺利删除!
三、如何删掉某个文件夹?
python
sudo rm -r /home/xvhuiling
这将删除 /home/xvhuiling 目录及其所有子目录和文件。请谨慎使用 rm 命令,因为删除操作是不可逆的,并且会永久删除目录中的所有数据。