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

引言

前段时间调整了一下 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Detecting Everything in the Open World: Towards Universal Object Detection

1. 论文简介 论文题目《Detecting Everything in the Open World: Towards Universal Object Detection》发表情况&#xff0c;CVPR2023[论文地址][https://arxiv.org/pdf/2303.11749.pdf][代码地址][https://github.com/zhenyuw16/UniDetector] 2.背景与摘要 本文旨在解决通…

Crowd-Robot Interaction 论文阅读

论文信息 题目&#xff1a;Crowd-Robot Interaction:Crowd-aware Robot Navigation with Attention-based Deep Reinforcement Learning 作者&#xff1a;Changan Chen, Y uejiang Liu 代码地址&#xff1a;https://github.com/vita-epfl/CrowdNav 来源&#xff1a;arXiv 时间…

Spring集成Seata

Seata的集成方式有&#xff1a; 1. Seata-All 2. Seata-Spring-Boot-Starter 3. Spring-Cloud-Starter-Seata 本案例使用Seata-All演示&#xff1a; 第一步&#xff1a;下载Seata 第二步&#xff1a;为了更好看到效果&#xff0c;我们将Seata的数据存储改为db 将seata\sc…

【IMX6ULL驱动开发学习】04.应用程序和驱动程序数据传输和交互的4种方式:非阻塞、阻塞、POLL、异步通知

一、数据传输 1.1 APP和驱动 APP和驱动之间的数据访问是不能通过直接访问对方的内存地址来操作的&#xff0c;这里涉及Linux系统中的MMU&#xff08;内存管理单元&#xff09;。在驱动程序中通过这两个函数来获得APP和传给APP数据&#xff1a; copy_to_usercopy_from_user …

电脑自动关机是什么原因?1分钟弄懂!

“好奇怪啊&#xff0c;我在使用电脑时&#xff0c;电脑总是莫名其妙就会自动关机&#xff0c;有时候我文件都来不及保存。这是为什么呢&#xff1f;有什么解决方法吗&#xff1f;” 电脑自动关机是一个令人头疼的问题&#xff0c;可能会对我们的工作和生活带来影响。电脑自动关…

数组相关练习

数组练习 将数组转化成字符串数组拷贝求数组元素的平均值查找数组中指定元素(顺序查找)二分查找冒泡排序数组逆序 将数组转化成字符串 import java.util.Arrays;public class Text1 {public static void main(String[] args) {int[] arr {5, 6, 4, 2};System.out.println(Arr…

电商数据获取:网络爬虫还是付费数据接口?

随着电商行业的迅速发展&#xff0c;对电商数据的需求也越来越大。在获取电商数据时&#xff0c;常常面临一个选择&#xff1a;是自己编写网络爬虫进行数据爬取&#xff0c;还是使用现有的付费数据接口呢&#xff1f;本文将从成本、可靠性、数据质量等多个角度进行分析&#xf…

【果树农药喷洒机器人】Part1:研究现状分析以及技术路线介绍

本专栏介绍&#xff1a;付费专栏&#xff0c;持续更新机器人实战项目&#xff0c;欢迎各位订阅关注。 关注我&#xff0c;带你了解更多关于机器人、嵌入式、人工智能等方面的优质文章&#xff01; 文章目录 一、项目背景二、国内外研究现状2.1 国内研究现状2.2 国外研究现状 三…

C语言内嵌汇编

反编译&#xff08;二进制文件或者so库&#xff09; objdump --help objdump -M intel -j .text -ld -C -S out > out.txt #显示源代码同时显示行号, 代码段反汇编-M intel 英特尔语法-M x86-64-C:将C符号名逆向解析-S 反汇编的同时&#xff0c;将反汇编代码和源代码交替显…

Python自动化测试用例:如何优雅的完成Json格式数据断言

目录 前言 直接使用 优化 封装 小结 进阶 总结 资料获取方法 前言 记录Json断言在工作中的应用进阶。 直接使用 很早以前写过一篇博客&#xff0c;记录当时获取一个多级json中指定key的数据&#xff1a; #! /usr/bin/python # coding:utf-8 """ aut…

3分钟创建新生分班查询二维码,无需技术、0成本

作为教师&#xff0c;我们深知分班是一项极其重要的任务&#xff0c;需要综合考虑学生的性格、能力和兴趣等多个方面&#xff0c;以确保每个学生都能够获得最佳的学习环境和成绩。在本文中&#xff0c;我将分享一种便捷的方式来告知家长有关分班录取情况的方法。 通常&#xf…

2. 软件需求 面向对象分析

目录 1. 软件需求 1.1 需求分类 1.2 需求获取 1.3 需求分析 2. 面向对象分析&#xff08;OOA&#xff09; 2.1 统一建模语言 UML 2.2 用例模型 2.2.1 用例图的元素 2.2.2 识别参与者 2.2.3 合并需求获得用例 2.2.4 细化用例描述 2.3 分析模型 2.3.1 定义概念类 …

深入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…

Redis内网主从节点搭建

Redis内网主从节点搭建 1、文件上传2、服务安装3、服务启动4、配置主从复制 1、文件上传 内网环境手动上传gcc-c、redis.tar文件 2、服务安装 # 解压 unzip gcc-c.zip unzip gcc_rpm.zip tar -zxvf redis-6.2.13.tar.gz# 安装 cd gcc_rpm/ rpm -ivh *.rpm --nodeps --force…

gitlab 503 错误的解决方案

首先使用 sudo gitlab-ctl status 命令查看哪些服务没用启动 sudo gitlab-ctl status 再用 gitlab-rake gitlab:check 命令检查 gitlab。根据发生的错误一步一步纠正。 gitlab-rake gitlab:check 查看日志 tail /var/log/gitlab/gitaly/current删除gitaly.pid rm /var/opt…

Webpack怎么使用?

Webpack 使用 前几篇文章中已经介绍了如何初始化包管理器 package.json 这里不再重复介绍&#xff0c;如有需要请查看 搭建工程化项目。 安装 :::warning 注意 请确保你已经安装了 yarn&#xff0c;如有需要请查看 搭建工程化开发环境。 ::: 通过命令 yarn add webpack web…

三天吃透Java面试八股文(2023最新整理),面试通过率高达90%

什么样的求职者能够获得面试官的青睐&#xff1f;求职者需要准备哪些内容来面对形形色色的面试官&#xff1f;这两份资料是我在几十场面试中被面试官问到的问题&#xff0c;比其他复制粘贴的面试题强一百倍&#xff0c;堪称全网最强&#xff08;我不太喜欢“全网最强”这样的字…

mybatis打印sql语句出现多余的limit关键字

1、事情起因 在项目中使用了PageHelper分页插件&#xff0c;由于需求特殊&#xff0c;需要自定义分页&#xff0c;代码编写完成后&#xff0c;事故出现了。 前端传参: {pageNum: 1,pageSize: 10, }已知表中数据10条&#xff0c;但是每次分页查询只有10条数据&#xff0c;排查…

【C语言】初识C语言+进阶篇导读

✨个人主页&#xff1a; Anmia.&#x1f389;所属专栏&#xff1a; C Language &#x1f383;操作环境&#xff1a; Visual Studio 2019 版本 本篇目的是面向编程新手&#xff0c;没接触过编程的人。以及C进阶的导读。 内容是C语言重要知识点的简单解释&#xff0c;不做详解。给…

uniapp echarts 点击失效

这个问题网上搜了一堆&#xff0c;有的让你降版本&#xff0c;有的让你改源码。。。都不太符合预期&#xff0c;目前我的方法可以用最新的echarts。 这个方法就是由npm安装转为CDN&#xff0c;当然你可能会质疑用CDN这样会不稳定&#xff0c;那如果CDN的地址是本地呢&#xff1…