Shell 资源
Shell脚本编程30分钟入门
Bash 学院(英)
Bash 初学者指南(英)
Bash 编程指南(英)
Regexr — 学习正则表达式(英)
终端的$:表示他是shell的变量
一条命令
echo $COLUMNS X $LINES
会打印出你终端窗口大小
ls 列出当前目录的文件
打开shell在主目录
cd 加路径改变目录
cd …返回父目录
哪些命令会列出 Pictures 目录下的内容??
选择所有正确的选项
ls Pictures
cd Pictures; ls
ls Pictures/…/Pictures
cd ~回到主目录
ls .查看当前目录文件等同于ls
ls ~查看主目录中的文件
为何 shell 命令都非常简短?
要输入的内容更少。
shell命令有选项
ls -l:详细列出文件
*.pdf
列出 *后的以.pdf 结尾的文件
习题 1/2
你可以从 ls -l 中找到哪些信息?要回答该问题,你可以需要调查下;使用你最喜欢的搜索引擎。
列出的每个文件或目录的名称。
文件上次修改日期和时间。
文件的大小(字节)。
如果你想列出所有名称以单词 bear 开头的文件,该如何操作?
==;==让你可以多写一条命令
ls bear*
pwd查看当前目录
*代表全部文件
假设我改变了主意,想要将 epub 文件从 Documents/Books 移回到 Documents。如何操作?我当前的工作目录是我的主目录,Documents 位于该目录中。 请标记每个可行的答案:
mv ‘Documents/Books’/* Documents
cd Documents; mv ‘Books’/*.epub .
cd ‘Documents/Books’; mv * …
顺便提下,在 shell 中引用内容时,请始终使用直引号。如果你输入到终端窗口中,将会获得相关内容。但是,如果从网页或文档中进行复制,一定要小心不是“弯引号”。弯引号在 shell 中不可行。
在 shell 中,单引号和双引号的作用不太一样。如果不确定使用哪种引号,请选择单引号。
.
当前目录
..
父目录
~
主目录
mkdir 加路径创建文件夹
mv 路径或文件 路径
路径文件可以加单引号
cat 文件名
列出全部文件
less 文件名
列出部分文件
删除命令
rm
删除目录
rmdir
rm -i询问是否删除
你有四个文件,名称分别为:
Good File
Bad Name Good File
Bad File
Good Name Bad Face
你想删掉第 3 个和第 4 个文件,并保留第 1 个和第 2 个文件。下面的两个命令可以实现这一操作,请选择:
rm ‘Bad File’ ‘Good Name Bad Face’
rm *
‘Bad F’*
grep 查看是否字符串在文件中行
grep 字符 文件
管道命令|
grep 字符 文件 | less
计数wc 他的-l是行的意思
grep 字符 文件 | wc -l
等同
grep -c 字符 文件
还可以直接查看
curl “URL” | grep 字符
非永久添加环境变量
PATH=$PATH:新目录
shell变量赋值
变量名=‘zifu’
在.bash_profile配置文件中加入PATH=$PATH:新目录即可永久在每次打开shell的时候添加环境变量
有一个我用来构建长而复杂的 $PS1 提示符的工具的屏幕截图。该工具由 Julien Ricard 构建,网址为 http://bashrcgenerator.com by。请试试!
alias 别名=‘shell命令’
在开始使用 Git 之前,你需要配置 Git。在命令行工具中运行以下每行,确保所有选项都已被配置好。
#设置你的 Git 用户名
git config --global user.name “”
#设置你的 Git 邮箱
git config --global user.email “”
#确保 Git 输出内容带有颜色标记
git config --global color.ui auto
#对比显示原始状态
git config --global merge.conflictstyle diff3
git config --list
Git 与代码编辑器
最后一个配置步骤是让 Git 能与你的代码编辑器结合使用。以下是三个最热门的代码编辑器。如果你使用的是其他编辑器,则在 Google 中搜索“修改 Git 默认编辑器为 X 编辑器”(将 X 替换为你的代码编辑器的名称)。
Atom Editor 设置
git config --global core.editor “atom --wait”
Sublime Text 设置
git config --global core.editor “‘C:/Program Files/Sublime Text 2/sublime_text.exe’ -n -w”
VSCode 设置
git config --global core.editor “code --wait”
Git 基础 - 获取 Git 仓库
在对 Git 仓库进行 commit 或执行任何其他操作之前,需要一个实际存在的仓库。要使用 Git 新建一个仓库,我们将使用 git init 命令。
init 子命令是"initialize"(初始化)的简称,这个命令很有用,因为它将进行所有仓库初始设置。稍后我们将了解它的作用。
所需的命令
注意!我们将在这节课使用以下终端命令:
ls - 用来列出文件和目录
mkdir - 用来新建目录
cd - 用来更改目录
rm - 用来删除文件和目录
如果你不知道如何使用它们,请参阅我们的 Linux 命令行基础 课程!
我们还会涉及的一个概念是当前目录,即你的 shell 正在查看的目录。使用 cd 可以更改工作目录,使用 ls(单独使用)会列出工作目录下的文件。如果你忘记 shell 的当前工作目录,可以使用 pwd 命令(表示 print working directory 输出工作目录)输出该目录的名称。
创建课程目录
我们将为本课程新建一个项目。因为我们都是专业人士,因此我们希望我们的项目具有条理性。如果你已经在计算机上有一个放置所有项目的文件夹,则可以继续这么做。我会将所有的工作文件存储在目录 udacity-git-course 下。
如果你想跟着我一起操作:
创建一个目录,叫做 udacity-git-course
在该目录中,创建另一个目录,叫做 new-git-project
使用 cd 命令移到 new-git-project 目录下
如果你和我一样喜欢复制粘贴,则在终端上运行以下命令:- mkdir -p udacity-git-course/new-git-project && cd $_(在运行此命令前,确保使用 cd 命令转到你想将这些文件存储到的位置。例如,如果你想将文件存储到桌面上,则使用 cd 转到桌面,然后再运行该命令。)
一切准备好后,你的终端应该位于 new-git-project 目录中,并看起来如下所示:
位于 new-git-project 目录下的终端应用。
git init
很棒!我们已经准备好,并且可以开始使用 git init 命令了!
这是最简单的命令之一。你只需在终端上运行 git init。就这么多内容,立即试试吧!
终端显示 git init 命令正在运行。该命令会在当前目录下初始化生成一个空的 Git 仓库。
练习题
运行 git init 了吗?如果没有,现在就运行吧,因为这道练习会用到该命令!
运行 git init 之后,应该会出现一段文字:“Initialized empty Git repository in”,后面是一个路径。问题是,提示符有任何改变吗?如果有改变,是什么?
是的,我看到单词 master 了。
git init 命令的作用
运行 git init 命令会初始化 Git 跟踪所有内容会用到的所有必要文件和目录。所有这些文件都存储在叫做 .git(注意开头有个 .,表示在 Mac/Linux 上,它将是一个隐藏目录)的目录下。这个 .git 目录是一个库!Git 会将所有 commit 记录在这里,并跟踪所有内容!
我们来大致了解下 .git 目录下的内容。
警告:请勿直接修改 .git 目录下的任何文件。这是仓库的核心。如果你更改了文件名或文件内容,Git 可能就无法跟踪你保存在仓库中的文件,你可能会丢失很多内容!可以查看这些文件,但是请勿编辑或删除这些文件。
Mac 的 Finder 窗口正在显示“.git”隐藏目录中的内容。
.git 目录内容
我们将查看 .git 目录…对这门课程来说,该目录并不重要,因此不用记住任何内容,你可以在此处深入了解 Git 背后的工作原理。
下面简要概述了 .git 目录下的各项内容:
config 文件 - 存储了所有与项目有关的配置设置。
摘自于 Git Book - 英 | 中文点此处:
Git 会查看 Git 目录下你当前所使用仓库对应的配置文件(.git/config)中的配置值。这些值仅适用于当前仓库。
例如,假设你将 Git 全局配置为使用你的个人电子邮箱。如果你想针对某个项目使用你的工作邮箱,则此项更改会被添加到该文件中。
description 文件 - 此文件仅用于 GitWeb 程序,因此可以忽略
hooks 目录 - 我们会在此处放置客户端或服务器端脚本,以便用来连接到 Git 的不同生命周期事件
info 目录 - 包含全局排除文件
objects 目录 - 此目录将存储我们提交的所有 commit
refs 目录 - 此目录存储了指向 commit 的指针(通常是“分支”和“标签”)
注意,除了 hooks 目录,你应该不会对这里的其他内容有太多的困扰。hooks 目录可以用来连接到 Git 工作流的不同部分或事件,但是在这门课程中,我们不会对此作过多介绍。
深入研究
Git 内部原理 - 底层命令和高层命令 : 英 | 中(进阶内容——请将此网址添加到书签中,并在以后查看)
自定义 Git - Git Hooks - 英 | 中
git init 小结
使用 git init 命令可以在当前目录下创建新的空仓库。
$ git init
运行此命令可以创建隐藏 .git 目录。此 .git 目录是仓库的核心/存储中心。它存储了所有的配置文件和目录,以及所有的 commit。
实用链接
Git 基础 - 获取 Git 仓库 – 中
git init 文档 - 英
git init 教程 - 英