跳转至

linux 学习环境

git bash

Git Bash在Windows上模拟bash环境,允许用户在Windows操作系统上使用Bash shell和大多数标准Linux命令:文件操作、文本操作、文本编辑、进程管理等。Git Bash软件体积相对较小,安装简单,可以快速获得一个基本的linux环境用于练习或简单数据处理。

下载地址:https://git-scm.com/download/win

选择 64-bit Git for Windows Setup 下载安装。

安装完成之后,在开始菜单中找到git bash打开即可,或鼠标点击桌面,然后右键->git bash,如下,可以看到有很多常用的linux命令,使用这些命令也可以处理地Windows下的文件和数据。

username@DESKTOP-XXXXXXX MINGW64 ~
$ which ls
/usr/bin/ls
$ ls /usr/bin/
'[.exe'*               cp.exe*                      funzip.exe*                 grep.exe*         mktemp.exe*                     msys-gpg-error-0.dll*        msys-svn_repos-1-0.dll*       psl-make-dafsa*        ssh-keyscan.exe*   unlink.exe*
 addgnupghome*         csplit.exe*                  gapplication.exe*           groups.exe*       mount.exe*                      msys-gssapi-3.dll*           msys-svn_subr-1-0.dll*        psl.exe*               ssh-pageant.exe*   unzip.exe*
 applygnupgdefaults*   cut.exe*                     gawk-5.0.0.exe*             gsettings.exe*    mpicalc.exe*                    msys-hcrypto-4.dll*          msys-svn_swig_perl-1-0.dll*   ptx.exe*               ssh.exe*           unzipsfx.exe*
 arch.exe*             cygcheck.exe*                gawk.exe*                   gunzip*           msgattrib.exe*                  msys-heimbase-1.dll*         msys-svn_wc-1-0.dll*          pwd.exe*               sshd.exe*          update-ca-trust*
 astextplain*          cygpath.exe*                 gdbus.exe*                  gzexe*            msgcat.exe*                     msys-heimntlm-0.dll*         msys-tasn1-6.dll*             readlink.exe*          ssp.exe*           updatedb*
 autopoint*            cygwin-console-helper.exe*   gencat.exe*                 gzip.exe*         msgcmp.exe*                     msys-hogweed-6.dll*          msys-ticw6.dll*               realpath.exe*          start*             users.exe*
 awk.exe*              d2u.exe*                     getconf.exe*                head.exe*         msgcomm.exe*                    msys-hx509-5.dll*            msys-unistring-2.dll*         rebase.exe*            stat.exe*          vdir.exe*
 b2sum.exe*            dash.exe*                    getemojis*                  hmac256.exe*      msgconv.exe*                    msys-iconv-2.dll*            msys-uuid-1.dll*              rebaseall*             strace.exe*        vendor_perl/
 backup*               date.exe*                    getfacl.exe*                hostid.exe*       msgen.exe*                      msys-idn2-0.dll*             msys-wind-0.dll*              recode-sr-latin.exe*   stty.exe*          vi*
 base32.exe*           dd.exe*                      getopt.exe*                 hostname.exe*     msgexec.exe*                    msys-intl-8.dll*             msys-z.dll*                   regtool.exe*           sum.exe*           view.exe*
 base64.exe*           df.exe*                      gettext.exe*                iconv.exe*        msgfilter.exe*                  msys-kafs-0.dll*             mv.exe*                       reset.exe*             sync.exe*          vim.exe*
 basename.exe*         diff.exe*                    gettext.sh*                 id.exe*           msgfmt.exe*                     msys-krb5-26.dll*            nano.exe*                     restore*               tabs.exe*          vimdiff.exe*
 basenc.exe*           diff3.exe*                   gettextize*                 infocmp.exe*      msggrep.exe*                    msys-ksba-8.dll*             nettle-hash.exe*              rm.exe*                tac.exe*           vimtutor*
 bash.exe*             dir.exe*                     gio-querymodules.exe*       infotocap.exe*    msginit.exe*                    msys-lz4-1.dll*              nettle-lfib-stream.exe*       rmdir.exe*             tail.exe*          watchgnupg.exe*
 bashbug*              dircolors.exe*               git-flow*                   install.exe*      msgmerge.exe*                   msys-magic-1.dll*            nettle-pbkdf2.exe*            rnano.exe*             tar.exe*           wc.exe*
 bunzip2.exe*          dirmngr-client.exe*          git-flow-bugfix             join.exe*         msgunfmt.exe*                   msys-mpfr-6.dll*             ngettext.exe*                 runcon.exe*            tclsh.exe*         which.exe*
 bzcat.exe*            dirmngr.exe*                 git-flow-config             kbxutil.exe*      msguniq.exe*                    msys-ncursesw6.dll*          nice.exe*                     rview.exe*             tclsh8.6.exe*      who.exe*
 bzcmp*                dirname.exe*                 git-flow-feature            kill.exe*         msys-2.0.dll*                   msys-nettle-8.dll*           nl.exe*                       rvim.exe*              tee.exe*           whoami.exe*
 bzdiff*               docx2txt*                    git-flow-hotfix             ldd.exe*          msys-apr-1-0.dll*               msys-npth-0.dll*             nohup.exe*                    scp.exe*               test.exe*          winpty-agent.exe*
 bzegrep*              docx2txt.pl*                 git-flow-init               ldh.exe*          msys-aprutil-1-0.dll*           msys-p11-kit-0.dll*          notepad*                      sdiff.exe*             tic.exe*           winpty-debugserver.exe*
 bzfgrep*              dos2unix.exe*                git-flow-log                less.exe*         msys-asn1-8.dll*                msys-pcre-1.dll*             nproc.exe*                    sed.exe*               tig.exe*           winpty.dll*
 bzgrep*               du.exe*                      git-flow-release            lessecho.exe*     msys-assuan-0.dll*              msys-perl5_32.dll*           numfmt.exe*                   seq.exe*               timeout.exe*       winpty.exe*
 bzip2.exe*            dumpsexp.exe*                git-flow-support            lesskey.exe*      msys-bz2-1.dll*                 msys-psl-5.dll*              od.exe*                       setfacl.exe*           toe.exe*           wordpad*
 bzip2recover.exe*     echo.exe*                    git-flow-version            libtcl8.6.dll*    msys-cbor-0.8.dll*              msys-readline8.dll*          openssl.exe*                  setmetamode.exe*       touch.exe*         xargs.exe*
 bzless*               egrep*                       gitflow-common              link.exe*         msys-com_err-1.dll*             msys-roken-18.dll*           p11-kit.exe*                  sexp-conv.exe*         tput.exe*          xgettext.exe*
 bzmore*               env.exe*                     gitflow-shFlags             ln.exe*           msys-crypt-0.dll*               msys-sasl2-3.dll*            passwd.exe*                   sftp.exe*              tr.exe*            xxd.exe*
 c_rehash*             envsubst.exe*                gkill.exe*                  locale.exe*       msys-crypto-1.1.dll*            msys-serf-1-0.dll*           paste.exe*                    sh.exe*                true.exe*          yat2m.exe*
 captoinfo.exe*        ex.exe*                      glib-compile-schemas.exe*   locate.exe*       msys-edit-0.dll*                msys-smartcols-1.dll*        patch.exe*                    sha1sum.exe*           truncate.exe*      yes.exe*
 cat.exe*              expand.exe*                  gobject-query.exe*          logname.exe*      msys-expat-1.dll*               msys-sqlite3-0.dll*          pathchk.exe*                  sha224sum.exe*         trust.exe*         zcat*
 chattr.exe*           expr.exe*                    gpg-agent.exe*              ls.exe*           msys-ffi-7.dll*                 msys-ssl-1.1.dll*            perl.exe*                     sha256sum.exe*         tset.exe*          zcmp*
 chcon.exe*            factor.exe*                  gpg-connect-agent.exe*      lsattr.exe*       msys-fido2-1.dll*               msys-svn_client-1-0.dll*     perl5.32.1.exe*               sha384sum.exe*         tsort.exe*         zdiff*
 chgrp.exe*            false.exe*                   gpg-error.exe*              mac2unix.exe*     msys-gcc_s-seh-1.dll*           msys-svn_delta-1-0.dll*      pinentry-w32.exe*             sha512sum.exe*         tty.exe*           zegrep*
 chmod.exe*            fgrep*                       gpg-wks-server.exe*         md5sum.exe*       msys-gcrypt-20.dll*             msys-svn_diff-1-0.dll*       pinentry.exe*                 shred.exe*             tzset.exe*         zfgrep*
 chown.exe*            fido2-assert.exe*            gpg.exe*                    minidumper.exe*   msys-gettextlib-0-19-8-1.dll*   msys-svn_fs-1-0.dll*         pinky.exe*                    shuf.exe*              u2d.exe*           zforce*
 chroot.exe*           fido2-cred.exe*              gpgconf.exe*                mintheme*         msys-gettextsrc-0-19-8-1.dll*   msys-svn_fs_fs-1-0.dll*      pkcs1-conv.exe*               sleep.exe*             umount.exe*        zgrep*
 cksum.exe*            fido2-token.exe*             gpgparsemail.exe*           mintty.exe*       msys-gio-2.0-0.dll*             msys-svn_fs_util-1-0.dll*    pldd.exe*                     sort.exe*              uname.exe*         zipgrep*
 clear.exe*            file.exe*                    gpgscm.exe*                 mkdir.exe*        msys-glib-2.0-0.dll*            msys-svn_fs_x-1-0.dll*       pluginviewer.exe*             split.exe*             uncompress*        zipinfo.exe*
 cmp.exe*              find.exe*                    gpgsm.exe*                  mkfifo.exe*       msys-gmodule-2.0-0.dll*         msys-svn_ra-1-0.dll*         pr.exe*                       ssh-add.exe*           unexpand.exe*      zless*
 column.exe*           findssl.sh*                  gpgsplit.exe*               mkgroup.exe*      msys-gmp-10.dll*                msys-svn_ra_local-1-0.dll*   printenv.exe*                 ssh-agent.exe*         uniq.exe*          zmore*
 comm.exe*             fmt.exe*                     gpgtar.exe*                 mknod.exe*        msys-gnutls-30.dll*             msys-svn_ra_serf-1-0.dll*    printf.exe*                   ssh-copy-id*           unix2dos.exe*      znew*
 core_perl/            fold.exe*                    gpgv.exe*                   mkpasswd.exe*     msys-gobject-2.0-0.dll*         msys-svn_ra_svn-1-0.dll*     ps.exe*                       ssh-keygen.exe*        unix2mac.exe*

Cygwin

Cygwin a large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows.

cygwin是一个在windows平台上运行的linux模拟环境,相比git bash有更多的命令可以使用,还可以在改环境里面编译安装软件。

进入官网,找到对应版本进行下载 官网

  • install from internet 从网络上安装
  • 配置安装的目录以及使用的用户.默认即可
  • 配置本地包目录,默认在C盘,可以选择其它盘
  • 代理.默认即可
  • use URL 使用镜像.可以选择阿里云镜像 https://mirrors.aliyu.com
  • 安装linux工具跟库, view 根据分类查看目录,一般使用 category,比如可以在shell下选择zsh安装
Copying skeleton files.
These files are for the users to personalise their cygwin experience.

They will never be overwritten nor automatically updated.

'./.bashrc' -> '/home/username//.bashrc'
'./.bash_profile' -> '/home/username//.bash_profile'
'./.inputrc' -> '/home/username//.inputrc'
'./.profile' -> '/home/username//.profile'

username@DESKTOP-XXXXXXX ~
$ ls

username@DESKTOP-XXXXXXX ~
$ pwd
/home/username

username@DESKTOP-XXXXXXX ~
$ cd C:

username@DESKTOP-XXXXXXX /cygdrive/c
$ pwd
/cygdrive/c

WSL

适用于Linux的Windows子系统(WSL)可让开发人员按原样运行 GNU/Linux 环境,包括大多数命令行工具、实用工具和应用程序,且不会产生传统虚拟机或双启动设置开销。

您可以:

  • 在 Microsoft Store 中选择你偏好的 GNU/Linux 分发版。
  • 运行常用的命令行软件工具(例如 grep、sed、awk)或其他 ELF-64 二进制文件。
  • 运行 Bash shell 脚本和 GNU/Linux 命令行应用程序,包括:
    • 工具:vim、emacs、tmux
    • 语言:NodeJS、Javascript、Python、Ruby、C/C++、C# 与 F#、Rust、Go 等
    • 服务:SSHD、MySQL、Apache、lighttpd、MongoDB、PostgreSQL。
  • 使用自己的 GNU/Linux 分发包管理器安装其他软件。
  • 使用类似于 Unix 的命令行 shell 调用 Windows 应用程序。
  • 在 Windows 上调用 GNU/Linux 应用程序。
  • 运行直接集成到 Windows 桌面的 GNU/Linux 图形应用程序
  • 将 GPU 加速用于机器学习、数据科学场景等

WSL1

启用WSL

Windows搜索框搜索 启用,打开 启用或关闭 Windows 功能,勾选适用于Linux的 Windows 子系统,下载完成之后重启。

安装linux系统

  • Windows搜索框搜索store,打开Microsoft Store
  • 搜索linux,
  • 从搜过结果中选择合适的版本安装

WSL2

WSL 2 架构在几个方面优于 WSL 1

功能WSL 1WSL 2
Windows 和 Linux 之间的集成
启动时间短
与传统虚拟机相比,占用的资源量少
可以与当前版本的 VMware 和 VirtualBox 一起运行
托管 VM
完整的 Linux 内核
完全的系统调用兼容性
跨 OS 文件系统的性能

windows版本要求:Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11

WSL2基于Hyper-V虚拟技术,需要提前开启虚拟化支持。

Windows搜索框搜索 启用,打开 启用或关闭 Windows 功能,勾选虚拟机平台,下载完成之后重启。

  • Windows 图标 右键,选择Windows PowerShell(管理员)(A) 启动powershell终端
  • 在终端窗口中输入:wsl --install 即可自动执行。
    PS C:\users\username> WSL --install
    正在安装: 虚拟机平台
    已安装 虚拟机平台。
    正在安装:适用于 Linux  windows 子系统
    已安装 适用于 Linux的 windows 子系统。
    正在下载:WSL 内核
    正在安装: WSL 内核
    已安装 WSL 内核。
    正在下载:GUI 应用支持
    正在安装:GUI 应用支持
    已安装 GUI 应用支持。
    
  • 在完成 已安装 GUI 应用支持 后, 按住CTRL+C取消操作后重启。
  • 开机后调出终端,输入执行wsl --set-default-version 2 将 WSL 默认版本调整为 WSL2。
  • 在 Microsoft Store 中找到对应发行版进行安装即可;也可通过命令行安装。
  • 命令行安装方法:

    • wsl -l -o 可查看可安装的发行版,记录发行版名称如 ubuntu-20.04

      PS C:\users\username> wsl -l -o
      以下是可安装的有效分发的列表。
      请使用“wsl --install -d <分发>”安装。
      
      NAME            FRIENDLY NAME
      Ubuntu          Ubuntu
      Debian          Debian GNU/Linux
      kali-linux      Kali Linux Rolling
      openSUSE-42     openSUSE Leap 42
      SLES-12         SUSE Linux Enterprise Server v12
      Ubuntu-16.04    Ubuntu 16.04 LTS
      Ubuntu-18.04    Ubuntu 18.04 LTS
      Ubuntu-20.04    Ubuntu 20.04 LTS
      
    • wsl --install --d ubuntu-20.04 安装 ubuntu20.04

    • 安装完毕后,wsl -l -v 可查看安装的发行版的WSL版本。
    • 在开始菜单中打开Ubuntu

更换安装目录

上述安装步骤,默认将Ubuntu安装在C盘中,C盘空间不够可能会影响后续使用,因此我们可以将其安装在更大的盘中,如D盘。

  • 在D盘中创建文件夹WSL,然后在WSL文件夹中创建文件夹Ubuntu;
  • 下载相关文件,如 https://aka.ms/wslubuntu2004,建议使用迅雷下载

    其它linux发行版本的下载链接如下所示,参考 WSL手动安装

    https://aka.ms/wslubuntu
    https://aka.ms/wslubuntu2204
    https://aka.ms/wslubuntu2004
    https://aka.ms/wslubuntu2004arm
    https://aka.ms/wsl-ubuntu-1804
    https://aka.ms/wsl-ubuntu-1804-arm
    https://aka.ms/wsl-ubuntu-1604
    https://aka.ms/wsl-debian-gnulinux
    https://aka.ms/wsl-kali-linux-new
    https://aka.ms/wsl-sles-12
    https://aka.ms/wsl-SUSELinuxEnterpriseServer15SP2
    https://aka.ms/wsl-SUSELinuxEnterpriseServer15SP3
    https://aka.ms/wsl-opensuse-tumbleweed
    https://aka.ms/wsl-opensuseleap15-3
    https://aka.ms/wsl-opensuseleap15-2
    https://aka.ms/wsl-oraclelinux-8-5
    https://aka.ms/wsl-oraclelinux-7-9
    
  • 将下载的 wslubuntu2004放入新建的文件夹 D:\WSL\Ubuntu\中,并重命名为 wslubuntu2004.zip

  • wslubuntu2004.zip解压,将解压出来的文件中的 Ubuntu_2004.2021.825.0_x64.appx重命名为 Ubuntu_2004.2021.825.0_x64.zip
  • Ubuntu_2004.2021.825.0_x64.zip解压,双击 ubuntu2004.exe即可打开Ubuntu
    Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.10.16.3-microsoft-standard-WSL2 x86_64)
    
    * Documentation:  https://help.ubuntu.com
    * Management:     https://landscape.canonical.com
    * Support:        https://ubuntu.com/advantage
    
      System information as of Tue Dec  6 11:25:37 CST 2022
    
      System load:  0.0                Processes:             8
      Usage of /:   0.4% of 250.98GB   Users logged in:       0
      Memory usage: 0%                 IPv4 address for eth0: 172.22.85.201
      Swap usage:   0%
    
    0 updates can be installed immediately.
    0 of these updates are security updates.
    
    The list of available updates is more than a week old.
    To check for new updates run: sudo apt update
    
    This message is shown once once a day. To disable it please create the
    /root/.hushlogin file.
    root@DESKTOP-XXXXX:~#
    
    如果出现如下报错
    Installing, this may take a few minutes...
    WslRegisterDistribution failed with error: 0x800701bc
    Error: 0x800701bc WSL 2 ?????????????????? https://aka.ms/wsl2kernel
    
    Press any key to continue...
    
    下载这个软件 https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi 安装,重启系统再双击 ubuntu2004.exe打开Ubuntu

更换源

以Ubuntu 20.04为例,不同版本参考

# 更新证书
apt-get install --only-upgrade ca-certificates  
mv /etc/apt/sources.list /etc/apt/sources.list.back
sudo sed -i "s@http://.*archive.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
sudo sed -i "s@http://.*security.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
sudo apt-get update 
sudo apt-get upgrade 

虚拟机

使用virtualboxVMware Workstation Player安装linux虚拟机,可以体验完整的linux从安装到完整系统的使用。

Linux Images 中有各种Linux发行版本的virtualbox和VMware,可以直接下载使用,避免自己从头安装。

云服务器

前面几种方式都是在自己本地电脑上模拟Linux环境,新手用户也可以买一台云服务器,拥有一台属于自己的服务器,用于练习或者数据分析。

目前各个云服务器厂商为了做推广,新用户或者学生用户,会有比较优惠的活动,新手用户可以尝试轻量应用服务器,一般配置较低,价格较低,适合练习Linux、搭建博客等。

国内常用的云服务器厂商:

阿里云

腾讯云

华为云

天翼云

百度智能云

国内下载github上的软件或国外的数据可能速度会比较慢,可以尝试使用海外的云服务器。

vultr 支持Alipay支付,支持按量使用付费,使用结束后销毁服务器就不会再计费,服务器IP国内不通时也可以免费更换IP

本文阅读量  次
本站总访问量  次