文章目录
1. 什么是shell
一说到命令行,我们真正指的是shell。shell 就是一个程序,它接受从键盘输入的命令,然后把命令传递给操作系统去执行。几乎所有的Linux发行版都提供一个名为bash的来自GUN项目的shell程序。
1.1 终端仿真器
用来与shell交互的程序。
也就是我们计算机中的终端(terminal)。
[me@linuxbox ~]$
这个是shell提示符,如果提示符最后一个字符是”#“,而不是”$",那么这个终端会话就有超级用户权限。
[me@linuxbox ~]$ date #显示日期
[me@linuxbox ~]$cal #显示日历
[me@linuxbox ~]$df #查看磁盘剩余空间的数量
[me@linuxbox ~]$free #显示空闲内存的数量
[me@linuxbox ~]$exit #结束终端会话
幕后控制台
即使终端仿真器没有运行,在后台仍然有几个终端会话运行着。它们叫做虚拟终端或者虚拟控制台。在大多数Linux发行版中,这些终端会话都可以通过按下Ctrl-Alt-F1 到 Ctrl-Alt-F6 访问。当一个会话被访问的时候,它会显示登录提示框,我们需要输入用户名和密码。
2. 文件系统中跳转
pwd - 打印出当前工作目录名
cd - 更改目录
ls - 列出目录内容
2.1 理解文件系统树
linux系统已分层目录结构来组织所有文件,这就意味着所有文件组成一棵树形目录(文件夹),这个目录树可能包含文件和其他的目录。
linux总是只有一个单一的文件系统树,不管有多少个磁盘或者存储设备连接到计算机上。存储设备连接到(挂载到)目录树的各个节点上。
当我们首次登陆系统(终端仿真器)后,当前工作目录是我们的家目录。每个用户都有他自己的家目录,当用户已普通用户的身份控制系统时,家目录是唯一允许用户写入文件的地方。
符号“."指的是工作目录,”.."指的是工作目录的父目录。
cd快捷键
快捷键 | 效果 |
---|---|
cd | 更改工作目录到你的家目录 |
cd - | 更改工作目录到先前的工作目录 |
cd ~user-name | 更改工作目录到用户家目录 |
关于文件名的重要规则
- linux没有“文件扩展名”的概念,不像其他一些系统。
- 虽然linux支持长文件名,文件名可能包含空格,标点符号,但标点符号仅限使用“.”,“-”,下划线。最重要的是,不要在文件名中使用空格,如果你想表示词与词间的空格,用下划线字符来代替。
3. 探究操作系统
ls - 列出目录内容
file - 确定文件类型
less - 浏览文件内容
3.1 ls乐趣
通过ls,我们可以知道目录的内容,以及各种各样重要文件和目录属性。
[me@linuxbox ~]$ ls #当前目录下内容
[me@linuxbox ~]$ls /usr #指定目录下内容
[me@linuxbox ~]$ls ~ /usr 多个指定目录下内容
3.2 选项和参数
命令名经常会带有一个或多个用来更正命令行为的选项,更进一步,选项后面会带有一个或多个参数,这些参数是命令作用的对象。其格式如:
command -options arguments
大多数命令使用的选项,是由一个中划线加上一个字符组成,例如“-l”,但是许多命令,也支持长选项,长选项由两个中划线加上一个字组成。当然,许多命令也允许把多个短选项串在一起使用。
[me@linuxbox ~]$ls -lt --reverse#两个短选项加一个长选项
选项 | 长选项 | 描述 |
---|---|---|
-a | –all | 列出所有文件,包括隐藏文件 |
-d | –directory | 把这个选项与-l选项结合使用,可以看到所指定目录的详细信息,而不是目录中的内容 |
-F | –classify | 这个选项会在每个所列出的名字后面加上一个指示符,例如,如果名字是目录名,则会加上一个’/'字符 |
-h | –human-readable | 当以长格式列出时,以人们可读的格式,而不是以字节数来显示文件的大小 |
-l | 以长格式显示结果 | |
-r | –reverse | 以相反的顺序来显示结果 |
-S | 命令输出结果按照文件大小来排序 | |
-t | 按照修改时间来排序 |
3.3 深入研究长格式输入
drwxr-xr-x 4 root staff 128B 12 9 14:37 seaborn-data
长格式列表的字段
字段 | 含义 |
---|---|
drwxr-xr-x | 对于文件的访问权限。第一个字符指明文件类型。在不同类型之间,开头的“-”说明是一个普通文件,“d“表明是一个目录。其后三个字符是文件所有者的访问权限,再其后的三个字符是文件所属组中成员的访问权限,最后三个字符是其他所有人的访问权限。 |
4 | 文件的硬链接数目 |
root | 文件所有者的用户名 |
staff | 文件所属用户组的名字 |
128B | 文件的大小 |
12 9 14:37 | 上次修改文件的时间和日期 |
seaborn-data | 文件名 |
3.4 确定文件类型
file命令用来确定文件的类型。
file filename
3.5 用less浏览文件内容
less 命令是一个用来浏览文本文件的程序。
文本是简单的字符和数字的一对一映射,它非常紧凑。五十个字符的文本翻译成五十个字节的数据,文本只是包含简单的字符到数字的映射。
在计算机中,有许多方法可以表达信息,但是计算机只能理解数字,这样所有的数字都被转换成数值来表示。
为什么我们要查看文本文件呢?因为许多包含系统设置的文件(配置文件),是以文本格式存储的,阅读它们可以更深入地理解系统是如何工作的。另外,许多系统所用到的实际程序(脚本)也是以这种格式存储的。
less命令是这样使用的:
less filename
一旦运行起来,less程序允许你前后滚动文件,按”q”键退出。
less命令
命令 | 结果 |
---|---|
page up or b | 向上翻滚一页 |
page down or space | 向下翻滚一页 |
up arrow | 向上翻滚一行 |
down arrow | 向下翻滚一行 |
G | 移动到最后一行 |
1G or g | 移动到开头一行 |
/characters | 向前查找指定的字符串 |
n | 向前查找下一个出现的字符串,这个字符串是之前所指定查找的 |
h | 显示帮助屏幕 |
q | 退出less程序 |
Linux 系统中的目录
目录 | 含义 |
---|---|
/ | 根目录 |
/bin | 包含系统启动和运行所必须的二进制程序 |
/boot | 包含Linux内核、初始化RAM磁盘映像和启动加载程序。 有趣的文件:1./root/grub/grub.conf or menu.lst,被用来配置启动加载程序。 2./boot/vmlinuz,Linux内核。 |
/dev | 这是一个包含设备结点的特殊目录。在这个目录中,系统维护着所有设备的列表 |
/etc | 这个目录包含所有系统层面的配置文件。它也包含一系列的shell脚本,在系统启动时,这些脚本会开启每个系统服务。这个目录中的任何文件应该是可读的文本文件。一些文件:1. /etc/crontab,定义自动运行的任务。 2. /etc/fstab,包含存储设备的列表,以及与他们相关的挂载点。3. /etc/passwd,包含用户账号列表。 |
/home | 在通常的配置环境下,系统会在/home 下,给每个用户分配一个目录。普通用户只能 在自己的目录下写文件。这个限制保护系统免受错误的用户活动破坏。 |
/lib | 包含核心系统程序所使用的共享库文件。 |
/lost+found | 每个使用 Linux 文件系统的格式化分区或设备,例如 ext3文件系统, 都会有这个目录。当部分恢复一个损坏的文件系统时,会用到这个目录。这个目录应该是空的,除非文件系统 真正的损坏了。 |
/media | 在现在的 Linux 系统中,/media 目录会包含可移动介质的挂载点, 例如 USB 驱动器,CD-ROMs 等等。这些介质连接到计算机之后,会自动地挂载到这个目录结点下。 |
/mnt | 在早些的 Linux 系统中,/mnt 目录包含可移动介质的挂载点。 |
/opt | 这个/opt 目录被用来安装“可选的”软件。这个主要用来存储可能 安装在系统中的商业软件产品。 |
/proc | 这个/proc 目录很特殊。从存储在硬盘上的文件的意义上说,它不是真正的文件系统。 相反,它是一个由 Linux 内核维护的虚拟文件系统。它所包含的文件是内核的窥视孔。这些文件是可读的, 它们会告诉你内核是怎样监管计算机的。 |
/root | root 帐户的家目录。 |
/sbin | 这个目录包含“系统”二进制文件。它们是完成重大系统任务的程序,通常为超级用户保留。 |
/tmp | 这个/tmp 目录,是用来存储由各种程序创建的临时文件的地方。一些配置导致系统每次 重新启动时,都会清空这个目录。 |
/usr | 在 Linux 系统中,/usr 目录可能是最大的一个。它包含普通用户所需要的所有程序和文件。 |
/usr/bin | /usr/bin 目录包含系统安装的可执行程序。通常,这个目录会包含许多程序。 |
/usr/lib | 包含由/usr/bin 目录中的程序所用的共享库。 |
/usr/local | 这个/usr/local 目录,是非系统发行版自带程序的安装目录。 通常,由源码编译的程序会安装在/usr/local/bin 目录下。新安装的 Linux 系统中会存在这个目录, 并且在管理员安装程序之前,这个目录是空的。 |
/usr/sbin | 包含许多系统管理程序。 |
/usr/share | /usr/share 目录包含许多由/usr/bin 目录中的程序使用的共享数据。 其中包括像默认的配置文件、图标、桌面背景、音频文件等等。 |
/usr/share/doc | 大多数安装在系统中的软件包会包含一些文档。在/usr/share/doc 目录下, 我们可以找到按照软件包分类的文档。 |
/var | 除了/tmp 和/home 目录之外,相对来说,目前我们看到的目录是静态的,这是说, 它们的内容不会改变。/var 目录存放的是动态文件。各种数据库,假脱机文件, 用户邮件等等,都位于在这里。 |
/var/log | 这个/var/log 目录包含日志文件、各种系统活动的记录。这些文件非常重要,并且 应该时时监测它们。其中最重要的一个文件是/var/log/messages。注意,为了系统安全,在一些系统中, 你必须是超级用户才能查看这些日志文件。 |
3.6 符号链接
lrwxrwxrwx 1 root root 11 2007-08-11 07:34 libc.so.6 -> libc-2.6.so
这里的’1‘指的是符号链接的个数,这里展示了一个叫做’libc-6‘的符号链接,指向一个叫做’libc-2.6.so‘文件。