Shawn's Blog

一个伪程序员的伪技术博客

0X00 什么是异常

程序在运行出错的时候就会抛出异常,异常时在正确的代码里发生的,不是代码出现了错误。下面就是一个异常

1
2
3
4
5
6
7
8
9
10
#!/usr/bin/python
#coding=utf-8

num_1 = 10
num_2 = 0
# 很明显这里是用一个数字去除以0
# 小学老师就说过0不能作为被除数
# 那么我们来看Python是如何处理这个问题的
num_3 = num_1 / num_2
print num_3

运行这个程序就会报出下面的错误,错误提示说在hello.py这个文件的第6行,出现了一个错误integer division or modulo by zero也就是说Python解释器发现你试图除以0或者试图用0取模。

1
2
3
4
Traceback (most recent call last):
File "./hello.py", line 6, in <module>
num_3 = num_1 / num_2
ZeroDivisionError: integer division or modulo by zero

这里提示的ZeroDivisionError就是一个异常,我们可以在后面捕获这个异常,然后进行一些处理。如果不捕获这个异常的话,程序运行到这里,异常就会直接抛出到用户界面,中断程序的运行。

阅读全文 »

0X00 安装OpenSSH

一般情况下我们的系统中都是自带SSH服务端和客户端的,万一没有的话就需要我们手动安装这个服务。

yum install -y openssh

然后重启OpenSSH服务

systemctl restart sshd

0X01 两行简单的配置

OpenSSH的配置文件在/etc/ssh/目录下,有两个配置文件,一个是针对服务端的一个是针对客户端的,我们只需要修改针对服务端的sshd_config即可。

配置文件里比较重要的两行是PermitRootLoginPasswordAuthentication

  • PermitRootLogin 当这个值为yes时,才允许root用户使用ssh登陆
  • PasswordAuthentication 当这个值为yes时,允许使用密码登陆,反之则拒绝密码登陆(只能使用密钥)。
1
2
PermitRootLogin yes
PasswordAuthentication yes

这里的配置就允许使用root用户登陆,也允许输入密码登陆

阅读全文 »

0X00 hello,world

从一本The C Programming Language开始,我们就开始了几十年的’hello,world’之路。从那以后,机会所有的教程都从输出一句’hello,world’开始,这次也不例外。

1
2
3
#!/bin/bash

echo "hello,world"

这里的第一行是注释,这个注释是很特殊的,他会告诉系统我们使用哪个解释器来运行下面的代码,这里我们用的是/bin/bash,当然Python的代码就要加上#!/usr/bin/python
第二行就是输出一句’hello,world’。echo就是输出语句。

1
2
3
[[email protected] shell]# chmod +x test.sh
[[email protected] shell]# ./test.sh
hello,world
阅读全文 »

0X00 创建一个类

Python也是一个和C++、Java一样的面向对象编程语言,所以Python里也有类和对象。

1
2
3
4
5
6
7
8
9
class Person:   #这是一个类
def sayHello(self): #这是一个方法
print 'hello,world'

def setName(self, inputName):
self.name = inputName

def getName(self):
return self.getName()

在类中创建的方法使用def关键字定义,每个方法有一个或以上的参数,selft就是实例化的对象自己。需要返回值就return一个,不需要就可以不写return

Python的类和Java的类还是有点区别,Java的类里主要写的是属性和方法,Python里不写属性,因为Java的变量需要定义而Python的变量并不需要定义,最多也就是在前面个各个属性一个变量名并赋初值

0X01 实例化一个对象

类是一个很抽象的概念,可以由类实例化好多个对象出来。Java中我们习惯说成 new一个对象,而Python中并不需要new

1
2
3
4
xiaoming = Person() #实例化了一个类
xiaoming.setName('xiaoming') #调用一个方法
print xiaoming.getName()
xiaoming.sayHello()

此段代码接着上面的类声明

阅读全文 »

0X00 什么是字典

字典,顾名思义就是通过一个条件可以找到相应的值,字典由Key-Value组成。像是下面这样创建一个字典
字典中的数据是没有顺序的,不像列表一样有顺序,在字典中是没有固定顺序的

1
2
3
4
5
6
7
8
9
>>> a = {'name':'xiaoming', 'sex':'F', 'age':22}  #直接创建一个字典
>>> print a
{'age': 22, 'name': 'xiaoming', 'sex': 'F'}
>>> print a['name']
xiaoming

>>> b = dict(name='xiaogang', sex='M', age=23) #通过dict函数创建一个字典
>>> print b['name']
xiaogang

下文说的Key就是键, Value就是值
Key-Value 就是键值对,一个键对应着一个值
Key的值是可以随意改变的,但是Key的类型是固定的不能改变
如果为一个不存在的键赋值,那么会自动添加这个K-V

阅读全文 »