用户登录
root(超级管理员)用户
一个特殊的管理账户,也被称为超级用户,root已接近完整的系统控制对系统损害几乎有无限的能力。除非必要,不要登录为root。
普通用户
权限有限,造成损害的能力比较有限。
注意
用户是否有超级管理权限区别在于UID,超级用户UID为0。
CentOS 6 普通用户UID从500开始;CentOS 7 普通用户UID从1000开始。
[23:19:41 root@tencent ~]#id root
uid=0(root) gid=0(root) groups=0(root)
[23:19:45 root@tencent ~]#
[23:20:11 root@tencent ~]#id yxj
uid=1000(yxj) gid=1001(yxj) groups=1001(yxj)
[23:20:15 root@tencent ~]#
终端 Terminal
1、设备终端:键盘、鼠标、显示器
2、物理终端:/dev/console,控制台console
3、串行终端:/dev/ttyS#
4、虚拟终端:/dev/tty#,tty可以有几个,Ctrl+Alt+F# 进行切换
5、图形终端:/dev/tty7,startx,xwindows
6、伪终端:/dev/pty,/dev/pts/#。pty,ssh远程连接
查看当前的终端设备
[23:30:46 root@tencent ~]#tty
/dev/pts/1
[23:30:48 root@tencent ~]#
注意:有意思的是,CentOS7 可以使用 init 3 从图形界面进入命令行终端,也可以使用 init 5 从命令行终端进入图形终端
交互式接口
交互式接口:启动终端后,在终端设备附加一个交互式应用程序
GUI:Graphic User Interface
X protocol,windows manager,desktop
Desktop:
Gnome(C,图形库gtk)
KDE(C++,图形库qt)
XFCE(轻量级桌面)
CLI:Command Line Interface
shell 程序
Shell
shell 是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把他送入内核去执行。shell 也被称为Linux的命令解释器,是一种高级程序设计语言。
查看当前使用shell
[23:52:02 root@tencent ~]#echo $SHELL
/bin/bash
[23:52:07 root@tencent ~]#
查看当前支持的shell类型
[23:52:07 root@tencent ~]#cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh
[23:52:40 root@tencent ~]#
命令提示符
命令提示符:prompt
[root@localhost ~]#
# 代表管理员
$ 代表普通用户
显示提示符格式
[root@tencent ~]#echo $PS1
[\u@\h \W]\\$
[root@tencent ~]#
修改提示符格式
[root@tencent ~]#PS1="\[\e[31m\][\t \u@\h \W]\\$\[\e[0m\]"
[23:59:17 root@tencent ~]#
修改符号含义
\e 控制符\033
\h 主机名简称
\w 当前工作目录
\t 24小时时间格式
\! 命令历史数
\u 当前用户
\H 主机名
\W 当前工作目录基名
\T 12小时时间格式
\# 开机后命令历史数
注意:修改命令提示符只在当前终端有效,如果需要全局长期使用,请固化到 /etc/profile.d/ 脚本中
内建命令和外部命令
内建命令
内建命令集成于shell中,外部命令存在于文件中。系统会优先调用集成在系统中的内建命令,然后才会访问速度慢的外部命令。
可以使用 type 命令查看命令是内建命令还是外部命令。
可以使用 help 命令查看内建命令列表。
可以使用 enable 命令启用或禁用内建命令,禁用的内建命令使用 help 命令查看时该命令前会显示 * 符号。
内建命令标示
[00:08:18 root@tencent ~]#type pwd
pwd is a shell builtin
[00:08:21 root@tencent ~]#
查看内建命令列表
[00:12:49 root@tencent ~]#help
启用内建命令
enable cmd
禁用内建命令
enable -n cmd
外部命令
在文件系统路径下有对应的可执行程序文件。
可以使用 which -a | --skip-alias ; whereis 查看路径
外部命令标示
[00:08:09 root@tencent ~]#type cat
cat is /usr/bin/cat
[00:08:17 root@tencent ~]#
同时是内建和外部命令
[00:09:26 root@tencent ~]#type -a echo
echo is a shell builtin
echo is /usr/bin/echo
[00:09:34 root@tencent ~]#
系统初始 hash 表为空,当外部命令执行时,默认会从 PATH 路径下寻找该命令,找到后会将这条命令的路径记录到 hash 表中,当再次使用该命令时,shell 解释器会首先查看 hash 表,存在将执行,如果不存在将会去 PATH 路径下寻找,利用 hash 缓存表可大大提高命令的调用速率。
hash 常用用法
hash 显示 hash 缓存
hash -l 显示 hash 缓存,可作为输入使用
hash -p path name 将命令全路径 path 起别名为 name
hash -t name 打印缓存中 name 缓存
hash -d name 清除 name 缓存
hash -r 清除缓存