Views: 0
Shell概念
shell:一种命令解释器, 提供用户和机器之间的交互;同时也是命令的运行环境。
Shell主要功能
1提供用户与操作系统进行交互操作的接口, 方便用户使用系统中的软硬件资源
2提供脚本语言编程环境, 方便用户完成简单到复杂的任务调度
shell命令起到的是一个命令解释器的作用,相当于人机交互
计算机内核是二进制,只能识别0和1。对于用户所输入的命令是不了解的那怎么办呢?就需要中间有一层翻译官,shell,提供了翻译的作用,提供用户和机器之间的交互。
输入命令需要有命令的一个执行环境。这个执行环境就是shell的主要功能。其一就是提供了用户与操作系统来进行交互操作的接口,方便用户来使用系统当中的软硬件资源。第二提供了脚本语言的编程环境,方便用户来完成从简单到复杂的业务调度。
内核主要做的是系统的调用,内核之上就是一个shell解释器,同样也是面临的运行环境来和用户来进行交互
shell种类多样
麒麟操作系统默认使用的shell是bash(Bourne-again Shell)
查看系统中的shell环境
通过echo $SHELL查看系统中的shell环境
kylin@kylin-ly-machine:一$ echo $SHELL /bin/bash
用户进入命令行界面时, 就已自动运行—个默认的Shell程序 , 并提供了交互式命令执行环境给用户。
在麒麟终端命令行环境下, bash提供了数百个系统命令, 尽管这些命令功能不同,但它们的使用方式和规则都是一致的。
Tab命令补全功能
命令补全:用户输入命令后, 有时不需输入完整的命令, 而系统会自动找出最符合的命令名称, 这种功能可以节省输入长串命令的时间
文件名补全:不需要输入完整文件名,只需输入开头几个字母, 然后按Tab键时, 系统会补充完整, 连续按两次Tab (Esc)键系统会显示所有符合输入前缀的文件名称。
命令联想:若忘了命令的全名, 而只记得命令的开头字母, 按Tab键一次会补充完整,连续按两次Tab (Esc)键系统会显示所有符合输入前缀的命令名称。
别名(Alias) 功能
查询目前系统所有别名 :#alias
设置别名:#alias ll='ls -l'
使用别名:#ll /etc
取消别名:#unalias ll
alias命令的效力仅限于该次登录, 在注销系统后, 这个别名的定义就会消失。
如果希望每次登录都使用这些别名, 则应该将别名的设置加入 “~/.bashrc” 文件中, 若是写入”/etc/bashrc” 文件中(修改后需要source调用新配置), 则系统上的所有用户都能使用这个别名。
查阅历史记录-history命令
在Kylin系统终端上输入命令并能执行后, shell就会存储你所敲入命令的历史记录(存放在~/.bash—history), 方便你再次运行之前的命令, 预定的记录为 1000笔, 这些都定义在环境变量中。
可以使用方向键↑和↓来查看之前执行过的命令, 可以使用ctrl-r来搜索命令历史记录。
history命令的几个使用示例
Shell基本功能
任务控制(job Control)
想在— 个shell中完成多个任务时, 可以使用shell的— 个特性:任务控制
前台:出现提示符让用户操作的环境
后台:不能与用户交互的环境 , 你无法使用 ctrl-c
终止在后台执行的任务, 不过可以使用 bg/ fg
呼叫该任务
通常将比较耗时的工作放在后台执行。要执行后台程序,只要在输入命令时 , 在命令的后面加上 “& ”
符号, 之后按Enter
键,系统即会开始以后台的方式执行该命令
若目前已在执行某个命令 , 无法使用 “&
” 来将它加入后台中执行,需先按Ctrl+z
键暂停这程序的执行,然后再直接输入 “bg
” 命令,就可将此工作放入后台执行
查看后台所有任务状态: #jobs -l
交互式处理( Interactive Processing)
收来自用户输入的命令后, shell 会根据命令类型来执行;
执行完毕后, shell 会将结果回传给用户 , 并等待用户下一次输入;
用户执行exit或是按Ctrl+D 来注销交互式登录;
quit退出交互式命令。
命令格式
命令:相应功能英文单词或者缩写
-选项:对命令进行选择控制[注意:前面有-横杠]
参数:给命令加上范围中括号表示可省略
Shell命令行操作界面——简单说明
.执行命令注意事项
1、 要调用以前输入过的命令, 可以用上下方向键进行选择
2、bash具有命令自动补全功能。 当输入命令、 路径、 文件名等内容的一部分时, 如果剩余部分没有歧义, 按键就可以将剩余部分补全;如果剩余部分有多个匹配内容,再按一次键就可以获取与已输入部分匹配的内容列表, 以便用户选择。 此功能可以减少不必要的输入错误。
3、 可以在一个命令行中使用多个命令, 用分号 ” ;
”将各个命令隔开。 例如:ls -l; pwd
4、 当一个命令行无法输入全部命令, 可以用反斜杠 ” \“ 将一个命令行持续到下一行
5、在当前命令执行的过程中,可以使用^C
(组合键<ctrl>+<c>
)强制中断当前运行的命令或程序。后台执行的命令不能用^C
强制中断
由单引号''
括起来的字符串视为普通字符串, 包括空格、 $ 、 /、 \
等特殊字符
由双引号""
括起来的字符串, 除$ 、 \、 单引号和双引号
仍作为特殊字符并保留其特殊功能外 , 其他都视为普通字符对待。 "\”
是转义符, Shell不会对其后面的那个字符进行特殊处理, 要将$ 、 \、 单引号和双引号
作为普通字符, 在其前面加上转义符 ”\”即可
由反引号``
括起来的字符串被shell解释为命令行 , 在执行时首先执行该命令行,井以它的标准输出结果替代该命令行(反引号括起来的部分, 包括反引号 )
注释#
转义符 , 将特殊字符或通配符还原成一般字符 \
分隔两个管道命令 |
分隔多个命令 ;
用户的主目录 /~
变量前需要加的变量值 $
将该符号前的命令放到后台执行 &
环境变量
定义
每个用户登录fYlin系统后,都会有一个专用的运行环境,通常各个用户默认环境都是相同的,这个默认环境实际上就是一组环境变量的定义 。用户可直接引用环境变量 也可修改环境变量来定制运行环境
使用env
令可显示所有的环境变量
要引用某个 环境变量,在其前面加上$
符号