README

介绍

我是有哥, 一个做开发有 10 年+ 的程序员, 非科班出身, 全自学, 现在是一枚集 Php 后端 + Web 前端(Vue/React/Web) + 基础运维 于一身的全栈程序员, 兼带开发团队.
后续打算使用这个工具把语言的基础部分整理下, 首先整理的是 Php, 同时把自己的学习方法做一下记录, 希望对大家的学习以及工作能够有所帮助.
学习不是一蹴而就的事情, 是需要反复的记忆, 练习和提升, 做开发没有捷径, 所谓三天五天精通一门语言是完全的欺骗大家, 同时可能也伤害了大家的自信心(为什么学了 5 天了还没有精通呢)

阅读更多

控制语句

条件语句

跟其它程序设计语言一样,Bash 中的条件语句让我们可以决定一个操作是否被执行。结果取决于一个包在 [[ ]] 里的表达式。
[[ ]]sh 中是 [ ] )包起来的表达式被称作 检测命令基元 。这些表达式帮助我们检测一个条件的结果。这里可以找到有关 bash 中单双中括号区别 的答案。
共有两个不同的条件表达式: ifcase

阅读更多

运算符

算术运算符

下表列出了常用的算术运算符,假定变量 x 为 10,变量 y 为 20:

运算符 说明 举例
+ 加法 expr $x + $y 结果为 30。
- 减法 expr $x - $y 结果为 -10。
* 乘法 expr $x * $y 结果为 200。
/ 除法 expr $y / $x 结果为 2。
% 取余 expr $y % $x 结果为 0。
= 赋值 x=$y 将把变量 y 的值赋给 x。
== 相等。用于比较两个数字,相同则返回 true。 [ $x == $y ] 返回 false。
!= 不相等。用于比较两个数字,不相同则返回 true。 [ $x != $y ] 返回 true。

注意: 条件表达式要放在方括号之间,并且要有空格,例如: [$x==$y]
是错误的,必须写成 [ $x == $y ]
Code

阅读更多

命令

一个简单的shell命令,例如, echo a b c由命令本身后跟参数(由空格分隔)组成。
更复杂的 Shell 命令由以各种方式排列在一起的简单命令组成:在管道中(一个命令的输出成为第二个命令的输入),在循环或条件构造中,或在其他一些分组中。

阅读更多

变量

跟许多程序设计语言一样,你可以在 bash 中创建变量。
Bash 中没有数据类型,bash 中的变量可以保存一个数字、一个字符、一个字符串等等。同时无需提前声明变量,给变量赋值会直接创建变量。

阅读更多

字符串

单引号和双引号

shell 字符串可以用单引号 ' ,也可以用双引号 " ,也可以不用引号。

  • 单引号的特点
    • 单引号里不识别变量
    • 单引号里不能出现单独的单引号(使用转义符也不行),但可成对出现,作为字符串拼接使用。
  • 双引号的特点
    • 双引号里识别变量
    • 双引号里可以出现转义字符

综上,推荐使用双引号。

阅读更多

基本语法

解释器

前面虽然两次提到了 #! ,但是本着重要的事情说三遍的精神,这里再强调一遍:
在 shell 脚本, #! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 解释器。 #! 被称作 shebang(也称为 Hashbang)
#! 决定了脚本可以像一个独立的可执行文件一样执行,而不用在终端之前输入
sh , bash , python , php 等。

阅读更多

简介

什么是 shell

  • Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。
  • Shell 既是一种命令语言,又是一种程序设计语言。
  • Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问 Linux 内核的服务。

Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。

阅读更多

[转] 使用 pyenv 管理 Python 版本

如果遇到 pip 下载比较慢可以查看此文章 : 更换镜像源 , 加速 python 安装

目的 :
1. 使用 pyenv 管理多版本 python
2. 使用 virtualenv 管理多版本下的多环境
原文地址 : https://einverne.github.io/post/2017/04/pyenv.html
pyenv 是 Python 版本管理工具。 pyenv 可以改变全局的 Python 版本,在系统中安装多个版本的 Python, 设置目录级别的 Python 版本,还能创建和管理 virtual python environments 。所有的设置都是用户级别的操作,不需要 sudo 命令。
pyenv 的一个典型使用场景就是,比如一个老项目需要使用 Python 2.x ,而另一个新项目需要 Python 3.x 。而 virtualenv 主要是用来管理相同版本 Python 不同项目的包的依赖不同的问题,就无法解决这个问题,这个时候就需要 pyenv。
pyenv 通过修改系统环境变量来实现不同 Python 版本的切换。而 virtualenv 通过将 Python 包安装到一个目录来作为 Python 包虚拟环境,通过切换目录来实现不同包环境间的切换。
pyenv 实现的精髓之处在于,它并没有使用将不同的 $PATH 植入不同的 shell 这种高耦合的工作方式,而是简单地在 $PATH 的最前面插入了一个垫片路径(shims):~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin。所有对 Python 可执行文件的查找都会首先被这个 shims 路径截获,从而使后方的系统路径失效。

阅读更多