🌠 作者:@阿亮joy.
🎆专栏:《学会Linux》
🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根
目录
- 👉操作系统👈
- 👉文件👈
- 👉基本指令👈
- ls 指令
- pwd 指令
- cd 指令
- touch 指令
- mkdir 指令
- 👉总结👈
👉操作系统👈
操作系统(Operating System,缩写:OS)是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。
以上是百度对操作系统的定义。通俗来讲,操作系统就是一款管理软件,对下管理好软硬件资源,对上提供良好的(稳定、安全和高效)的运行环境。
而对一个程序员来说,学好 Linux 操作系统是非常重要的。而 Linux 系统通常没有图形化界面,Linux 系统是通过命令行来操作的。而在命令行里写指令就是相当于在 Windows 系统下学习基本操作,所以大家也不需要担心过难。
因为我们一般写代码都不是在 Linux 环境下写的,所以我就在 Linux 环境下写一个 C 语言和 C++ 的代码。这些内容将会在以后的博客来给大家讲解,接下来我们只需要了解一下有这件事即可。
Linux 环境下的 C 语言代码
注:gcc 是 Linux 环境下的 C 语言编译器。
Linux 环境下的 C++ 代码
g++ 是 Linux 环境下的 C++ 编译器。
以上就是在 Linux 环境下写代码的样子,是不是很新奇。其实我第一次敲的时候也觉得很新奇,现在依然。那么话不多说,进入 Linux 环境下的基本指令。
👉文件👈
相信大家对文件都是有一定的了解的。那我现在请问大家一个问题:如果我们创建了一个空文件,那这个空文件占不占用磁盘空间呢?可能有些小伙伴会说不占磁盘空间,其实这个空文件也会占用磁盘空间。因为一个文件等于文件的内容数据加上文件的属性数据,只要是数据就会占用磁盘空间。所以,操作文件的方法就有操作文件内容的和操作文件属性的。
在 Linux 环境下,有普通文件和目录。普通文件比较好理解,那目录是什么呢?目录就是文件夹,是保存其他文件的场所。
👉基本指令👈
因为大家之前都没有学习过 Linux 的基本指令,所以我就给大家先罗列几条接下来就要用到的指令。这些指令都会在后面的内容详细讲解。
注:# 后面的内容为注释内容
pwd #显示当前用户所在的路径
ls #显示当前路径下的文件或者目录名称
ls -l #显示当前路径下的文件或者目录的更详细的属性信息
ll #显示当前路径下的文件或者目录的更详细的属性信息
cd 路径 切换路径,让我们进入不同的路径操作
clear #清空屏幕
指令演示
注:蓝色字体的名称为目录名称。
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 一行只输出一个文件。
在这里,我只给大家演示几个比较常用的指令,其他指令大家可以自己敲一敲试试。
ls
ls #显示当前路径下的文件或者目录名称
注:绿色字体的是可执行程序(相当于 Windows 系统下的 .exe 文件),蓝色字体的是目录名称。
ls -l 和 ll
ls -l #显示当前路径下的文件或目录的更详细的属性信息
ll #显示当前路径下的文件或目录的更详细的属性信息
注:在 Linux 系统下,大多数指令可以和选项合并在一起,所以ll
等同于ls -l
。
ls -a 和 ls -a - l
ls -a #列出当前路径下的所有文件,包括以.开头的隐藏文件
ls -a -l #列出当前路径下的所有文件更详细的信息,包括以.开头的隐藏文件
对比着来看,我们就可以发现带有-a
的指令比没有带-a
的指令多出了.
和..
两个文件。那这两个是什么呢?.
是当前目录,..
是上级目录。因为这两个文件都是以.
开头,所以它们是隐藏文件。接下来给大家用cd
指令验证一下.
是当前目录,..
是上级目录。
注:在 Linux 系统下,目录和路径是一个概念,不用加以区分。
接下来要跟大家提前讲两个指令,分别是touch
和mkdir
,这两个指令在接下来的内容里会详细讲解。
touch 文件名 #创建普通文件
mkdir 目录名称 #创建目录
接下来,我们就用这两个指令来创建两个隐藏文件。
可以发现,只有带上-a
的指令才能将隐藏文件显示出来。
ls -ld
ls -ld 目录名称 #显示该目录的详细信息
为了演示这个命令,我们先来创建一个目录。
在上面,我们讲到ls -l
指令是显示当前路径下的文件或目录的更详细的属性信息。而ls -l
指令加上文件名就会只显示该文件的更详细的属性信息,ls -l
指令加上目录名称就会显示该路径下的文件或目录的更详细的属性信息。
有时候,我们可能只想显示某个目录的详细属性信息,而不是显示该目录里的文件的信息。那怎么才能做到呢?在ls -l 目录名称
指令中再加上-d
就行了,加上-d
就是不进入目录,显示文件本身的信息。
ls -Rl
ls -Rl #递归列出当前路径所有子目录下的文件的更详细的属性信息
以上就是我想要给大家讲解的ls
指令,还有其他选项没有讲到的,大家自己去试一试。
pwd 指令
语法: pwd
功能:显示用户当前所在的目录
常用选项:无
pwd #显示当前用户所处的路径
pwd
指令在上面已经提及到了,在这里就不再多说了。我们来学习一下 Linux 和 Windows 的路径表示。
cd 指令
Linux 系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。
语法:cd 目录名
功能:改变工作目录,将当前工作目录改变到指定的目录下。
cd 绝对路径
cd 绝对路径 #去到该绝对路径
cd …
cd .. #回到上级路径
这个指令在一开始的时候,我已经向大家提及过了,就是回到上一级路径。那如果我一直cd ..
呢?这样会发生什么?我们来试一下。见下图所示:
现在我们来思考一个问题,Linux 系统下的目录里面可以再放目录吗?这个问题的答案显而易见,当然是可以的。其实几乎所有操作系统文件的目录结构是一颗多叉树。
只要是树状结构,就有叶子节点和非叶子节点的概念。在 Linux 下,非叶子节点也称为路上节点。显而易见,目录结构的叶子节点是普通文件或者是空目录,路上节点只能是目录。一个目录里面既可以是目录又可以是普通文件。
为什么我们喜欢用路径来标识一个文件呢?因为我们一般从根目录/
到指定文件下,路径加上文件名具有唯一性,这个具有唯一性的路径就是绝对路径。绝对路径比较官方,比如作为配置文件中的一个配置。
cd 相对路径
cd 相对路径 #切换到该相对路径
相对路径就是指相对当前所在的路径引起的跟其它文件(或文件夹)的路径关系。相对路径比较简单,用起来比较简单。
tree 指令
tree . 以树状结构显示当前路径下的所有文件
因为我们都是第一次使用 Linux 系统,所以很多小伙伴的 Linux 系统都是没有 tree 的这个指令的。所以我们需要先下载。
下载指令
yum install -y tree #下载tree指令
注意:下载指令的时候需要将用户切换到 root 用户,如果不知道自己的当前用户是不是 root 用户,可以通过whoami
指令来查询。
如果当前用户不是 root 用户的话,可以通过指令su root
切换到 root 用户,然后输入yum install -y tree
指令下载 tree
指令。输入了后,稍等一会就会下载完成。
注:从 Win10 开始,Windows 系统就支持 Linux指令了。
cd ~
cd ~ #进入用户家目录
/home/XXX #叫做XXX用户的工作路径或者家目录
#特定用户登录是,默认所处的路径
如果你是 root 用户,你的家目录叫做/root
。
cd -
cd - #返回最近访问目录
cd -
这个指令是非常方便的,也非常简单。
touch 指令
语法:touch [选项]… 文件…
功能: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
常用选项:
- -a 或–time=atime或–time=access或–time=use只更改存取时间。
- -c 或–no-create 不建立任何文档。
- -d 使用指定的日期时间,而非现在的时间。
- -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
- -m 或–time=mtime或–time=modify 只更改变动时间。
- -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
- -t 使用指定的日期时间,而非现在的时间。
touch
指令是 Linux 系统下创建普通文件的一个指令。
注意:Linux系统的文件不是通过文件后缀来标识,任何的普通文件都可以当做文本文件。
获得文件的更详细的信息
stat 文件名
文件的三个时间属性,我将会在后面的内容来跟大家讲解。
touch
指令除了创建普通文件,还可以更新文件的时间。
mkdir 指令
语法: mkdir [选项] dirname…
功能:在当前目录下创建一个名为 “dirname”的目录
常用选项:
- -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立 好那些尚不存在的目录,即一次可以建立多个目录
mkdir 目录名称 #创建空目录
mkdir -p 路径 #创建路径
👉总结👈
本篇博客主要讲解了操作系统的基本概念、文件和基本指令,整篇博客的内容不会很难,希望大家能掌握。以上就是本篇博客的全部内容了,如果大家觉得有收获的话,可以点个三连支持一下!谢谢大家啦!💖💝❣️