【问题标题】:I need to run a script every time I open WSL Ubuntu 18.04 on Windows 10每次在 Windows 10 上打开 WSL Ubuntu 18.04 时,我都需要运行一个脚本
【发布时间】:2019-06-05 13:06:23
【问题描述】:

每次我在 Windows 10 上打开 WSL Ubuntu 18.04 时,我都想自动运行这些设置。


    alias desktop='cd /mnt/c/Users/Dot/Desktop/ai_files'
    export PYTHONPATH=${PYTHONPATH}:${HOME}/ai-safety-gridworlds
    export DISPLAY=localhost:0.0

我尝试在 /etc/init.d/ 中使用以下内容制作 .sh 脚本,但没有成功。


    #!/bin/bash
    alias desktop='cd /mnt/c/Users/Dot/Desktop/ai_files'
    export PYTHONPATH=${PYTHONPATH}:${HOME}/ai-safety-gridworlds
    export DISPLAY=localhost:0.0

【问题讨论】:

  • 如果您希望每次创建 shell 时都运行一个脚本,您可以将它添加到您的 .bashrc(假设您使用的是 bash)。
  • 你太棒了!将我的 3 行代码添加到 /etc/ 中的 bash.bashrc 中,它会在每次 Ubuntu 启动时运行它们。我使用 Microsoft Store 安装 Ubuntu 18.04,并使用它制作的快捷方式,我假设它是 bash。
  • .bashrc 文件在你的主目录cd ~
  • 是否可以创建 cron 作业?如果是,那么这将是运行任何定时任务的最简单方法。

标签: sh startup ubuntu-18.04 windows-subsystem-for-linux


【解决方案1】:

要在每次打开 WSL 时运行这些命令,您需要将命令附加到 .bashrc。 在 bash 中,运行

echo "alias desktop='cd /mnt/c/Users/Dot/Desktop/ai_files'" >> ~/.bashrc
echo "export PYTHONPATH=${PYTHONPATH}:${HOME}/ai-safety-gridworlds" >> ~/.bashrc
echo "export DISPLAY=localhost:0.0" >> ~/.bashrc

【讨论】:

    【解决方案2】:

    要创建一个对 Ubuntu 上的所有用户都可见的环境变量,您可以在 /etc/profile.d 文件夹中创建一个 sh 文件。 例如:

    sudo vi /etc/profile.d/my_vars.sh && sudo chmod o+r /etc/profile.d/my_vars.sh
    

    然后在其中包含您的变量。例如:

    export ORACLE_HOME="/opt/oracle/instantclient_11_2"
    

    终止并重新启动 wsl。所有用户都应该可以访问变量。

    【讨论】:

      最近更新 更多