目录
一、Linux系统的认识
Linux系统是一种开源的、类Unix操作系统内核的实现,它基于Unix的设计原理和思想,并在全球范围内广泛应用。以下是对Linux系统的详细描述:
- 开源性:Linux系统是开源软件,意味着其源代码可以被任何人免费获取、使用、修改和分发。这使得Linux系统具有高度的可定制性和灵活性,用户可以根据自己的需求进行定制和优化。
- 多用户和多任务:Linux系统是一个多用户和多任务的操作系统,它允许多个用户同时访问系统,并可以同时运行多个程序和任务。每个用户都有自己的账户和权限,可以独立地进行工作。
-
内核: Linux内核是操作系统的核心部分,负责管理硬件设备、内存和进程等。它提供了各种驱动程序来实现与不同硬件的交互。
-
命令行界面: Linux提供了命令行界面(CLI),用户通过输入命令来与系统进行交互。这使得用户可以通过简单的文本命令完成各种任务,如文件管理、软件安装和配置等。
-
图形界面: 虽然Linux最初是基于命令行的,但现代的Linux发行版大多都提供了图形界面(GUI),例如常见的桌面环境有GNOME、KDE、XFCE等。这些界面使得用户可以通过图形化的方式操作系统。
- 文件系统:Linux系统使用层次化的文件系统布局,文件和目录被组织成一个树状结构。根目录(/)是整个文件系统的起点,包含了其他目录和文件。文件系统使用类Unix的文件权限模型,允许对文件和目录设置不同的权限。
- Shell和命令行界面:Linux系统提供了强大的命令行界面,用户可以通过Shell与系统进行交互。Shell是一个命令解释器,负责解析和执行用户输入的命令。Linux系统支持多种Shell,如Bash、Zsh等,用户可以选择自己喜欢的Shell。
- 网络功能:Linux系统具有强大的网络功能,可以作为服务器或网络设备进行配置和使用。它支持各种网络协议和服务,如TCP/IP、HTTP、FTP、SSH等。Linux系统还具备网络管理和安全性的功能,可以进行网络设置、防火墙配置等。它还可以作为路由器、防火墙或网关使用。
- 软件包管理:Linux系统采用软件包管理系统来管理和安装软件。常见的软件包管理系统有dpkg和apt-get(Debian/Ubuntu)、RPM和yum(Red Hat/CentOS)等。这些工具可以方便地安装、更新和删除软件包,并解决依赖关系。
- 支持多种硬件平台:Linux系统可以运行在各种硬件平台上,包括个人计算机(如x86、x86_64架构)、服务器(如PowerPC、ARM架构)和嵌入式设备。这使得Linux系统具备广泛的适应性和可移植性。
- 安全性:Linux系统以安全性而闻名,其设计和实现注重安全性和稳定性。Linux系统提供许多安全功能,并配备了强大的权限管理、访问控制和防火墙等工具,用于保护系统和用户数据的安全。
-
可定制性: Linux允许用户自由地定制和配置系统,以满足个人需求。用户可以选择适合自己的桌面环境、应用程序和内核版本等。
Linux系统的广泛应用领域包括服务器、个人计算机、移动设备、嵌入式系统等。它被广泛用于各个领域,包括科学研究、商业应用、教育、云计算、物联网等。由于其开放性、稳定性和灵活性,Linux系统得到了全球开发者和用户的支持和推崇。
总之,Linux是一个强大、灵活和高度自定义的操作系统,适用于各种场景,从个人电脑到嵌入式设备、服务器和超级计算机。
二、Linux和Windows区别
Linux和Windows是两个不同的操作系统,它们具有许多区别。以下是Linux和Windows之间的一些主要区别:
- 开源 vs 闭源:Linux是开源软件,其源代码可以被任何人免费获取、使用、修改和分发。而Windows是闭源的,仅由微软公司开发和维护,其源代码不公开,并且需要购买许可证才能使用。
- 内核和架构:Linux使用Linux内核,而Windows使用Windows内核。Linux内核是基于Unix的设计原理和思想,而Windows内核是专门为Windows系统设计的。
- 可定制性和灵活性:由于Linux的开源性,用户可以自由定制和修改Linux系统以满足自己的需求。而Windows则相对较少可定制和修改。
- 用户界面:Linux提供了多种桌面环境选择,如GNOME、KDE、XFCE等,用户可以根据自己的喜好选择。Windows有自己的图形用户界面(GUI),用户通常使用Windows默认的桌面环境。
- 文件系统:Linux使用类Unix的层次化文件系统布局,具有根目录(/)和各级子目录。Windows使用不同的文件系统,如NTFS、FAT32等。
- 软件兼容性:由于Linux和Windows使用不同的内核和架构,它们的软件并不完全兼容。许多Windows软件和应用程序无法直接在Linux上运行,尽管有一些方法可以在Linux上运行Windows软件,如通过Wine等工具。
- 软件包管理:Linux系统使用软件包管理系统来管理和安装软件,如dpkg和apt-get(Debian/Ubuntu)、RPM和yum(Red Hat/CentOS)。而Windows使用独立的安装程序和软件包管理器。
- 安全性:由于Linux的开源性和Unix设计的安全原则,Linux系统在安全性方面通常被认为比Windows更强大和安全。Linux采用了更严格的权限管理和访问控制机制。
- 使用领域:Linux在服务器领域和科学研究中广泛使用,而Windows在桌面计算机和商业应用中占有主导地位。Linux也用于嵌入式系统、移动设备、云计算等领域。
总结:
Linux更加灵活、可定制和安全,适合技术专业人士和开发者。
Windows在易用性、软件兼容性和驱动程序支持方面更为强大,适合普通用户和商业应用。
建议:
根据个人需求和偏好,不同的用户可以选择适合自己的操作系统。
三、Linux命令提示符介绍
Linux命令提示符是在终端中显示的特殊字符序列,表示用户可以输入命令的位置。它通常包含了当前登录用户、主机名、当前工作目录和一些特殊字符。
一般情况下,Linux命令提示符的格式为:
[user@hostname current_directory]$
其中,各部分的含义如下:
- user: 当前登录用户的用户名。
- hostname: 主机名,表示当前所在的计算机。
- current_directory: 当前工作目录,表示用户当前所在的目录。
- $: 命令提示符的结束符,表示用户可以输入命令了。
- 默认情况下,Linux命令提示符以"$"符号作为前缀,并以空格分隔命令提示符和用户输入内容。
- 在某些发行版中,超级用户(root)会有不同的提示符,以提醒用户当前处于特权模式。超级用户的提示符通常以"#"符号作为前缀。
在提示符后面,用户可以输入各种命令和参数来与系统进行交互。当用户输入命令后,按下回车键,系统将执行该命令并输出相关结果。
例如,如果当前登录用户是"johndoe",主机名是"mycomputer",当前工作目录是"/home/johndoe",那么命令提示符将显示为:
johndoe@mycomputer:/home/johndoe$
【例如】[root@Centos01 ~]这
个命令提示符的示例:
它就显示了当前登录用户为root
,主机名为Centos01
,当前所在目录为用户的主目录~
(也就是/root
)。
root
: 表示当前登录用户为超级用户或管理员。在Linux系统中,root是具有最高权限的用户。Centos01
: 表示当前主机的名称。这是一个示例主机名,实际的主机名可能会有所不同。~
: 表示当前所在目录。~
是一个特殊的符号,代表当前用户的主目录。在这个示例中,~
指的是/root
目录,因为当前用户是root用户。
该命令提示符表示我当前以root用户身份登录到Centos01主机,并位于/root目录下。我可以在该命令提示符下输入各种命令来与系统进行交互和执行操作。
除了默认的提示符外,用户还可以根据自己的喜好和需求进行自定义。Linux命令提示符的外观和格式可以通过修改shell的配置文件来自定义。常见的shell包括Bash(默认shell)、Zsh、Fish等,它们都有不同的配置文件来设置命令提示符。
在大多数情况下,命令提示符以普通用户身份显示为"$"符号,以超级用户(root)身份显示为"#"符号。这是为了提醒用户当前所处的权限级别,以避免意外的系统修改或执行敏感命令。
Linux命令提示符的形式和其显示内容可以根据用户的需求和偏好进行自定义。我们可以通过修改相关的shell配置文件,如.bashrc或.zshrc,在其中设置自定义的命令提示符格式和样式,设置颜色、添加日期时间戳等来改变提示符的外观和功能。
例如我现在设置命令提示符的格式和样式,要求设置为蓝色,并且添加日期时间戳,那么就需要编辑终端配置文件(通常是.bashrc
或.zshrc
),操作步骤如下:
Ⅰ、使用nano编辑器
-
打开终端并登录到你的Linux系统。
-
使用文本编辑器(如vi、nano等)打开终端配置文件。
nano ~/.bashrc
-
在打开的文件中,找到类似于以下内容的行:
PS1="\\s-\\v\\\$ "
假如没有就直接在文本中插入4命令;
-
修改PS1变量的值来实现自定义。例如,将其修改为带有颜色和日期时间戳的提示符:
PS1="\[\e[32m\][\@] \u@\h \W \$ \[\e[m\]"
这个示例将添加绿色的日期时间戳,并在用户名、主机名和当前工作目录之间显示。
-
保存文件并关闭编辑器。
-
使更改生效,可以重新启动终端或者运行以下命令来立即应用更改:
source ~/.bashrc
完成上述步骤后,你应该看到终端的命令提示符已根据你的自定义进行了修改。每个用户可以在其自己的主目录下编辑相应的终端配置文件,以实现个性化的提示符设置。
Ⅱ、使用vi编辑器
-
打开终端并登录到你的Linux系统。
-
使用vi编辑器打开终端配置文件。在这里,我将使用
.bashrc
作为示例:vi ~/.bashrc
-
在打开的文件中,使用键盘的方向键或h/j/k/l键浏览到要编辑的行。
-
按下
i
键进入插入模式(Insert Mode),以便可以进行编辑。 -
修改提示符的值来实现自定义。例如,添加颜色和日期时间戳的提示符:
PS1="\[\e[32m\][\@] \u@\h \W \$ \[\e[m\]"
\[\e[32m\]
表示绿色,\[\e[34m\]
表示蓝色 -
按下
Esc
键退出插入模式。 -
输入
:wq
以保存文件并退出vi编辑器。 -
使更改生效,可以重新启动终端或者运行以下命令来立即应用更改:
source ~/.bashrc
完成上述步骤后,我们就看到终端的命令提示符已根据刚才的自定义进行了修改。
注意:
在使用vi编辑器时,要切换到插入模式才能进行编辑,然后按下
Esc
键退出插入模式,并保存文件后退出vi编辑器。
最终修改后的效果图:
假如你不需要这种设置,可以使用文本编辑器(如vi、nano等)打开终端配置文件(通常是.bashrc
或.zshrc
),删除这行或注释掉该行。如果要删除这行,请将其完全删除;如果要注释掉该行,请在行首添加井号(#)以注释掉它。然后保存文件并关闭编辑器,最后可以重新启动终端或者运行以下命令来立即应用更改。完成上述步骤后,你的命令提示符将恢复默认的外观,不再具有设置的颜色和日期时间戳。
提示:
在修改终端配置文件之前,最好备份原始文件以防止意外情况发生。我就在这里是误操作啦!
以上内容总结:
Linux命令提示符是位于终端窗口上的特殊符号,表示用户可以输入命令的位置。它提供了与Linux系统进行交互的接口,并提供各种有用的信息,如当前用户、主机名和工作目录等。
四、Linux目录结构
登录系统后,在当前命令窗口下输入命令:
ls /
执行后你会看到如下内容:
在Linux的目录结构中,没有盘符的概念,有的只是一个根目录 / ,在根目录下存放的就是一些具体的文件,在Linux中,会把一些硬件设备给抽象成文件的形式存放在硬盘上,于是在Linux系统中有这样的一句话,一切皆文件。
Liunx的树状目录结构如下:
Linux的目录结构是一种层次化的文件系统布局,类似于Unix目录结构。以下是Linux目录结构的主要描述:
- 根目录(/):Linux目录结构的最顶层是根目录,表示整个文件系统的起点。
- /bin:bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。包含可执行的二进制命令,它们是系统启动和维护所必需的。
- /boot:包含启动Linux系统所需的文件,包括内核和引导加载程序。这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
- /dev:dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。包含设备文件,用于与系统硬件设备进行交互。
- /etc:etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。包含系统的配置文件和目录,例如网络配置、用户配置、服务配置等。
- /home:用户的主目录,每个用户都有一个以其用户名命名的目录,一般该目录名是以用户的账号命名的,如树状图中的 alice、bob 和 eve。
- /lib和/lib64:包含共享库文件,这些文件提供给程序在运行时使用的函数和资源。lib 是 Library(库) 的缩写,这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
- /media:用于挂载可移动介质(如CD、DVD、USB驱动器)的挂载点。linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
- /mnt:用于暂时挂载其他文件系统的挂载点。系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
- /opt:用于安装可选软件的目录。通常,第三方软件和其他可选软件包被安装在/opt目录下。opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
- /proc:虚拟文件系统,包含系统和进程的信息。可以通过读取和写入/proc目录中的文件来访问和操作系统和进程的信息。proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过该命令来屏蔽主机的ping命令,使别人无法ping你的机器:
- /root:超级用户(root)的主目录。该目录为系统管理员,也称作超级权限者的用户主目录。
- /sbin:包含系统管理员使用的系统命令,这些命令通常需要root权限来执行。s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。
- /tmp:用于存储临时文件和临时数据。这个目录中的文件在系统重新启动时通常会被清除。tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。
- /usr:包含用户安装的应用程序、库和文档等。它具有类似于根目录的层次结构,包括/bin、/lib、/include、/share等子目录。usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
-
/usr/bin:系统用户使用的应用程序。
-
/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
-
/usr/src:内核源代码默认的放置目录。
- /var:包含经常变化的数据,例如日志文件、缓存文件、邮件等。var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
-
/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
-
/selinux:这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
-
/srv:该目录存放一些服务启动之后需要提取的数据。
-
/sys:这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
-
/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
这些是Linux目录结构中的一些重要目录。它们的层次结构使得文件系统易于管理和导航,并且提供了一种组织文件和目录的有效方式。每个目录都有其特定的用途和功能。通过路径,用户和程序可以准确定位和访问文件和目录。
本篇内容主要是对Linux系统的熟悉,对整个结构框架,各种文件路径介绍,方便更好的掌握,后面的文章将细致总结Linux系统操作命令的详细使用方法,敬请期待!!!