Linux常用命令之文件和目录处理命令

我们就正式进入Linux命令的学习。学习命令,首先要跟大家纠正的一点就是,我们不需要记住每一条命令的详细语法格式,学完之后我们只需要知道某个命令能干什么。这样我们在实际应用中,遇到需要实现某个功能,我们脑海只要能想起来适用于某个命令就行,至于详细格式我们可以通过查资料。当我们使用的多了,会不知不觉的记住这些命令,这才是正确的学习方法。Linux命令有很多,如果初学者就想全部记住这些命令的详细格式,会对我们产生很大的学习挫败性,还没记完这些命令,或许你已经丧失了学习Linux的热情了。所以接下来的几篇博客,我会详细讲解Linux常用命令的语法格式以及用法,大家记住大概的用法就行了,到时候不会可以回过头来查询。

Linux文件系统结构

通过下面两张图片来认识一下Linux文件系统的结构。

image
image

文件名称

这些规则不仅适用于文件,也适用于文件夹。

image

绝对路径和相对路径

绝对路径和相对路径非常重要,在平常的操作中使用频率非常高。

image
image
image

1、Linux命令的普遍语法格式

命令格式: 命令 【-选项】【参数】
  例子:   ls -la /etc
  说明: ①、个别命令使用不遵循此格式,【】这种符号表示可以省略
       ②、当有多个选项时,可以写在一起
       ③、简化选项(一般用一个-)与完整选项(一般用两个--)
         比如 ls -a 等于 ls --all

image

上面的便是Linux系统中的一般命令格式,基本上所有命令都是遵循这种语法格式(个别命令除外)。

2、目录处理命令

一、显示目录文件命令:ls

①、命令名称:ls

②、英文原意:list

③、命令所在路径:/bin/ls

④、执行权限:所有用户

⑤、功能描述:显示目录文件

⑥、语法: ls 选项【-ald】【文件或目录】

-a 显示所有文件,包括隐藏文件

-l 详细信息显示

-d 仅显示目录名,而不显示目录下的内容列表

-h 人性化显示(hommization)

-i 查看任意一个文件的i节点(类似于身份证唯一信息)

-t 用文件和目录的更改时间排序;可以用第一个显示的文件判断最近修改的文件

注意:. 开头的文件除非是目录,否则就是隐藏文件

image

上面我们分别列出了ls的各种命令组合显示效果。我们以 -rw-------. 1 root root 1.3k Mar 11 08:05 anaconda-ks.cfg为例解析每个字段:

①、-rw------- 第一位表示文件类型,- 表示是二进制文件,d 表示目录, l 表示软连接文件。后面的每三个为一组:

rw- --- ---

u g o
          u(user)所有者 g(group)所属组 o(other) 其他人
          r 读 w写 x执行 -无权限

②、1  引用计数,表示文件被引用过多少次

③、root  这第一个root表示所有者,一般创建一个文件,所有者默认是创建者。

④、root  这第二个root表示所属组。

⑤、1.3K  表示文件字节大小,不带单位表示字节

⑥、ar 11 08:05 表示文件的最后修改时间。注意:Linux没有明确的创建时间,只有最后一次访问时间、文件的状态修改时间、文件的数据修改时间

⑦、anaconda-ks.cfg 表示文件名

image

二、创建目录命令:mkdir

①、命令名称:mkdir

②、英文原意:make directories

③、命令所在路径:/bin/mkdir

④、执行权限:所有用户

⑤、功能描述:创建新目录

⑥、语法: mkdir 【-p】【目录名】

-p 递归创建

例子:创建单个目录:mkdir /tmp/vae.txt

创建多个目录:mkdir /tmp/a.txt /tmp/b.txt

注意:1、创建的目录已经存在, 那么 Linux 会提示我们 Linux 无法创建它。

2、不带任何参数运行 mkdir 命令会在当前目录下创建目录。

3、不带上-p,如果新建的文件上级目录不存在则不会执行成功这种说法是错误的。加或者不加上 -p 前面的目录没有得都会依次创建。

4、创建目录的首要条件是, 在想要创建目录的目标路径下你必须具有访问权限。

image

三、切换目录命令:cd

①、命令名称:cd

②、英文原意:change directory

③、命令所在路径:shell 内置命令

④、执行权限:所有用户

⑤、功能描述:切换目录

⑥、语法: cd【目录名】

例子:切换到指定目录:cd /tmp/vae

回到上一级目录:cd ..

还是在当前目录:cd .

返回上两级目录:cd ../..

返回进入此目录之前所在的目录:cd -

image

四、shell内置命令和外部命令的区别

大家可以看到前面的三个命令,ls命令和mkdir命令都有命令的所在路径,而cd命令我们说是shell内置命令。这两者便是Linux内置命令和外部命令。

内部命令实际上是shell程序的一部分,其中包含的是一些比较简单的linux系统命令,这些命令由shell程序识别并在shell程序内部完成运行,通常在linux系统加载运行时shell就被加载并驻留在系统内存中。内部命令是写在bashy源码里面的,其执行速度比外部命令快,因为解析内部命令shell不需要创建子进程。比如:exit,history,cd,echo等。

外部命令是linux系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调用内存。通常外部命令的实体并不包含在shell中,但是其命令执行过程是由shell程序控制的。shell程序管理外部命令执行的路径查找、加载存放,并控制命令的执行。外部命令是在bash之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin......等等。可通过“echo $PATH”命令查看外部命令的存储路径,比如:ls、vi等。

用type命令可以分辨内部命令与外部命令:

image

内部命令和外部命令最大的区别之处就是性能。内部命令由于构建在shell中而不必创建多余的进程,要比外部命令执行快得多。因此和执行更大的脚本道理一样,执行包含很多外部命令的脚本会损害脚本的性能。

五、显示当前目录命令:pwd

①、命令名称:pwd

②、英文原意:print working directory

③、命令所在路径:/bin/pwd

④、执行权限:所有用户

⑤、功能描述:显示当前目录

⑥、语法: pwd

例子:显示当前目录:pwd

image

六、删除空目录命令:rmdir

①、命令名称:rmdir

②、英文原意:remove empty directories

③、命令所在路径:/bin/rmdir

④、执行权限:所有用户

⑤、功能描述:删除空目录(如果目录下存在文件则不能删除)

⑥、语法: rmdir 【空目录名】

例子:删除指定空目录:rmdir /tmp/a


image

注意:由于此命令只能删除空目录,在实际操作中应用的不多,后面我们讲解 rm 命令可以替代。

七、复制文件或目录命令:cp

①、命令名称:cp

②、英文原意:copy

③、命令所在路径:/bin/cp

④、执行权限:所有用户

⑤、功能描述:复制文件或目录

⑥、语法: cp -rp 【原文件或目录】【目标目录】

-r 复制目录

-p 保留文件属性

例子:比如我们将 root 目录下的install.log 文件复制到 tmp 目录下

image

可以用于复制后文件改名,比如我们将 root 目录下的 install.log 文件复制到 tmp的copyinstall.log 文件

image

还可同时复制多个文件,注意复制目录的时候要加 -r选项。加-p属性之后会将原文件的一些属性比如修改时间等也原封不动的复制过去。如果不加-p属性,那么复制后的文件修改时间为当前系统时间。

八、剪切文件或目录命令:mv

①、命令名称:mv

②、英文原意:move

③、命令所在路径:/bin/mv

④、执行权限:所有用户

⑤、功能描述:剪切文件、改名

⑥、语法: mv【原文件或目录】【目标目录】

例子:在 tmp 目录下创建目录 tmp1 ,然后在 tmp1 目录下创建目录 tmp1_1,然后 命令 mv /tmp/tmp1/tmp1_1 /tmp 将 tmp1目录下的 tmp1_1 剪切到 tmp 目录下。

[图片上传失败...(image-f6a8f6-1526000105503)]

九、删除文件或目录命令:rm

①、命令名称:rm

②、英文原意:remove

③、命令所在路径:/bin/rm

④、执行权限:所有用户

⑤、功能描述:剪切文件、改名

⑥、语法: rm -rf 【文件或目录】

-r 删除目录

-f 强制执行

例子:在 tmp 目录下有两个目录 tmp1 和 tmp1_1,rm -r tmp1_1 是删除这个目录,但是需要输入 y 来确认

rm -rf tmp1 是强制删除 tmp1 目录,不需要输入 y 来确认,这种做法很简单,但是容易误删文件,没有反悔的机会

rm -rf tmp1 tmp2 同时删除两个文件

image

3、文件处理命令

一、创建空文件命令:touch

①、命令名称:touch

②、英文原意:

③、命令所在路径:/bin/touch

④、执行权限:所有用户

⑤、功能描述:创建空文件

⑥、语法: touch 【文件名】

例子:在 tmp 目录下创建 tmp.log 文件

image

注意:创建文件时,文件名不要有空格,不然就是创建了 两个文件

      touch progrom files 这是创建了两个文件,progrom 和 files

image

如果我们想创建一个文件名为 progrom files ,应该用引号括起来(尽量避免文件名包含空格)

  touch "progrom files"

image

二、显示文件内容命令(适合内容较少的文件):cat

①、命令名称:cat

②、英文原意:

③、命令所在路径:/bin/cat

④、执行权限:所有用户

⑤、功能描述:显示文件内容(只能显示内容较少的文件)

⑥、语法: cat【文件名】

-n 显示文件行号

例子:通过不加参数-n和加参数-n,显示/etc/issue的内容

image

注意:此命令只能显示文件内容比较少的文件,如果文件内容很多,用cat命令是不合适的,视觉效果是屏幕不断滚动更新。

三、反向显示文件内容命令(适合内容较少的文件):tac

①、命令名称:tac

②、英文原意:

③、命令所在路径:/bin/tac

④、执行权限:所有用户

⑤、功能描述:显示文件内容(只能显示内容较少的文件)

⑥、语法: tac【文件名】

例子:显示/etc/issue的内容

image

四、分页显示文件内容命令(不能向前翻页):more

①、命令名称:more

②、英文原意:

③、命令所在路径:/bin/more

④、执行权限:所有用户

⑤、功能描述:分页显示文件内容

⑥、语法: more【文件名】

(空格)或f 翻页(一页一页的往后显示)

(Enter) 换行(一行一行的往后显示)

q 或 Q 退出

例子:查看etc目录下的 services 文件信息:more /etc/services

image

五、分页显示文件内容命令(可以前后翻页):less

①、命令名称:less

②、英文原意:

③、命令所在路径:/usr/bin/less

④、执行权限:所有用户

⑤、功能描述:分页显示文件内容

⑥、语法: less【文件名】

(空格)或f 或PgDn 翻页(一页一页的往后显示)

PgUp向前翻页

(Enter) 换行或向下的箭头(一行一行的往后显示)

向上的箭头(一行一行的往前显示)

q 或 Q 退出

输入/想搜索的字符,然后回车键

例子:查看etc目录下的 services 文件信息:less/etc/services。这个比较简单,我们就不截图演示了,主要是最后提到的搜索功能,我们在进入命令之后,输入

/想搜索的字符,然后回车键,如下:

image

回车之后,如下显示:

image

六、显示文件内容命令(指定行数):head

①、命令名称:head

②、英文原意:

③、命令所在路径:/usr/bin/head

④、执行权限:所有用户

⑤、功能描述:显示文件的前面几行

⑥、语法: head【文件名】

-n 指定显示的行数

不加 -n 默认显示前 20 行数据

例子:显示 etc目录下的 services 文件前面 20 行 head -n 20 /etc/services

image

七、反向文件内容命令(文件即时更新后也能动态显示,多用于日志文件显示):tail

①、命令名称:tail

②、英文原意:

③、命令所在路径:/usr/bin/tail

④、执行权限:所有用户

⑤、功能描述:显示文件的后面几行

⑥、语法: tail【文件名】

-n 指定显示的行数

-f 动态显示文件末尾内容(即文件实时变化,那么显示内容也会随之变化)

例子:显示 etc目录下的 services 文件后面 20 行 tail -n 20 -f /etc/services


image

注意:如果我们想结束加上 -f显示的tail命令,通过 Ctrl+C。

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

推荐阅读更多精彩内容