文章目录

  • 一、如何删掉远程服务器中的虚拟环境?
  • 二、如何删掉远程服务器中的用户?
  • 三、如何删掉某个文件夹?


一、如何删掉远程服务器中的虚拟环境?

在Linux系统下删除conda虚拟环境:

# 删除虚拟环境
conda remove -n your_env_name(虚拟环境名称) --all
# 删除虚拟环境中的包
conda remove --name $your_env_name  $package_name(包名)

我想尝试删掉某个虚拟环境,发现:

(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

java 删除服务器上logs文件代码 java删除远程服务器文件_服务器


但当前用户没有足够的权限来写入该环境。这通常是由于以下一些情况引起的:

缺少权限:您的用户没有足够的权限来在目标环境中进行写操作。这可能是因为您没有以管理员身份运行操作,或者您正在尝试修改受限制的环境。

环境位置问题:可能您的 conda 环境位于某个需要特殊权限的位置。确保您有权限写入该位置。

环境已损坏:有时候,环境可能已经损坏或不可写,导致无法进行操作。您可以尝试创建一个新的 conda 环境并验证是否存在相同的问题。

解决办法是给我自己一些权限:

sudo chmod 777 /home/miniconda3/ -R

通过运行以下命令,我们为 /home/miniconda3/ 目录及其所有子目录和文件设置了递归的权限为 777。

这将给予所有用户对该目录的完全读取、写入和执行权限。请注意,使用权限 777 可能会造成安全风险,因为任何用户都可以对目录中的文件进行更改或删除。请谨慎使用此权限,并仅在必要时使用。

java 删除服务器上logs文件代码 java删除远程服务器文件_java 删除服务器上logs文件代码_02


顺利删掉了虚拟环境!

二、如何删掉远程服务器中的用户?

首先我们查看服务器中有哪些用户:

cat /etc/passwd

java 删除服务器上logs文件代码 java删除远程服务器文件_ssh_03


我们尝试删除:

userdel xuhuiling

代码报错:

userdel: Permission denied.
userdel:无法锁定 /etc/passwd,请稍后再试。

在Linux系统中,要删除一个用户账户,通常需要超级用户(root权限)或具备管理用户账户的权限才能执行这个操作。在我们的情况下,执行userdel命令时出现了“Permission denied”错误,这是因为我当前的用户没有足够的权限来删除用户账户。

要删除一个用户账户,可以按照以下步骤进行:

  1. 使用sudo命令:如果有sudo权限(即可以以管理员身份运行命令),可以使用sudo userdel命令来删除用户。例如:
sudo userdel xuhuiling

然后,系统会要求输入管理员密码以确认删除。

  1. 使用root权限:如果拥有root用户的访问权限,可以直接以root身份登录,然后执行userdel命令,无需使用sudo。示例:
su -  # 切换到root用户
userdel xuhuiling  # 删除用户

请谨慎操作,因为删除用户会永久删除其用户文件夹和相关数据。

我们选择使用:

sudo userdel xuhuiling

但是还是报错:

userdel: user xuhuiling is currently used by process 2215850

错误信息表明用户 xuhuiling 当前正在被一个或多个进程使用,因此无法立即删除该用户。在删除用户之前,我们需要确保没有任何正在运行的进程或服务在使用该用户。以下是可以采取的步骤:

  1. 查找并停止相关进程:使用 ps 或 top 命令来查找使用 xuhuiling 用户的进程。然后使用 kill 命令停止这些进程。例如:
ps aux | grep xuhuiling

java 删除服务器上logs文件代码 java删除远程服务器文件_ssh_04


看起来有两个会话正在使用用户 xuhuiling。这两个会话似乎是通过 su 命令启动的,这意味着它们是以用户 xuhuiling 的身份运行的。在删除用户之前,我们需要确保这两个会话已经退出。

这样便能顺利删除!

三、如何删掉某个文件夹?

sudo rm -r /home/xvhuiling

这将删除 /home/xvhuiling 目录及其所有子目录和文件。请谨慎使用 rm 命令,因为删除操作是不可逆的,并且会永久删除目录中的所有数据。