Linux系统登录的两种方式
GUI:图形界面 Graphic User Interface
默认在Linux下面有三种可用的图形界面程序可选,分别为
1.gnome(c,图形库gtk)
2.kde(c++,图形库qt)
3.xface(轻量级桌面)
每一种图形界面下面开发的软件并不兼容,因为它们开发时候所用的开发语言也各不相同
启动方式:cli模式下面输入 startx 或者 init 5
CLI:命令行界面 Command Line Interface
Linux的CLI模式下默认的命令解析器是Shell
Shell是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。
Shell是一种高级程序设计语言
Linux下面有多种可用的Shell语言可选择,包括
1.sh bourne
2.csh c语言版本
3.tcsh c语言加强版
4.ksh 商业版本,如AIX
5.bash bourne again shell ,linux默认SH
6.zsh 等等
也可以输入命令 cat /etc/shells 查看系统系统里面的所有shell
可通过输入 echo $SHELL 来查看当前系统的默认shell
其中nologin给系统一些不需要登陆的程序用的
GUI和ClI命令行可以自由切换,不同系统版本之间的不同
通过物理按键切换
ctrl+alt+F1-6 字符, F7 图形界面,centos5
ctrl+alt+F1 图形,F2-F7字符 , centos6 7
可以通过命令输入进行切换
chvt x (x=1-7)
注意,通过startx和init 5来启动的图形界面方式是有所有不同的
startx启动的图行界面,当通过ctrl + F1切换到界面时候,可以看到界面里面有很多命令输入的信息,而再通过按ctrl + F7的时候才会正确显示图形界面,可以判断为这种方式启动的图形界面并不是直接启动图形界面的
init 5启动的图形界面,按ctrl + F1的时候,能正常切换到图形界面,可以判断为这种方式是直接启动图形界面,而不依靠其他程序。
不过在大家学习的过程中,建议大家还是使用CLI命令模式吧,shell用默认的bash即可。
CentOS在安装桌面之后,将图形界面设置为默认模式,给PC内存带来较大压力,所以希望修改系统的默认启动模式为命令号界面,而不启动图形界面。方法如下:
CentOS6的方法
1.以 root用户登录系统;或者 用su切换到超级用户模式;
2.修改/etc/inittab 文件:
vim /etc/inittab
将最后一句:
id:5:initdefault:
修改为:
id:3:initdefault:
保存退出,重启系统即可。
CentOS7的方法
在CLI下面输入
系统登录界面
Linux登录的用户分为两种
root用户,超级管理员,提示符是# ,如[root@localhost~]#
普通用户,权限有限制,提示符是$ ,如[w@localhost ~]$
[root@localhost~]这个称为PS1,靠环境变量定义
用户的PS1命令提示符是有格式的,输入 echo $PS1可以查看现在用户的命令提示符格式
例如 \u 表示用户
\h 表示主机名
\W 表示当前位置
还有其他参数,暂时就不一一详说
系统登陆欢迎界面
当我们进入系统看见的欢迎登陆界面,如下图
该文件在 /etc/issue 里面,而且CentOS6和CentOS7也有点不一样
这是CentOS 6
这是CentOS 7
这里里面可以看到,文档里面的数据跟我们看到的数据不一致,是因为文档里面的是参数,这些参数又调用了其他地方的参数,所以我们看起来就不一样了
还有的是我们可以cat /etc/redhat-release的文档也同样可以查看到系统的信息
还有注意一点的就是,这个登陆提示信息严禁welcome之类字眼,以免被黑以后打官司对自己不利的事
SHELL的命令类型
SHELL的命令分为两种
内部命令:
由shell自带的,而且通过某命令形式提供
enable命令可以启用或禁用内部命令
外部命令:
在当前系统的某文件系统路径下有对应的可执
系统里面执行的命令是有对应路径的,系统通过变量PATH可以知道外部命令的路径
命令还有命令别名,如下图
别名可以通过alias COMMAND ='COMMAND -参数'之类格式实现
不需要别拧,也可以通过 unalias COMMAND 来删除别名
而且别名的优先级都是最高的
可以通过如\ls、‘ls’、/usr/bin/ls 等方法取消使用已定义的别名
别名的命令都是存储在内存里面,开机自动加载到内存里面
这些命令的优先级为
别名命令>内部命令>缓存命令>外部命令
其他相关命令:
type COMMAND:查看命令的类型
which COMMAND:查看命令文件位置
hash 已经加载到内存的外部命令
whereis COMMAND:查看文件路径及其帮助文件等路径
命令的区别:
内部命令,系统开机自动加载,不表示为单独文件
外部命令,表示为一个单独文件,可以用ls的命令查看到相应文件
命令的格式
COMMAND [OPTIONS...] [ARGUMENTS...]
选项:用于启用或关闭命令的某个或某些功能;
短选项:-c, 例如:-l, -h
长选项:--word,例如:--all, --human-readable
参数:命令的作用对象,比如文件名,用户名等
注意:
1、多选项,以及多参数和命令之间使用空白字符分隔
2、取消和结束命令执行:Ctrl+c,Ctrl+d
3、多个命令可以用;符号分开
4、一个命令可以用\分成多行
一般的写命令的顺序是 命令 +选项 +参数,其他顺序可能会有问题
中断命令的方法,ctrl+c
命令补全
命令+ '\' 表示换行写命令,不过使用的时候注意不要漏了空格之类
可以用:号隔开同时输入多个命令,如 ls:cd:who
命令补全
内部命令:
外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到的命令即为要执行的命令
用户给定的字符串只有一条惟一对应的命令,直接补全
否则,再次Tab会给出列表
路径补全
把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名
如果惟一:则直接补全
否则:再次Tab给出列表
centos7系统上面支持长选项的命令补全,6或者以前版本都不可以,这个主要是由于bash版本的问题
帮助文件的使用方法
帮助文件的获取途径
whatis
command --help
man and info
本地帮助文档/usr/share/doc
官网在线文档
其他网站和搜索
内部命令查找帮助的方法:
#help COMMAND
#man bash
外部命令查找帮助的方法:
(1) # COMMAND --help
# COMMAND -h
(2) 使用手册(manual)
# man COMMAND
(3) 信息页
# info COMMAND
(4) 程序自身的帮助文档
README
INSTALL
ChangeLog
(5) 程序官方文档
官方站点:Documentation
(6) 发行版的官方文档
(7) Google
whatis命令:
whatis帮助文档,要系统安装以后过一段时间才能完全安装,如果一定需要用的话,可使用命令makewhatis命令
whatis = man -f
man命令:
提供命令帮助的文件
手册页存放在/usr/share/man
几乎每个命令都有man的“页面”
man页面分组为不同的“章节”
统称为Linux手册
man [章节] 命令
man命令的配置文件:/etc/man.config | man_db.conf
MANPATH /PATH/TO/SOMEWHERE: 指明新手册文件搜索位置
# man -M/PATH/TO/SOMEWHERE COMMAND: 到指定位置下搜索COMMAND命令的手册页并显示
man命令有9个章节,其中重点关注1、4、5、8章节
1: 用户命令
4: 设备文件及特殊文件
5: 配置文件格式
8: 管理类的命令
bash的快捷键
Ctrl+l 清屏,相当于clear命令
Ctrl+c取消命令的执行
Ctrl-a 会移动到命令行的最前面
Ctrl-e 会移动到命令行的最后面
Ctrl-u 会删除到行首
Ctrl-k 会删除到行尾
arrow ctrl-b ctrl-f会向左或向右移动一个字符
Esc-b左移一个单词
Esc-f右移一个单词
其他中重要命令整理:
date 显示当前系统时间
date MMDDhhmm[cc]YY.ss
date[+FORMAT]
%Y:四位年份
%y:两位年份
%m:月
%M:分钟
%d:日
%h:英文简写的月
%H:时
%S:秒
%s:现在距离1970年1月1号0点0分(unix元年)的秒数,timestamp(时间戳)
%D:月/日/年
%F:年-月-日
%T:时:分:秒
clock,hwclock
-s:以硬件时钟为准 --hctosys
-w:以软件时钟为准 --systohc
Linux有两个时钟
硬件时钟:
软件时钟:开机时读取硬件时钟
cal 显示日历
echo命令:
-n 不在字符的最后自动换行
-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
""中间 只是变量引用
''最傻的强引用,字符窜引用
``最聪明的 命令引用
history命令:查看命令历史
-d 数字 删除第数字条记录
-c 清空history列表
-a:追加当前回话的命令到历史列表中去
-n:读取所有在回话列表中的 但是不在当前回话列表中
history灵活用法:
!数字:执行history中第数字条的命令
!!:上一条命令
!-数字:表示执行命令列表中的倒数第数字条命令
!$:执行上个命令中的最后一个参数:ESC,.
!string:执行命令列表中的最近一次以string开头的命令
命令历史相关的环境变量
HISTSIZE:历史命令中可以保存的个数
HISTFILE: 历史命令保存的文件
HISTFILESIZE:历史文件中可以保存的命令个数
HISTCONTROL:控制命令历史的生成机制
ignoredups:忽略记录重复的命令,连续的相同命令
ignorespace:以空格开头的命令不会被记录
ignoreboth:同时具有上面两种特性
screen命令:一个远程的同步命令
打开新的screen:
screen –S [SESSION]
加入会话:
screen –x [SESSION]
退出并关闭screen:
exit
剥离当前screen:
Ctrl+a,d
显示所有已经打开的screen:
screen -ls
恢复某screen
screen -r [SESSION]
建议在生产环境中远程备份数据的时候,用screen命令进行,以防止网络抖动时候造成的网络中断