shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接受用户输入的命令并把它送入内核去执行。实际上shell是一个命令解释器,它解释由用户输入的命令并且把他们送到内核。不仅如此,shell由自己的编程语言用于对命令的编辑。
举一个有趣的例子:
在整个系统下 shell就像是一个媒婆一样,用户就像是一个相亲对象,想把自己的想法告诉另一个相亲对象,就要从媒婆这个媒介透漏给系统,系统知道了也返回信息给媒婆,这样用户也知道了系统返回来的信息,是不是很有趣。
Linux中的shell有多种类型,其中最常用的集中是bourne shell(sh)、c shell(csh)和korn shell(ksh)。三种shell各有优缺点。bourne shell是NUIX最初使用的shell。并且在每种UNIX上都可以使用,它的shell编程方面相当优秀,但是在处理用户的交互方面做得不如其他几种shell。Linux操作系统缺省的shell是Bourne Again shell,它是Bourne shell的扩展,简称Bash,与Bourne shell完全向后兼容,并且在Bourne shell的基础上增加、增强了很多特性。Bash放在/bin/bash中,它有许多特色,可以提供如命令补全、命令编辑和命令历史表等功能,它还包含了很多C shell和Korn shell中的优点,有灵活和强大的编程接口,同时又有很友好的用户界面。因为Bash是Linux上缺省的shell,我们主要来介绍Bash及相关信息
shell基本常见命令:
$date 可以显示时间
$ls 可以列出当前目录中所有文件,只列出个文件的名字,而不显示其他更逗信息
$ls -l 可以显示当前目录中文件的详细信息,并了解他们的权限,用户拥有者,大小,上次改动的时间
$cp 拷贝
$mv 移动
$cd 改变目录
命令行的快捷使用:
一:自动补齐
tab
二:命令行的历史记录
通过按向上方向键,您可以向后遍历近来在该控制台下输入的命令。用向下方向键可以向前遍历。与SHIFT键联用的话,您还可以遍历以往在该控制台中的输出。您可以编辑旧的命令,然后再运行
三:编辑命令行
CTRL k:删除从光标到行尾的部分
CTRL u:删除从光标到行首的部分
ALT d:删除从光标到当前单词结尾的部分
CTRL w:删除从光标到当前单词开头的部分
CTRL a:将光标移到行首
CTRL e:将光标移到行尾
ALT a:将光标移到当前单词头部
ALT e:将光标移到当前单词的尾部
CTRL y:插入最近删除的单词
!$:重复前一个命令的最后的参数
四:命令的排列
command1;command2
先执行第一个后执行第二个。不管是否第一个有错误
command1&&command2
只有当command1正确执行完毕之后才能执行command2
五:任务的调度
如果你想在终端下运行另一个命令其实不止有重新打开一个新的终端这个方法
更加优雅的方法就是称为任务调度 你只需要在命令后面添加一个& 就表示将这个命令放到后台去执行
六:命令的替换
我们都知道locate 命令,要是你想知道某一个文件里的内容但是又不知道位置在哪里就可以这样一个命令解决 less $(locate hehe.c)
七:文件名匹配
当我们需要一次性指定很多文件的时候,你就可以使用一个叫做通配符的东西
比如你要删除所有以.c 结尾的文件就可以这样
rm *.c方便快捷
八:输出重定向
在这里我们就要用到一个比较重要的东西,叫做管道‘|’
举个例子:
ls -l | less
第一个命令提供目录内容,第二个则将以翻页的方式显示
tar -cvf - /etc |tar -xvf -
打包后直接解开在/tmp底下,而不产生文件