Linux操作系统--文件目录(六)

一、Linux常用命令

1. ls命令:显示当前目录下的文件

ls 是最常见的目录操作命令,主要作用是显示目录下的内容。这个命令的基本信息如下:
命令名称:ls。
英文原意:list。
所在路径:/bin/ls。
执行权限:所有用户。
功能描述:显示目录下的内容。
命令格式
[root@localhost ~]#ls [选项][文件名或目录名]

选项:
-a:显示所有文件;
--color=when:支持颜色输出,when 的值默认是 always(总显示颜色),也可以是 never(从不显示颜色)和 auto(自动);
-d:显示目录信息,而不是目录下的文件;
-h:人性化显示,按照我们习惯的单位显示文件大小;
-i:显示文件的 i 节点号;
-l:长格式显示;

常见用法

【例 1】"-a"选项

-a 选项中的 a 是 all 的意思,也就是显示隐藏文件。例如:

[root@localhost ~]# ls
anaconda-ks.cfg install.log install.log.syslog
[root@localhost ~]# Is -a
.anaconda-ks.cfg .bash_logout .bashrc install.log .mysql_history .viminfo ...bash_history .bash_profile .cshrc install.log.syslog .tcshrc

可以看到,加入"-a"选项后,显示出来的文件明显变多了。而多出来的这些文件都有一个共同的特性,就是以"."开头。在 Linux 中以"."开头的文件是隐藏文件,只有通过"-a"选项才能査看。

说到隐藏文件的査看方式,曾经有读者问我:"为什么在 Linux 中査看隐藏文件这么简单?这样的话隐藏文件还有什么意义?"其实,他理解错了隐藏文件的含义。

隐藏文件不是为了把文件藏起来不让其他用户找到,而是为了告诉用户这些文件都是重要的系统文件,如非必要,不要乱动!所以,不论是 Linux 还是 Windows 都可以非常简单地査看隐藏文件,只是在 Windows 中绝大多数的病毒和木马都会把自己变成隐藏文件,给用户带来了错觉,以为隐藏文件是为了不让用户发现。

【例 2】"-l"选项

[root@localhost ~]# ls -l
总用量44
-rw-------.1 root root 1207 1 月 14 18:18 anaconda-ks.cfg
-rw-r-r--.1 root root 24772 1 月 14 18:17 install.log
-rw-r-r--.1 root root 7690 1 月 14 18:17 install.log.syslog

权限 引用计数 所有者 所属组 大小 文件修改时间 文件名

我们已经知道"-l"选项用于显示文件的详细信息,那么"-l"选项显示的这 7 列分别是什么含义?

  • 第一列:权限,具体权限的含义将在后续章节中讲解。
  • 第二列:引用计数,文件的引用计数代表该文件的硬链接个数,而目录的引用计数代表该目录有多少个一级子目录。
  • 第三列:所有者,也就是这个文件属于哪个用户。默认所有者是文件的建立用户
  • 第四列:所属组,默认所属组是文件建立用户的有效组,一般情况下就是建立用户的所在组。
  • 第五列:大小,默认单位是字节。
  • 第六列:文件修改时间,文件状态修改时间或文件数据修改时间都会更改这个时间,注意这个时间不是文件的创建时间。
  • 第七列:文件名。

【例 3】"-d"选项

如果我们想査看某个目录的详细信息,例如:

[root@localhost ~]# ls -l /root/
总用量44
-rw-------.1 root root 1207 1 月 14 18:18 anaconda-ks.cfg
-rw-r-r--.1 root root 24772 1 月 14 18:17 install.log
-rw-r-r--.1 root root 7690 1 月 14 18:17 install.log.syslog

这个命令会显示目录下的内容,而不会显示这个目录本身的详细信息。如果想显示目录本身的信息,就必须加入"-d"选项。

[root@localhost ~]# ls -ld /root/
dr-xr-x---.2 root root 4096 1 月 20 12:30 /root/

【例 4】"-h"选项

"ls-l"显示的文件大小是字节,但是我们更加习惯的是千字节用 KB 显示,兆字节用 MB 显示,而"-h"选项就是按照人们习惯的单位显示文件大小的,例如:

[root@localhost ~]# ls -lh
总用量44K
-rw-------.1 root root1.2K 1 月 14 18:18 anaconda-ks.cfg
-rw-r-r--.1 root root25K 1 月 14 18:17 install.log
-rw-r-r--.1 root root7.6K 1 月 14 18:17 install.log.syslog

【例 5】"-i"选项

每个文件都有一个被称作 inode(i 节点)的隐藏属性,可以看成系统搜索这个文件的 ID,而"-i"选项就是用来査看文件的 inode 号的,例如:

[root@localhost ~]# ls -i
262418 anaconda-ks.cfg 262147 install.log 262148 install.log.syslog

2. cd命令:切换目录

cd 是切换所在目录的命令,这个命令的基本信息如下。

  • 命令名称:cd。
  • 英文原意:change directory。
  • 所在路径:Shell 内置命令。
  • 执行权限:所有用户。
  • 功能描述:切换所在目录。

Linux 的命令按照来源方式分为两种:Shell 内置命令和外部命令。所谓 Shell 内置命令,就是 Shell 自带的命令,这些命令是没有执行文件的;而外部命令就是由程序员单独开发的,是命令,所以会有命令的执行文件。Linux 中的绝大多数命令是外部命令,而 cd 命令是一个典型的 Shell 内置命令,所以 cd 命令没有执行文件所在路径。

命令格式

[root@localhost ~]#cd [目录名]

cd 命令是非常简单的命令,仅有的两个选项 -P 和 -L 的作用非常有限,很少使用:

  • -P(大写)是指如果切换的目录是软链接目录,则进入其原始的物理目录,而不是进入软链接目录;
  • -L(大写)是指如果切换的目录是软链接目录,则直接进入软链接目录。

常见用法

【例 1】基本用法
cd 命令切换目录只需在命令后加目录名称即可。例如:

[root@localhost ~]# cd /usr/local/src/
[root@localhost src]#
#进入/usr/local/src/ 目录

通过命令提示符,我们可以确定当前所在目录已经切换。
【例 2】简化用法
cd 命令可以识别一些特殊符号,用于决速切换所在目录,这些符号如表 1 所示。
<caption>表 1 cd 命令的特殊符号</caption>

特殊符号 作 用
~ 代表用户的家目录
- 代表上次所在目录
. 代表当前目录
.. 代表上级目录

这些简化用法以加快命令切换,我们来试试。

[root@localhost src]# cd ~
[root@localhost ~]#

"cd~"命令可以快速回到用户的家目录,cd 命令直接按回车键也是快速切换到家目录。

[root@localhost~]#cd /etc/
[root@localhost etc]#cd
[root@localhost ~]#
# 直接使用 cd 命令,也回到了家目录。

再试试"cd-"命令。

[root@localhost ~]# cd/usr/local/src/
#进入/usr/local/src/目录
[root@localhost src]# cd -/root
[root@localhost ~]#
#"cd-"命令回到进入 src 目录之前的家目录
[root@localhost ~]# cd-
/usr/local/src
[root@localhost src]#
#再执行一遍"cd-"命令,又回到了 /usr/local/src/ 目录。

再来试试"."和".."。

[root@localhost ~]# cd /usr/local/src/
#进入测试目录
[root@localhost src]# cd..
#进入上级目录
[root@localhost local]# pwd
/usr/local
#pwd是査看当前所在目录的命令,可以看到我们进入了上级目 /usr/local/
[root@localhost local]# cd.
#进入当前目录
[root@localhost local]# pwd
/usr/local
#这个命令不会有目录的改变,只是告诉大家"."代表当前目录。

绝对路径和相对路径

cd 命令本身不难,但有两个非常重要的概念,就是绝对路径和相对路径。初学者由于对字符界面不熟悉,所以有大量的错误都是因为对这两个路径没有搞明白,比如进错了目录、打开不了文件、打开的文件和系统文件不一致等。所以我们先来区分一下这两个路径。
首先,我们先要弄明白什么是绝对、什么又是相对。其实我们一直说现实生活中没有绝对的事情,没有绝对的大,也没有绝对的小;没有绝对的快,也没有绝对的慢。这只是由于参照物的不同或认知的局限,导致会暂时认为某些东西可能是绝对的、不能改变的。比如目前我们认为光速是最快的速度,我们不能突破光速的限制。但也有可能随着技术的进步,我们会突破这一限制。
但在 Linux 的路径中是有绝对路径的,那是因为 Linux 有最高目录,也就是根目录。如果路径是从根目录开始,一级一级指定的,那使用的就是绝对路径。例如:

[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# cd /etc/rc.d/init.d/

这些切换目录的方法使用的就是绝对路径。所谓相对路径,就是只从当前所在目录开始,切换目录。例如:

[root@localhost /]# cd etc/
#当前所在路径是/目录,而/目录下有etc目录,所以可以切换
[root@localhost etc]# cd etc/
-bash:cd:etc/:没有那个文件或目录
#而同样的命令,由于当前所在目录改变了,所以就算是同一个命令也会报错,除非在/etc/目录中还有一个etc目录

所以,虽然绝对路径输入更加烦琐,但是更准确,报错的可能性也更小。对初学者而言,笔者还是建议大家使用绝对路径。本教程为了使命令更容易理解,也会尽量使用绝对路径。
再举个例子,假设我当前在 root 用户的家目录中。

[root@localhost ~]#

那么,该如何使用相对路径进入 /usr/local/src/ 目录中呢?

[root@localhost ~]# cd ../usr/local/src/

从我当前所在路径算起,加入".."代表进入上一级目录,而上—级目录是根目录,而根目录中有 usr 目录,就会一级一级地进入 src 目录了。

3. mkdir命令:创建目录(文件夹)

mkdir 是创建目录的命令,其基本信息如下:
命令名称:mkdir。
英文原意:make directories。
所在路径:/bin/mkdir。
执行权限:所有用户。
功能描述:创建空目录。
命令格式
[root@localhost -]# mkdir [选项]目录名

选项:
-p: 递归建立所需目录

mkdir 也是一个非常简单的命令,其主要作用就是新建一个空目录。
常见用法
【例 1】建立目录。

[root@localhost ~]#mkdir cangls
[root@localhost ~]#ls
anaconda-ks.cfg cangls install.log install.log.syslog

我们建立一个名为 cangls 的目录,通过 ls 命令可以査看到这个目录已经建立。注意,我们在建立目录的时候使用的是相对路径,所以这个目录被建立到当前目录下。

【例 2】递归建立目录。
如果想建立一串空目录,可以吗?

[root@localhost ~]# mkdir lm/movie/jp/cangls

mkdir:无法创建目录"lm/movie/jp/cangls":没有那个文件或目录

笔者想建立一个保存电影的目录,结果这条命令报错,没有正确执行。这是因为这 4 个目录都是不存在的,mkdir 默认只能在已经存在的目录中建立新目录。

如果需要建立一系列的新目录,则需要加入"-p"选项,递归建立才可以。例如:

[root@localhost ~]# mkdir -p lm/movie/jp/cangls
[root@localhost ~]# ls
anaconda-ks.cfg cangls install.log install.log.syslog lm
[root@localhost ~]# ls lm/
movie
#这里只査看一级子目录,其实后续的jp目录、cangls目录都已经建立

所谓的递归建立,就是一级一级地建立目录。

4. rmdir命令:删除空目录

既然有建立目录的命令,就一定会有刪除目录的命令 rmdir,其基本信息如下:
命令名称:rmdir。
英文原意:remove empty directories。
所在路径:/bin/rmdir。
执行权限:所有用户。
功能描述:删除空目录。
命令格式
[root@localhost -]# rmdir [选项]目录名

选项:
-p: 递归刪除目录

常见用法

root@localhost ~]#rmdir cangls

就这么简单,命令后面加目录名称即可。既然可以递归建立目录,当然也可以递归删除目录。例如:

[root@localhost ~]# rmdir -p lm/movie/jp/cangls/

但 rmdir 命令的作用十分有限,因为只能刪除空目录,所以一旦目录中有内容,就会报错。例如:

[root@localhost # mkdir test
#建立测试目录
[root@localhost ~]# touch test/boduo
[root@localhost ~]# touch test/longze
#在测试目录中建立两个文件
[root@localhost ~]# rmdir test/
rmdir:删除"test/"失败:目录非空
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,374评论 0 5
  • Linux 目录 /:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录。所有的东西都是从这里开始。...
    miniminiming阅读 692评论 0 4
  • Linux命令收集 1、文件处理命令:ls 功能描述:显示目录文件 命令英文原意:list 命令所在路径:/bin...
    guiwuzhe阅读 875评论 0 0
  • 一、VMware的使用和Linux系统的安装1、VMware的快照、挂起的作用 快照:保存某一个状态,连命令行的输...
    seeiy阅读 1,932评论 0 1
  • 第一章 1.Linux是一套免费使用和自由传播的类UNIX操作系统,它可以基于Intel x86系列处理器以及Cy...
    yansicing阅读 5,370评论 0 9