@TOC
计算机中,一个正在执行的程序或命令,被叫做“进程”(process)。
启动之后一只存在、常驻内存的进程,一般被称作“服务”(service)。
windows电脑中的服务:
在这里插入图片描述
这里有几个注意点:
我们整个系统运行的时候可能需要很多后台的服务来支撑,这些服务往往都是在系统一启动的时候就开始了,直到系统关闭的时候才会被终止,所有的这些服务,我们称作系统服务
,而具体执行这些服务的进程,我们往往把他们叫做守护进程(deamon)
.
我们可以发现Linux中的很多服务是以d结尾的,说明当成的进程是守护进程。
在Linux里面系统服务和守护进程可以当成一个东西
service 服务名 start | stop |· restart | status
首先我们查看一下服务:
ls /etc/init.d/服务名
(1)查看网络服务的状态
[root@hadoop100 桌面]#service network status
(2)停止网络服务
[root@hadoop100 桌面]#service network stop
(3)启动网络服务
[root@hadoop100 桌面]#service network start
(4)重启网络服务
[root@hadoop100 桌面]#service network restart
systemctl start | stop | restart | status 服务名
我们还是来查看一下服务:
这回的位置不一样
ls /usr/lib/systemd/system
我们可以明显的感觉到服务的数量变多了
(1)查看防火墙服务的状态
[root@hadoop100 桌面]# systemctl status firewalld
(2)停止防火墙服务
[root@hadoop100 桌面]# systemctl stop firewalld
(3)启动防火墙服务
[root@hadoop100 桌面]# systemctl start firewalld
(4)重启防火墙服务
[root@hadoop100 桌面]# systemctl restart firewalled
chkconfig (功能描述:查看所有服务器自启配置)
chkconfig 服务名 off (功能描述:关掉指定服务的自动启动)
chkconfig 服务名 on (功能描述:开启指定服务的自动启动)
chkconfig 服务名 --list (功能描述:查看服务开机启动状态)
(1)开启/关闭 network(网络)服务的自动启动
[root@hadoop100 桌面]#chkconfig network on
[root@hadoop100 桌面]#chkconfig network off
(2)开启/关闭 network 服务指定级别的自动启动
[root@hadoop100 桌面]#chkconfig --level 指定级别 network on
[root@hadoop100 桌面]#chkconfig --level 指定级别 network of
systemctl list-unit-files (功能描述:查看服务开机启动状态)
systemctl disable service_name (功能描述:关掉指定服务的自动启动)
systemctl enable service_name (功能描述:开启指定服务的自动启动)
例如:
static代表我现在不能确定这个服务是否启动还是不启动,因为当前服务可能与其他服务相关联,他可能依赖于其他服务。
(1)开启/关闭 iptables(防火墙)服务的自动启动
[root@hadoop100 桌面]# systemctl enable firewalld.service
[root@hadoop100 桌面]# systemctl disable firewalld.service
正则表达式是处理字符串的方法,他是==以行为单位==来进行字符串处理的行为,通过一些特殊符号的辅助,可以让使用者轻易的达到搜索/删除/取代某特定字符串的处理程序
正则表达是一种表示方法,工具程序支持这种表示方法,则可以用正则表达式来进行字符串的处理。例如:vi、grep、awk、sed等
用途:分析日志、简单的垃圾邮件过滤、软件(系统)配置等等
正则表达式拥有不同的规范,POSIX规范,Perl规范,Python规范等,Shell中的grep、egrep都使用POSIX规范。POSIX规范包括:
基本正则表达式常用字符:
==POSIX字符==
POSIX字符类是一个形如[:...:]
的特殊元序列(meta sequence)
,他可以用于匹配特定的字符范围。
例如:
[:alnum:]
匹配任意一个字母或数字字符[:alpha:]
匹配任意一个字母字符(包括大小写字母)[:blank:]
空格与制表符(横向和纵向)[:digit:]
匹配任意一个数字字符[:lower:]
匹配小写字母[:upper:]
匹配大写字母[:punct:]
匹配标点符号[:space:]
匹配一个包括换行符、回车等在内的所有空白符[:graph:]
匹配任何一个可以看得见的且可以打印的字符[:xdigit:]
任何一个十六进制数(即:0-9,a-f,A-F)[:cntrl:]
任何一个控制字符(ASCII字符集中的前32个字符)[:print:]
任何一个可以打印的字符接下来我们就来看看几种使用方法:
==搜索指定字符串(以grep命令,搜索regular.txt文件为例)==
grep –n ‘the’ man_db.conf
==含有元字符的搜索 (以regular.txt为例)==
1.grep –n ‘t[ae]st’ regular.txt
2.grep –n ‘[^g]oo’ regular.txt
3.grep -n‘[^a-z]oo’ regular.txt
4.grep –n ‘[^[:lower:]]oo’ regular.txt
5.grep –n ‘[^[:digit:]]’ regular.txt
==指定开始、结尾字符串的搜索 (以grep命令,搜索regular.txt文件为例)==
1.grep –n ‘^the’ regular.txt
2.grep –n ‘^[a-z]’ regular.txt
3.grep -n‘^[[:lower:]]’ regular.txt
4. grep -n ‘^[[:alpha:]]’ regular.txt
5.grep –n‘\.$’ regular.txt
6. grep –n‘^$’ regular.txt
7. grep –v‘^$’ regular.txt | grep –v ‘^#’
==含 有 任 意 、 重 复 字 符 的 字 符 串 搜 索 ( 以 grep 命 令 , 搜 索regular.txt文件为例)==
.
:一定有一个任意字符*
:重复前一个字符,0到多次grep –n‘g..d’ regular.txt
grep –n ‘o*’ regular.txt
grep –n‘oo*’ regular.txt
grep –n ‘g*g’ regular.txt
grep –n ‘g.*g’ regular.txt
==给定字符范围的字符串搜索 (以grep命令,搜索regular.txt文件为例)==
‘{}’能够指定字符个数,但‘{}’在shell中有特殊意义,因此需要使用转移字符‘\’
。
grep –n ‘o\{2\}’ regular.txt
grep –n ‘o\{2,5\}’ regular.txt
总结:
**通配符是bash 操作接口的一个功能
正则表达式是一种字符串处理的表示方式。**
例如:
通配符中,*
代表0~无限多个字符, 而正则中*
标识重复前一个字符多次
通配符中,?
表示任意一个字符, 正则中则用’.’
表示
==grep 仅支持基础正则表达式,如果要使用扩展正则表达式,一般使用egrep
, 或 grep -E
。==
例如:
标准正则:
grep -v'^$’ regular_express.txt l grep -v ‘^#’
用扩展正则表达式替换为:
egrep -v'^$|^#’regular_express.txt
总结:
附:Perl正则
sed工作流程图:
语法规则:
sed [-hnV][-e<script>][-f<script文件>][文本文件]
参数:
script用单引号('')括起来,不过当我们的script里面要使用变量的时候需要双引号("")。
例如:
设置shell变量var的值为evening,用sed命令查找匹配var变量值的行:
在这里插入图片描述
==动作说明==
==sed的匹配范围==:
==应用举例==
以行为单位新增/删除
[root@www ~]# nl passwd | sed '2,5d'
1 root:x:0:0:root:/root:/bin/bash
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
nl passwd | sed '2,5d’
nl passwd | sed '2d'
nl passwd | sed '3,$d’
nl passwd | sed ‘2a hello world’ #第2行后
nl /etc/passwd | sed ‘2i drink tea’ #第2行前
nl /etc/passwd | sed '2a Drink tea or ......\
> drink beer ?’ # 多行添加
以行为单位显示和替换
nl passwd | sed ‘2,5c No 2-5 number’ #替换
nl passwd | sed ‘5,7p No 2-5 number’ #替换
以行为单位搜索并显示
nl /etc/passwd | sed '/root/p’
1 root:x:0:0:root:/root:/bin/bash
2 daemon:x:1:1:daemon:/usr/sbin:/bin/
数据的搜索并删除
nl /etc/passwd | sed '/root/d'
2 daemon:x:1:1:daemon:/usr/sbin:/bin/sh
3 bin:x:2:2:bin:/bin:/bin/sh
数据的搜索并执行命令
nl /etc/passwd | sed -n '/root/{s/bash/blueshell/;p;q}'
1 root:x:0:0:root:/root:/bin/blueshell
数据的搜索并替换
nl /etc/passwd | sed -n ‘s/root/sroot/g'
直接修改内容(危险)
sed –i ‘s/\.$/\!/g’ regular.txt
awk也是管道命令,==sed通常处理一行数据,awk处理一行中的每个字段,默认以空格或tab键分隔==。
使用方法:
awk [option] ‘条件类型1 {动作1} 条件类型2 {动作2}…’ filename
注意:条件类型和动作一定用单引号括起来。
==动作里面的语法类似于C语言==
处理流程:
常用内置变量:
awk,必须外层单引号,内层双引号
内置变量$1 $2 ···都不得添加双引号,否则会识别为文本,尽量别加引号。
逻辑运算字符:
>
、<
、>=
、<=
、==
、!=
awk中的begin、end:
例:
cat /etc/passwd | awk '{FS=":"} $3<10 {print $1 "\t" $3}'
cat /etc/passwd | awk ‘BEGIN {FS=":"} $3<10 {print $1 "\t" $3}'
awk中的IF语句:
if (condition)
{
action-1
action-1
.
.
action-n
}
awk中的for语句:
for (initialisation; condition; increment/decrement)
action
例:
awk 'BEGIN { for (i = 1; i <= 5; ++i) print i }'
awk中的While语句:
while (condition)
action
例如:
awk 'BEGIN {i = 1; while (i < 6) { print i; ++i } }'
break 和 continue语句:
exit
结束脚本程序的执行,该函数接受一个整数作为参数表示 AWK 进程结束状态。 如果没有提供该参数,其默认状态为 0。
$ awk 'BEGIN {
sum = 0; for (i = 0; i < 20; ++i) {
sum += i; if (sum > 50) exit(10); else print "Sum =", sum
}
}'
1、蓝色代表目录
2、白色代表一般性文件,如文本文件、配置文件、源码文件等
3、绿色代表可执行文件
4、黄色代表设备文件
5、红色代表压缩文件
6、红色代表闪烁代表连接文件有问题
7、灰色代表其他文件
8、浅蓝色代表链接文件
Linux的启动分为五个阶段:
init程序的类型:
SysV
: init, CentOS 5之前, 配置文件: /etc/inittab。Upstart
: init,CentOS 6, 配置文件: /etc/inittab, /etc/init/*.conf。Systemd
: systemd, CentOS 7,配置文件: /usr/lib/systemd/system、 /etc/systemd/system。启动步骤:开机之后首先进入到BIOS的自检和启动过程,然后去引导分区里面去获取引导文件和linux内核中的一些内容进行整个系统的初始化,初始化完成之后进入init进程,它是用户级别主动启动的第一个进程,接下来他就会判断当前系统的运行级别,根据运行级别启动对应的系统服务。
我们可以看到Linux系统有七种运行级别,级别越高支持的功能就会越丰富。
级别6是一个重启的级别,与前面无关
NFS指网络文件系统
CentOS7 的运行级别简化为:
multi-user.target 等价于原运行级别 3(多用户有网,无图形界面)
graphical.target 等价于原运行级别 5(多用户有网,有图形界面)
查看当前运行级别:
systemctl get-default
修改当前运行级别
systemctl set-default TARGET.target
(这里 TARGET 取 multi-user 或者 graphical)
我们也可以在命令行使用:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有