跳到主要内容

48 篇博文 含有标签「操作系统与命令」

操作系统和命令行相关知识

查看所有标签

Ubuntu 安装 Zsh 配置 Oh My Zsh 主题和插件

· 阅读需 2 分钟
素明诚
Full stack development

安装 Zsh

打开你的 Ubuntu 终端

更新你的包列表

sudo apt update

安装 Zsh

sudo apt install zsh

安装完成后,你可以通过运行

zsh

来切换到 Zsh shell,或者你可以将其设置为默认的 shell

chsh -s $(which zsh)

这将改变默认的 shell。注销并重新登录或者关闭并重新打开 Ubuntu 终端,以使这个更改生效。

安装 Oh My Zsh

Oh My Zsh 是一个流行的开源框架,用于管理你的 Zsh 配置。它提供了很多有用的功能,如主题支持、插件和别名等。

通过运行以下命令安装 Oh My Zsh

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

这个脚本会自动安装 Oh My Zsh 并将其设置为默认的 shell。

安装完成后,你可以打开 ~/.zshrc 文件来配置 Oh My Zsh 的主题和插件

nano ~/.zshrc

在这个配置文件中,你可以修改 ZSH_THEME 变量来更改主题,或者在 plugins=(git) 那一行添加或删除插件。

配置 Oh My Zsh 主题和插件

你可以选择一个你喜欢的主题,将其名称赋值给 ZSH_THEME 变量。例如,如果你想要使用 agnoster 主题,修改这一行

ZSH_THEME="agnoster"

Oh My Zsh 提供了大量插件,可以增强你的 shell 体验。你可以通过修改 ~/.zshrc 文件中的 plugins 数组来启用这些插件。例如,要启用 gitzautojump 插件,修改这一行

plugins=(git z autojump)

安装完成后,你可以通过关闭并重新打开终端或运行 source ~/.zshrc 来应用更改。

Ubuntu 设置 sudo -s 无密码

· 阅读需 1 分钟
素明诚
Full stack development

配置无密码 sudo

使用 visudo 编辑 sudo 配置

sudo visudo

visudo 命令会安全地打开 /etc/sudoers 文件进行编辑,并检查保存时的语法错误。

visudo 编辑器中,找到适当的位置并添加规则。这里有几个示例

为单个用户免密码使用 sudo(替换 username 为您的用户名)

username ALL=(ALL) NOPASSWD:ALL

为一个用户组免密码使用 sudo(替换 groupname 为您的组名,并确保组名前有 %

%groupname ALL=(ALL) NOPASSWD:ALL

允许所有用户免密码使用 sudo

ALL ALL=(ALL) NOPASSWD:ALL

Ctrl+O 保存更改,然后按 Ctrl+X 退出 nano 编辑器。

关闭终端会话并重新打开,以测试无密码 sudo 是否生效。

注意事项

  • 日常使用确保您对需要此权限的用户或组有充分的信任。
  • 我一般在 win 子系统里面直接配置无密码,这样节省时间

如果您喜欢这篇文章,不妨给它点个赞并收藏,感谢您的支持!

Win10 取消 BitLocker 加密

· 阅读需 1 分钟
素明诚
Full stack development

控制面板

eb19d257299ce48959c23cafe036b069### 选择系统
ac0c6bcb45a65c2e34bd24519f56ab26### 选择 BitLocker
dd5ba88ff962c118a1278327d61c0f87### 选择关闭
896a5b064234704c93160d59d52e4a31### 解密
f745be820c99e41b47e7154909aef344### 等待解密完成

解密过程可能需要一些时间,具体时间取决于磁盘上的数据量。在解密过程中,你可以继续使用电脑,但可能会注意到一些性能上的减慢。

完成

a0ba65f3117347cde8da4a327287d9ec

解密后就可以对分区进行修改了,否则我的 C 盘总是满满的

Ubuntu 安装 nvm

· 阅读需 2 分钟
素明诚
Full stack development

curl

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

wget

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

安装脚本会将 nvm 安装到你的家目录下,并尝试更新你的 shell 配置文件(如 .bash_profile.zshrc.profile.bashrc),以便每次打开新的终端时自动加载 nvm

为了开始使用 nvm,你可能需要关闭并重新打开你的终端,或者手动执行下面的命令来载入 nvm

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

验证 nvm 是否已成功安装,运行

nvm --version

使用 nvm 安装 Node.js

要安装最新版本的 Node.js,运行

nvm install node

要安装长期支持(LTS)版本的 Node.js,运行

nvm install --lts

要安装特定版本的 Node.js,你可以指定版本号,例如

nvm install 14.17.0

安装后,你可以使用以下命令来切换到已安装的任何版本

nvm use 14.17.0

要查看当前使用的 Node.js 版本,运行

node -v

要列出所有已安装的 Node.js 版本,运行

nvm ls

使用 nvm,你可以轻松管理多个 Node.js 版本,并根据需要为不同的项目使用不同的版本。

什么是轮转时间片Round Robin Time Slice

· 阅读需 3 分钟
素明诚
Full stack development

轮转时间片(Round Robin Time Slice,通常简称为时间片或时间量)是操作系统中一种常用的进程或线程调度算法的核心概念

在轮转(Round Robin, RR)调度算法中,每个进程(或线程)被分配一个固定大小的时间片,以在 CPU 上执行。当一个进程的时间片用完时,操作系统会将 CPU 分配给下一个等待执行的进程。这个过程会不断重复,直到所有进程都完成执行

为什么会有轮转时间片

  • 公平性:为了防止某个进程独占处理器资源,需要一种方法能够平等地将处理器时间分配给每一个进程,这样每个用户或任务都能得到一定的服务时间。
  • 并发:随着计算需求的增长,系统需要能够同时处理多个任务。轮转时间片调度允许系统通过在进程之间快速切换来模拟并发处理,提高资源利用率和系统吞吐量。
  • 响应时间:对于需要快速响应的应用,通过使用时间片,系统可以在有限的时间内服务多个请求,减少了单个长任务造成的延迟。

应用场景

如果设计一个腾讯会议可能会遇到处理多个任务的场景,例如

  1. 视频压缩/解压缩:实时压缩来自发言者的视频以及解压缩发送给各个参与者的视频。
  2. 音频处理:包括噪声消除、回声消除和音频压缩/解压缩。
  3. 数据传输:管理各种会话的数据包的发送和接收。
  4. 用户界面响应:响应用户的各种交互,如静音/取消静音、打开/关闭视频、聊天等。

在这样一个系统中,如果采用轮转时间片调度,操作系统或应用服务器可以这样工作:

  1. 分配时间片:系统为每个活动任务(例如,不同的视频流、音频处理任务或数据传输会话)分配一个固定的时间片。
  2. 任务切换:当一个任务的时间片用完(或任务完成)时,调度器保存其状态(上下文切换),并将处理器控制权转移给下一个任务。
  3. 平衡服务:通过这种方式,系统确保没有单个任务或会话占用所有资源,每个并发会话都获得适当的处理时间,从而保持流畅的视频和音频输出质量。
  4. 减少延迟:此策略还有助于减少用户感知到的延迟,因为所有关键操作(如视频显示、音频播放和用户输入)都获得了定期的、相对均匀的处理时间。

这种任务调度方法允许视频会议系统高效、公平地管理多个并发会话,即使在高负载情况下也能保持性能和响应速度。

并发执行与并行执行

· 阅读需 2 分钟
素明诚
Full stack development

并发执行

在并发执行中,操作系统会通过时间分片技术在这两个程序之间快速切换。例如,它可能会让音乐播放器运行 10 毫秒,然后切换到文本编辑器运行 10 毫秒,如此反复。由于切换速度非常快,你会觉得音乐播放器和文本编辑器似乎是在同时运行。但不是真正的并行执行。

并行执行

如果你的电脑有两个或更多的 CPU 核心,那么它可以真正地并行执行这两个程序。例如,音乐播放器可能会在一个核心上运行,而文本编辑器会在另一个核心上运行。在这种情况下,两个程序确实是在同时运行,而不是通过轮转时间片交替运行。

对比

在只有一个 CPU 核心的系统中,通过并发执行,你仍然可以实现良好的系统响应性和多任务处理,但它不会提供真正的并行执行。在多核系统中,你可以获得真正的并行执行,从而提高系统的效率和性能。

软连接与硬连接的区别

· 阅读需 2 分钟
素明诚
Full stack development

假设我们有一个文件夹,里面有一个名为“原始文件.txt”的文件。

  1. 硬链接 (Hard Link):
  • 创建硬链接就像在文件夹中为“原始文件.txt”创建了一个镜像或克隆,我们可以称其为“硬链接文件.txt”。
  • 现在,“原始文件.txt”和“硬链接文件.txt”都指向同一块数据。无论你通过哪个文件来修改数据,另一个文件看到的数据也会改变,因为它们共享同一块数据。
  • 如果你删除了“原始文件.txt”,“硬链接文件.txt”仍然存在,并且包含所有的数据。删除其中一个不会影响另一个。
  1. 软链接 (Soft Link 或 Symbolic Link):
  • 创建软链接就像创建了一个指向“原始文件.txt”的快捷方式,我们可以称其为“软链接文件.txt”。
  • “软链接文件.txt”不包含任何实际的数据,它只是指向“原始文件.txt”的一个指针或快捷方式。
  • 如果你删除了“原始文件.txt”,“软链接文件.txt”会变成一个失效的快捷方式,因为它指向的文件已经不存在了。

理解文件路径中的点和斜杠

· 阅读需 1 分钟
素明诚
Full stack development
.  表示当前目录
.. 表示当前目录的上一级目录。
./ 表示当前目录下的某个文件或文件夹
../表示当前目录上一级目录的文件或文件夹

总结

点表示的是当前目录,斜杠标识的是目录下面,多一个点就表示当前的路径上层。