欢迎各位兄弟 发布技术文章
这里的技术是共享的
谷歌 google "马哥 软件资源下载"
在LINUX系统文件类型分类的文章中我们提到了 块设备 和 字符设备文件,那么什么是块设备 字符设备文件呢?他们之间有什么本质上的区别呢?
开机时显示登录之前的信息等会儿系统启动的时候,在终端启动之前就可以看到这几行信息,它是在/etc/issue 里面定义的
开机时显示登录之前的信息等会儿系统启动的时候,在终端启动之前就可以看到这几行信息,
它是在/etc/issue 里面定义的
1,关机和重启
2,终端
3,主机名
4,ip地址(模块的装载和服务的实现
5,functions
6,终端 /etc/issue文件的内容:
7,rc.sysinit:还要挂载额外的文件系统(/etc/fstab中定义的其它的文件系统)
8),设定内核参数
/etc/sysctl.conf 中
sysctl -p 使修改后的/etc/sysctl.conf生效
9,用户
在linux操作系统中当我们想在虚拟终端之间切换时,经常的做法是ctrl+Alt+F1~F6,然而当我们在VMware中安装安装Linux后,想在X Windows与虚拟终端之间切换时,却发现Ctrl+Alt+Fx不起作用,那么我们如何解决这个问题呢?
inode是一个重要概念,是理解Unix/Linux文件系统和硬盘储存的基础。
关于inode的理解,请参考 阮一峰的文章
inode在linux中,代表一个文件的索引节点,其中indoe中存储了文件的一些元信息,如:文件的时间戳,文件的所有者等
上个星期,马哥讲了如何给小linux添加设备模块,并实现登录界面,级别1,开关机等等。通过不断的倒腾这个小Linux来更加深入的理解linux系统。
准备工作:1.您应当知道内核模块的概念,可以去我的文章了解下
启动流程 http://blog.csdn.net/deansrk/article/details/6659421
内核模块 http://blog.csdn.net/deansrk/article/details/6666629
2.您应该了解linux的启动流程与启动级别的概念
##更新:一些内核模块相关命令介绍:
modinfo pcnet32
查看模块中对应的详细信息和“依赖信息”,“路径”等
系统启动流程:
POST-->BIOS(Boot Sequence)-->BootLoader(446个字节)(MBR)(512个字节)-->Kernel(initrd,initramfs)-->init(/etc/inittab,RHEL6:upstart)
upstart(红帽6) (为了兼容依然叫init)
/etc/inittab
/etc/init/*.conf
以红帽5来讲/etc/inittab 这个配置文件
设定默认级别
系统初始化脚本(/etc/rc.d/rc.sysinit)
运行指定级别的服务脚本
/etc/rc.d/init.d/ (ISB 或SysV风格的服务脚本)
/etc/rc.d/rc#.d
rc0.d--rc6.d
修改快捷键 (不带alt)
比如 淘宝旺旺快捷键 ctrl+shift+M
REMOTE_ADDR只能获取访问者本地连接中设置的IP如果访问者使用代理服务器,将不获取代理服务器的IP,而是获取访问者网关的真实IP。如果将这个函数应用到限IP访问的网页中,别人即使通过限IP访问段中的代理服务器,也不能访问该页面。
首先介绍一下shell中包含文件的方法,在C,C++,PHP中都是用include来包含文件,Go和Java使用import来包含(导入)包,而在shell中,很简单,只需要一个点“.”,然后跟着文件路径及文件名,或者使用source关键字也可以,注意文件路径可以使用绝对路径和相对路径。
下面是一个文件包含的例子:three.sh包含one.sh和two.sh
/p 表示 打印 (print) 的意思
sed -n '/SetEnvIf X-Forwarded-for/{/0.0.0.0/!p}' .htaccess (包含SetEnvIf X-Forwarded-for 不包含 0.0.0.0)
两个条件多个条件用大括号(花括号)括起来 要用单引号 双引号可能有错
(例子 # sed -n "/Rewrite/{/Cond/{/HTTP/p}}" .htaccess 文件中既包含Rewrite又包括Cond又包含HTTP)
数字0和127不作为主机的IP地址的开头
Shell中判断字符串包含关系的方法:
1、通过grep来判断:
1
2
str1="abcdefgh"
str2="def"
result=$(echo $str1 | grep "${str2}")
if [[ "$result" != "" ]]
then
echo "包含"
else
echo "不包含"
fi
3
4
5
6
7
8
9
先打印长字符串,然后在长字符串中 grep 查找要搜索的字符串,用变量result记录结果,如果结果不为空,说明str1包含str2。如果结果为空,说明不包含。这个方法充分利用了grep 的特性,最为简洁。
2、字符串运算符
if [[ $str1 =~ $str2 ]]
前言
近期在做一个web应用jsonaz.com,该应用可以将JSON转为PHP数组,或将PHP数组转为JSON。需要在后台对用户提交的PHP代码进行校验,检验用户是否输入了PHP自带的函数,例如:array(1,2,3)是合法的,date(‘Y-m-d’)则是不合法的。因此,需要用正则表达式匹配非array开始的字符串。
正向预查之正向不匹配
先举个例子,加粗代表匹配正则:
不匹配array,(?!a)(?!r)(?!r)(?!a)(?!y),json | array | time
最终采用的正则,适用于PHP函数preg_match:
$pattern = '/^(?!a)(?!r)(?!r)(?!a)(?!y)[A-Za-z_]+\s*\(.*\)$/';
$time = 'time()'; // 匹配
$date = 'date(\'Y-m-d\')'; // 匹配
$array = 'array(1,2,3)'; // 不匹配
---------------------
作者:慕 来
来源:CSDN
sed命令行格式为: sed [-nefri] ‘command’ 输入文本/文件
比如有:
1、参考
https://blog.csdn.net/soaringlee_fighting/article/details/80931295
https://blog.csdn.net/MYsce/article/details/76546480
https://blog.csdn.net/thewindkee/article/details/52785763
2、匹配不包含字符串 用法
方法一:
采用grep命令中的-v参数,可以搜索不包含指定字符的所有行。
e.g:
ls -lR ./OutResult/ | grep -e 'svac2$' -v 'QP' | wc -l