用户
root 用户
一个特殊的管理帐户
也被称为超级用户
root已接近完整的系统控制
对系统损害几乎有无限的能力
除非必要,不要登录为 root
普通(非特权 )用户
权限有限
造成损害的能力比较有限
终端 terminal
终端(英语:Computer terminal),是与计算机系统相连的一种输入输出设备,它用来显示主机运算的输出,并且接受主机要求的输入,通常离计算机较远。根据功能不同,可分若干类。典型的终端包括显示器键盘套件,打印机打字机套件等。
随着技术的发展,控制台,终端这些不再是单独的物理设备了,而是被键盘和显示器整合,替代。现在计算机的console控制台和tty终端都是虚拟出来的概念了,在概念上,键盘和显示器既是console,又是tty。至于什么时候是console,什么时候是tty,取决于那一刻在做什么。
**
终端类型1.1
控制台终端: /dev/console
串行终端:/dev/ttyS#
虚拟终端:tty:teletypewriters, /dev/tty#,tty 可有n个,Ctrl+Alt+F#
伪终端:pty:pseudo-tty , /dev/pts/# 如:SSH远程连接
图形终端:startx, xwindows
查看当前的终端设备
[root@rocy8-1 ~]# tty
/dev/pts/0
**
什么是shell
Shell 是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行shell也被称为LINUX的命令解释器(command interpreter),Shell 本身是一个程序。将用户输入的命令行拆解为”命令名“与”参数“。接着,根据命令名找到对应要执行的程序,对被执行的程序进行初始化,然后将刚才解析出来的参数传给该程序并执行
shell是一种高级程序设计语言,提供了变量,函数,条件判断,循环等开发语言的功能
由于Shell本身是个程序,所以它可以被任何用户自己开发的各种Shell所代替
各种Shell
sh:Steve Bourne
bash:Bourne-Again Shell,GPL,CentOS 和 Ubuntu 默认使用
csh:c shell , C 语言风格
tcsh:
ksh :Korn Shell, AIX 默认 shell
zsh: MacOS默认shell
bash shell
GNU Bourne-Again Shell(bash)是GNU计划中重要的工具软件之一,目前也是 Linux标准的shell,与
sh兼容
显示当前使用的shell
[root@rocy8-1 ~]# echo ${SHELL}
/bin/bash
显示当前系统使用的所有shell
[root@rocy8-1 ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
设置主机名
#临时生效
hostname NAME
#持久生效,支持CentOS7和Ubuntu18.04以上版本
hostnamectl set-hostname NAME
注意:
修改hostname 需要root权限
主机名不支持使用下划线,但支持横线,可使用字母,横线或数字组合
有些软件对主机名有特殊要求
一般按照组织的要求设置主机名,通常有一定的意义的
shell中可执行的两类命令
内部命令:由shell自带的,而且通过某命令形式提供, ,用户登录后自动加载并常驻内存中
外部命令:在文件系统路径下有对应的可执行程序文件,当执行命令时才从磁盘加载至内存中,执行
完毕后从内存中删除
区别指定的命令是内部或外部命令
type COMMAND
type ls #区分是内部命令还是外部命令
type -t echo #简写,只给出类型,builtin|alias|file|keyword
type -a echo #列出所有,有可能是内部命令,也同时会是外部命令
bash -c help #查看bash中所有内容(不仅仅是内部命令)
help #查看bash中所有内容(不仅仅是内部命令)
enable #查看bash中所有内置命令
help echo #查看内部命令帮助
查看是否存在对应内部和外部命令
[root@rokcy8 ~]# type echo
echo is a shell builtin
[root@rokcy8 ~]# type -a echo
echo is a shell builtin
echo is /usr/bin/echo
有内部命令,又有外部命令,因为不是所有主机都使用标准shell, 所以常用内部命令会有一个外部命令
的备份,防止内部命令执行失败。
在命令执行时,shell先判断是否是内部命令,如果是,则执行内部命令,如果不是,则去特定目录下寻找外部命令
bash shell 自身就是一个程序,里面有很多小工具,有用户通过终端连接主机,则该终端就有一个bash在后台运行着
内部命令相关
help #查看所有内部命令及帮助
enable #查看所有启用的内部命令
enable cmd #启用 cmd 命令
enable -n cmd #禁用内部 cmd 命令
enable -n #查看所有禁用的内部命令
Hash缓存表
系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将这条命令的
路径记录到hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在将执行之,如果不
存在,将会去PATH路径下寻找,利用hash缓存表可大大提高命令的调用速率。
hash 只对当前用户的当前终端进程有效,是一组临时数据;
切换用户后无效;
退出重新登录后会被重置;
hash 命令常见用法
hash #显示当前终端进程中的hash 缓存
hash -l #显示详创建此条hash 的命令,可作为输入使用
hash -p path name #手动创建hash
hash -t name #输出路径
hash -d name #删除指定hash
hash -r #清空所有hash
命令别名
对于经常执行的较长的命令,可以将其定义成较短的别名,以方便执
alias #显示当前shell进程所有可用的命令别名
alias name