Appearance
Course-00 你可能需要的 shell 入门课程
本课程以 MacOS 为例。
0. 安装 iTerm2
bash
# 在命令行窗口中执行
brew install iterm2 --cask# 在命令行窗口中执行
brew install iterm2 --cask1. 准备工作,统一将默认的 zsh 改为 bash
txt
系统首选项 -> 用户和群组 -> 右击用户[高级选项] -> 登录shell改为/bin/bash系统首选项 -> 用户和群组 -> 右击用户[高级选项] -> 登录shell改为/bin/bash2. 改善视觉体验
备份并修改 ~/.bash_profile
- 备份
bash
# 在命令行窗口中执行
cd
cp .bash_profile .bash_profile.bak# 在命令行窗口中执行
cd
cp .bash_profile .bash_profile.bak- 变更命令行提示符:
bash
# 在 .bash_profile 文件中增加
export PS1='\[\033[01;32m\]wbc@mbp\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$ '# 在 .bash_profile 文件中增加
export PS1='\[\033[01;32m\]wbc@mbp\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$ '- 修改 ls 配色方案:
bash
# 在 .bash_profile 文件中增加
export CLICOLOR=1
export LSCOLORS=gxfxcxdxbxegedabagacad
export TERM=xterm-256color# 在 .bash_profile 文件中增加
export CLICOLOR=1
export LSCOLORS=gxfxcxdxbxegedabagacad
export TERM=xterm-256color- 修改后应用
bash
# 在命令行窗口中执行
source .bash_profile# 在命令行窗口中执行
source .bash_profile启用 vim 语法高亮和行号
bash
# 在命令行窗口中执行
vim ~/.vimrc# 在命令行窗口中执行
vim ~/.vimrc输入以下内容(先按 i 进入编辑模式)
txt
syntax on
set number
set rulersyntax on
set number
set ruler配置 iTerm 背景半透明
txt
iTerm2首选项 -> profiles(Default) -> Window -> Window Appearance -> Transparency 按自己喜好调整iTerm2首选项 -> profiles(Default) -> Window -> Window Appearance -> Transparency 按自己喜好调整3. 基本命令
- 基本概念介绍
- 用户目录、工作目录
- 命令行自动补全:Tab+Tab
- 光标定位
- ctrl+A:行首
- ctrl+E: 行尾
- ctrl+U: 清除当前光标之前内容
- ctrl+L: 清屏
- ↑ ↓: 上下光标键可以调出之前执行过的命令
- 文件系统基本操作命令
cd (short for change directory)切换工作目录
bashcd # 在任何目录下可以通过cd命令回到用户主目录 cd .. # 返回上一级目录,整个目录是一棵树 cd Desktop/ # 进入当前目录(假设目前处于用户主目录)的 Desktop 子目录 cd ~/Desktop/ # 在任何目录下可以通过 ~ 符号引用用户主目录,访问用户主目录下的子目录或者任何文件 cd /var # 在任何目录下,可以由 / 开始,指定绝对路径访问目录或者文件cd # 在任何目录下可以通过cd命令回到用户主目录 cd .. # 返回上一级目录,整个目录是一棵树 cd Desktop/ # 进入当前目录(假设目前处于用户主目录)的 Desktop 子目录 cd ~/Desktop/ # 在任何目录下可以通过 ~ 符号引用用户主目录,访问用户主目录下的子目录或者任何文件 cd /var # 在任何目录下,可以由 / 开始,指定绝对路径访问目录或者文件mkdir (short for make directory)创建目录,创建一个文本文件
bashmkdir shell # 创建一个名为 shell 的子目录 cd shell # 进入 shell 子目录 touch 1.txt # 生成一个空文件 1.txt echo abc > 2.txt # 重定向 echo 输出 abc 作为 2.txt 文件的内容 echo 123 >> 2.txt # 对 2.txt 追加内容 cat 2.txt # 打印 2.txt 文件内容 mkdir shell2 # 创建一个名为 shell2 的子目录 rmdir shell2 # 删除 shell2 子目录, short for remove directory rm *.txt # 删除 1.txt 和 2.txt 文件 short for removemkdir shell # 创建一个名为 shell 的子目录 cd shell # 进入 shell 子目录 touch 1.txt # 生成一个空文件 1.txt echo abc > 2.txt # 重定向 echo 输出 abc 作为 2.txt 文件的内容 echo 123 >> 2.txt # 对 2.txt 追加内容 cat 2.txt # 打印 2.txt 文件内容 mkdir shell2 # 创建一个名为 shell2 的子目录 rmdir shell2 # 删除 shell2 子目录, short for remove directory rm *.txt # 删除 1.txt 和 2.txt 文件 short for remove命令管道,将前一个命令的输出作为后一个命令的输入,用
|符号连接起来bashseq 10 # 请自行操作体验 seq 10 |sort # 请自行操作体验 seq 10 |sort -n # 请自行操作体验 # 如何逆序? seq 10 |xargs -n 2 seq 10 |xargs -n 2 | sort -k2 -nseq 10 # 请自行操作体验 seq 10 |sort # 请自行操作体验 seq 10 |sort -n # 请自行操作体验 # 如何逆序? seq 10 |xargs -n 2 seq 10 |xargs -n 2 | sort -k2 -n
4. 如何寻求帮助资源
man 遇到困难,问 man(人)
man (short for manual,手册)查询帮助内容
bashman sort # 找一找逆序的选项是什么man sort # 找一找逆序的选项是什么--help、-h、h命令一般都有帮助选项,或者帮助子命令h
5. vim 介绍
- 命令模式和编辑模式切换:
iEsc - 打开
vimtutor练习前两节
6. 其他常用命令介绍
history, grep, ! :命令历史,关键词过滤,重新执行之前的命令
head, less:显示部分内容
top:查看电脑负载
curl:访问互联网
wget:下载文件
awk/sed:模式化处理文本、正则表达式(零宽断言)
jq:json文本解析
bashwget https://app.im.alacps.com/swagger/v1/swagger.json cat swagger.json| jq 'keys' cat swagger.json| jq '.info'wget https://app.im.alacps.com/swagger/v1/swagger.json cat swagger.json| jq 'keys' cat swagger.json| jq '.info'
7. git 介绍
bash
mkdir project # 建立 project 子目录
cd project # 进入 project 子目录
git init # 初始化版本库
echo HelloWorld > 1.txt
git add . # 对当前目录及其子目录的所有文件添加跟踪
git diff # 查看变更
git commit -am'init' # 提交变更
git status # 查看当前状态
git log # 查看提交日志mkdir project # 建立 project 子目录
cd project # 进入 project 子目录
git init # 初始化版本库
echo HelloWorld > 1.txt
git add . # 对当前目录及其子目录的所有文件添加跟踪
git diff # 查看变更
git commit -am'init' # 提交变更
git status # 查看当前状态
git log # 查看提交日志8. 正则表达式、零宽断言
- TODO:
9. 课后练习
- 完成 vim 自带的教程 vimtutor
- 尝试建立自己的 git 库,并进行 提交、查看变更、回滚、开设分支、推送提交到远程服务器,拉取 等练习
- 了解 正则表达式、尝试使用 零宽断言 匹配