编译LFS

成功编译并运行linux from scratch 7.7 system,有必要作下总结。
本次用的编译LFS的环境是:

虚拟机是virtalbox
宿主系统为CentOS 7.0 x86_64 (core版本)
LFS版本为 7.7 system

我用两块硬盘,一块安装宿主系统,另一个作为LFS的编译安装盘,编译成功后,脱离宿主系统那块硬盘,单独引导启动LFS linux的那块硬盘,登录进入LFS linux。

虚拟机上安装好centos后,在虚拟机上加一块硬盘,大小20G左右,分区如下

磁盘驱动器:/dev/sdb
大小:21474836480 字节,21.4 GB
磁头数:255 每磁道扇区数:63 柱面数:2610

linux的sed命令

sed ,全名叫 stream editor,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等

 

使用

基本的执行流程是:按条件搜索,然后执行命令,条件用address来表示,命令用command表示

 sed [-nefr] ‘AddressCommand' file

参数:

-n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。

-e :直接在命令列模式上进行 sed 的动作编辑;

-f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作;

-r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)

-i :直接修改读取的文件内容,而不是输出到终端。

 

Address:

1.startline , endline 起始结束行

     如 1,10 表示1到10行

2,/RegExp/ 正则表达式

     /^root/ 表示以root字符串开头的行

3./pattern1/,/pattern2/,第一次被pattern1匹配到的行开始,到第一次被pattern2匹配到的行结束

     如:/hello/,/china/

4,lineNumber 指定的行

     如:3 表示第三行,$表示最后一行,$-1表示倒数第二行

5,startLine,+N 从startLine开始,向后的N行

     如:10,+5

 

Command:

a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~

          例子:

          在包含了hello的行后面添加一行,内容为newline

         $ sed '/hello/a \# newline’ test.txt  

c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!

    …

linux常用

一,文件权限
chmod u+x test.txt
chmod u-x test.txt
chmod u=rwx test.txt
数字形式
chmod 755 test.txt
4 2 1
r w x
每一位用二进制表示
其中:
4表示二进制100
2表示二进制010
1表示二进制001

建立文件链接
ln
硬链接(与源文件一模一样,指向同一个目录,更链接无法给目录做链接)
ln -s test.txt test2.txt
删除源文件
rm -f test.txt
cat test2.txt
发现依然可以打开

ln 源文件 新建链接名
软链接(相当于给源文件建立快捷方式,软链接可以给目录做链接)
ln -s 源文件 新建链接名
ln -s test.txt test_l
链接建立后,修改源文件的内容
cho “hello world ” > test.txt
cat test_l
文件内容也会跟着改变
删除源文件后,就无法打开链接文件
rm -f test.txt
$ cat test_l
cat: test_l: No such file or directory

所属用户
每一个文件都有一个拥有者,文件拥有者可以改变文件的权限
root用户可以用chown来改变文件的拥有者,可以用chgrp 来更改文件的群组
chown user1 test.txt
chown user1:user1
chgrp user2 test.txt

二.标准输出
ls -l > list.file

错误输出
ls-l 2> err.file
ls-l 2>> err.file

双重输出重定向
find /Users/ -name passwd > stdout.file 2> stderr.file

使用&将输出到同一个文件
find /Users/ -name passwd &> out.file
find /Users/ -name passwd > stdout.file 2>&1

linux管道
使用 | 将前一个过滤器的输出直接送到后一个过滤器的输入,允许多个管道
比如
ls | grep pass
ls -l …

nginx屏蔽某些ip访问

最近发现很多奇怪的访问,比如访问xmlrpc.php文件,查了一下,是一种暴力破解攻击的行为。还有很多访问404的页面,也很可能是一种不正常访问行为。

面对这些行为,首先要做的就是博客密码的密码,尽可能地设置复杂密码,提高破解的难度。

还有一种技术手段,就是屏蔽掉该ip(然并卵,换个ip一样能访问),也能只看到一个屏蔽一个了。

我用是nginx服务器,需要在nginx的目录下(其它目录也可以)创建blockips.conf文件,加入以下代码。

#屏蔽IP
deny 46.148.18.162;
deny 84.168.200.194;
deny 124.115.0.0/24; #24.115.0.1 ~ 124.115.0.255整个网段IP
deny 124.115.4.0/24; #124.115.4.1 ~ 124.115.4.255整个网段IP

修改nginx.conf文件,将blockips.conf 加入到nginx配置中

在http中加入代码

http {
#载入禁止访问的IP配置
include blockips.conf; #处理好相对目录问题

保存后,重启nginx即可,被屏蔽的ip访问时,会跳到

403 Forbidden

页面