CentOS5
一、进入字符工作方式的3种方法
1.在图形环境下开启终端窗口
2.在系统启动后直接进入
3.使用远程登录方式(Telnet或SSH)
二、虚拟控制台和本地登录
虚拟控制台
如果在系统启动时直接进入字符工作方式,系统将提供多个(默认6个)虚拟控制台,彼此间独立使用,互不影响。
可以使用组合键"Alt+F1"~"Alt+F6"进行多个虚拟控制台之间的切换。
如果使用startx命令在字符界面下启动了图形环境,可以使用组合键"Ctrl+Alt+F1"~"Ctrl+Alt+F6"切换字符虚拟终端,使用"Ctrl+Alt+F7"切换到图形界面。
本地登录的注销
若要注销登录,在终端上输入logout命令,或"Ctrl+D"。超级用户的命令提示符是"#",普通用户的命令提示符是"$"。
三、远程登录Linux系统
在Linux环境下使用ssh命令(OpenSSH的客户端)登录远程Linux系统(启动OpenSSH服务器)
命令格式
ssh 远程主机上的用户名@远程主机的IP地址或FQDN
在Windows环境下使用putty登录远程Linux系统
putty是一个绿色软件,支持telnet、ssh、rlogin等多种连接方式。
四、系统运行级别与关机
Linux系统在任何时候都运行在一个指定的运行级上,并且不同的运行级的程序和服务各不相同,所要完成的工作和所要达到的目的也不一样。
CentOS设置了以下运行级,系统可以在运行级之间切换
运行级 说明
0 所有进程将被终止,机器将有序的停止,关机时系统处于这个运行级
1 单用户模式。用于系统维护,只有少数进程运行,同时所有服务也不启动
2 多用户模式。和运行级3一样,只是网络文件系统(NFS)服务没被启动
3 多用户模式。允许多个用户登录系统,是系统默认的启动级别
4 留给用户自定义的运行级别
5 多用户模式。并且在系统启动后运行X-Window,留出一个图形化的登录窗口
6 所有进程被终止,系统重启
如果系统启动后进入字符登录界面,则说明系统默认的运行级别为3;如果系统启动后进入图形登录界面,则说明系统默认的运行级别为5。
查看和切换运行级
查看
$ runlevel
切换
# init [0123456Ss]
runlevel和init命令的例子
## 显示系统当前运行级别
# runlevel
N 3
## 系统当前的运行级别为"3",没有上一个运行级别("N"表示)
# init 2
## 执行"init 2"命令后会在系统控制台中显示相应的停止启动服务信息
# runlevel
3 2
## 系统当前运行级别为"2",上一次的运行级别为"3", 转换运行级别成功
关机与重启命令
系统的关机和重启,实际上是进行运行级别的切换。
init命令用于立即关机或重启,但是在多用户系统中若想给用户发送关机警告信息以便各个用户完成自己的工作并注销登录,则必须使用shutdown、halt和reboot等命令。
在多用户环境下,通常使用shutdown命令关闭和重启系统。shutdown命令能够以一种比较安全的方式来关闭系统,所有登录到系统上的用户将被通知系统将要关闭,而新的登录操作将被阻止;同时所有的进程也被通知系统将要关闭。
shutdown命令的格式
shutdown [参数] time [warning-message]
time
用于设置多长时间后执行shutdown命令,可以使用如下三种格式
hh:mm 指定绝对时间
+m 指定相对时间,m为数字,单位为分钟
now 立即执行
warning-message
用于设置发给用户的警告信息
常用参数
-t sec 送出警告信息和删除信息之间要延迟多少秒再通知init执行运行级切换
-k 并不真的关闭系统,只是给每个用户发送警告信息
-r 关闭之后重启系统
-h 关闭之后停止系统
-f 重启后不用fsck检查磁盘
-F 重启后强制用fsck检查磁盘
五、Shell
什么是Shell
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器);
Shell接收用户输入的命令并把它送入内核去执行;
Shell起着协调用户与系统的一致性和在用户与系统之间进行交互的作用。
Shell的功能
Shell最重要的功能是命令解释。Linux系统中的所有可执行文件都可以作为Shell命令来执行。
Linux可执行文件分类
类别 说明
Linux命令 存放在/bin、/sbin目录下的命令
内置命令 出于效率的考虑,将一些常用命令的解释程序构造在Shell内部
实用程序 存放在/usr/bin、/usr/sbin、/usr/share、/usr/local/bin等目录下的实用程序或工具
用户程序 用户程序经过编译生成可执行文件后,也可作为Shell命令运行
Shell脚本 用Shell语言编写的批处理文件
当用户提交一个命令后,Shell首先判断是否为内部命令,如果是就通过Shell内部的解释器将其解释为系统功能调用并转交给内核执行;若是外部命令或实用程序就试着在硬盘中查找该命令并将其调入内存,再将其解释为系统功能调用并转交给内核执行。
查找命令的两种情况:
1.如果用户给出了命令的路径,Shell就沿着给出的路径进行查找,若找到则调入内存,若没有找到则输出提示信息。
2.如果用户没给出命令的路径,Shell就在环境变量PATH所指定的路径中依次查找命令,若找到则调入内存,若没找到则输出提示信息。
内置命令和外部命令:
1.内置命令是包含在Shell自身当中的,在编写Shell的时候就已经包含在内了,当用户登录系统后就会在内存中运行一个Shell,由其自身负责解释内置命令。基本的命令如cd、exit等都是内置命令。用help命令可以查看内置命令的使用方法。
2.外部命令是存在于文件系统某个目录下的具体的可执行程序,如文件拷贝命令cp,就是在/bin目录下的一个可执行文件。用man或info命令可以查看外部命令的使用方法。
Shell元字符
> prog > file 将标准输出重定向到文件
>> prog >> file 将标准输出附加到文件
< prog < file 从文件file中获取标准输入
| p1 | p2 将p1的标准输出作为p2的标准输入
<<string Here Document 标准输入从Here Document读入,直到出现string
* 匹配文件名中的零个或多个字符
? 匹配文件名中的任何单个字符
{abc} 匹配文件名中abc范围内的任何字符,如0-9或a-z都是合法的
; 命令结束符,例如p1; p2表示先执行p1,再运行p2
& 命令结束符,与 ; 类似,但不等p1结束
`...` 运行...中的命令,输出的结果代替`...`
(...) 在子shell中执行...中的命令
{...} 在当前shell中执行...中的命令
$1,$2等 $0...$9 代表shell文件的参数
$变量 shell变量的值
${变量} 变量的值,为避免在文本连接时混淆
\ \c 将 c 字符作为字符,但 \ 后面加换行符无效
'...' 作为文本,不作任何替换
"..." 在 ... 中的$、`...` 和 \ 得到替换后,将 ... 作为文本
# 表示注释
变量=值 为变量赋值
p1&&p2 运行p1;若成功,再运行p2
p1||p2 运行p1;若不成功,再运行p2
Shell 内部变量
$# 参数个数 ,从0开始计数
$* shell的所有参数
$@ 类似$*
$- shell用的选择项
$? 上次执行的命令的返回值
$$ shell的进程标识符
$! 用&启动的最后一个命令的进程标识符
$HOME cd命令的缺省参数
$IFS 参数分隔词的字符表
$MAIL 信件文件,当其改变时给出信息you have mail ... 没用过这个^_^
$PATH 搜索命令的目录表
$PS1 提示符串,缺省为$
$PS2 后继命令行提示符串 ,缺省为>