目录
Linux用户登录以及命令执行原理
一、用户分类
Linux的用户分为两类
1、root用户
- 一个特殊的管理账户
- 接近完整的系统控制
- 无穷大的权力
2、普通用户
- 权力有限
- 对系统造成不可恢复损害能力低
二、登录界面
1、交互式接口
启动终端后,在终端设备附加一个交互式应用程序
GUI:Graphic User Interface(图形用户接口)。
他提供了很多桌面环境系统,像Windows一样,有窗口、图标和菜单。常见
的有一下三种
- GNOME (C,图形库gtk)
- KDE (C++,图形库qt),下图为CentOS6.10的KDE界面
- XFCE (轻量级桌面)
PS: 如果用户需要用到图形处理小工具,需要查看图形工具支持的图形库,选择对应的GUI,否则小工具无法使用。
CLI:Command Line Interface(文本模式)
登录画面
[root@hai 6~]#
~表示在家目录中 #管理员 $普通用户
PS:下图第一,第二行的内容来自/etc/issue这个文件,可修改,步骤如下
- cat /etc/issue查看文件格式
- 方法一、通过man pam_issue查看各参数含义
- 方法二、whitis issue 查看帮助文件章节
- man issue 得到也可以看看 agetty(8) mingetty(8)因为8是管理类的命令,所以直选这两个;
man 8 agetty 查询;
搜索hostname,得到参数说明。
- 英文看傻了。。。坚持习惯,试着修改
2、界面切换
Linux预设情况下会提供六个terminal(终端)来让使用者登录,切换的方式为[Ctrl]+[alt]+[F1]~[F6]的组合键,系统会将[F1]~[F6]命名为tty1~tty6。
- [Ctrl]+[alt]+[F2] ~[F6]:文字接口登录tty2~tty6
- [Ctrl]+[alt]+[F2] : 图形接口(桌面)
PS:如果你的Linux预设使用的纯文本界面,那么tty1~tty6就都会被文本界面占用
- echo $ {shell}查看当前使用的shell
- cat /etc/shells查看系统有的shell
3、免密登录Linux
学习阶段,我们要不停的在个版本Linux之间切换,可以考虑使用免密登录,工作中切不可这么操作。
使用nano命令编制文本ect/gdm/custom.conf如下图所示,在[daemon]下面输入AutomaticLoginEnable=true;AutomaticLogin=root(其中ALE为大写)保存,退出,重新登录实验一下。
三、通过文本界面了解本机硬件
1、查看当前CentOS版本
- 使用cat命令查看文件/etc/centos-release
- lsb_release –a也可以查看
2、查看内核版本
- uname –r
3、查看cpu参数
- lscpu(图很长,简略了)
4、查看内存
- free [-kmgh]分别以k、M、G、易懂,单位表示
5、查看硬盘情况
- lsblk
6、查看网卡
- dmesg 查看启动的硬件
- dmesg |grep eth 查看网卡
四、shell的介绍
实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。
1、Linux中常用的shell种类
- sh
是一个快捷方式,已经被/bin/bash所取代。
- csh
C shell 使用的是“类C”语法,csh是具有C语言风格的一种shell,其内部命令有52个,较为庞大。目前使用的并不多,已经被/bin/tcsh所取代
- tcsh
tcsh是csh的增强版,与 C shell 完全兼容。
- bash
大多数Linux系统默认使用的shell,bash shell 是 Bourne shell 的一
个免费版本,它是最早的 Unix shell,bash还有一个特点,可以通过help
命令来查看帮助。包含的功能几乎可以涵盖shell所具有的功能,所以一般
的shell脚本都会指定它为执行路径。
- zsh
目前Linux里最庞大的一种shell:zsh。它有84个内部命令,使用起来也比较复杂。一般情况下,不会使用该shell。
PS: CentOS默认使用的是bash,bash兼容sh,还有一种nologin的shell是给
底层计算机使用的。
2、在shell中可执行的命令类
1内部命令:自己内建的命令集,开机时加载到内存中。
- Help 可以列出所有的内部命令用法帮助
- enable cmd 启用内部命令
- enable –n cmd 禁用内部命令
- enable –n 查看所有禁用的内部命令
- hexdump –c 查看二进制码
2外部命令:在文件系统下有对应的可执行程序文件。系统通过变量PATH(代表一堆文件夹的集合)去搜索,执行搜索到的第一个文件。
另外,外部命令在第一次执行后,会放到hash里,在下一次执行时,shell解析器首先会查看hash表,存在将执行,常见hash用法如下
- hash 显示hash缓存
- hash -p path name 显示hash缓存
- hash -d name 清除name缓存
- hash -r 清除缓存
- hash -l 显示hash缓存,可作为输入使用
3、判断命令
- type cmd
- type –a cmd显示所有存放位置
4、命令别名
在管理和维护Linux系统过程中,将会有一些很长的命令或用法经常被用到,这时候可以使用命令别名来简化。
1 系统定义的别名
通常情况下,系统中已经定义了一些别名,要查看已经定义的命令别名,可以使用alias命令,从下图可以看出使用cp命令时,系统会用cp –i代替cp。
- alias 显示当前shell所有可用的命令别名
2 用户自定义别名
使用命令alias将cd /etc/sysconfig/network-scripts重新命名为cdnet后,在执行cdnet时,系统会自动用cd /etc/sysconfig/network-scripts将其替代。
- alias 别名=“原名”
3 取消定义的别名
- unalias name 删除定义的别名
- unalias –a 删除所有别名
4 保存别名设置
Linux想要永久保存,就要修改文件,可以在系统别名目录中添加别名配置文件。
定义某个用户想要定义自己的命令别名,可以将命令添加到.bashrc中,重新注销或者..bashrc,就可以生效了。
PS: ..bashrc前面的.相当于source命令重读文件。
定义全局别名,通常将命令添加到/etc/bashrc中,不建议定义全部用户。
5忽略别名
- \aliasname
- “aliasname”
- ‘aliasname’
- command aliasname
- /path/commmand
5、命令读取流程
- 判断路径:是否以路径的方式输入,是的话直接执行
- 检查别名:别名的优先级要高于内部命令,优先执行
- 判断命令类型:是内部命令直接执行
- hash /bin/cat: 从hash中提取已用过的外部命令,有就执行
- PATH变量查找: has中没有,系统通过变量PATH查找
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/103497