1.Shell
是
Linux
系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并
把它送入内核去执行
shell
也被称为
LINUX
的命令解释器(
command interpreter
)
shell
是一种高级程序设计语言
sh
:
Steve Bourne
bash
:
Bourne-Again Shell
,
GPL
,
CentOS
和
Ubuntu
默认使用
csh
:
c shell , C
语言风格
tcsh
ksh
:
Korn Shell, AIX
默认
shell
zsh
:
MacOS
默认
shell
GNU Bourne-Again Shell(bash)
是
GNU
计划中重要的工具软件之一,目前也是
Linux
标准的
shell
,与
sh
兼容
显示当前使用的shell #
echo
${SHELL}
显示当前系统使用的所有shell
cat
/etc/shells
设置主机名 #hostname NAME 范例:[root@centos8 ~
]#hostname bj-yz-k8s-node1-100-10.magedu.com
注意:主机名不要使用下划线
2.命令提示符:prompt 范例:[root@localhost ~]#
#
管理员
$
普通用户
显示提示符格式:
[root@centos8 ~]
#echo $PS1
\[\e[1;35m\][\u@\h \W]\$\[\e[0m\]
修改提示符格式范例 :
PS1="\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]"
PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\
[\e[0m\]\\$"
提示符格式说明:
\e
控制符
\033
\u
当前用户
\h
主机名简称
\H
主机名
\w
当前工作目录
\W
当前工作目录基名
\t 24
小时时间格式
\T 12
小时时间格式
!
命令历史数
#
开机后命令历史数
范例:
持久保存提示符格式相关变量 PS1
[root@centos8 ~]# echo 'PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\
[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"' > /etc/profile.d/env.sh
[root@centos8 ~]#cat /etc/profile.d/env.sh
PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\
[\e[0m\]\\$"
[root@centos8 ~]# exit
logout
Connection closed by foreign host.
Disconnected from remote host(centos8) at 15:28:38.
Type `help' to learn how to use Xshell prompt.
[c:\~]$
Reconnecting in 1 seconds. Press any key to exit local shell.
.
Connecting to 10.0.0.100:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
Activate the web console with: systemctl enable --now cockpit.socket
Last login: Wed Dec 11 15:28:34 2019 from 10.0.0.1
[15:28:40 root@centos8 ~]#
3.
执行命令
执行命令过程
输入命令后回车,提请
shell
程序找到键入命令所对应的可执行程序或代码,并由其分析后提交给内核分
配资源将其运行起来
shell
中可执行的两类命令
内部命令:由
shell
自带的,而且通过某命令形式提供
外部命令:在文件系统路径下有对应的可执行程序文件
shell
中可执行的两类命令
内部命令:由
shell
自带的,而且通过某命令形式提供
外部命令:在文件系统路径下有对应的可执行程序文件
执行外部命令
查看外部命令路径:
Hash
缓存表
系统初始
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
缓存表
系统初始
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
缓存
4.命令别名
对于经常执行的较长的命令,可以将其定义成较短的别名,以方便执行
显示当前
shell
进程所有可用的命令别名
定义别名
NAME
,其相当于执行命令
VALUE
范例
:
撤消别名:
unalias
注意:在命令行中定义的别名,仅对当前
shell
进程有效
如果想永久有效,要定义在配置文件中
仅对当前用户:
~/.bashrc
对所有用户有效:
/etc/bashrc
编辑配置给出的新配置不会立即生效,bash进程重新读取配置文件 :
source /path/to/config_file
. /path/to/config_file
如果别名同原命令同名,如果要执行原命令,可使用
\ALIASNAME
“ALIASNAME”
‘ALIASNAME’
command ALIASNAME
/path/commmand #
只适用于外部命令
5.命令格式
COMMAND [OPTIONS...] [ARGUMENTS...]
选项:用于启用或关闭命令的某个或某些功能
短选项:
UNIX
风格选项,
-c
例如:
-l, -h
长选项:
GNU
风格选项,
--word
例如:
--all, --human
BSD
风格选项: 一个字母,例如:
a
,使用相对较少
参数:命令的作用对象,比如
:
文件名,用户名等
范例:
[root@centos8 ~]#id -u wang
1000
[root@centos8 ~]#ls -a
[root@centos8 ~]#ls --all
[root@centos8 ~]#free -h
[root@centos8 ~]#free --human
[root@centos8 ~]#ps a
注意:
多个选项以及多参数和命令之间使用空白字符分隔
取消和结束命令执行:
Ctrl+c
,
Ctrl+d
多个命令可以用
";"
符号分开
一个命令可以用
\
分成多行