Linux Linux 漫游之旅

一些对使用 Linux 系统有帮助的命令

2019-06-23  本文已影响23人  错过了过去

在上篇文章中,主要是学会了怎么在文件目录之间跳转,其实就是一个 cd 命令,然后要理解相对路径和绝对路径的概念。今天我们继续来学习一些对使用 Linux 系统有帮助的命令。

1. ls

ls 命令前面已经有介绍过,就是用来查看当前目录包含哪些文件和目录的,但是它不是一个简单的命令,它有很多有用的参数,只要我们加上这些参数,就能看到更详细的信息。

打开终端模拟器,输入 ls ,回车后我们就能看到当前目录下包含哪些文件和目录,当然隐藏的目录和文件是看不到的。除此之外,我们还可以在 ls 命令后面跟一个空格,然后加上想要查看的目录的相对路径或者绝对路径就可以查看那个目录下包含的文件和目录了。不光如此,我们还可以同时在 ls 命令后面跟两个路径,用空格隔开,这在比较两个目录下包含的内容的时候挺有用的,下图是例子:

20190323175656813_437827590.png

在上图中,我的第一个命令是:ls,即查看当前目录;第二个命令是:ls ../,即查看当前目录的上级目录;第三个命令是:ls /usr/ code/,即同时查看 /usr/ 目录和 ./code/ 目录,再次提醒:./ 可以省略。

1.1. ls -l

这里先说一个题外话,不然我每次介绍命令参数的时候都要说,很累的,就是一种约定:我们在命令后面加参数的时候,一般都是先输入命令,然后输入一个空格,在输入一个 -- 后面紧跟命令参数,例如:ls -l,ls 是命令,空格 + - 是约定,l 是参数。

好了,以后我说命令加什么参数我就不会再强调命令后面要跟空格 + - 了。进入正题,```ls`` 命令后面跟参数 l,是改变 ls 输出的格式为长格式,所谓长格式就是显示的不一样了,信息更多了。如下图:

20190323181732468_1552421594.png

ls 这个命令有很多的参数,下面我列出几个比较常用的参数,其余的参数大家可以使用 ls --helpman ls 来查看,man 命令我们后面会讲到,在 Linux 下有句话叫做:不会的问题就问男人。这里的男人指的就是 man

我常用的参数就是 laAhS 这几个,顺便说一下,l 参数输出的长格式的含义我之前的文章有介绍过,大家可以点击这个链接查看:Linux 文件权限介绍

2. file

前面我们有讲过 Linux 系统下文件的后缀名并不表示文件的类型,所以像 1.jpg 这样的文件我们期望它是一张图片,但是在 Linux 系统下有时并不是这样,所以我们要确认一个文件的类型就需要使用 file 这个命令了。

当我们在 Linux 系统下需要查看一个文件的类型的时候,我们可以像这样:fiel 1.jpg,如下图:

20190323185451949_822231834.png

可以看出,1.jpg 是 JPEG 图片数据,这如我们的期望,那我们再来看看下图,你就知道为什么我们在 Linux 系统下不要光看文件名和后缀来确定文件的类型了,还是要使用 file 命令,用法就是 file 后面跟文件的名字。

20190323185717669_630106428.png

看到了吧,2.jpg 居然是一个文本文件,不是图片文件。

3. less 和 more

less 命令和 more 两个命令是用来查看文本文件的工具,我们可以输入 less 或者 more 命令,然后后面跟一个文本文件,就可以上下滚动查看文本文件的内容了。要退出就按一下 q。

下面是 less 命令的一些快捷键:

20190323190543051_369753344.png

那 more 命令是什么呢?其实 less 命令是 more 程序的改进版,less is more(色即是空)。

4. 符号链接

符号链接分为软链接和硬链接,我们先来看看软链接,更多关于符号链接的知识,我们后面再讨论,先来看看下图中的文件的长格式:

20190323191142008_188971850.png

我们看到权限的第一位是 l,我么之前讲过,第 1 位,有三种取值:普通文件(-)、目录(d),符号链接(l)。所以上图中的 server 是一个符号链接,它真正指向的是 /run/user/1000/gvfs/smb-share:server=192.168.20.204,share=home 。那为什么需要软链接呢?

描绘一下这样的情景:一个程序要求使用某个包含在名为“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” 有个错误(该死的开发者!),那我们得回到原来的版本。 一样的操作,我们只需要删除指向新版本的符号链接,然后创建指向旧版本的符号链接就可以了。

在上面列出的目录(来自于 Fedora 的 /lib 目录)展示了一个叫做 “libc.so.6” 的符号链接,这个符号链接指向一个 叫做 “libc-2.6.so” 的共享库文件。这意味着,寻找文件 “libc.so.6” 的程序,实际上得到是文件 “libc-2.6.so”。

5. 多说一点

今天学会了新的命令,要用起来,不要担心把系统文件弄坏了,今天学习的命令不会改变文件的内容,所以尽情的使用它们查看 Linux 系统下不同目录下的不同内容吧,下面是 Linux 一些比较常用到的目录:

好了,今天的分享就到这里。

欢迎关注微信公众号:Linux 漫游之旅。最新文章会在这里首发,免费提供 CSDN 下载服务。

上一篇 下一篇

猜你喜欢

热点阅读