由于cat 命令虽然可以输入字符,但是功能有限,而且很不方便。所以我们需要更专业的文本编辑工具
我们通常用各种编辑工具来处理文本文件 常用的编辑工具:
VI
VIM
EMACS
VI
VIM
EMACS
VI和VIM的区别
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。vim的这些优势主要体现在以下几个方面:
易用性 vi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台。
语法加亮 vim可以用不同的颜色来加亮你的代码。
可视化操作(ESC+V) 就是说vim不仅可以在终端运行,也可以运行于x window、mac os、windows。
对vi的完全兼容 某些情况下,你可以把vim当成vi来使用
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。vim的这些优势主要体现在以下几个方面:
易用性 vi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台。
语法加亮 vim可以用不同的颜色来加亮你的代码。
可视化操作(ESC+V) 就是说vim不仅可以在终端运行,也可以运行于x window、mac os、windows。
对vi的完全兼容 某些情况下,你可以把vim当成vi来使用
由于VI和VIM的使用方法基本都一样,所以我们就直接用RHEL带的VIM来讲解,会了VIM,VI也基本没问题了
VI
作为一个编辑器,vim被广泛地运用在各种Unix操作系统上。
Vim是Linux中的标准文本编辑器。
在Red Hat Linux上,一般采用的“可视编辑器 / visual editor” 是vim(vi improved)
VI
作为一个编辑器,vim被广泛地运用在各种Unix操作系统上。
Vim是Linux中的标准文本编辑器。
在Red Hat Linux上,一般采用的“可视编辑器 / visual editor” 是vim(vi improved)
用VIM打开文件
vim 文件名
如果文件已存在,则此文件被打开且显示文件内容
如果文件不存在,则vim在第一次存盘时自动建立在硬盘上
如果文件已存在,则此文件被打开且显示文件内容
如果文件不存在,则vim在第一次存盘时自动建立在硬盘上
第一个0,代表第几行;第二个0,代表第几页
逗号后面的可以代表这行第几个字符,例:第四行第五个字符
字符28这个问题,有兴趣的自己下去研究下。 我也不是很清楚
最后的9% 代表当前显示到总内容的百分率
由于刚才我们建立的文件是不存在的,所以属于第二种情况
现在就是重点了
vim提供三种模式
命令模式:控制光标移动,删除字符,段落复制(按ESC)
编辑模式/插入模式:新增文字及修改文字
末行模式:保存文件,离开vi,以及其他设置
命令模式:控制光标移动,删除字符,段落复制(按ESC)
编辑模式/插入模式:新增文字及修改文字
末行模式:保存文件,离开vi,以及其他设置
如果提示新文件,或者什么都没有就代表是命令模式
命令模式
在编辑模式下按ESC键可进入到命令模式
命令 说明
h 将光标向左移动一格
l 将光标向右移动一格
j 将光标向下移动一格
k 将光标向上移动一格
0 数字0,将光标移动到该行的行首
$ 将光标移动到该行的行末
H 将光标移动到该屏幕的顶端
M 将光标移动到该屏幕的中间
L 将光标移动到该屏幕的底端
gg 将光标移动到文章的首行
G 将光标移动到文章的尾行
w或W 将光标移动到下一单词
在编辑模式下按ESC键可进入到命令模式
命令 说明
h 将光标向左移动一格
l 将光标向右移动一格
j 将光标向下移动一格
k 将光标向上移动一格
0 数字0,将光标移动到该行的行首
$ 将光标移动到该行的行末
H 将光标移动到该屏幕的顶端
M 将光标移动到该屏幕的中间
L 将光标移动到该屏幕的底端
gg 将光标移动到文章的首行
G 将光标移动到文章的尾行
w或W 将光标移动到下一单词
命令模式,删除与块操作
在命令模式下可以直接删除字符
在命令模式下键入v则进入块操作:
1、移动光标以选定操作块
2、c 剪切选定块 或 y 复制选定块
3、p 将选定内容贴在光标所在位置右手边
在命令模式下可以直接删除字符
在命令模式下键入v则进入块操作:
1、移动光标以选定操作块
2、c 剪切选定块 或 y 复制选定块
3、p 将选定内容贴在光标所在位置右手边
在vi中删除
x/<del>:删除一个字符
nx:删除下n个字符
dd:删除当前行
dw:删至词尾
ndw:删除后n个词
d$:删至行尾
nd$:删除后n行
x/<del>:删除一个字符
nx:删除下n个字符
dd:删除当前行
dw:删至词尾
ndw:删除后n个词
d$:删至行尾
nd$:删除后n行
在vi中剪贴
yy:选定光标所在行复制
yw:选定光标所在词复制
nyw:选定光标所在位置到之后n个单词复制
y$:选定光标所在位置到行尾的部分复制
p:贴在光标所在位置之右
P:贴在光标所在位置之左
yy:选定光标所在行复制
yw:选定光标所在词复制
nyw:选定光标所在位置到之后n个单词复制
y$:选定光标所在位置到行尾的部分复制
p:贴在光标所在位置之右
P:贴在光标所在位置之左
命令模式,取消操作
u:取消上一个更动
U:取消一行内的所有更动
:e! :放弃所有更动,重新编辑
u:取消上一个更动
U:取消一行内的所有更动
:e! :放弃所有更动,重新编辑
当我们想要自己给文件输入内容使用什么模式?
编辑模式/插入模式
恩,当我们进入的时候是属于命令模式。我们用i 进入编辑模式,你们可以在文件的左下角看到当前是什么模式
编辑模式/插入模式
恩,当我们进入的时候是属于命令模式。我们用i 进入编辑模式,你们可以在文件的左下角看到当前是什么模式
这样就进入了编辑模式,现在大家可以随意编辑,除了ESC键有特殊意义,其他键在此模式下都没有特殊意义
现在大家随意输入一些字符,44换行,删除。
换行可以直接回车,删除直接用退格键
现在我们用ESC退出编辑模式,退出以后,回到命令模式,左下角的插入标签消失.
VIM编辑模式
i光标当前处插入
I光标当前行首插入
a光标之后插入
A光标所在行的行尾插入
o光标所在行之后新起一行插入
O光标所在行之前新起一行插入
i光标当前处插入
I光标当前行首插入
a光标之后插入
A光标所在行的行尾插入
o光标所在行之后新起一行插入
O光标所在行之前新起一行插入
末行模式在命令模式下输入“:”进入末行模式
:w [文件名] 保存当前文件
:q 如果未对文件做改动则退出
:wq :x 保存当前文件并退出
:q! 放弃存储并退出
:e 文件名 打开另一文件并开始编辑
:r 文件名 在当前光标插入文件内容
:r! 命令在当前光标插入命令执行结果
:w [文件名] 保存当前文件
:q 如果未对文件做改动则退出
:wq :x 保存当前文件并退出
:q! 放弃存储并退出
:e 文件名 打开另一文件并开始编辑
:r 文件名 在当前光标插入文件内容
:r! 命令在当前光标插入命令执行结果
进入末行模式后,想退出末行模式,是用退格符号把:删除或按ESC就可以
保存退出出我已经说过,使用 :wq
必须是先w 保存,然后才q退出,不能反了
保存退出出我已经说过,使用 :wq
必须是先w 保存,然后才q退出,不能反了
记住三种模式的关系:
编辑模式仅可以到命令模式
末行模式也仅可以切换到命令模式
而命令模式既可以切换到编辑模式,也可以切换到末行模式
编辑模式仅可以到命令模式
末行模式也仅可以切换到命令模式
而命令模式既可以切换到编辑模式,也可以切换到末行模式
大家保存退出
然后再用vim编辑刚才的文件test
刚进入,左下角就有这个文件的基本统计
test是文件名字,4L是用了4行,19c 是19个字符。空格和空行都算在内
test是文件名字,4L是用了4行,19c 是19个字符。空格和空行都算在内
现在请大家在自己的文件末尾加入这么几行,格式要对哈
123123123
098098098
111111111
方法还是先用刚才提到的 i o a 进入编辑模式,然后输入这些字符,输入完成以后,我们用ESC切换到命令模式
123123123
098098098
111111111
方法还是先用刚才提到的 i o a 进入编辑模式,然后输入这些字符,输入完成以后,我们用ESC切换到命令模式
然后把光标移动到倒数第2行,然后把光标移动到倒数第2行的末尾,然后大家使用x来删除这几个字符.
删除以后,使用u还原刚才我们删除的字符
还原以后,请在44大写的X键和小写的x功能有什么区别?
小写x,是删除光标所在的字符
大写X,是删除光标前一个字符。
u:取消上一个更动
U:取消一行内的所有更动
:e! :放弃所有更动,重新编辑
小写x,是删除光标所在的字符
大写X,是删除光标前一个字符。
u:取消上一个更动
U:取消一行内的所有更动
:e! :放弃所有更动,重新编辑
删除后,在用u恢复,删除和恢复大家都没问题了吧?
下面我们讲拷贝。yy 复制光标所在行,然后使用p来粘贴.
把现在所有的内容在复制一份,粘贴在最下面
命令模式下键入v则进入块操作,移动光标以选定操作块.
命令模式下键入v则进入块操作,移动光标以选定操作块.
c 剪切选定块或y 复制选定块,按了y以后,下面会提示你复制了多少行。
而且就退出了块操作,你直接把光标移动大最下面,然后按P就可以粘贴了
这样就完成了块的复制和粘贴。
还可以使用 c剪切,大家44,好了。下面大家保存退出这个文件
下面大家把 man ls 文件导入到file中
然后vim这个文件:vim file
看看我们文件是不是一样的。 239行,9537个字符。
下面我们怎么直接看最后一页文件呢?
在命令模式输入G,已经在底端了。
然后我们怎么切换到第一行呢?
可以使用两个命令:gg或者1G
下面再教大家一个显示行号的命令:set nu
如果要取消行号,使用:set nonu
我们还是把行号打开吧,下面我们要跳到53行,怎么操作?53G
如果是66行,就是66G
现在我们在66行,那么如果到88行,我们可以输入88G,输入22按回车也可以到88行。
在命令模式下输入 “/” “?”进入末行查询模式
/ 向下查询
/ 向下查询
VIM东西多,我也只讲了点常用的,如果你们把这些用熟了,可以去扩展其他命令,VIM就学到这,下面讲网络配置。
你们先总结下笔记,等下我们写配置文件还是要用到VIM,写配置文件和命令配置都要涉及到。
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。vim的这些优势主要体现在以下几个方面:
易用性
vi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台。
语法加亮
vim可以用不同的颜色来加亮你的代码。
可视化操作(ESC+V)
就是说vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows。
对vi的完全兼容
某些情况下,你可以把vim当成vi来使用。vim支持同时在一屏幕编辑两个文件,也就是两个文件同时显示在一个屏幕,可以可视化交互操作。
####################################################################################################
易用性
vi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台。
语法加亮
vim可以用不同的颜色来加亮你的代码。
可视化操作(ESC+V)
就是说vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows。
对vi的完全兼容
某些情况下,你可以把vim当成vi来使用。vim支持同时在一屏幕编辑两个文件,也就是两个文件同时显示在一个屏幕,可以可视化交互操作。
网卡配置
网卡设备名字:eth0,eth1,…
eth0 代表第一块网卡
eth0 代表第一块网卡
配置命令:
system-config-network
system-config-network-tui
system-config-network-gui
上面三个命令都可以配置网卡,第一个要求有图形界面的才能。
system-config-network system-config-network
system-config-network-tui
system-config-network-gui
上面三个命令都可以配置网卡,第一个要求有图形界面的才能。
system-config-network-tui
第二个是很好用的工具,我配置东西都是用命令和vim.
进入这个界面,选择你要配置的网卡。我只有一个,就选他吧,直接回车
这个大家没问题吧,自己修改下OK后点OK就出去了。
system-config-network-gui
最后一个命令也是进入图形界面的,这个大家自己看就行了
下面就是重点了。修改配置文件来完成网卡配置
网卡设备配置结果存放在:/etc/sysconfig/network-.s/ifcfg-ethX
大家记住这个路径
这就是网卡的配置文件
第2行 设备名称
第3行 广播地址
第4行 硬件地址也就是MAC地址
第5行 就是我们所说的IP地址了
第6行 子网掩码
第7行 网络号
第8行 启动时激活
第9行 网关地址
第10行 网卡类型
网络号和广播地址,学计算机的应该都知道吧?
网卡设备配置结果存放在:/etc/sysconfig/network-.s/ifcfg-ethX
大家记住这个路径
这就是网卡的配置文件
第2行 设备名称
第3行 广播地址
第4行 硬件地址也就是MAC地址
第5行 就是我们所说的IP地址了
第6行 子网掩码
第7行 网络号
第8行 启动时激活
第9行 网关地址
第10行 网卡类型
网络号和广播地址,学计算机的应该都知道吧?
下面可以把IPADDR 改成和你们自己的WINDOWS一个网段。我这里测试改成192.168.0.188,然后保存退出。
使用这个命令让你的新的网络配置生效:service network restart
现在你ping 你WINDOWS的机器,可以使用 ctrl+c 中断输出
这样ip地址的配置就算完成了,最后就会显示总计。
如果有inet addr 的话,那就ping自己看能不能通。如果没有inet addr ,那证明你的配置没有成功,有ip,但是不能ping 通其他主机的IP地址话就证明的的网络不能到达,或者WINDOWS防火墙不允许ICMP包通过。
禁用某一个网卡 ifdown ethX
又ping通了哈!
网络的其他配置
/etc/sysconfig/network 文件
该文件用来指定服务器上的网络配置信息,下面是一个示例。
NETWORK=yes/no 网络是否被配置;
FORWARD_IPV4=yes/no 是否开启IP转发功能
HOSTNAME=hostname hostname表示服务器的主机名
GATEWAYDEV=gw-dev gw-dw表示网关的设备名,如:etho等
GATEWAY=192.168.0.254 设置网关的IP地址
/etc/sysconfig/network 文件
该文件用来指定服务器上的网络配置信息,下面是一个示例。
NETWORK=yes/no 网络是否被配置;
FORWARD_IPV4=yes/no 是否开启IP转发功能
HOSTNAME=hostname hostname表示服务器的主机名
GATEWAYDEV=gw-dev gw-dw表示网关的设备名,如:etho等
GATEWAY=192.168.0.254 设置网关的IP地址
交互工具
mesg -- 控制终端是否接收讯息
#mesg n/y
参 数:
n 不允许气筒用户将信息直接显示在你的屏幕上。
y 允许气筒用户将信息直接显示在你的屏幕上。
mesg命令设定是否允许其他用户用write命令给自己发送信息。如果允许别人给自己发送信息,输入命令:
# mesg y
否则,输入:
# mesg n
对于终极用户,系统的默认值为 n;而对于一般用户系统的默认值为y。
如果mesg后不带所有参数,则显示当前的状态是y还是n,如:
$ mesg
is y
或:
# mesg
is n
mesg -- 控制终端是否接收讯息
#mesg n/y
参 数:
n 不允许气筒用户将信息直接显示在你的屏幕上。
y 允许气筒用户将信息直接显示在你的屏幕上。
mesg命令设定是否允许其他用户用write命令给自己发送信息。如果允许别人给自己发送信息,输入命令:
# mesg y
否则,输入:
# mesg n
对于终极用户,系统的默认值为 n;而对于一般用户系统的默认值为y。
如果mesg后不带所有参数,则显示当前的状态是y还是n,如:
$ mesg
is y
或:
# mesg
is n
户能先把要发送的信息写好存入一个文件中,然后输入:wall < myfile
wall命令是对所有在线的用户进行广播的。那么,你一定在想,可否直接两人彼此相互对话。下面的write就是实现这个功能的。
write:命令的功能是向系统中某一个用户发送信息。
该命令的一般格式为:
write user [ttyname]
对应的中文为:
write 用户帐号 [终端名称]
所谓的用户帐号,我想大家都应该知道,就是你登录Linux系统的用户名,(如root或/home目录下的用户名)。但注意,这里要的不是你的帐号,而是对方的帐号。
终端名称,就是系统发配给你的一个终端号,要知道,一台机子同一个用户(如root),能有多个用户在用,能多个人用root用户名登录在远程操作Linux系统,所以不得不给每个人(终端)分配一个号来差别。你能还不知道这个东西是什么,那么输入ps命令吧,一切就明白了。
该命令的一般格式为:
write user [ttyname]
对应的中文为:
write 用户帐号 [终端名称]
所谓的用户帐号,我想大家都应该知道,就是你登录Linux系统的用户名,(如root或/home目录下的用户名)。但注意,这里要的不是你的帐号,而是对方的帐号。
终端名称,就是系统发配给你的一个终端号,要知道,一台机子同一个用户(如root),能有多个用户在用,能多个人用root用户名登录在远程操作Linux系统,所以不得不给每个人(终端)分配一个号来差别。你能还不知道这个东西是什么,那么输入ps命令吧,一切就明白了。
看到了吧,pts/3就是终端名称了,3是号,不同的人(用户)系统自动分配一个号。系统从0研发分配。
例:假设你以root登录机,分配pts/3;另外一人以michael登录为pts/1.另外一人想发送一消息给root用户,则输入:
# write root pts/3
此时系统进入发送信息状态,(root的session即时出现提示:
例:假设你以root登录机,分配pts/3;另外一人以michael登录为pts/1.另外一人想发送一消息给root用户,则输入:
# write root pts/3
此时系统进入发送信息状态,(root的session即时出现提示:
DNS客户端配置
一个系统,要上网,除了有IP以外,还需要DNS和网关,这个大家都知道
图形界面的设置方法就在和IP设置一样,你们找到地方填就行了,我们学习主要以配置文件为主.
文件/etc/resolv.conf配置DNS客户.这个就是DNS的配置文件,大家用VIM把这个文件打开.
文件/etc/resolv.conf配置DNS客户,它包含了主机的域名搜索顺序和DNS服务器的地址,每一行应包含一个关键字和一个或多个的由空格隔开的参数。下面是一个例子文件:
search example.com
nameserver 192.168.0.254
nameserver 192.168.1.254
一个系统,要上网,除了有IP以外,还需要DNS和网关,这个大家都知道
图形界面的设置方法就在和IP设置一样,你们找到地方填就行了,我们学习主要以配置文件为主.
文件/etc/resolv.conf配置DNS客户.这个就是DNS的配置文件,大家用VIM把这个文件打开.
文件/etc/resolv.conf配置DNS客户,它包含了主机的域名搜索顺序和DNS服务器的地址,每一行应包含一个关键字和一个或多个的由空格隔开的参数。下面是一个例子文件:
search example.com
nameserver 192.168.0.254
nameserver 192.168.1.254
Search 它的多个参数指明域名查询顺序。当要查询没有域名的主机,主机将在由search声明的域中分别查找。如果是在局域网中,你有自己的域,就可以设置这项。在WAN上面,域很多,所以也就没必要写了.
nameserver 表明DNS服务器的IP地址。可以有很多行的nameserver,每一个带一个IP地址。在查询时就按nameserver在本文件中的顺序进行,且只有当第一个nameserver没有反应时才查询下面的nameserver,nameserver 就是DNS 服务器的标志,在后面就可以跟DNS服务器的IP,你可以在这个文件里定义多个DNS ,解析顺序是从上至下。
每行只能写一个哈,这个要记住
这种写法就是错误的,而且VIM也会用红色标记出来,说明这个语法有问题
好了,DNS客户端就这样了。
下面就是网关,LINUX网关分全局和局部
network 这个配置文件里设置的网关就是全局的,对所有网卡都有效。要在GATEWAY这指定,添加或修改这行就可以了
这个是网卡配置文件,上周我们是讲过的。请大家打开
好了,下面我们讲讲配置虚拟网卡
配置虚拟网卡有两种方法,一种是临时的,一种是永久的。
配置虚拟网卡有两种方法,一种是临时的,一种是永久的。
这是临时的。只需要虚拟出eth0:1 这个设备,在后面加他的IP地址就可以了
通了
刚才我们配置的虚拟网卡,如果重新启动网络服务,就会消失。
重新启动 service network restart ,可以发现eth0:1没有了。
这样虚拟的网卡就不存在了, 如果需要虚拟网卡一直存在,我们需要给虚拟网卡一个配置文件
大家进入这个目录,我们所有的网络接口设备都在这里了
这是建立虚拟网卡的第一步,建立他的配置文件:cp ifcfg-eth0 ifcfg-eth0:1
修改这个虚拟网卡的配置文件
修改设备名字和配置文件名字一样。然后修改IP,要不和eth0一样,保存退出。
现在还ping不通,我们需要激活这个虚拟网卡:ifup eth0:1
现在我们就可以用其他电脑ping通我们的虚拟网卡了
LINUX的IP要和XP的在一个网段
设置了正确的网关
设置了正确的DNS
你的LINUX应该就可以上网了
设置了正确的网关
设置了正确的DNS
你的LINUX应该就可以上网了
下面我们说说LINUX系统日期的配置,这个以前好象提过,我们今天再讲讲
使用命令的话:date
UTC(国际标准时间)
CST(中国标准时间/美国、澳大利亚*时间/古巴标准时间)
CST Central Standard Time (USA) UT-6:00
CST Central Standard Time (Australia) UT+9:30
CST China Standard Time UT+8:00
CST Cuba Standard Time UT-4:00
date –s 2008/11/17
date -s 13:00
CST(中国标准时间/美国、澳大利亚*时间/古巴标准时间)
CST Central Standard Time (USA) UT-6:00
CST Central Standard Time (Australia) UT+9:30
CST China Standard Time UT+8:00
CST Cuba Standard Time UT-4:00
date –s 2008/11/17
date -s 13:00
######################################################################
下面课程有点难度了,LINUX的进程,与常用进程管理命令
进程简介
大家都知道,系统是通过进程来完成工作的,每一个进程都有一个独立的进程号,系统通过调用进程号来调度操控进程.
系统的原始进程是init ,init的PID总是1
一个进程可以产生另一个进程,除了init以外,所有的进程都有父进程
系统的原始进程是init ,init的PID总是1
一个进程可以产生另一个进程,除了init以外,所有的进程都有父进程
大家可以使用pstree 命令看看系统的进程树型结构,pstree可以用来以树状的方式表现进程的父子关系.
init 是第一级的,Linux系统上所有运行的东西都可以称之为一个进程。每个用户任务、每个系统管理守护进程,都可以称之为进程。Linux用分时管理方法使所有的任务共同分享系统资源.分时,也就是时间片。
进程状态分为:创建态-就绪态-行动态-结束。
然而我们的系统能够多任务的主要原因就是时间片。一个进程,比如说TELNET的进程,一个进程,比如说TELNET的进程,然后TELNET这个进程就进入就绪态,等待时间片。当CPU分给他的时间片的时间到了的话,他就开始运行,进入运行态.当时间片用玩以后,他就进入阻塞态,然后进入就绪态,等下次CPU分配的时间片。然后又进入运行态.当这个程序运行完了以后,就进入结束态。这就是简单的进程状态流程。
linux的进程树是这样的:KERNEL-0号进程-1号进程(INIT)-子进程
现在我们先不说理论了,我们来看进程
查询进程
查询进程的指令:
ps [option]
ps [option]
一般我们使用这几个参数
1,不带参数
2,l 长列表
等下我们来介绍长列表里的含义
3, aux 查看系统所有的进程
下面我们讲这个长列表的含义
ps显示中的STAT,可以为:
R:正在运行。
S:进程睡眠中,通常可以因事件发生而被唤醒。
T:进程已停止。
D:进程睡眠中,除非发生指定事件,否则不会被唤醒。
Z:僵尸进程,例如未能被父进程回收的子进程。通常是一个系统bug或非法操作。
< :高优先级进程。
N:低优先级进程。
R:正在运行。
S:进程睡眠中,通常可以因事件发生而被唤醒。
T:进程已停止。
D:进程睡眠中,除非发生指定事件,否则不会被唤醒。
Z:僵尸进程,例如未能被父进程回收的子进程。通常是一个系统bug或非法操作。
< :高优先级进程。
N:低优先级进程。
好了,大家记忆下,这个很重要
下面我们说说 PRI和NI 的关系
当同时有几个进程处于就绪态,CPU会先运行哪个呢?
这就是我们的PRI 优先级所存在的意义了
有个计算公式大家了解下
P(pri)=P(cpu)/2+P(user)+P(nice)+ZERO
其中我们需要注意的就是 P(nice),应为只有这个值是动态的,其他都是静态的,当nice 的值变了,相当与PRI的值也就变了.
下面我们来看看NICE是否会影响进程的优先及,和怎么设置NICE值
以 TOP命令来实验。TOP命令就是常用的动态系统监视工具
然后用HOT KEY :ctrl + z,把这个命令放后台执行,放后台,这个进程虽然暂停了,但是他还在。
用ps可以查看
在说一下,PRI的值越小,他的优先级越高,同理,由刚才公式,大家应该能想到NICE值越小 PRI优先级也就越高了。
NICE 值的范围 -20 到 19
当NICE为什么的时候,这个进程的优先及相对最高?这个问题很简单耶,-20
我们使用nice -(-NICE或者NICE) 命令,来设置某个命令的优先级别
nice -5 top这个命令就是设置NICE 为5
nice --5 top这个命令就是设置NICE为-5
我们还可以用renice NICE值 PID号,来改变一个进程的优先级
这个NICE值前面就不用加 - 了,大家看看有什么变化
控制进程
Kill
语法:kill [-signal] PID
向进程传送一个特定的讯号
默认为15(终结)
kill -l:列出所有可以由kill传递的讯号
语法:kill [-signal] PID
向进程传送一个特定的讯号
默认为15(终结)
kill -l:列出所有可以由kill传递的讯号
比如关闭TOP的进程
这种就属于进程比较顽强的,直接杀是杀不死。我们就需要加个SIGNAL ,-9 的意思就是强制中断
Kill -9 top
Killall命令杀死同一进程组内的所有进程。其允许指定要终止的进程的名称,而非PID。
比如:killall named
比如:killall named
lsof -i:端口号 能查出使用这个端口的进程
用DNS这个进程吧,FTP的进程不明显,现在有两个进程属于DNS的。我们用killall 来杀死他们
killall 服务名字,就可以杀死和这个服务相关的所有进程.
进程的优先级
进程的优先级,用nice值来表示
nice:以一个不同的nice值来运行指令
nice –(num/-num) command
renice:改变一个运行进程的nice值
renice num/-num pid
nice:以一个不同的nice值来运行指令
nice –(num/-num) command
renice:改变一个运行进程的nice值
renice num/-num pid
前台和后台
默认情况下,一个命令执行后,此指令将独占shell,并拒绝其他输入。我们称之为前台进程。反之,则称为后台进程(在进程的后面加上&符号就可将此命令产生的进程放入后台执行)。
对每一个控制台,都允许多个后台进程。
对前台/后台进程的控制与调度,被称为任务控制。
对每一个控制台,都允许多个后台进程。
对前台/后台进程的控制与调度,被称为任务控制。
如果是前台的进程,我们还可以使用ctrl+c来中断,top进程的事实监视工具,是个前台进程,独占终端。我们要结束这样的进程,就可以使用ctrl+c
ctrl+c 是中断
ctrl+z是放入后台执行
ctrl+z是放入后台执行
我告诉大家一个窍门吧,我们在用VIM 编辑一个配置文件的时候,比如:ifcfg-eth0
这样他就独占终端了,在图形界面下这个都没什么,在开一个终端就行了
在CLI模式下麻烦了,这种情况下就是独占终端了,意思就是这个终端不能在做其他的工作
你想要同时执行其他命令,有两种方法:可以是关闭这个文件或者用 ctrl+FX(FX X指的就是1-6哈)切换到其他终端来执行命令。
但是关闭文件后我们执行了命令要继续编辑这个文件,就需要从新打开这个文件,很麻烦。切换终端就更麻烦了
所以我们就需要使用ctrl+z 把独占终端的程度放后台执行。系统会提示你一个进程放在后台了,并且暂停了
我们可以使用jobs来查看后台有几个进程。
然后使用 #fg 后台进程号,来把这个进程拉回前台 ,默认的是第一个,所以可以不用加进程号
这样,我们就可以接着刚才的文件继续编辑
这个技巧就是一个HOTKEY ,2个命令:
ctrl+z 把独占终端的进程放后台去执行
jobs 查看后台的进程 (自己知道有哪些进程就不用查看)
fg 把后台的拉回前台
一个热键两个命令就可以实现这个技巧
ctrl+z 把独占终端的进程放后台去执行
jobs 查看后台的进程 (自己知道有哪些进程就不用查看)
fg 把后台的拉回前台
一个热键两个命令就可以实现这个技巧
工作
PROC目录
/proc目录是一个虚拟的文件系统,包含了来自正在运行着的核心的信息,这个目录里面的文件是不占用磁盘空间的,他是存放在内存条里滴,也就是包括系统当前的内核,进程。都在这个里面,我们先进入这个目录,看看这个目录里面有什么东西.
这些数字代表什么东西?PID也就是进程号
我们以前不是讲过么,init的进程号是1,这就1号进程的内容了
/proc/kcore 这个文件是当前运行内核的一个镜像
用户可以通过cat /proc/下的文件,来获得系统的信息
这些信息包括系统硬件、网络设置、内存使用,及其他一些东西
这些信息包括系统硬件、网络设置、内存使用,及其他一些东西
/proc下常用的文件给大家介绍下:
/proc/interrupts:IRQ设置
/proc/cpuinfo:CPU信息
这个CPU信息很有意思,我们来看下 ,对硬件有研究的会员应该一眼就能看出门道吧
/proc/meminfo:系统内存使用状况
/proc/ioports:输入输出设置
/proc/dma:DMA设置
/proc/loadavg:系统负载平均值
/proc/uptime:系统运行时间与空闲时间
2个数字的意义,第一个数值代表系统总的启动时间,第二个数值则代表系统空闲的时间,都是用秒来表示的。
/proc/version:Linux核心版本、创建主机、创建时间等
以下是常用的目录:
/proc/scsi:scsi设备信息
/proc/ide:ide设备信息
/proc/sys:核心配置参数
/proc/sys目录下的文件,允许系统管理员更动,这些变动会直接影响当前核心
/proc/sys目录下的文件,允许系统管理员更动,这些变动会直接影响当前核心
/proc/<PID>:进程的信息
这个内容都比较全,但是也不容易懂 ,一般用户查看的时候还是用工具比较好
这个内容都比较全,但是也不容易懂 ,一般用户查看的时候还是用工具比较好
下面我们说说临时禁PING,cd 到sys 当前系统的目录下
里面就是系统的一些状态信息了。我们关注网络方面的,给大家看看这里文件什么样子,要想对这里面的问题动大手术,我能力可能就不够了,还要修炼一下哈。
我们关注IPV4
这些就是IPV4 的一些设置和功能
比较常用的两个:
icmp_echo_ignore_all 禁PING用的
ip_forward 转发数据用的
以后做iptables和代理服务器的时候ip_forward一定要设置为转发状态
icmp_echo_ignore_all 禁PING用的
ip_forward 转发数据用的
以后做iptables和代理服务器的时候ip_forward一定要设置为转发状态
我们用 cat 命令来查看这两个文件的内容
内容是0,感觉有点象注册表。介绍下0和1的意思:
0,代表禁止这个功能,也就是允许ping
1,代表允许这个功能,也就是禁止ping
0,代表禁止这个功能,也就是允许ping
1,代表允许这个功能,也就是禁止ping
我现在用我的XP PING我的LINUX
下面我们让他PING不通,就是把0改成1
现在我们再PING下看看哈,不通了哈
现在已经PING不通了,修改PROC目录的文件是马上生效的。切记
我们在用自己PING自己,连自己PING自己都不行了,但是PING我的XP还是可以的
我们再看看XP能不能使用LINUX的服务,我们用TELNET做实验,是可以的
如果你想取消这个功能可以把刚才的值改成0就行了或者从新启动,因为RAM是随即存储,要想实现永久的禁PING可以去我BLOG查看相关文章
系统日志
系统日志记录着系统运行中的记录信息
在服务或系统发生故障的时候,通过查询系统日志,可以帮助我们诊断。
系统日志可以预警安全问题
系统日志一般都存放在/var/log目录下
在服务或系统发生故障的时候,通过查询系统日志,可以帮助我们诊断。
系统日志可以预警安全问题
系统日志一般都存放在/var/log目录下
常用系统日志:/var/log/messages和/var/log/secure
通常的系统和服方面的信息在这个里都可以找到
通常的系统和服方面的信息在这个里都可以找到
/var/log/messages 日志是核心系统日志文件。
它包含了系统启动时的引导消息,以及系统运行时的其他状态消息。IO 错误、网络错误和其他系统错误都会记录到这个文件中。其他信息,比如某个人的身份切换为root,也在这里列出。如果服务正在运行,比如 DHCP 服务器,您可以在 messages 文件中观察它的活动。通常,/var/log/messages 是您在做故障诊断时首先要查看的文件。
由于系统服务都在里面,所以你直接看这个文件你可能看不懂,应为你不知道这个进程或者服务到底有什么用处
下面我们用tail -f /var/log/messages 这个命令来看日志,加参数-f实时显示后10行的信息
我们来看看我的日志最后是什么?这是我们telnet登录的日志,大家能看懂吗?这个主要靠英语了,和技术性无关
下面我把NFS服务器开启,看这个会出现什么效果
这就是NFS的启动过程,NFS在LINUX下的服务名字就叫NFSD ,也产生了新的进程。还有就是NFSD的启动全过程
下面我看看我的DHCP服务器能否工作
这边日志就出现了关于DHCP的进程,如果启动失败,你也到这里看哪步出了问题了,
我用DHCLIENT 获取个动态地址,这就是DHCP工作原理
大家自己看看吧
像一些特殊的服务他就有专门的日志
/var/log/xferlog,此日志用于记录所有由ftp服务汇报的讯息和报错
/var/log/secure,此日志包含了所有与系统相关的讯息,诸如登录,tcp_wrapper与xinetd服务。
/var/log/wtmp,系统的每一次登录,都会在此日志中添加记录。为了防止有人篡改,该文件为二进制文件。只能用last这一类的指令来读取。
所以不是所有的日志都可以在messages里面查看,具体要看你某个服务器的配置文件而定
/var/log/xferlog,此日志用于记录所有由ftp服务汇报的讯息和报错
/var/log/secure,此日志包含了所有与系统相关的讯息,诸如登录,tcp_wrapper与xinetd服务。
/var/log/wtmp,系统的每一次登录,都会在此日志中添加记录。为了防止有人篡改,该文件为二进制文件。只能用last这一类的指令来读取。
所以不是所有的日志都可以在messages里面查看,具体要看你某个服务器的配置文件而定
/var/log/secure 安全信息
这个就是与系统安全相关的日志都放这里了
telnet 不上去了,谁告诉什么原因?
大家还记的刚才我做了什么操作吗?我用dhclient,我自动获取了一个IP,IP地址变了
刚才我不是演示日志文件的时候,用DHCLIENT获取过IP么?
我们从新启动下网络
这样自动获取的就消失了,变成我自己以前手工配置的了
好了,进入了。
我们再看看安全日志,数下增加了几条日志?是2条哈,1是建立会话,2是登陆成功,就这两条
第二条的意思就是michael这个用户从qg07登陆到 pts/4 这个终端, 时间就是 1月16号 10点05分23秒
离开系统
好象关机是件简单的事情,但是你处理不好的话,你服务器就会瘫痪,好多服务器经常会由于关机方式不正当而造成文件丢失,甚至系统崩溃,所以做为技术员,一定要重视这个细节
重启:
reboot
shutdown -r now
init 6
重启:
reboot
shutdown -r now
init 6
建议使用前两个。第三个不建议使用
关机:
halt
shutdown -h now
poweroff
init 0
关机,系统分以下四个步骤:
1、把RAM中数据寸盘,也就是同步
2、关闭服务
3、卸载目录和分区
4、关闭根进程和关闭电源
1、把RAM中数据寸盘,也就是同步
2、关闭服务
3、卸载目录和分区
4、关闭根进程和关闭电源
你关闭系统,系统会自动卸载 fstab中的分区,除了你自己关电源,系统一般会帮你完成这个动作的,但是也有可能系统的关机程序会出问题,导致没有完成这些步骤。所以我们要做的就是sync 手动同步数据,把RAM的数据手动写到硬盘里去,然后再关机,比较稳当。
sync3次就足够了,用了命令要稍等在关机,写数据有个时间。
运行级别
系统分成7个运行级别,不过有用的是前6个,后面的7是系统保留,为LINUX发展备用的,还没有定义
0 是关闭系统
1 是单用户维护模式
2 是不带NFS的CLI界面模式
3 是功能齐全的CLI模式
4 也是没有定义的
5 是图形界面模式
6 是重新启动模式
1 是单用户维护模式
2 是不带NFS的CLI界面模式
3 是功能齐全的CLI模式
4 也是没有定义的
5 是图形界面模式
6 是重新启动模式
所以 init 0可以关机,就是运行0级,init 6 就是运行6级别,可以重启动
为什么说 init 6 没有reboot启动安全呢?好象是他没有同步数据之类的操作。我们来试试看。
看吧,系统什么都没停下来,还有警告
这样系统很容易出问题,从刚才的警告我们就知道了init 6 是不安全的,在你们自己公司的服务器,千万不要这样弄。容易出事
系统重新启动,先就是挂载的FSTAB里面的分区
你们能看懂这个就知道系统的启动步骤。
###########################################################################################
本文转自redking51CTO博客,原文链接:http://blog.51cto.com/redking/112453,如需转载请自行联系原作者