1. 什么是操作系统
这里简单的讲述一下操作系统的概念,来看下图示:
**操作系统是计算机系统中的一种软件,它负责管理计算机硬件资源和提供用户与计算机系统之间的接口。**可以将操作系统比喻为一个房屋管理员,他负责管理房屋的各种资源和提供住户与房屋之间的沟通。
首先,操作系统管理计算机的硬件资源。就像房屋管理员需要管理房屋的水、电、气等资源一样,操作系统需要管理计算机的处理器、内存、硬盘、网络等硬件资源。它负责分配这些资源给不同的程序或用户,并确保它们能够合理地利用和共享这些资源。
其次,操作系统提供用户与计算机系统之间的接口。就像房屋管理员是住户与房屋之间的桥梁一样,操作系统提供了一种用户与计算机之间的交互方式。用户可以通过操作系统提供的命令行界面或图形界面来操作计算机,执行各种任务和程序。
此外,操作系统还负责管理和调度计算机系统中运行的各个程序。它确保不同的程序能够按照一定的优先级和规则来共享计算机的资源,并且能够在不同的程序之间进行切换和调度,以实现多任务的同时运行。
最后,操作系统还提供了一些系统服务和工具,如文件管理、网络管理、安全管理等。这些服务和工具使得用户能够更方便地管理和使用计算机系统,提高工作效率。
总之,操作系统就像一个房屋管理员,它管理计算机的硬件资源,提供用户与计算机之间的接口,管理和调度计算机系统中的程序,并提供各种系统服务和工具。它是计算机系统中不可或缺的重要组成部分。
用我的话总结就是
-
操作系统是同时管理硬件和软件的软件。
-
- 对下管理好软硬件资源(手段)
- 对上提供良好的(稳定,安全,高效)运行环境
-
操作系统并不是直接操控硬件,而是像上面的图示一样,是通过设备的驱动去操控硬件的,设备驱动是一种软件,每一种设备都有驱动,例如鼠标驱动,声卡驱动,键盘驱动…
2. Linux基本指令
学习Linux,最主要的就是学习指令,那么写指令是为了什么呢?
初高中如果有上过电脑课的同学都知道,在上课的时候,老师会让你们点击鼠标打开文件或者别的啥的。当你按照老师说的操作了之后会看到图形界面。
而指令操作等同于电脑课老师讲的操作,是一模一样的。
命令行也就是指令是学习操作系统的重要手段
2.1. ls指令
在Linux系统中,ls命令是一个用于列出目录内容的基本命令。它可以显示指定目录中的文件和子目录,并且可以按照不同的方式排序和格式化输出。
ls命令具有许多选项和参数,可以用来定制输出,以满足不同的需求。以下是一些常用的选项:
- -l:以长格式显示文件和目录。这将显示更多的详细信息,包括权限、所有者、大小和修改日期等。
- -a:显示所有文件,包括以点开头的隐含文件。
- -b:将不可输出的字符以反斜杠加字符编号的形式列出。
- -c:根据文件的修改时间排序。
- -d:将目录象文件一样显示,而不是显示其下的文件。
- -e:输出时间的全部信息,而不是输出简略信息。
- -f:对输出的文件不排序。
- -U:对输出的文件不排序。
- -g:无用的选项。
- -i:输出文件的 i 节点的索引信息。
- -k:以 k 字节的形式表示文件的大小。
- -l:列出文件的详细信息。
- -m:横向输出文件名,并以“,”作分格符。
- -n:用数字的 UID,GID 代替名称。
- -o:显示文件的除组信息外的详细信息。
- -p:在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。
- -q:用?
- -r:对目录反向排序。
这些选项可以组合使用,例如,要列出当前目录中所有以.开头的隐含文件,并显示其详细信息,可以运行以下命令:
ls -al .*
该命令将使用长格式列出所有以.开头的隐含文件,并显示它们的详细信息。
2.2. pwd命令
Linux中的pwd命令是一个非常实用的命令,它用于显示当前工作目录的绝对路径。对于初学者来说,理解工作目录和绝对路径的概念非常重要。
首先,我们需要明白什么是工作目录。**在Linux系统中,工作目录是当前用户所处于的目录。**你可以想象它是一个追踪用户当前位置的指针。当你在命令行中输入命令时,系统会默认在当前工作目录下执行这些命令。
绝对路径是文件或目录在系统中的完整路径。它从根目录(“/”)开始,并逐级指向每个目录,直到找到目标文件或目录。
**pwd****命令的作用就是输出当前工作目录的绝对路径,**这样用户就可以知道他们当前所处的位置。这对于用户在系统中导航和操作文件非常有帮助。
在教学上,pwd命令是一个很好的工具,可以帮助学生理解Linux的文件系统和工作目录的概念。例如,可以让学生通过pwd命令查看他们当前所处的目录,然后尝试用其他命令在该目录下创建、复制或删除文件。这样可以帮助他们理解文件系统路径和当前工作目录之间的关系。
此外,还可以通过使用pwd命令来演示如何使用绝对路径来访问文件或目录。例如,如果有一个文件在当前工作目录下的子目录中,我们可以使用绝对路径来访问该文件。通过比较不同路径的输出,学生可以更好地理解绝对路径的概念。
总之,pwd命令是一个简单但重要的命令,它可以帮助初学者理解Linux系统中的工作目录和绝对路径的概念。
- 绝对路径和相对路径的区别
绝对路径和相对路径的主要区别在于它们参照点不同。
**绝对路径是从根目录(“/”)开始的完整路径。例如,如果我们有一个文件“/home/user/documents/example.txt”,那么这个文件的绝对路径就是“/home/user/documents/example.txt”。在绝对路径中,每个目录都是从根目录开始的。**因此,无论当前工作目录在哪里,都可以使用绝对路径找到文件。
**相对路径则是相对于当前工作目录的路径。**例如,如果当前工作目录是“/home/user/documents/”,而我们要找的文件是“example.txt”,那么相对路径就是“example.txt”。相对路径不包含根目录,而是从当前工作目录开始的。
初学者在学习路径的时候,需要注意以下几点:
- 理解路径的概念:路径是文件或目录在系统中的位置标识。在Linux系统中,路径是由“/”分隔的目录名序列,从根目录开始,一直到目标文件或目录。
- 理解绝对路径和相对路径的区别:绝对路径是从根目录开始的完整路径,相对路径则是相对于当前工作目录的路径。使用绝对路径时,无论当前工作目录在哪里,都可以找到目标文件或目录。使用相对路径时,则是在当前工作目录下操作。
- 掌握路径的表示方法:在Linux系统中,路径可以使用“/”或“~”符号来表示根目录或当前用户的家目录。例如,“~/documents”表示当前用户的家目录下的documents文件夹。
- 学会使用cd命令:cd命令用于改变当前工作目录。通过使用cd命令,我们可以进入目标目录,进而操作该目录下的文件或子目录。
总之,理解路径的概念和掌握路径的表示方法是学习Linux系统的基础之一。
首先,以下是绝对路径的示例代码:
#!/bin/bash
# 绝对路径的示例
file_path="/home/user/documents/example.txt"
echo "文件的绝对路径是:$file_path"
输出结果将会是:
文件的绝对路径是:/home/user/documents/example.txt
接下来,以下是相对路径的示例代码:
#!/bin/bash
# 相对路径的示例
current_dir=$(pwd)
relative_path="$current_dir/example.txt"
echo "文件的相对路径是:$relative_path"
输出结果将会是:
文件的相对路径是:/home/user/documents/example.txt
请注意,在相对路径的示例中,我们使用了$(pwd)命令来获取当前工作目录的绝对路径,并将其与相对路径连接起来。
2.3. cd命令
在Linux系统中,cd命令用于改变当前工作目录。在Linux系统中,cd命令用于改变当前工作目录。它允许你在文件系统中导航,改变当前的工作环境。这对于初学者来说是一个非常重要的命令。
下面是一些关于cd命令的基本知识:
- cd****命令后面不带任何参数,将返回到用户的根目录(“/”)。
- **cd /**将返回到根目录。
- **cd ~**将返回到当前用户的家目录。
- **cd -**将返回到上一次所在的目录。
- cd /path/to/directory****将导航到指定的目录。
下面是一些示例代码,演示如何使用cd命令:
#!/bin/bash
# 回到根目录
cd /
echo "当前目录是:$(pwd)"
# 回到当前用户的家目录
cd ~
echo "当前目录是:$(pwd)"
# 进入一个不存在的目录
mkdir new_directory
cd new_directory
echo "当前目录是:$(pwd)"
# 返回到上级目录
cd ..
echo "当前目录是:$(pwd)"
输出结果:
当前目录是:/
当前目录是:[用户名]@[机器名]:/[用户名]$
当前目录是:[用户名]@[机器名]:/new_directory$
当前目录是:[用户名]@[机器名]:/new_directory$
2.4. touch命令
在Linux系统中,t**ouch****命令用于创建空文件或更新文件的时间戳。**这对于初学者来说是一个非常有用的命令。
下面是一些关于touch命令的基本知识:
- touch****命令可以创建一个新文件,如果文件已经存在,则会更新文件的访问和修改时间戳。
- 如果没有指定文件名,touch命令将创建一个名为“stdout”的空文件。
- 可以同时指定多个文件名,创建多个空文件。
下面是一些示例代码,演示如何使用touch命令:
# 创建一个名为example.txt的空文件
touch example.txt
echo "File created: example.txt"
# 列出当前目录下的文件列表
ls -l
输出结果:
File created: example.txt
total 0
-rw-r--r-- 1 user group 0 Jul 6 10:44 example.txt
在上述代码中,我们使用touch命令创建了一个名为“example.txt”的空文件。然后,我们使用echo命令输出一条消息,确认文件已经创建成功。最后,我们使用ls -l命令列出了当前目录下的文件列表,以确认新创建的文件已经出现在列表中。
需要注意的是,在Linux系统中,文件名是区分大小写的。因此,在创建文件时需要确保正确的大小写。
2.5. mkdir命令
在Linux系统中,mkdir命令用于创建新的目录。这对于初学者来说是一个非常有用的命令。
下面是一些关于mkdir命令的基本知识:
- mkdir****命令后面需要指定要创建的目录名称。
- 如果没有指定目录名称,mkdir命令将创建一个名为“stdout”的目录。
- 可以同时创建多个目录,只需在命令中指定多个目录名称即可。
下面是一些示例代码,演示如何使用mkdir命令:
#!/bin/bash
# 创建一个名为folder1的目录
mkdir folder1
echo "Directory created: folder1"
# 创建一个名为folder2的目录
mkdir folder2
echo "Directory created: folder2"
# 创建一个名为folder3的目录
mkdir folder3
echo "Directory created: folder3"
# 列出当前目录下的文件列表
ls -l
输出结果:
Directory created: folder1
Directory created: folder2
Directory created: folder3
total 0
drwxr-xr-x 2 user user 4096 Jul 6 10:58 folder1
drwxr-xr-x 2 user user 4096 Jul 6 10:58 folder2
drwxr-xr-x 2 user user 4096 Jul 6 10:58 folder3
在上述代码中,我们使用mkdir命令创建了三个名为“folder1”、“folder2”和“folder3”的目录。然后,我们使用echo命令输出一条消息,确认目录已经创建成功。最后,我们使用ls -l命令列出了当前目录下的文件列表,以确认新创建的目录已经出现在列表中。
如果你想创建一串路径的目录,可以使用mkdir命令的**-p****选项来实现。这个选项允许你一次性创建多级目录。**
下面是一个示例代码,演示如何使用mkdir命令创建多级目录:
#!/bin/bash
# 创建路径 /path/to/directory1/directory2/directory3
mkdir -p /path/to/directory1/directory2/directory3
运行上述代码后,将会创建以下目录结构:
/path/to/directory1/
└── directory2
└── directory3
使用-p选项,你可以一次性创建多个目录,而无需在每个目录之间使用mkdir命令。这对于创建复杂的目录结构非常方便。