前言
一直听别人说过 shell
,shell编程
,其实 shell
是什么呢?
什么是 shell
一说到命令行,我们真正指的是 shell
。shell
就是一个程序,它接受从键盘输入的命令, 然后把命令传递给操作系统去执行。几乎所有的 Linux
发行版都提供一个名为 bash
的 来自 GNU
项目的 shell
程序。“bash”
是 “Bourne Again SHell
” 的首字母缩写, 所指的是这样一个事实,bash
是最初 Unix
上由 Steve Bourne
写成 shell 程序 sh
的增强版。
当使用图形用户界面时,我们需要另一个和 shell
交互的叫做终端仿真器的程序。 如果我们浏览一下桌面菜单,可能会找到一个。虽然在菜单里它可能都 被简单地称为 “terminal”
,但是 KDE
用的是 konsole
, 而 GNOME
则使用 gnome-terminal
。 还有其他一些终端仿真器可供 Linux
使用,但基本上,它们都完成同样的事情, 让我们能访问 shell
。也许,你可能会因为附加的一系列花俏功能而喜欢上某个终端。
概述为下面三点:
shell
是一个程序,是真正意义的命令行,它为用户搭建了一个桥梁,架在用户与操作系统之间,用户通过shell
向操作系统发送命令。linux
中的shell
程序来自GUN
项目,而GUN
项目的shell
则是UNIX
系统上面sh
程序的增强版。Unix
→GUN
→Linux
。- 图形界面是无法直接使用
shell
的,但是有 终端(可能有多个不同的英文名)。终端,在图形界面与shell
之间架起桥梁,使得图形界面用户可以使用shell
。
终端
桌面上的就是一个终端(博主系统是乌班图)。
其中 yiaz@yiaz-virtual-machine:~$
一行文字是 shell
提示符,它的出现表示 shell
准备好了,可以开始接收输入了。
提示符的格式一般是:你的用户名@主机名,紧接着是 当前工作目录:$
;
其中提示符中的当前工作目录,随着用户切换路径而变化;
其中最后一个字符,如果是 #
而非 $
则代表我们的终端有 root
权限,我们可以切换到 root
用户 获取该权限 :
命令历史
当我们在终端输入命令的时候,大部分的 Linux
发行版,会默认保存 500
个命令;
可以使用方向键的上下键,进行切换到历史命令 ;
在终端中复制
在终端窗口中,使用鼠标右键或者左键双击选中的文本,则文本会被复制,再次按下鼠标中键,刚刚被复制的文本就会出现在命令行,也可以使用快捷键 :shift + insert
;
其中切记不可使用 Windows
的 Ctrl C,V
进行复制粘贴 ;这两个按键早在 Windows
定义复制粘贴之前就已经被 Linux
定义了,因此,这两个按键在 Linux
中有其他含义;
一些简单的命令
关于命令,在后面的会详细的学习;
现在仅仅说几个简单的。
date
打印系统时间cal
打印当前日期的日历形式df
磁盘剩余空间free
空闲内存空间exit
退出终端,即关闭终端
隐藏的终端
即使终端仿真器没有运行,在后台仍然有几个终端会话运行着。它们叫做 虚拟终端 或者是 虚拟控制台。在大多数 Linux
发行版中,这些终端会话都可以通过按下 Ctrl-Alt-F1
到 Ctrl-Alt-F6
访问。当一个会话被访问的时候, 它会显示登录提示框,我们需要输入用户名和密码。要从一个虚拟控制台转换到另一个, 按下 Alt
和 F1-F6
(中的一个)。返回图形桌面,按下 Alt-F7
。
但是上面的命令不是在所有的 Linux
发行版中都奏效;
例如,博主的 Ubuntu
系统,上述命令就无效,对应的功能分别如下:
ctrl + alt + F1
锁屏alt + F2
从虚拟终端切回桌面ctrl + alt + F3 -F6
虚拟终端(一共有4个)alt + F3 - F6
切换虚拟终端