MAC终端的学习与美化
自从换了笔记本就直接用默认终端了,出过一堆奇奇怪怪的问题和BUG,这里正好打算好好学习和优化下终端,系统的学习下。
1. 终端基础
终端(Terminal) 是一个应用程序,它提供了一个界面,让用户可以与操作系统的命令行进行交互(Shell)。在macOS中,默认的终端应用程序叫做“终端”(Terminal),你可以在应用程序文件夹中的“实用工具”(Utilities)子文件夹中找到它。
Shell 是操作系统的一个组件,它提供了一个用户界面,通过这个界面用户可以输入命令来与操作系统交互。Shell 充当用户和操作系统内核之间的中介,解释用户输入的命令并执行相应的操作。其中zsh
和 bash
是两种不同的 Shell
,它们都有自己的特性和用法:
echo $SHELL # 查看当前shell
- 默认设置:macOS Catalina之前,默认的Shell是bash;macOS Catalina及之后,默认的Shell是zsh。
- 配置文件:bash的配置文件是 .bashrc 或 .bash_profile,而zsh的配置文件是 .zshrc。
1.1 常见命令
zsh 和 bash 这两种shell 的命令 大多与linux相同,大部分命令都是通用的
arch # rch命令用于显示当前主机的硬件架构类型
# 在M系列芯片,可以使用 arch 命令来在 Rosetta 2 翻译层下运行 x86_64 程序 , 。Rosetta 2 是一种翻译层,可以让基于 ARM 的 Mac 运行基于 Intel 的应用程序。
arch -x86_64 python # 在 ARM64 Mac 上运行 x86_64 版本的 python (仅当前程序有效)
textutil -convert txt 文件路径 # 文件转换命令 互相转换 txt, html, rtf, rtfd, doc, docx
touch 1111 # touch命令 除了创建文件之外,还可以修改文件时间
echo "Hello" > hello.txt # echo命令接收字符串”Hello”作为标准输入,把接收到的字符串作为标准输出打印到终端。
cat source.txt > target.txt # 主要用于 > 重定向标准输出到文件(覆盖)
cat< target.txt # 同理,这点也可以用来绕过空格 , < 重定向标准输入到命令
# 可以把 | 理解为一个管道,把左边命令的标准输出作为右边命令的标准输入传递给右边的命令
# wc 命令的作用是分别列出内容种的行数,字数和字符数
cat volcanoes.txt | wc
cat file1.txt | wc | cat > file2.txt # 多个|和>可以组合使用
# grep -R 搜索目录下所有文件,输出包含匹配关键字的文件的文件名和匹配的行,-R代表迭代(recursive)。
# grep -i 允许搜索时大小写不敏感,默认是大小写敏感的。
grep Keyword file.txt # 搜索文件中与表达式(Keyword )匹配的行,并返回结果。
再就是在MAC上一些有趣的命令
# 将桌面的文件全部隐藏 ; 将 false 替换为 true 重新看到桌面的图标
defaults write com.apple.finder CreateDesktop -bool false; killall Finder
# 制造一个隐藏文件夹 ls -a 能看见的
chflags hidden ~/Desktop/Hidden
# 重新让该文件夹显示
chflags nohidden ~/Desktop/Hidden
在 bash 中,配置文件是用于设置和定制用户环境的脚本文件。当你启动一个新的终端会话或登录到系统时,bash 会自动读取和执行这些配置文件中的命令。配置文件可以包含环境变量、别名、函数、命令历史设置、提示符定制等。
# bash的配置文件是 .bashrc 或 .bash_profile
定义别名:例如 alias ll='ls -la'
设置环境变量:例如 export PATH=$PATH:/usr/local/bin
配置命令提示符:例如 PS1='\u@\h:\w\$ '
启用命令历史设置:例如 HISTSIZE=1000
# ~/.bash_logout 在用户退出登录 shell 时执行。可以用于清理工作,例如删除临时文件或记录退出时间。
清理临时文件:例如 rm -rf /tmp/mytempfile
打印退出信息:例如 echo "Goodbye!"
1.2 包管理工具
Homebrew 是 Mac 上管理软件包的最实用工具之一。 目前在使用的时候也需要注意下架构问题(X86或ARM), 其中常用的命令如下:
brew update # 更新
brew search package_name # 查找软件包 package_name
brew info package_name # 查看 package_name 软件包信息
brew install package_name # 安装 package_name
brew uninstall package_name # 卸载 package_name
brew list # 查看已经安装的软件
1.3 终端管理快捷命令
学习参考 https://blog.csdn.net/helunqu2017/article/details/113749611
使用“终端”窗口和标签页
command + N # 新建一个新的窗口
shift + command + D # 水平切分
command + D # 垂直切分
command + F # 查找
Command + W # 关闭当前小窗口
Shift + Command + W # 关闭所有窗口
command + +/- # 字体放大缩小
编辑命令行
Control + A # 将插入点移到行的开头
Control + E # 将插入点移到行的结尾
点按该行三下 # 选择整行文本
按住 Shift-Command 键并连按 URL # 选择 URL
2. 终端美化
主要是使用的终端美化 + zsh的shell美化
2.1 iTerm2
https://iterm2.com/
之前用的,现在不用了,下载在设置进行设置就行了。
2.2 hyper
官网下载 : https://hyper.is/
在安装主题方面非常方案,直接在官网找到主题然后运行命令就可以了
hyper i verminal # 在 hyper 终端运行并重启
如果woman还需个性化设置, 在配置方面使用 hyper.js
这种配置文件的形式进行配置
2.3 oh-my-zsh
官网 : https://ohmyz.sh/
开源代码: https://github.com/ohmyzsh/ohmyzsh/
安装
# 通过 curl 安装 oh-my-zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# 通过 wget 安装 oh-my-zsh
sh -c "$(wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
安装完成后会在用户目录出现一个 .zshrc
文件 和 .oh-my-zsh
的文件夹,.zshrc
是配置环境变量、配置oh-my-zsh
、命令别名的地方。
接下来就是配置你想要的主题, 在 .zshrc
文件中进行设置 , 主题样式网址 https://github.com/ohmyzsh/ohmyzsh/wiki/Themes 这里的 robbyrussell 就是一个默认主题
ZSH_THEME="robbyrussell" # 等号后面就是oh-my-zsh 主题
主题文件在 ~/.oh-my-zsh/themes 目录 , 修改配置后,通过 source ~/.zshrc 或者退出重新登录使配置生效。
配置 oh-my-zsh 插件 : https://github.com/ohmyzsh/ohmyzsh/wiki/Plugins
在 .zshrc
中 进行配置即可
vim ~ /.zshrc
plugins=(
git
extract
autojump
zsh-autosuggestions
zsh-syntax-highlighting
)
source ~/.zshrc # 记得重启