计算机教育中缺失的一课,劝学弟学妹们一句,一定要趁早补上,工作后会如有神助!

害,一不小心还是暴露了自己的名字。如果想退出当前 Shell 到默认 Shell 的话,敲 exit 命令就可以了。

02、初用 Shell

在启动台找到“终端”,打开(我用的 Mac),如下图所示。

先从窗口标题说起,重点是 zsh。

2019 年,Apple 发布了新一代 macOS——macOS Catalina,为专业用户带来了一项重大变化,zsh 取代了 bash,成为默认的 Shell。相比 bash,zsh 拥有更强大的功能,比如说更智能的自动补全、更丰富的主题等等。这逼绝对是马车中的跑车,跑车中的飞行车,史称「终极 Shell」。

再说说窗体内容。

第一行内容显示了最近一次的登录时间。有些同学会好奇,“ttys000”是什么鬼?

简单来说,tty 是终端的统称。看过「终于制服了它们」的同学应该知道了,早期的终端是电传字打印机(Teletype / Teletypewriter),英文缩写就是 tty。虽然终端设备已经不再限制于电传打字机了,但是 tty 这个名称还是就这么保留了下来。

“ttys000” 就是 tty 加了一个代号 s000。

第二行内容告诉我们,主机名是 itwanger。可通过「系统偏好设置」→「共享」→「电脑名称」→「编辑」修改主机名。% 后面跟了一个提示符,可以在此输入任意字符,只不过有些可以被 Shell 解析,有些则不能。

03、Oh My Zsh

zsh 本身非常强大,但配置复杂,对普通用来来说体验非常差。直到有一天,有个无聊的家伙开发出了一个能够快速配置 zsh 的项目,叫做「Oh My Zsh」,GitHub 地址如下所示:

https://github.com/ohmyzsh/ohmyzsh

这玩意安装起来极为简单,能够让我们神功速成,有点「五分钟学会 XXX」的味道。

直接在终端里执行 sh -c "$(curl -fsSL 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

cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

由于某些原因,速度可能会比较慢,耐心地等待一会。

安装完成后重新打开一个新的终端,就可以看到彩色的提示符(Oh My Zsh 默认主题的标志)了。

Oh My Zsh 的配置集中在 ~/.zshrc 文件里(~/ 表示根目录),可以通过 vim 打开。

vim ~/.zshrc

可以看到,Oh My Zsh 默认使用的主题是 robbyrussell,可在 ~/.oh-my-zsh/themes 目录下找到更多主题进行切换。

如果你不知道选择哪个主题,可以通过下面的网址进行预览。

https://github.com/ohmyzsh/ohmyzsh/wiki/External-themes

如果你有选择困难症,可以像我一样,配置成随机,每新开一次窗口,Oh My Zsh 就替你选一次。

ZSH_THEME=“random”

现在,就新开一个窗口吧,可以看到主题随机到了 essembeh。

再来说说插件。Oh My Zsh 提供了完善的插件体系,默认有 100 多种,可以在 ~/.oh-my-zsh/plugins 目录下找到这些插件。如果不确定这些插件是干嘛的,可以查看一下插件目录下对应的 README.md 文件。插件的配置同样在 .zshrc 文件里,目前默认的插件只有 git。

到此为止,Oh My Zsh 的安装、配置、插件完成了三位一体,终极 Shell 全面登场。

04、再用 Shell

来执行一个最简单的命令 date,不出意外的话,它将会打印出当前的日期和时间。

然后,光标等待我们输入其他命令,我们可以在执行命令的时候带上参数。

echo hello

echo 命令会将参数 hello 打印出来,Shell 是基于空格分隔命令进行解析的,第一个单词代表可执行的程序,后续的单词作为传递给程序的参数。如果你希望参数里包含空格的话,可以使用单引号或者双引号包裹起来。

echo “hello world”

当我们在 Shell 中执行命令时,实际上是在执行一段 Shell 可以解释执行的简单代码。如果命令不是 Shell 的预知范围之内的话,它会去咨询环境变量 $PATH

可以使用 which 命令来确定某个程序名代表的是哪个具体的程序。也可以绕过 $PATH,直接使用带路径的命令来执行,比如 /bin/date

Shell 中的路径是一组被分割的目录,在 Linux 和 macOS 上使用的 / 分割,在 Windows 上是 \,正因为这样,我们在编程的时候一定要先获取系统的分隔符(Java 是 File.separator 获取的),不然会导致程序在不同的操作系统下无法执行!

如果某个路径以 / 开头,那么它就是一个绝对路径,其他都是相对路径。当前工作目录可以通过 pwd 命令来获取,切换目录通过 cd 命令。. 表示的是当前目录,.. 表示上级目录。

Shell 会实时显示当前的路径信息。可以通过 ls 命令查看当前目录下包含哪些文件,安装了 Oh My Zsh 后,还可以通过 ll(其实是 ls -l 的简写)显示文件或者文件夹的详细信息。

简单来介绍一下文件属性,以后会很有用。

  • d:第 1 位表示文件类型,d 是目录、l 是链接文件、- 是普通文件。

  • rwx:第 2-4 位表示这个文件的所有者拥有的权限,r 是读、w 是写、x 是执行。

  • r-x:第 5-7 位表示和这个文件的所有者所在同一个组的用户具有的权限。

  • r-x:第 8-10 位表示其他用户所具有的权限。

比如:

-rw-r–r-- 1 maweiqing staff 6B 1 12 16:35 hello.txt

表示 hello.txt 是个普通文件,maweiqing 拥有读和写的权限,但没有执行的权限,和 maweiqing 所在的同一个 staff 组的用户拥有只读权限,剩余用户同样。

如果你想要知道命令的参数、输入输出信息,或者是想要了解它们的工作方式,可以试试 man 这个命令。它会接受一个程序名作为参数,然后将它的文档(用户手册)展现出来。

man ls

分享

1、算法大厂——字节跳动面试题

2、2000页互联网Java面试题大全

3、高阶必备,算法学习

要了解它们的工作方式,可以试试 man 这个命令。它会接受一个程序名作为参数,然后将它的文档(用户手册)展现出来。

man ls

分享

1、算法大厂——字节跳动面试题

[外链图片转存中…(img-KAHS3HKC-1714797003719)]

2、2000页互联网Java面试题大全

[外链图片转存中…(img-XcVgUMRb-1714797003719)]

3、高阶必备,算法学习

[外链图片转存中…(img-QTSfi9AI-1714797003720)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值