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.shPS1=\”\\[\\e[1;32m\\][\\t \\[\\e[1;33m\\]\\u\\[\\e[35m\\]@\\h\\[\\e[1;31m\\] \\W\\[\\e[1;32m\\]]\\[\\e[0m\\]\\\\$\”[root@centos8 ~]# exitlogoutConnection 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.socketLast 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起别名为namehash -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起别名为namehash -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, –humanBSD风格选项: 一个字母,例如:a,使用相对较少参数:命令的作用对象,比如:文件名,用户名等范例:[root@centos8 ~]#id -u wang1000[root@centos8 ~]#ls -a[root@centos8 ~]#ls –all[root@centos8 ~]#free -h[root@centos8 ~]#free –human[root@centos8 ~]#ps a注意:多个选项以及多参数和命令之间使用空白字符分隔取消和结束命令执行:Ctrl+c,Ctrl+d多个命令可以用 \”;\” 符号分开一个命令可以用\\分成多行