【Linux】保姆级认识常见指令(一)

目录

引言

文件与目录管理

1. ls 指令

2. pwd 指令 

3. cd 指令

4. whoami 指令

5. which 指令

6. mkdir 指令

7. touch 指令

8. rmdir 指令

9. rm 指令

10. cp 指令

11. mv 指令

总结


引言

Linux 操作系统以其开源特性和卓越的稳定性而闻名,而学习 Linux 命令行是掌握这个强大操作系统的关键一步。在这个数字化时代,系统管理员、开发者和网络工程师等 IT 从业者都需要熟练掌握命令行工具,以有效地管理和配置系统。在这篇博客中,我将会介绍 Linux 常用指令,无论你是刚入门 Linux 的新手还是希望提高命令行技能的专业人士,这里都将为你提供全面而实用的指南。让我们一起踏上 Linux 命令行的旅程吧!
 

文件与目录管理

1. ls 指令

语法: ls [选项] [目录或文件]
功能:对于
目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息
常用选项:

-a 列出目录下的所有文件,包括以 . 开头的隐含文件
-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件

-l 列出文件的详细信息
-n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
-F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
-r 对目录反向排序。
-t 以时间排序。
-s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-R 列出所有子目录下的文件。(递归)
-1 一行只输出一个文件。

示例:

这里列出了我当前目录下的所有子目录与文件。

【Linux】保姆级认识常见指令(一)_第1张图片

加上 -a 选项后,将以 开头的隐藏文件也列出来了,在Linux中,以 开头的文件是隐藏文件。

【Linux】保姆级认识常见指令(一)_第2张图片

这里我创建了一个名字为.test.txt的普通文件(touch指令在后面会介绍),然后用ls指令时并没有看到这个隐藏文件,接着使用 -a 选项后就能看到了。

【Linux】保姆级认识常见指令(一)_第3张图片

使用 -l 选项则可以查看文件的详细信息。我们可以将文件看作是文件属性文件内容的组合。文件属性提供了关于文件的描述性信息和管理属性,而文件内容是实际的数据。这两者共同构成了一个完整的文件。未来我们对文件的任何操作,都是对文件属性或者文件内容的操作。

文件属性: 文件属性包括文件的元数据,如文件名、大小、创建时间、修改时间、所有者、权限等。这些信息用于描述文件的基本特征和管理文件的访问和操作

文件内容: 文件内容是实际存储在文件中的数据。这可能是文本、二进制数据、图像、音频等,具体取决于文件的类型。文件内容是通过读取文件的方式访问的,而文件属性则用于描述和管理文件本身的元信息。

2. pwd 指令 

语法:pwd
功能:显示用户
当前所在的目录

示例:

【Linux】保姆级认识常见指令(一)_第4张图片

这里可以看到当前所在的目录是 /root,这其实就是一个路径。

" / "是Linux的路径分隔符,而" \ "是windows的路径分隔符。两个路劲分隔符之间,一定是一个目录,在路径的最末端,一定是一个文件或者目录。

这个就是windows系统的路径 。

那么为什么要有路径呢,因为我们在访问任何文件之前,我们都必须先找到这个文件,路径就可以在系统层面标识一个特定的文件,有了路径我们就可以顺藤摸瓜,最后找到我们想要访问的文件

3. cd 指令

语法:cd 目录名
功能:
改变工作目录。将当前工作目录改变到指定的目录下。

在Linux系统中,磁盘上的文件和目录被组成一棵目录树(多叉树),每个节点都是目录或文件

【Linux】保姆级认识常见指令(一)_第5张图片

一个目录里面可以有普通的文件,也可以有它的子目录。这里我们可以看到任何一个文件它都只有一个父目录!因此路径具有唯一性,即同一个目录下,不允许存在同名目录或文件

 示例:

【Linux】保姆级认识常见指令(一)_第6张图片

这里通过 ls 指令看到我们当前 /root 路径下的子目录以及文件,然后通过 cd a 进入了名字为a的子目录中,我们再通过 pwd 指令来查看当前的路径,变成了 /root/a,说明我们已经进入a目录了。
注意:这里我们是通过相对路径的方式来进入a目录的。

相对路径和绝对路径是用于指定文件或目录位置的两种不同方式。它们的主要区别在于参照的起点不同。

绝对路径:
1.绝对路径是从文件系统的
根目录开始指定文件或目录的路径。
2.在Unix/Linux系统中,绝对路径
以斜杠 / 开头,如 /home/user/documents/file.txt。
3.在Windows系统中,绝对路径可能
以盘符开头,如 C:\Users\User\Documents\File.txt。

相对路径:
1.相对路径是
相对于当前工作目录的路径
2.相对路径不包括根目录信息,而是
从当前位置开始计算
3.通过 . 或者 .. 进行路径访问。

任何目录下,都会默认具有两个隐藏目录:...
用来表示当前路径,而 .. 用来表示上级路径。通过这两个隐藏目录,我们既可以进入到一个路径中,又可以从该路径退出到上一级路径中

【Linux】保姆级认识常见指令(一)_第7张图片

这里我们通过 .. 回退到了上一级路径中。

【Linux】保姆级认识常见指令(一)_第8张图片

这里 ./a 等价于 /root/a ,因为 . 就是表示当前路径,当前路径在上面的 pwd 指令中已经看到了是 /root 。

【Linux】保姆级认识常见指令(一)_第9张图片

这里就是用绝对路径来访问了。

相对路径和绝对路径还可以通过与其他指令相配合来玩出花样,这里我们以前面介绍过的 ls 指令来举例:

【Linux】保姆级认识常见指令(一)_第10张图片

这里通过绝对路径来查看该目录下的子目录以及文件。

【Linux】保姆级认识常见指令(一)_第11张图片

这里则通过相对路径来查看。这里的 ../root 等价于 /root ,因为当前路径是 /root ,上一级路径则是 / 。

cd 指令还可以搭配一些选项:

【Linux】保姆级认识常见指令(一)_第12张图片

cd - :跳转到我们最近一次所处的路径下。
当我们需要频繁用到两个路径时,可以方便的进行切换。

【Linux】保姆级认识常见指令(一)_第13张图片

cd ~ :进入用户家目录。任何一个用户,首次登录时所处的路径都是自己的家目录。
对于root账号,默认的家目录是 /root ,这是超级管理员账号。
而对于普通用户,默认家目录是 /home/xxx ,这里的xxx是用户名。

这是windows系统的家目录。
 

4. whoami 指令

语法:whoami
功能:显示
当前登录用户的用户名,可以快速了解当前会话中是哪个用户在操作系统中活动。

示例:

【Linux】保姆级认识常见指令(一)_第14张图片

5. which 指令

语法:which [指令]
功能:用于查找给定
指令在系统路径中的位置

示例:

【Linux】保姆级认识常见指令(一)_第15张图片

这里我们就查找到了这三个指令在系统路径的位置。我们可以发现这些指令都是存在于/usr/bin 这样一个路径下的,我们试着用绝对路径来访问一下它们。

【Linux】保姆级认识常见指令(一)_第16张图片

这里可以发现访问得到的效果和我们直接输入指令是一样的。

在 UNIX/Linux 系统中,/usr/bin通常用于存放可执行文件(二进制文件)。因此我们需要重新认识一下指令了,指令的本质都是程序

我们注意到当我们查看 ls 指令的路径时,有一个 alias ,这个也是一个Linux命令,用来给其他命令起别名

【Linux】保姆级认识常见指令(一)_第17张图片

这里我们给 ls 指令起了个别名叫 lisi ,这样我们就可以用 list 来执行 ls 指令了。

【Linux】保姆级认识常见指令(一)_第18张图片

这里之所以我们的 ll 指令相当于 ls -l ,也是 alias 的功劳。

【Linux】保姆级认识常见指令(一)_第19张图片

这里我们通过访问 ls 的路径来查看当前目录下的子目录与文件,我们发现它与直接使用 ls 指令有些不同,它不带颜色,这是为什么呢,我们来which一下 ls 指令就知道了。

【Linux】保姆级认识常见指令(一)_第20张图片

这里我们看到 ls 指令其实是 ls --color=auto 这一串指令的别名,也就是说带上后面这一串我们也能让子目录和文件带上颜色了。我们来试一下。

【Linux】保姆级认识常见指令(一)_第21张图片

6. mkdir 指令

语法:mkdir [选项] dirname...
功能:
当前目录下创建一个名为 “dirname”的目录
常用选项:
-p, --parents  可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即
一次可以建立多个目录

示例:

【Linux】保姆级认识常见指令(一)_第22张图片

这样就创建出了一个名为 “dir” 的目录。

【Linux】保姆级认识常见指令(一)_第23张图片

通过 -p 选项我们一次性创建了一个路径下的多个目录。我们可以通过 tree 命令来查看是否创建成功。 这是一个用于在命令行中以树状结构显示目录和文件的实用程序。它对于查看文件和目录结构,以及生成目录树状结构的视图非常有用。
系统在执行某个指令的时候,都会先在指定的搜索路径中去寻找这个指令,因此如果这个指令没安装的话,是执行不了得,我们可以通过这行命令来安装:
yum install -y tree

【Linux】保姆级认识常见指令(一)_第24张图片

这里可以看到我们确实通过给定的路径创建了一系列的目录。

既然 tree 指令可以以树状形式显示目录结构,那我们不妨来 tree 一下根目录如何:tree /

【Linux】保姆级认识常见指令(一)_第25张图片

我们发现它在疯狂打印,因为根目录的内容还是很多的,如果我们什么都不做让它打印到结束估计要一会,这时候我们可以 Ctrl + C 键来让它终止。当我们平常遇到指令失控的情况,我们都可以通过这样的方式来终止异常的命令

还可以在同一路径下创建多个空目录。

7. touch 指令

语法:touch [选项]... 文件...
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者
新建一个不存在的文件
常用选项:
-a   或 --time=atime或 --time=access或 --time=use只更改存取时间。
-c   或 --no-create 不建立任何文档。
-d   使用指定的日期时间,而非现在的时间。
-f    此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m  或 --time=mtime或 --time=modify 只更改变动时间。
-r   把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t   使用指定的日期时间,而非现在的时间。

示例:

【Linux】保姆级认识常见指令(一)_第26张图片

这里使用 touch 指令成功创建了一个名为“test.c”的普通文件。注意:-r 开头的这些文件是普通文件,而以 d 开头的这些则是目录

8. rmdir 指令

rmdir 是一个与 mkdir 相对应的命令。mkdir 是建立目录,而 rmdir 则是删除空目录

语法:rmdir [-p] [dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:
删除空目录
常用选项:
-p 当子目录被删除后
如果父目录也变成空目录的话,就连带父目录一起删除

示例:

【Linux】保姆级认识常见指令(一)_第27张图片

这里我们的 dir 是一个空目录,因此可以直接删除。

【Linux】保姆级认识常见指令(一)_第28张图片

而这个 123 目录不是空目录,因此删除不了,它也提示说目录非空。

注意:rmdir 是不能删除普通文件的哦。

9. rm 指令

语法:rm [-f-i-r-v] [dirName/dir]
适用对象:所有使用者
功能:
删除文件或目录
常用选项:
-f 即使文件属性为只读(即写保护),也直接删除
-i 删除前逐一询问确认
-r 删除目录及其下属所有文件和子目录(递归删除)

示例:

【Linux】保姆级认识常见指令(一)_第29张图片

用来删除普通文件的时候,直接 rm 即可。而如果要删除目录(不管是不是空目录)就要带上 -r 选项了。要删除的文件或目录参数可以是多个。事实上大部分指令后面跟的操作对象都可以是多个系统会一个一个执行。如 ls 多个目录时,会先后显示出这两个目录下的子目录和文件。这里就不一一举例了,感兴趣的可以上手敲一下。

【Linux】保姆级认识常见指令(一)_第30张图片

从删除 123 这个目录的过程可见它是递归式删除的,它问我们是否要删除该目录下的 test.txt文件,我们输入 y 后,它又问我们是否删除 123 这个目录,我们再次输入 y,然后就删掉了。如果我们不想让它询问是否删除的话,可以使用 -f 选项,这样会直接删除而不询问(删库跑路警告)。

注意:使用 rm -r 命令要非常小心,因为它会删除指定目录及其下属所有内容,且操作不可逆。确保你确实想要删除这些文件和目录,以免造成数据丢失。一旦有不确定的目录或文件时,宁可备份,不可删除。

【Linux】保姆级认识常见指令(一)_第31张图片

这里的 ' * ' 表示一个通配符,它可以匹配任意文件名,当我们想删除所有后缀为 .c 的文件时,就可以用这个指令:rm -rf *.c 。

10. cp 指令

语法:cp [选项] 源文件或目录 目标文件或目录
功能:
复制文件或目录
说明:cp 指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息
常用选项:
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-r
递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理

示例:

【Linux】保姆级认识常见指令(一)_第32张图片

这样就成功把 test.txt 这个普通文件拷贝到 111 目录中啦。

【Linux】保姆级认识常见指令(一)_第33张图片

还可以和绝对路径搭配着来玩。相对路径绝对路径随意搭配都是可以的,可以自己上手敲一下。

【Linux】保姆级认识常见指令(一)_第34张图片

我们还可以顺便进行重命名,这里我就把它命名为了 data.txt 。这里只是对 111 目录下这个拷贝文件重命名哦,源文件的名字是没变的。

【Linux】保姆级认识常见指令(一)_第35张图片

当我们要拷贝的是一个目录(不管是不是空的),都必须带上 -r 选项,这时候进行递归式拷贝

【Linux】保姆级认识常见指令(一)_第36张图片

这里我们当前路径下并没有 112 这个目录,它则直接拷贝了源文件并重命名为了 112,这里可以理解为把 text.txt 拷贝到当前目录下并且重命名为 112。这里 112 是普通文件哦。其实就是相当于下面这个操作。

【Linux】保姆级认识常见指令(一)_第37张图片

这里的 .就表示当前路径,./112 就是拷贝到当前路径并且重命名为 112

11. mv 指令

mv命令是move的缩写,可以用来移动文件或者将文件改名,是Linux系统下常用的命令,经常用来备份文件或者目录。

语法:mv [选项] 源文件或目录 目标文件或目录
功能:
1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件
重命名或将其移至一个新的目录中
2. 当
第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名
3. 当
第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令各参数指定的源文件均移至目标目录中
常用选项:
-f :force 强制的意思,
如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

示例:

【Linux】保姆级认识常见指令(一)_第38张图片

这里就将 test.txt 重命名为了 test.c 

对一个目录也是可以重命名的。这里要确保当前路径下没有 111.dir 这个目录哦,不然会变成把 111 目录移动到 111.dir 这个目录下的。

【Linux】保姆级认识常见指令(一)_第39张图片

移动(剪切)多个文件到 111.dir 目录中。
注意:移动过后改变了源文件或目录的路径,即原本的路径下已经不存在这个源文件或目录了。

【Linux】保姆级认识常见指令(一)_第40张图片

这里我们不但把目录 c 移动到了目录 111.dir 中,还对它进行了重命名

【Linux】保姆级认识常见指令(一)_第41张图片这里玩了一下绝对路径和相对路径,先通过绝对路径找到目录 b ,再将它移动到相对路径下,.. 就是上一级路径嘛,我们目前所处的路径是:/root ,那上一级路径就是根目录:/ 

总结

在Linux系统中,文件与目录管理是命令行操作的基础,而一系列简单而强大的指令使得这一过程更加高效。通过本博客,我们学习了如何使用各种指令,包括列出目录内容 "ls" ,显示当前所在路径"pwd",改变工作目录"cd",创建空目录"mkdir",创建文件"touch",删除空目录"rmdir",删除文件"rm ",复制文件"cp",移动文件"mv",以及识别命令路径"which"等等。

想很好地掌握这些指令的话还是需要多敲一下,
熟能生巧

你可能感兴趣的:(linux)