03-Linux系统
通过导航,了解了如何在文件系统中进行跳转,接下来要学习一些对研究Linux系统很有帮助的命令。
- ls:列出目录内容。
- file:确定文件类型。
- less:查看文件内容。
一、ls 命令的乐趣
ls 命令很可能是用户最常使用的命令。 通过 ls 命令可以查看目录内容,确定各种重要文件和目录的属性。
1.ls 命令
(1)查看当前目录
直接输入 ls 命令查看当前工作目录中包含的一系列文件和子目录。
(2)ls指定显示目录
ls 命令后添加路径名(可以是绝对路径名、相对路径名)。
例
显示 /usr 的目录内容 和 /usr/bin 的目录内容。(这里我用的是绝对路径名)
显示 /usr/bin 的目录内容。(这里我用的是相对路径名)
(3)指定多个目录
指定多个目录时,每个目录用空格分开。
例:
列出用户主目录(由符号“ ~ ”表示)和 /usr 目录的内容。
列出 /usr 和 /usr/bin 目录的内容。
(4)改变输出格式
可通过改变输出格式来得到更多细节。 在命令中加上 -l ,我们可以将输出以长格式显示。
2.选项和参数
通常,命令后面跟有 一个或多个选项,带有不同选项的命令其功能也不一样。 此外,命令后面跟有 一个或多个参数,这些参数是命令作用的对象。 所以大部分命令看起来如下: command -options arguments
(1)短选项
大部分命令使用的选项是在单个字符前加上连字符,如 -l。
(2)长选项
但是,很多命令(包括GNU项目里的命令)也支持在单字前面加上两个连字符的长选项,如 --reverse。
(3)多个短选项
而且,很多命令也允许多个短选项串在一起使用,如 -lt。
例1
ls 命令包含了两个选项: l选项:使用长格式输出 t选项:以文件修改日期的先后将结果进行排序。
例2
再加上长选项 --reverse,则结果会以相反的顺序输出。
(4)最常用的选项
ls 命令有大量可用的选项。最常用的选项如下表:
选项 |
长选项 |
含义 |
---|---|---|
-a |
-all |
列出所有文件,包括以点号开头的文件,这些文件通常是不列出来的(比如隐藏的文件) |
-d |
--directory |
|
-F |
-classify |
|
-h |
--human-readable |
|
-l |
使用长格式显示结果 |
|
-r |
--reverse |
以相反的顺序显示结果。通常,ls命令按照字母升序排列显示结果 |
-S |
按文件大小对结果排序 |
|
-t |
按修改时间排序 |
3.进一步了解长列表格式
-l 选项使得 ls 命令以长格式显示其结果。 这种格式包含了大量的有用信息。
ls 长列表字段
字段 |
含义 |
---|---|
drwxrwxr-x |
对文件的访问权限。第一个字符表示文件的类型:-,表示该文件是一个普通文件;d,表示目录。 紧接着3个字符表示文件所有者的访问权限。再接着3个字符表示文件所属组中 成员的访问权限,最后3个字符表示其他所有人的访问权限。 |
第2列 |
文件硬链接数目。 |
第3列 |
文件所有者的用户名。 |
第4列 |
文件所属用户组的名称。 |
第5列 |
以字节数表示的文件大小。 |
第6、7、8列 |
上次修改文件的日期和时间 |
最后1列 |
文件名 |
二、file 命令确定文件类型
在探索系统过程中,文件所包含的内容是非常有用的。 因此,我们可以使用 file 命令来确定文件类型。 Linux 系统中的文件名不需要反映文件的内容,例如:当我们看到 picture.png 这样一个文件名,会自然而然的想到该文件包含一张png格式的压缩图像,但是在Linux中却没这个必要。
1.调用 file 命令
file filename
调用后,file 命令会打印出文件内容的简短说明,如下图:
文件的种类有很多。事实上,再类UNIX操作系统(比如Linux)中,有个普遍的观念是“所有的东西都是一个文件”。 尽管我们已经很熟悉系统中的许多文件,比如说 PNG 和 JPEG 文件。但是也有一些文件比较含蓄,还有一些文件对我们而言相当陌生。
三、less 命令查看文件内容
less 命令 是一种查看文本文件的程序。纵观 Linux 系统,很多文件都含有我们可以阅读的文本。 而 less 程序为我们查看文件提供了方便。
1.为什么?
为何要查看文本文件呢? 因为包含系统设置的多数文件(即配置文件)是以这种形式存储的,而阅读这些文件有利于更好地理解系统是如何工作的。 此外,系统使用的许多实际程序(脚本)也是以这种格式存储的
2.什么是文本?
有很多方式可在计算机表达信息。所有的方式都涉及 信息与一些数字 之间确立一种关系,而这些数字可以用来表达信息。因为,计算机只能理解数字,并且所有的数据都将转换成数值来表示。有些表示方法非常复杂,也有一些很简单。其中ASCⅡ文本是出现最早也是最简单的。 文本是字符与数字之间简单的一对一映射,它很紧凑。由 50 个字符构成的文本在转换为数据时,也是50个字节。这与文本处理器文档中的文本是不一样的。 纵观 Linux 系统,很多文件是以文本格式存储的。
3.使用
less filename
一旦运行,我们就可查看文件内容,如果文件不止一页 less 程序允许我们前后滚动文件。 按 Q 键可退出less程序。
4.less 程序最常用的键盘命令
命令 |
功能 |
---|---|
PAGE UP 或 b |
后翻一页 |
PAGE DOWN 或 Spacebar |
前翻一页 |
向上箭头键 |
向上一行 |
向下箭头键 |
向下一行 |
G |
跳转到文本文件的末尾 |
lG 或 g |
跳转到文本文件的开头 |
/charecters |
向前查找指定的字符串 |
n |
向前查找下一个出现的字符串,这个字符串是之前所指定查找的 |
h |
显示帮助屏幕 |
q |
退出 less |
四、快速浏览
Linux 系统中,文件系统布局与其它类UNIX系统相似,因为它们不是严格但很接近的遵循名为 Linux文件系统层次标准的标准。 通过对文件系统的探索来找寻 Linux 系统正常运行所依赖的基础。
普通用户不具有管理文件系统的权限。 如果一条命令无法执行某些功能,那么继续选择其他命令。Linux没有秘密可言。
1.Linux 系统中的一些目录
目录 |
内容 |
---|---|
/ |
根目录,一切从这里开始。 |
/bin |
包含系统启动和运行所必需的二进制文件(程序),包含Linux内核、最初的RAM磁盘映像(系统启动时,驱动程序会用)、以及启动加载程序。 |
/boot |
/boot/grub/grub.conf 或 menu.lst 用来配置启动加载程序。/boot/vmlinuz Linux内核 |
/dev |
包含设备特殊节点的特殊目录 |
/etc |
/etc/passwd:用户账号列表 |
/home |
在通常的配置中,每个用户都会在/home 目录中拥有一个属于自己的目录。 |
/lib |
包含核心系统程序使用的共享库文件。 |
五、符号链接
1.符号链接
若是 条目信息的第一个字母是 l ,而且看起来像是有两个文件名,这种特殊的文件叫做符号链接(又叫软链接)。 在大多类UNIX系统中,一个文件很可能采用多个名字来引用(虽然这种特性意义并不明显,但真的很有用)。
(1)怎么做?
比如说有这么个场景:一个程序需要使用包含在 foo 文件中的一个共享资源,但 foo 版本更新频繁。这样,在文件名中包含版本号会很好,因此管理员或其他相关方就能看到安装了 foo 的哪个版本。这样就出现了一个问题:如果改变了共享资源的名称,就必须跟踪每个可能使用了该共享资源的程序,并且当安装了该资源新的版本后,都要让使用它的程序去寻找新的资源名,这太过麻烦,因此出现了符号链接。 假定foo的安装版本是2.6,它的文件名是 foo-2.6,然后创建一个符号链接 foo 指向 foo-2.6。这就意味着,当我们打开foo文件时,实际上打开的是文件 foo-2.6。依赖 foo 文件的程序能够找到它,并且也能看到实际安装的版本。当需要升级到 foo-2.7 时,只需将该文件添加到系统里,删除符号链接文件 foo ,创建一个指向新版本的符号链接即可。这样不仅解决了版本升级的问题,还可将两种版本都保存在机器里。假如 foo-2.7 存在程序错误,需切换到旧版本时。同样,只需删除指向新版本的符号链接,重新创建指向旧版本的符号链接即可。
2.硬链接
它同样允许文件有多个文件,但是处理方式是不同的。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android的八种对话框的实现代码示例
- Android使用RecyclerView实现今日头条频道管理功能
- Liunx(centos8)下的yum的基本用法和实例(推荐)
- Android中LeakCanary检测内存泄漏的方法
- Linux 查看磁盘IO并找出占用IO读写很高的进程
- Android实现简单的拨号器功能
- Android调用系统自带浏览器打开网页的实现方法
- Linux之删除带有空格的文件(不是目录)
- Android自定义AvatarImageView实现头像显示效果
- 如何使用win10内置的linux系统启动spring-boot项目
- Android 实现单线程轮循机制批量下载图片
- Android开发之项目模块化实践教程
- Linux centos7 下安装 phpMyAdmin的教程
- 简单学习Android TextView
- Android 滑动返回Activity的实现代码