WSL 可以直接在 Windows 系统上安装并运行 Linux。目前最新的版本是 WSL2。
- JavaScript98
- 小程序67
- Python49
- Linux48
- TypeScript28
- CSS26
- 基础20
- HTML20
- Git19
- VS Code19
- GitHub14
- Markdown12
- 软件11
- jQuery9
- Android7
- Node.js7
- Vue6
- 快速上手5
- dart5
- 工具分享4
- 前端3
- Emmet3
- 硬件2
- 服务器2
- 教程2
- 后端1
- 运维工具1
- Cpp1
- C1
- Java1
- JSON1
- PHP1
- YAML1
管理工具
- yum (Centos 7)
- dnf (Centos 8)
yarn
curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
sudo yum install yarn
## OR ##
sudo dnf install yarn
查看当前语言包: locale -a
中文语言是: zh_CN.utf8
安装中文语言包
sudo apt-get install language-pack-zh-hans
安装 VS Code
-
使用 snap
sudo snap install --classic code -
在 WSL 环境下 snap 无法使用,则使用以下命令安装 code 库。
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/ sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'然后正常安装:
sudo apt-get install apt-transport-https sudo apt-get update sudo apt-get install code # or code-insiders
文件名(或者目录名)是执行 Linux 命令中最常见的参数,例如前面介绍的 cd、mkdir、cp 等命令,都涉及到了文件名。然而对初学者来说,输入完整的文件名感觉很麻烦,尤其面临文件名(目录名)特别长的时候。
考虑到这种情况,Shell (Bash) 提供了一种称为“命令行自动补全”的功能,即在输入文件名的时候,只需要输入该文件名的前几个字符,然后按 Tab 键,Shell 就可以自动将文件名补全。
前面讲过,在 Linux 系统中“一切皆文件”,Linux 命令也不例外。那么,当编辑完成 Linux 命令并回车后,系统底层到底发生了什么事情呢?
简单来说,Linux 命令的执行过程分为如下 4 个步骤。
-
判断路径
判断用户是否以绝对路径或相对路径的方式输入命令(如
/bin/ls),如果是的话直接执行。 -
检查别名
Linux 系统会检查用户输入的命令是否为 “别名命令”。要知道,通过 alias 命令是可以给现有命令自定义别名的,即用一个自定义的命令名称来替换原本的命令名称。
例如,我们经常使用的
rm命令,其实就是rm -i这个整体的别名:[root@localhost ~]# alias rm alias rm='rm -i'这使得当使用 rm 命令删除指定文件时,Linux 系统会要求我们再次确认是否执行删除操作。例如:
[root@localhost ~]# rm a.txt <-- 假定当前目录中已经存在 a.txt 文件 rm: remove regular file 'a.txt'? y <-- 手动输入 y,即确定删除 [root@localhost ~]#这里可以使用
unalias命令,将 Linux 系统设置的rm别名删除掉,执行命令如下:[root@localhost ~]# alias rm alias rm='rm -i' [root@localhost ~]# unalias rm [root@localhost ~]# rm a.txt [root@localhost ~]# <--直接删除,不再询问 -
判断是内部命令还是外部命令
Linux 命令行解释器 (又称为 Shell) 会判断用户输入的命令是内部命令还是外部命令。其中,内部命令指的是解释器内部的命令,会被直接执行;而用户通常输入的命令都是外部命令,这些命令交给步骤四继续处理。 内部命令由 Shell 自带,会随着系统启动,可以直接从内存中读取;而外部命令仅是在系统中有对应的可执行文件,执行时需要读取该文件。
判断一个命令属于内部命令还是外部命令,可以使用
type命令实现。例如:[root@localhost ~]# type pwd pwd is a shell builtin <-- pwd是内部命令 [root@localhost ~]# type top top is /usr/bin/top <-- top是外部命令 -
查找外部命令对应的可执行文件
当用户执行的是外部命令时,系统会在指定的多个路径中查找该命令的可执行文件,而定义这些路径的变量,就称为 PATH 环境变量,其作用就是告诉 Shell 待执行命令的可执行文件可能存放的位置,也就是说,Shell 会在 PATH 变量包含的多个路径中逐个查找,直到找到为止(如果找不到,Shell 会提供用户“找不到此命令”)。
建立硬链接和软链接非常简单,那这两种链接有什么区别? 它们都有什么作用? 这才是链接文件最不容易理解的地方,我们分别来讲讲。
变量
变量是计算机系统用于保存可变值的数据类型,我们可以直接通过变量名称来提取到对应的变量值。在 Linux 系统中,环境变量是用来定义系统运行环境的一些参数,比如每个用户不同的家目录 (HOME)、邮件存放位置 (MAIL)等。 值得一提的是,Linux 系统中环境变量的名称一般都是大写的,这是一种约定俗成的规范。
