什么是shell
启动终端仿真器!一旦它运行起来,我们应该看到一行像这样的文字
root@iZbp1964mdfcasypu6zftxZ:/#
如果提示符的最后一个字符是“#”, 而不是“$”, 那么这个终端会话就有超级用户权限。 这意味着,我们或者是以 root 用户的身份登录,或者是我们选择的终端仿真器提供超级用户(管理员)权限。
虽然,shell 是和键盘打交道的,但你也可以在终端仿真器里使用鼠标。X 窗口系统 (使 GUI 工作的底层引擎)内建了一种机制,支持快速拷贝和粘贴技巧。 如果你按下鼠标左键,沿着文本拖动鼠标(或者双击一个单词)高亮了一些文本, 那么这些高亮的文本就被拷贝到了一个由 X 管理的缓冲区里面。然后按下鼠标中键, 这些文本就被粘贴到光标所在的位置。试试看。
注意: 不要在一个终端窗口里使用 Ctrl-c 和 Ctrl-v 快捷键来执行拷贝和粘贴操作。 它们不起作用。对于 shell 来说,这两个控制代码有着不同的含义,它们在早于 Microsoft Windows (定义复制粘贴的含义)许多年之前就赋予了不同的意义
尝试一些简单的命令
第一个命令是date,这个命令显示系统当前时间和日期
root@iZbp1964mdfcasypu6zftxZ:/# date
Mon Oct 29 18:01:07 CST 2018
一个相关联的命令,cal, 它默认显示当前月份的日历
root@iZbp1964mdfcasypu6zftxZ:/# cal
October 2018
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
查看磁盘剩余空间的数量,输入df
root@iZbp1964mdfcasypu6zftxZ:/# df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 489644 0 489644 0% /dev
tmpfs 101604 2868 98736 3% /run
/dev/vda1 41151808 4653272 34385108 12% /
tmpfs 508008 0 508008 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
tmpfs 508008 0 508008 0% /sys/fs/cgroup
tmpfs 101604 0 101604 0% /run/user/0
显示空闲内存的数量,输入命令free
root@iZbp1964mdfcasypu6zftxZ:/# free
total used free shared buff/cache available
Mem: 1016020 699016 88376 4252 228628 154744
Swap: 0 0 0
结束终端会话
我们可以通过关闭终端仿真器窗口,或者是在 shell 提示符下输入 exit 命令来终止一个终端会话:
root@iZbp1964mdfcasypu6zftxZ:/# exit
幕后控制台
即使终端仿真器没有运行,在后台仍然有几个终端会话运行着。它们叫做虚拟终端 或者是虚拟控制台。在大多数 Linux 发行版中,这些终端会话都可以通过按下 Ctrl-Alt-F1 到 Ctrl-Alt-F6 访问。当一个会话被访问的时候, 它会显示登录提示框,我们需要输入用户名和密码。要从一个虚拟控制台转换到另一个, 按下 Alt 和 F1-F6(中的一个)。返回图形桌面,按下 Alt-F7。
文件系统中跳转
我们需要学习的第一件事(除了打字之外)是如何在 Linux 文件系统中跳转。 在这一章节中,我们将介绍以下命令:
- pwd -打印当前工作路径
- cd -改变当前工作目录
- ls -列出目录内容
绝对路径
绝对路径开始于根目录,紧跟着目录树的一个个分支,一直到达所期望的目录或文件。 例如,你的系统中有一个目录,大多数系统程序都安装在这个目录下。这个目录的 路径名是 /usr/bin。它意味着从根目录(用开头的“/”表示)开始,有一个叫 “usr” 的 目录包含了目录 “bin”。
root@iZbp1964mdfcasypu6zftxZ:~# cd /usr/bin
相对路径
绝对路径从根目录开始,直到它的目的地,而相对路径开始于工作目录。 为了做到这个(用相对路径表示), 我们在文件系统树中用一对特殊符号来表示相对位置。 这对特殊符号是 “.” (点) 和 “…” (点点)。
符号 “.” 指的是工作目录,”…” 指的是工作目录的父目录。下面的例子说明怎样使用它。 让我们再次把工作目录切换到 /usr/bin:
root@iZbp1964mdfcasypu6zftxZ:~# cd /usr/bin
root@iZbp1964mdfcasypu6zftxZ:/usr/bin# pwd
/usr/bin
好了,比方说我们想更改工作目录到 /usr/bin 的父目录 /usr。可以通过两种方法来实现。可以使用以下绝对路径名:
root@iZbp1964mdfcasypu6zftxZ:/usr/bin# cd /usr
root@iZbp1964mdfcasypu6zftxZ:/usr# pwd
/usr
或者,也可以使用相对路径
root@iZbp1964mdfcasypu6zftxZ:/usr/bin# cd ..
root@iZbp1964mdfcasypu6zftxZ:/usr# pwd
/usr
同样地,从目录 /usr/到/usr/bin也有两种途径.可以使用绝对路径:
root@iZbp1964mdfcasypu6zftxZ:/usr# cd /usr/bin
root@iZbp1964mdfcasypu6zftxZ:/usr/bin# pwd
/usr/bin
也可以使用相对路径
root@iZbp1964mdfcasypu6zftxZ:/usr# cd ./bin
root@iZbp1964mdfcasypu6zftxZ:/usr/bin# pwd
/usr/bin
有一件很重要的事,我必须指出来。在几乎所有的情况下,你可以省略”./”。它是隐含的。输入:
root@iZbp1964mdfcasypu6zftxZ:/usr# cd bin
实现相同的效果。如果不指定一个文件的路径,那它被默认为在当前工作目录下。
有用的快捷键
- cd 更改工作目录到你的家目录
- cd - 更改工作目录到先前的工作目录。
- cd ~user_name 更改工作目录到用户家目录。例如, cd ~bob 会更改工作目录到用户“bob”的家目录。
关于文件名的重要规则
-
以 “.” 字符开头的文件名是隐藏文件。这仅表示,ls 命令不能列出它们, 用 ls -a 命令就可以了。当你创建帐号后,几个配置帐号的隐藏文件被放置在 你的家目录下。稍后,我们会仔细研究一些隐藏文件,来定制你的系统环境。 另外,一些应用程序也会把它们的配置文件以隐藏文件的形式放在你的家目录下面。
-
文件名和命令名是大小写敏感的。文件名 “File1” 和 “file1” 是指两个不同的文件名。
-
Linux 没有“文件扩展名”的概念,不像其它一些系统。可以用你喜欢的任何名字 来给文件起名。文件内容或用途由其它方法来决定。虽然类 Unix 的操作系统, 不用文件扩展名来决定文件的内容或用途,但是有些应用程序会。
-
虽然 Linux 支持长文件名,文件名可能包含空格,标点符号,但标点符号仅限 使用 “.”,“-”,下划线。最重要的是,不要在文件名中使用空格。如果你想表示词与 词间的空格,用下划线字符来代替。过些时候,你会感激自己这样做。