Shawn's Blog

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

0X00 文件

** ‘文件’是进程创建的逻辑单元。 ** —《现代操作系统(原书第三版)》
文件我们再熟悉不过了,电脑磁盘上存的都是文件。在Windows里和Unix系列系统里,表面看上去文件之间还是有一点点小的区别。比如,在Windows里主要还是以文件的后缀名来标识文件具体是什么类型的,图片还是视频;在Unix系列里文件的后缀名就没那么重要,主要后缀名是用来帮助人们识别文件类型的,操作系统并不很关心。
** 真正的文件类型 ** 是文件的本质类型,不是我们常说的exe类型、doc类型、更不是什么图片类型和视频类型。在Windows下有常见的普通文件和目录。没错,目录其实是文件的。在Unix里,还有一些叫字符特殊文件和块特殊文件的。

阅读全文 »

0X00 Linux中的计划任务

我们使用Linux更多的时候是在服务器上,然而我们有的时候就需要让计算机在固定的某个时间做一些事情。比如我们就可能有有如下需求:

  1. 临时有事需要离开电脑,但是一个小时后需要备份某个目录里的文件
  2. 写了个爬虫去抓取某网站的新闻,每隔十分钟就去爬取一次
  3. 周期性的执行某脚本,但放在后台的话退出ssh就会被自动关掉
  4. 其实还有好多这种可能…………

在Linux中有两种常见的任务管理,一个是at也就是在某时做某事,另一个是crontab也就是周期性任务表。使用at可以方便地给Linux设置一个在什么时候做什么事的计划,用crontab可以方便地给Linux设置我要做某事,多久做一次。

阅读全文 »

0X00 ACL是什么

ACL的全称是Access Control List访问控制列表。在Linux中可以给文件设置权限,-rwx-rw-rw这样,但是这里并不能细分,只能分到用户、组、其他用户。如果我想给某个单独的用户设置权限的话是做不到的。所以有了ACL的出现。通过ACL可以给Linux下的文件提供详细的访问控制,比如我们在设置了基本的rwx权限之后,可以通过ACL在细分用户对文件的权限。

阅读全文 »

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

阅读全文 »
0%