RHCE2.docx
《RHCE2.docx》由会员分享,可在线阅读,更多相关《RHCE2.docx(42页珍藏版)》请在冰豆网上搜索。
RHCE2
RHCE课程-初级部分4、shell及环境变量简介
Kernel
系统内核用于在计算机启动时载入基本内存、管理基本输入输出、管理进程初始化和进程的调度。
Shell
系统的命令解释器,翻译成中文也就叫壳,外壳的意思,就是最表面的,用于操作系统与用户的通信,相当于Dos中的。
RedHatLinux默认的shell是Bash!
Shell与系统及子进程的层次关系
+-------------------------+
|用户进程|
|+----------------------+|
||shell||
||+-------------------+||
|||Kernel|||
|||+-----------------+|||
||||Hardware||||
|||+-----------------+|||
||+-------------------+||
|+------------------------+|
+---------------------------+
真正工作的是硬件。
kernel(内核)就是控制硬件的,但是怎么让内核知道我们想要硬件做什么工作呢?
那就需要shell,在Unix系统中有各种Shell,Linux采用bash为其默认shell。
Bash是GNU计划的一个组件,与Unix上的BourneShell完全兼容。
支持命令行输入、操作历史查询、快捷键、使用变量等功能们都需要X来运行。
想知道你们系统中有哪些shell,可以用这个命令:
cat/etc/shells
这就是我们系统中所有的shell,不过我们一般使用的是第二种,bash
一个用户使用什么shell可以在/etc/passwd中查看
最后那项就是用户使用的shell
nologin是个很特殊的shell,也很重要。
TerminalEmulator用户交互的窗口界面
终端模拟器是用户shell运行的平台,在终端模拟器上用户可以交互的操作系统及运行程序并得到提示和反馈,就像在文本编辑器中一样。
XWindow以C/S模式提供的图形界面接口
在X中操作,你会重新找回Windows的感觉。
当然不只是这样RedHatLinux中图形界面的易用性已经有了显著的提高,并且通过像GTK+和QT这样的开放的开发工具包,你可以创立自己的图形应用程序。
WindowManager提供图形功能
Windowmanager是个可以帮你移动窗口和改变它们大小的程序。
它通常也支持把一个窗口缩成一个图标或任务条。
通常有某种程序执行机构。
用户可以使用windowmanager来做他想做的——任何X应用程序应该可以在任何窗口管理器上工作。
但是你一次只能运行一个WindowManager。
也就是说,你可以切换于任何多个windowmanager,但是同一时刻你只能运行一个。
屏幕上的所有程序都可以被正在运行的windowmanager管理。
DesktopEnvironment桌面环境
GNOME和KDE不是窗口管理器(它们是桌面环境)。
KDE是和一个叫KWM的窗口管理器一起的。
GNOME则没和任何窗口管理器做在一起,你可以使用任何你想用的窗口管理器,虽然有一些是特地为GNOME写的(Enlightenment就是一个)。
但是它Bash是GNU计划的一个组件。
在Linux里有很多的变量,大致可分为3种:
环境变量
内部变量
用户变量
用户可以通过这些变量获得系统、环境的信息
环境变量相当于给系统或用户应用程序设置的一些变量,具体起什么作用这当然和具体的环境变量相关。
比如PATH,是告诉系统,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到由PATH变量定义的目录中去查找.这个PATH和WINDOWS下面作用一样哈
在bash中有很多预定义环境变量
用户可以用set或env查询当前的环境变量
set
env
常用的预定义变量:
HOME:
当前用户的主目录
PATH:
当前用户的可执行文件搜索路径
LANG:
程序应该使用的默认语言
PS1:
行提示符
注意,我们系统中环境变量是很多的,但是我们需要注意的只要这几个,LINUX下面的变量名字基本都是大写字母哈.
可以用echo$变量名字来查看变量
echo$PATH这是可执行程序的搜索路径
echo$LANG当前语系
echo$HOME当前用户主目录
echo$PS1就是我们提示框的变量
用户变量是用户在编写shell过程中,可以在shell程序内任意使用和修改的变量。
(以字母或下划线开头,通常字母是大写母)
赋值:
变量名=变量值
获取变量值${变量名}
例:
VAR=hellorhce;赋值
echo${VAR};显示变量值
例:
VAR=hellorhce;赋值
echo${VAR};显示变量值
使用echo完成简单地输出
echo“helloworld”
VAR=“hello”
echo${VAR}world
也可以使用printf来产生各种格式的输出
printf“hello\nworld\n”
RHCE课程-初级部分4、history命令、BASH、快捷键
在bash中输入history指令可以查询用户的过往操作。
内存中记录的过往指令数根据环境变量中HISTSIZE而定。
(/etc/profile)
history表存储在内存中,在用户logout时会记录入用户主目录下的.bash_history文件中。
在下次login时载入。
预定的记录为1000条,这些都定义在环境变量中。
vim.bash_history
使用!
来调用过往指令:
用光标上下键调出使用过的命令
命令行表达式
命令行输出——“”将一串字符当成一个字符串来对待,如果字符串中包含特殊含义的字符,则转义。
命令行输出——‘’将一串字符当成一个字符串来对待,如果字符串中包含特殊含义的字符,不转义。
执行引用符——``引用命令的执行结果
关于“”‘’``$的意思。
现在我们就再讲下
先说“”吧
大家看上面的输出的结果
总结:
命令行输出——“”
将一串字符当成一个字符串来对待,如果字符串中包含特殊含义的字符,则转义。
命令行输出——‘’
将一串字符当成一个字符串来对待,如果字符串中包含特殊含义的字符,不转义
最后一个$就不用讲了吧
数学运算——$[2*5]
在中括号内的表达式会被数学计算
定制登陆shell
bash在用户登录时从四个文件中读取环境设定:
全局设置文件:
①/etc/profile
②/etc/bashrc
用户设置文件:
③~/.bash_profile
④~/.bashrc\
alias别名
在shell下键入alias可以查询当前alias列表。
用户可以alias来为一条命令取一个简单的别名
用户也可以用unalias来取消一条别名记录。
alias记录在shell中总是先行。
这是你当前用户的命令别名
这就是别名的作用
我们可以把很长的命令或者参数,用一个别名来表示,方便我们输入
创建别名的方法:
这种方法是临时的,如果使你的更改永久生效,需要把他写入一个配置文件.bashrc
按照上面的格式写入就行了。
常用快捷键
Ctrl+d:
输入已结束。
在shell下相当于一个exit
Ctrl+c:
键盘中断请求。
Ctrl+s&Ctrl+q:
暂停/恢复屏幕输出
Ctrl+l:
清屏,相当于clear。
Tab:
自动补完命令行与文件名
Tab键双击:
可以列出所有可能匹配的选择
Ctrl+u:
删除当前光标前的所有字符
ctrl+k:
删除当前光标后的所有字符
RHCE课程-初级部分5、常用文本处理命令,输入输出重定向,管道
今天主要以命令为主,虽然普通的命令没技术含量,但是有技术含量的都是以普通的命令为基础
Cat文件名
cat是concatenate的缩写,所以它的作用其实是连接文件。
但默认情况下它会将连接文件的结果送到标准输出。
所以我们常用来显示文件内容。
类似于dos中的type。
我们使用cat的时候,只能看见最后,开始的部分看不见。
所以我们要使用more
More文件名
当一个文件的内容超过一屏后,我们可以用more这个指令来逐屏察看文件内容。
使用方法,more文件名,然后使用空格键,他会一页一页的往下翻,使用回车键,他会一行一行的往下翻.按b可以往上翻页.
Less文件名
less在more的基础上,更可以逐行察看,前后翻页。
他相对与more来说,他的优势是可以一行一行的看。
而more是一页一页的查看,个人感觉两个命令功能差不多。
还有less这个命令都可以输入/关键字进行搜索
下面我们学习最常用的文件处理命令
cpmvrm这些上节课讲过。
wc
wc用来统计一个文件的行数(-l)、词数(-w)、字符数(-c)并送到标准输出。
做统计的时候很方便
grep
grep用来从一个文件中找出匹配指定关键字的那一行,并送到标准输出,结合管道,我们通常用它来过滤搜索结果.
例如:
通常可以使用这种方法,查找PASSWD文件里和ROOT有关系的行。
head
显示文件开头部分内容,默认显示10行参数--lines或者–n指明显示行数
可以用head-20文件名这样就可以显示前20行
tail
tail显示文件结尾部分内容,参数-f显示文件的即时更新,用于监视日志文件
tail-f命令一般用来监控日志文件
sort
sort用来按各种需要重新排列文本,一般运用在一个管道之后。
例如:
[Lonny@stationXXLonny]$ls-a|grepbash|sort
.bash_history
.bash_logout
.bash_profile
.bashrc
默认情况下sort按照字母顺序排列文本。
-n按照数字排序
-r反向排序
-u将重复的行去除
diff-报告文本差异内容
cut-显示文件中的某一列
diff
diff用于比较两个文件之间的区别,并送到标准输出。
输出时先报告两个文件的哪一行不同。
该命令告诉用户,为了使两个文件file1和file2一致,需要修改它们的哪些行。
#difffile1file2
字母(a、d和c)之前的行号(n1,n2)是针对file1的,其后面的行号(n3,n4)是针对file2的。
字母a、d和c分别表示附加、删除和修改操作。
cut
cut可以根据一个指定的标记(默认是tab)来为文本划分列,然后将此列显示,例如:
[root@stationXXroot]$cut–f1–d:
/etc/passwd
-d表示以什么分隔符,-f显示第几列
把PASSWD的第一列显示出来,导入到file文件里,自己操作一下,然后看下这个文件内容
这个命令在以后的服务器架设中很有用处的,一定要记住,-d后面跟的是分割符号-f后面是第几行然后重定向
vim/etc/passwd
我们查看passwd文件,看他的规律,都是用:
分分隔的,所以-d后面是:
然后用户是第一列,所以我们用-f1,passwd最后一个标签是该用户默认使用的shell.
那么我要把最后一列复制出来,放到file2中。
怎么做?
cut-f7-d:
/etc/passwd>file2
输入、输出、重定向
输入:
过滤器的数据来源
标准输入stdin(0):
默认是键盘
输出:
过滤器的数据去向
标准输出stdout
(1):
默认是终端屏幕
错误输出:
报错讯息与标准输出走不同的I/O通道
标准错误输出stderr
(2):
默认是终端屏幕
重定向:
标准输入、输出与错误输出,都可以用特定符号改变数据来源或去向
使用“<”来重定向输入源
大多数工具都会以其后的文件名为输入源
有一些过滤器一定需要添加>以明确输入源
使用>>让系统将一次键盘的全部输入,先送入虚拟的‘当前文档’,然后一次性输入
需要一对字母、符号或字符串作为起始终结标识符
可以选择任意符号作为起始终结标识符
使用>改变数据输出目标
范例:
ls–l>listfile
将当前目录下的文件以长模式显示,然后写入listfile文件
使用>进行输出重定向,文件的原内容会被覆盖
使用>>可以将输出追加入文件
ll/>>listfile
错误重定向
系统错误与标准输出使用的I/O管道不同
默认情况下,系统报错会显示到终端屏幕上
使用2>将报错讯息重定向入一个文件
ls/luoli2>/dev/null
使用2>>将报错讯息追加入一个文件
使用|将前一个过滤器的输出直接送入后一个过滤器的输入
允许多重管道
注意管道前过滤器的输出与管道后过滤器的输入数据类型要匹配
ls–l|more
分屏显示当前目录下的文件
catfile1>file2
拷贝file1到file2
catfile*>file
将数个小文件合并成一个文件
RHCE课程-初级部分6、编辑工具VIM,网络配置,进程优先,日志文件简介
一、Vim三种模式:
1、Vim和Vi:
两者都是多模式编辑器;
Vim是Vi升级版,再兼容Vi所有指令的同时增加了一些新功能支持;
特点:
∙语法加亮:
使用不同的颜色加亮代码;
∙多级撤销:
Vi只能撤销一次操作,Vim可以无限次撤销;
∙可视化操作:
可以在终端模式运行,也可以在Xwindows模式运行;
2、Vim的三种模式:
∙命令模式(Command):
默认模式,只能输入指令,不能输入编辑文字;
∙插入模式(Insert):
按i就会进入入插入模式,此时才可以输入文字,编辑文章,按Esc回到命令模式。
并且状态列-INSERT-或者-插入-字样。
∙EX模式:
有一個冒号在那,等待输入命令;在命令模式下:
键可以進入Ex模式。
二、Vim插入模式和Ex模式
1、打开文件:
vim文件名
如果文件存在则该文件会被打开;否则在第一保存时文件会被创建;
插入模式,编辑文件:
∙按A在行尾后补;
∙按a在当前处的下一个位置;
∙按o在当前行的下面插入一个新行;
∙按O在当前行的上面插入一个新行;
2、EX模式,保存、退出Vim:
按:
键可以进入Ex,屏幕状态行上有一个:
标志;
∙按w保存文件;
∙按wq保存退出;
∙按q!
不保存退出;
三、使用命令模式
1、光标移动:
∙按字符移动:
方向键及h、j、k、l按一下移动一个字符;
∙数字,方向移动:
向这个方向移动1个字数倍个;
∙按单词移动:
w、b
∙按句子移动:
)、(
∙按段落移动:
}、{
∙跳到第几行:
XG,X是行数
∙Ctrl-f向前、向下翻页
∙Ctrl-b向后、向上翻页
∙G移至文尾;gg移至文首
2、删除内容:
∙x刪除光标所在处字符,在中文指一個中文字。
∙X刪除光标前的字符。
Backspace鍵,只能在插入模式。
∙dd刪除一整行(deleteline),Xdd:
删除X行。
∙dw刪除一個单词(deleteword)。
∙dG刪至文档结尾。
∙d1G刪至文档头。
∙d0刪至行首。
∙D刪至行尾。
3、剪切、粘贴:
∙cc剪切整行,当前行内容剪切走;
∙cw剪切一个单词;
∙C剪切至行尾;
∙c0剪切至行首;
∙shift-~光标所在处的字符大小写互换;
∙p:
粘贴,把前一个剪切的内容粘贴到当前位置;
4、复制:
∙yy复制所光标在行整行。
Xyy可以复制X行
∙yw复制一个单词。
∙yG复制到文档结尾。
∙y1G复制到文档首。
∙y0复制至行首不含光标所在处的字符。
∙Y复制至行尾,含光标所在处的字符。
5、撤销、重做:
∙u:
撤销,vim可以无限制撤销;
∙Ctrl-r:
重做上一个被撤销的改变;
7、搜索查找:
∙/字符:
查找指定字符
∙n:
向下查找
∙N:
向上查找
8、替换:
∙:
x,ys/被替换目标/替换内容/g
x,y指定范围,x,y指行行号;
%s/被替换目标/替换内容/g
%表示全文
g替换所有目标,默认一行如果有多个被替换目标则只替换1个,加上g替换所有;
:
%s/安装/anzhuang/g文中所有“安装”替换成“anzhuang”
四、可视模式
1、可视模式:
可以突出显示字符、行或者大块文本,并对他们进行操作;
2、进入可视模式:
∙按v:
进入面向字符的可视模式;
∙按V:
进入面向行的可视模式;
∙Ctrl-v:
进入面向块的可视模式;
3、可视模式下的文本的编辑:
∙c:
剪切选中文本,和p组合可实现移动文本操作;
∙d:
删除选中文本;
∙y:
复制选中文本;
五、Vim多窗口模式:
1、Vim同时打开多个文件:
vim–o文件1文件2
2、分屏查看文件:
∙Ctrl-w,s水平方向分割窗口
∙Ctrl-w,v垂直方向分割窗口
∙Ctrl-w,方向键在不同的窗口之间移动
∙Ctrl+w,q即q结束分出来的窗口;
∙Ctrl+w,o即only!
只显示光标所在窗口,其他窗口隐藏。
;
∙:
sp文档名新开一个窗口编辑文档
六、配置vim
1、配置vim:
set(se)配置项目(项目简写)
2、查看相关配置项目:
setall
3、常用配置项目:
∙number/nonumber(nu/nonu):
显示或者隐藏行号;
∙setignorecase(seic/senoic):
搜索文件时是否不区分大小写
4、查看Vim帮助:
∙:
help进入帮助
∙:
q退出帮助
网卡配置
网卡设备名字:
eth0,eth1,…
eth0代表第一块网卡
配置文件:
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1表示第二块网卡
这就是网卡的配置文件
第一行:
设备名称
第二行:
初始引导模式,如果是固定ip,就是static如果是dhcp自动获得的,这里就是dhcp
第三行:
广播地址
第四行:
网卡MAC地址
第五行:
IP地址
第六行:
子网掩码
第七行:
网络号
第八行:
启动时激活
这里省略的网关地址!
!
!
可以配置在这里,也可以配置在/etc/sysconfig/network文件里面
GATEWAY=192.168.10.1
Dns配置在/etc/resolv.conf文件里面。
使用这个命令让你的新的网络配置生效:
servicenetworkrestart或者
/etc/init.d/networkrestart
我们使用ifconfig来查看网络IP地址,或者ifconfigeth0查看第一块网卡的IP地址
禁用某一个网卡ifdownethX
激活某一个网卡ifupethX这里的X表示网卡名称
注意上面的禁用,激活,重启之后会失效,要看配置文件里面的ONBOOT=yes这里怎么定义
网络的其他配置
/etc/sysconfig/network文件
该文件用来指定服务器上的网络配置信息,下面是一个示例。
NETWORK=yes/no网络是否被配置;
FORWARD_IPV4=yes/no是否开启IP转发功能
HOSTNAME=hostnamehostname表示服务器的主机名
GATEWAYDEV=gw-devgw-dw表示网关的设备名,如:
etho等
GATEWAY=192.168.0.254设置网关的IP地址
DNS客户端配置
一个系统,要上网,除了有IP以外,还需要DNS和网关,这个大家都知道
图形界面的设置方法就在和IP设置一样,你们找到地方填就行了,我们学习主要以配置文件为主.
文件/etc/resolv.conf配置DNS客户.这个就是DNS的配置文件,大家用VIM把这个文件打开.
文件/etc/resolv.conf配置DNS客户,它包含了主机的域名搜索顺序和DNS服务器的地址,每一行应包含一个关键字和一个或多个的由空格隔开的参数。
下面是一个例子文件:
search
nameserver192.168.0.254
nameserver192.168.1.254
Search它的多个参数指明域名查询顺序。
当要查询没有域名的主机,主机将在由search声明的域中分别查找。
如果是在局域网中,你有自己的域,就可以设置这项。
在WAN上面,域很多,所以也就没必要写了.
nameserver表明DNS服务器的IP地址。
可以有很多行的nameserver,每一个带一个IP地址。
在查询时就按nameserver在本文件中的顺序进行,且只有当第一个nameserver没有反应时才查询下面的nameserver,nameserver就是DNS服务器的标志,在后面就可以跟DNS服务器的IP,你可以在这个文件里定义多个DNS,解析顺序是从上至下。
每行只能写一个哈,这个要记住
好了,下面我们讲讲配置虚拟网卡
配置虚拟网卡有两种方法,一种是临时的,一种是永久的。
这是临时的。
只需要虚拟出eth0:
1这个设备,在后面加他的IP地址就可以了
ifconfigeth0:
1192.168.10.40
刚才我们配置的虚拟网卡,如果重新启动网络服务,就会消失。
重新启动servicenetworkrestart
如果需要虚拟网卡一直存在,我们需要给虚拟网卡一个配置文件
建立虚拟网卡的第一步,建立他的配置文件:
[root@mailsvr~]#cd/e