Shawn's Blog

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

0%

0X00 查看网络配置文件

在CentOS中网络是以配置文件的形式存在系统里的,在/etc/sysconfig/network-scripts/目录下,一般情况下网卡的配置文件都在这里了,以ifcfg-就是配置文件了,打开配置文件看一下。下面注释一下关键的配置项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
TYPE=Ethernet	# 网络类型
BOOTPROTO=static # 协议取值,常见的是static和dhcp
IPADDR=10.13.7.33 # 给网卡ip赋值
NETMASK=255.255.255.0 # 给网卡子网掩码赋值
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s8
USERCTL=no # 是否允许非root用户控制
UUID=4c967913-c4c9-4961-ae03-de7865f144d0 # 网卡的唯一标识码
DEVICE=enp0s8 # 设备名
ONBOOT=no # 是否在开机时激活

但是一般不建议直接使用编辑器修改网络配置文件,因为这样容易出现一些语法错误和逻辑错误,所以建议使用命令行来管理配置网络,虽然本质上都是去修改配置文件。但是使用命令行去管理网络,命令都是确保配置没有问题才会写入到文件,所以会更加安全。包括下面介绍的ipnmcli命令,都是通过修改配置文件来完成功能的。

阅读全文 »

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
[root@mail shell]# chmod +x test.sh
[root@mail 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()

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

阅读全文 »