Mac终端利器:Homebrew + iTerm2 + Oh My Zsh 教程

news2024/12/24 11:35:25

引言

前段时间调整了一下 iTerm2 的环境,感觉比以前好看多了,并且更加高效,这里做一个记录,希望能给大家一些启发。

工具介绍

  • brew:Mac OS 下强大的包管理工具。
  • iTerm2:iTerm2是 Mac OS 终端的替代品,也是iTerm的继承者。iTerm2将终端带入了"只有想不到,没有做不到"的时代。
  • zsh:zsh 是 shell 语言类型,兼容bash,提供强大的交互式命令行功能,比如 tab 补全,自动纠错功能等。但是有一个很大的缺点,就是配置太麻烦。
  • oh-my-zsh:管理 zsh 配置的框架,只需要简单的改改配置文件,就能让 zsh 用的很顺手。

本文叙述的内容主要就围绕这这几款在 Mac OS 下比较流行的工具,brew 帮我们安装一些需要的包,iTerm2 是我们的 shell 终端程序,zsh 给我们极佳的命令行交互体验,oh-my-zsh 帮我们更加方便的配置 zsh。

Homebrew

Homebrew 是 macOS 上一款强大的包管理器,旨在简化软件的安装和管理过程。作为开发者,拥有一个可靠的包管理工具是非常重要的,它可以帮助你快速安装和更新各种开发工具、库和依赖项,从而提高开发效率和便捷性。

安装

在终端中输入以下命令,使用国内源安装脚本进行配置:

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

Brew常用命令

# 查看配置
brew config

# 更新 Homebrew
brew update

#  搜索相关的包
brew search [关键词] 

# 查看包的信息
brew info [软件名]
 
# 查看已安装的包
brew list

# 更新某个软件
brew upgrade [软件名]

# 清理所有软件的旧版
brew cleanup

# 卸载某个软件
brew uninstall [软件名]

# 安装某个软件
brew install [软件名]

# 安装cask软件
brew install --cask [软件名]

iTerm2

iTerm2是 macOS 平台上终端的替代方案,功能也更强大,目前支持macOS 10.14及更高版本。

官网下载安装

下载地址:https://iterm2.com/downloads.html

使用Homebrew安装

打开电脑终端,命令行输入如下命令回车:

brew install --cask iterm2

自定义配置

打开 iTerm2,打开 Preferences 配置界面,选择 Profiles 就可以进行一些自定义配置了。

iTerm2.png

Oh My Zsh

Oh My Zsh 是一个令人愉快的开源社区框架,用于管理 Zsh 配置。它捆绑了数以千计的有用功能、助手、插件、主题和一些让你大呼过瘾的东西…

安装

官网提供了两种安装方式:

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

# via wget
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

如果,由于一些原因,上面两种方法你都没能安装成功,可以试一下手动安装:

# 下载 oh-my-zsh 源码
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
# 并且把 .zshrc 配置文件拷贝到根目录下
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
# 让 .zshrc 配置文件生效
source ~/.zshrc

嗯… 如果 clone 也不行,因为不可描述的原因,网速不允许啊。

那你这样做。

在 oh-my-zsh【GitHub】 上下载 zip -> 解压 -> 移动 oh-my-zsh 目录到根目录:

cd ~/Downloads
mv ohmyzsh-master ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
source ~/.zshrc

好了,重新启动 iTerm2,看看是不是已经变了。

常用插件

zsh-syntax-highlighting

语法高亮插件,让命令行更加易读易懂。

安装方式:

brew install zsh-syntax-highlighting

在 ~/.zshrc 文件中添加以下内容:

source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

zsh-autosuggestions

自动补全插件,根据历史命令和当前输入内容,自动推荐可能的命令。

安装方式:

git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions

在 ~/.zshrc 文件中添加以下内容:

plugins=(zsh-autosuggestions)

autojump

快速跳转到常用目录的插件,可以加快命令行操作的速度。

安装方式:

brew install autojump

在 ~/.zshrc 文件中添加以下内容:

[[ -s $(brew --prefix)/etc/profile.d/autojump.sh ]] && . $(brew --prefix)/etc/profile.d/autojump.sh

powerlevel10k

主题插件,可以美化命令行界面,并提供各种实用功能,如显示当前目录、Git 分支信息等。

安装方式:

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k

在 ~/.zshrc 文件中设置主题为 powerlevel10k:

ZSH_THEME="powerlevel10k/powerlevel10k"

colorls

给 ls 命令添加了颜色和图标,使文件列表更加美观易读。

安装ruby,ruby的版本需要为2.7以上,使用ruby2.6无法安装colorls。

$ brew install ruby

配置ruby环境变量:

$ vim ~/.zshrc
# export PATH="/usr/local/Cellar/ruby/2.7.2/bin:$PATH"
export PATH="/opt/homebrew/opt/ruby/bin:$PATH"

$ source ~./zshrc

安装colorls:

$ sudo gem install colorls -n /usr/local/bin

配置~/.zshrc:

$ vim ~/.zshrc

source $(dirname $(gem which colorls))/tab_complete.sh
alias ll='colorls -lA --sd --gs --group-directories-first'
alias ls='colorls --group-directories-first'
alias lc='colorls'                               # Colorls with no options
alias l='colorls -l --sort-dirs'                 # List
#alias ll='colorls -lA --git-status --sort-dirs'  # List, show almost all files (excludes ./ and ../)
alias la='colorls -la --sort-dirs'               # List, show all files
alias lt='colorls -lt  --git-status'             # List, sort by modification time (newest first)
alias lS='colorls -lS  --git-status'             # List, sort by size (largest first)
alias lr='colorls --tree=5'                      # Show tree heirarchy, capped at depth 5 just in case
alias lx='colorls -lAX --git-status'             # List, Sort by file type

git

提供了一系列与 Git 版本控制相关的命令和别名,方便使用 Git 进行代码管理。

git 插件是 Oh My Zsh 自带的插件,只需要在 ~/.zshrc 文件中添加以下内容即可:

plugins=(git)

fzf

模糊搜索插件,可以快速搜索历史命令、文件、目录等。

安装方式:

brew install fzf

在 ~/.zshrc 文件中添加以下内容:

[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh

docker

提供了一系列与 Docker 容器相关的命令和别名,方便使用 Docker 进行容器管理。

安装方式:

git clone https://github.com/felixr/docker-zsh-completion ~/.oh-my-zsh/custom/plugins/docker

在 ~/.zshrc 文件中添加以下内容:

plugins=(docker)

kubectl

提供了一系列与 Kubernetes 集群相关的命令和别名,方便使用 Kubernetes 进行集群管理。

安装方式:

brew install kubectl

在 ~/.zshrc 文件中添加以下别名:

source <(kubectl completion zsh)
alias k=kubectl
complete -F __start_kubectl k

tmux

终端多窗口管理插件,可以在一个终端窗口中同时运行多个命令行界面。

安装方式:

brew install tmux

在 ~/.tmux.conf 文件中添加以下内容:

set -g default-terminal "xterm-256color"

在 ~/.zshrc 文件中启用 tmux 插件:

plugins=(tmux)

最终效果图

最终效果图.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/853543.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实现vuex数据持久化处理

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 前言&#xff1a; 方案一 localStorage 介绍 值 示例 JSON.stringify() 介绍 语法 参数 返…

深入JVM - JIT分层编译技术与日志详解

深入JVM - JIT分层编译技术与日志详解 文章目录 深入JVM - JIT分层编译技术与日志详解1. 背景简介2. JIT 编译器2.1. 客户端版本的编译器: C12.2. 服务端版本的编译器: C22.3. Graal JIT 编译器 3. 分层编译技术(Tiered Compilation)3.1. 汇聚两种编译器的优点3.2. 精准优化(Ac…

人工智能、BIM技术、机器学习在智慧工地的应用

人工智能、BIM技术、机器学习在智慧工地的应用 智慧工地云平台是专为建筑施工领域所打造的一体化信息管理平台。通过大数据、云计算、人工智能、BIM、物联网和移动互联网等高科技技术手段&#xff0c;将施工区域各系统数据汇总&#xff0c;建立可视化数字工地。同时&#xff0…

⌈算法进阶⌋图论::并查集——快速理解到熟练运用

目录 一、原理 1. 初始化Init 2. 查询 find 3. 合并 union 二、代码模板 三、练习 1、 990.等式方程的可满足性 &#xff08;中等&#xff09; 2、 1061. 按字典序排列最小的等效字符串 &#xff08;中等&#xff09; 3、账户合并 &#xff08;较难&am…

QFontDialog

QFontDialog QFont字体类使用QFont类QFontDialog类的静态API简单的使用 QFontDialog类是QDialog的子类, 通过这个类我们可以得到一个进行字体属性设置的对话框窗口, 和前边介绍的对话框类一样, 我们只需要调用这个类的静态成员函数就可以得到想要的窗口了。 QFont字体类 关于…

Android自定义侧滑Item

源码地址&#xff1a;https://github.com/LanSeLianMa/CustomizeView/tree/master/cehuaitem 使用方式一&#xff1a;XML布局中直接使用 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com…

python怎么判断变量的数据类型

在编程的世界里&#xff0c;了解各种数据类型是非常重要的。在Python中&#xff0c;有着丰富的数据类型用于存储和处理不同类型的数据。掌握这些数据类型的定义和作用&#xff0c;我们能够更好地在程序中管理和操作数据&#xff0c;提高代码的效率和可读性。 Python中常见的数据…

使用node搭建服务器,前端自己写接口,将vue或react打包后生成的dist目录在本地运行

使用node.jsexpress或者使用node.jspm2搭建服务器&#xff0c;将vue或react打包后生成的dist目录在本地运行 vue项目打包后生成的dist目录如果直接在本地打开index.html,在浏览器中会报错&#xff0c;无法运行起来。 通常我是放到后端搭建的服务上面去运行&#xff0c;当时前端…

pve和openwrt以及我的电脑中网络的关系和互通组网

情况1 一台主机 有4个口&#xff0c;分别eth0,eth1,eth2,eth3 pve有管理口 这个情况下 &#xff0c;没有openwrt 直接电脑和pve管理口连在一起就能进pve管理界面 情况2 假设pve 的管理口味eth0 openwrt中桥接的是eth0 eth1 eth2 那么电脑连接eth3或者pve管理口设置eth3&#xf…

jmeter创建一个压测项目

1.jemeter新建一个项目&#xff1a; 2.接下来对Thread进行描述&#xff0c;也可以先使用默认的Thread进行操作。 3.添加http请求头的信息。按照如图所示操作 4.在请求头里面添加必要的字段&#xff0c;可以只填必要字段就可以 5.添加Http请求信息&#xff0c;如下图&#xff…

【webpack】动态配置cdn,多模板入口项目搭建

动态配置多模板 按照这个模板创建项目 安装glob,获取目录下的文件名称 封装方法utilsConfig&#xff0c;动态生产 page // pages 多入口配置 const path require("path");// glob 是 webpack 安装时依赖的一个第三方模块&#xff0c;该模块允许你使用 * 等符号, …

图片如何转pdf?几个小妙招了解一下

图片如何转pdf&#xff1f;在日常工作和生活中&#xff0c;我们经常需要将图片转换成PDF格式&#xff0c;以便于我们进行存档、传输或打印。那么&#xff0c;如何快速、方便地将图片转换成PDF呢&#xff1f;这里介绍就为大家介绍几款好用的工具。 我们可以使用【迅捷PDF转换器】…

opencv动态目标检测

文章目录 前言一、效果展示二、实现方法构造形态学操作所需的核:创建背景减除模型:形态学操作:轮廓检测: 三、代码python代码C代码 总结参考文档 前言 很久没更新文章了&#xff0c;这次因为工作场景需要检测动态目标&#xff0c;特此记录一下。 一、效果展示 二、实现方法 基…

简化AD管理减少IT工作负担

管理和保护混合 AD 环境 IT 管理员几乎每天都要创建和管理多个 AD 对象&#xff0c;利用本机AD工具&#xff08;如Active Directory用户和计算机控制台以及PowerShell脚本&#xff09;来执行这些任务并不理想&#xff0c;因为它们必须在多个控制台之间切换才能执行这些任务&am…

【UE4 RTS】02-Camera Movement

前言 本篇实现了CameraPawn的基本移动功能 步骤 1. 打开项目设置&#xff0c;在 引擎——输入 一栏中删除模板自带的操作映射 在轴映射中&#xff0c;删除“TurnRate” 添加如下键值 2. 打开“RTS_PlayerController_BP”&#xff0c;在事件图表中添加如下节点 此时运行游戏就…

MySQL和钉钉单据接口对接

MySQL和钉钉单据接口对接 数据源系统:钉钉 钉钉&#xff08;DingTalk&#xff09;是阿里巴巴集团打造的企业级智能移动办公平台&#xff0c;是数字经济时代的企业组织协同办公和应用开发平台。钉钉将IM即时沟通、钉钉文档、钉闪会、钉盘、Teambition、OA审批、智能人事、钉工牌…

Java后台生成ECharts图片

前言 通过echarts的jar包&#xff0c;Java后台生成一张图片&#xff0c;并把图片插入到word中。关于word插图片的代码在下一章。 需要用到的工具PhantomJS,Echarts-convert.js,jquery.js,echarts.js。 1.PhantomJS 介绍 PhantomJS是一个不需要浏览器的富客户端。 官方介绍&…

PS的一些智能对象是怎么用的?用于包装设计该怎么使用?

大家都对一些效果图不太理解&#xff0c;我现在就献丑给大家讲一下&#xff0c;教程都是网友盛传的&#xff0c;我自己学习并且有所体会。 一般做的非常好的PS效果图都是外国人自己做的&#xff0c;所以大多数效果图都是英文&#xff0c;细心的网友会发现&#xff0c;中文的是一…

IOS上架流程

IOS上架流程 准备 开发者账号完工的项目 上架步骤 一、创建App ID二、创建证书请求文件 &#xff08;CSR文件&#xff09;三、创建发布证书 &#xff08;CER&#xff09;四、创建Provisioning Profiles配置文件 &#xff08;PP文件&#xff09;五、在App Store创建应用六、…