《The Linux Command Line 》读书笔记(一)

192 阅读4分钟

第一章:引言

“Linux”指的是内核以及在一个典型的 Linux 发行版中所包含的所有免费及开源软件;在某些领域,把 Linux 操作系统称为“GNU/Linux 操作系统”

第二章:什么是shell

shell :一个程序,它接受从键盘输入的命令, 然后把命令传递给操作系统去执行。几乎所有的 Linux 发行版都提供一个名为 bash 的 来自 GNU 项目的 shell 程序。

终端仿真器:一个和 shell 交互的图形用户界面,如terminal。

使用

1、启动终端仿真器,可以看到shell 提示符,表示准备接受输入;通常包括你的用户名@主机名,紧接着当前工作目录(稍后会有更多介绍)和一个美元符号。

如果提示符的最后一个字符是“#”, 而不是“$”, 那么这个终端会话就有超级用户权限。 这意味着,我们或者是以 root 用户的身份登录,或者是我们选择的终端仿真器提供超级用户(管理员)权限。

[me@linuxbox ~]$

2、简答命令

// 显示系统当前时间和日期
[me@linuxbox ~]$ date
Thu Oct 25 13:51:54 EDT 2007
// 显示当前月份的日历
[me@linuxbox ~]$ cal
October 2007
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
// 查看磁盘剩余空间的数量
[me@linuxbox ~]$ df
// 显示空闲内存的数量
[me@linuxbox ~]$ free
// 结束终端会话
[me@linuxbox ~]$ exit

第三章:文件系统中跳转

文件系统树:以分层目录结构来组织所有文件。 所有文件组成了一棵树型目录(在其它系统中叫做文件夹), 这个目录树可能包含文件和其它的目录。文件系统中的第一级目录称为根目录。 根目录包含文件和子目录,子目录包含更多的文件和子目录,依此类推。

Windows每个存储设备都有一个独自的文件系统。类 Unix 操作系统总是只有一个单一的文件系统树,不管有多少个磁盘或者存储设备连接到计算机上。

  • pwd — 打印出当前工作目录名
  • cd — 更改目录
  • ls — 列出目录内容

绝对路径:开始于根目录,紧跟着目录树的一个个分支,一直到达所期望的目录或文件, 如 /usr/bin。

相对路径:开始于工作目录

1、以 “.” 字符开头的文件名是隐藏文件。这仅表示,ls 命令不能列出它们, 用 ls -a 命令就可以了。 2、文件名和命令名是大小写敏感的。

第四章:研究操作系统

一、ls

  • ls — 列出目录内容
  • ls /usr —— 指定要列出内容的目录
  • ls -l —— 以长模式输出得到更多的细节

// 列出多个指定目录的内容,如用户家目录(用字符“~”代表)和/usr 目录的内容
[me@linuxbox ~]$ ls ~ /usr
/home/me:
Desktop  Documents  Music  Pictures  Public  Templates  Videos

/usr:
bin  games      kerberos  libexec  sbin   src
etc  include    lib       local    share  tmp

二、file

  • file — 确定文件类型
// 调用 file 命令后,file 命令会打印出文件内容的简单描述
[me@linuxbox ~]$ file picture.jpg
picture.jpg: JPEG image data, JFIF standard 1.01

三、less

一个用来浏览文本文件的程序,文本是简单的字符与数字之间的一对一映射,计算机只能理解数字,这样所有的数据都被转换成数值来表示。

  • less — 浏览文件内容

四、选项和参数

命令名经常会带有一个或多个用来更正命令行为的选项, 更进一步,选项后面会带有一个或多个参数,这些参数是命令作用的对象。

五、符号链接(软链接或者 symlink )

lrwxrwxrwx 1 root root 11 2007-08-11 07:34 libc.so.6 -> libc-2.6.so

展示了一个叫做 “libc.so.6” 的符号链接,这个符号链接指向一个 叫做 “libc-2.6.so” 的共享库文件。这意味着,寻找文件 “libc.so.6” 的程序,实际上得到是文件 “libc-2.6.so”。

优点:

  • 创建一个指向新版本的符号链接,解决了版本升级问题;
  • 删除指向新版本的符号链接,然后创建指向旧版本的符号链接,解决了版本回溯的问题。

第五章:操作文件和目录

一、通配符

shell 提供了通配符来帮助你快速指定一组文件名, 使用通配符允许你依据字符类型来选择文件名。

通配符范例

二、mkdir - 创建目录

三、cp - 复制文件和目录

cp 选项

cp 实例

四、mv - 移动和重命名文件

mv 使用方法与 cp 很相像,几乎仅将cp更换成mv即可。

五、rm - 删除文件和目录

类 Unix 的操作系统没有复原命令。一旦你用 rm 删除了一些东西, 它就消失了。 小贴士:无论什么时候,rm 命令用到通配符, 用 ls 命令来测试通配符。这会让你看到要删除的文件列表。然后按下上箭头按键,重新调用 刚刚执行的命令,用 rm 替换 ls。

六、ln — 创建链接

// 创建硬链接
ln file link 
// 创建符号链接,”item” 可以是一个文件或是一个目录。
ln -s item link

硬链接:

在默认情况下,每个文件有一个硬链接,这个硬链接给文件起名字。当我们创建一个 硬链接以后,就为文件创建了一个额外的目录条目。

两个重要局限性:

  • 一个硬链接不能关联它所在文件系统之外的文件。这是说一个链接不能关联 与链接本身不在同一个磁盘分区上的文件。
  • 一个硬链接不能关联一个目录。

当一个硬链接被删除时,这个链接 被删除,但是文件本身的内容仍然存在(这是说,它所占的磁盘空间不会被重新分配), 直到所有关联这个文件的链接都删除掉。


符号链接:

创建符号链接是为了克服硬链接的局限性。符号链接生效,是通过创建一个 特殊类型的文件,这个文件包含一个关联文件或目录的文本指针。在这一方面, 它们和 Windows 的快捷方式差不多。

如果你往一个符号链接里面写入东西,那么相关联的文件也被写入。然而, 当你删除一个符号链接时,只有这个链接被删除,而不是文件自身。如果先于符号链接 删除文件,这个链接仍然存在,但是不指向任何东西。在这种情况下,这个链接被称为 坏链接。