【Linux操作系统】探秘Linux奥秘:Linux 操作系统的解密与实战

简介: 【Linux操作系统】探秘Linux奥秘:Linux 操作系统的解密与实战



🪐1 初识Linux OS

Linux是一种开源的Unix-like操作系统内核,它是基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。Linux内核最初是由芬兰程序员Linus Torvalds在1991年创建的,之后成为自由软件和开源社区的一个主要项目。

以下是Linux操作系统的一些主要特点和组成部分:

  1. 内核(Kernel): Linux内核是操作系统的核心,它管理系统资源,如处理器、内存、设备驱动程序等。Linus Torvalds最初编写了Linux内核,它是Linux操作系统的基础。
  2. Shell(命令解释器): Linux操作系统使用命令行界面(CLI),用户与系统交互通过Shell。用户可以通过输入命令执行各种任务,管理文件、进程、权限等。常见的Shell包括Bash(Bourne Again SHell)和Zsh。
  3. 文件系统: Linux支持多种文件系统,包括Ext4、XFS、Btrfs等。文件系统负责管理存储设备上的文件和目录,以及文件的权限、所有权等信息。
  4. 用户界面: 虽然Linux以CLI为主,但也支持图形用户界面(GUI)。常见的Linux桌面环境有GNOME、KDE、XFCE等,它们提供了直观的用户体验。
  5. 软件包管理系统: 大多数Linux发行版都有自己的软件包管理系统,用于安装、更新和删除软件。常见的包管理工具有APT(Debian/Ubuntu)、YUM(Red Hat/CentOS)、Pacman(Arch Linux)等。
  6. 网络功能: Linux具有强大的网络功能,支持各种网络协议和服务。它可以作为服务器运行各种网络服务,如Web服务器(Apache、Nginx)、邮件服务器(Postfix、Sendmail)、文件服务器(Samba)等。
  7. 多用户和多任务: Linux是一个多用户系统,多个用户可以同时访问同一台机器。它也是一个多任务系统,可以同时运行多个进程。
  8. 安全性: Linux以安全性而闻名,系统管理员可以设置用户权限、访问控制列表(ACLs)等来确保系统的安全性。
  9. 开源和自由: Linux是开源软件,其源代码可以被任何人查看、修改和分发。大多数Linux发行版是免费提供的,用户可以自由选择、使用和分发。
  10. 发行版(Distribution): 由于Linux内核是开源的,不同的组织和社区创建了各种Linux发行版,例如Ubuntu、Debian、Fedora、CentOS、Arch Linux等。每个发行版都有自己的特点和包管理系统。

总体而言,Linux操作系统是一个强大、灵活且可定制的操作系统,广泛应用于服务器、嵌入式系统、超级计算机等各种领域。


🪐2. Linux 操作系统的解密与实战

🌍1. 实验目的

  • 掌握 shell 的基本功能和概念。
  • 熟悉 Linux 系统的基本操作。
  • 实现 Linux 系统的基本管理。

🌍2. 实验准备

  • 获取 L inux 镜像文件:下载适用于虚拟机的 Linux 镜像文件,比如 Ubuntu 21.04,从 Ubuntu 官方网站 获取。
  • 安装虚拟化软件:安装 VMware Workstation 或 Virtualbox,两者提供简便的虚拟机管理和配置。
  • 创建 Linux 虚拟机:打开虚拟化软件,按照指引创建新虚拟机。设置内存为 2GB 或更多,其余选项选择默认值。加载下载好的 Linux 系统 ISO 镜像文件,启动虚拟机完成 Linux 系统安装。  

🌍3. 实验内容

(1)在UNIX/Linux系统中,用户登录到系统后,可以看到一个shell提示符(#或$)。用户可以在提示符后面输入任何命令及参数如

$date        #以默认方式显示日期和时间

$date -u        #传统UNIX风格选项

$date --utc     #GNU风格选项

$ls -l /etc/passwd #默认式或-u。传统UNIX风格

$ls -l -n /etc/passwd #传统UNIX风格选项

$ls -l --numeric-uid-gid /etc/passwd #混合使用

$ls -ln --time-style=iso /etc/passwd #同上

(2)Bash,为每个用户在~/.bash_history文件内预设了1000条记录的历史,并为每条记录一个编号,使用history [num]命令查询历史记录。

history 20

而使用history则可以输出所有的指令记录。

history

(3)单击“继续”按钮,选择“正常安装”和“安装 Ubuntu 时下载更新”。若要重新执行某条历史记录的命令则可以使用格式: $ !记录编号

(4)指把命令的标准输出保存到文件中。有两种方式:覆盖方式(>)和追加方式(>>)。例如:

$ ls > mylist.txt      #覆盖方式

$ ls /usr >> mylist.txt    #追加方式

(5)标准输入重定向指让命令的标准输入从指定的文件中读取,也就是说,输入不来自键盘,而来自一个指定的文件。

$ wc /etc/passwd    #统计/etc/passwd的信息。

$ wc < /etc/passwd #标准输入定向到/etc/passwd

$ wc < /etc/passwd >> usercount   #标准输入重定向/etc/passwd,标准输出重定向到文件usercount

$ wc     #交互方式,从键盘数据,按^D结束

(6)实现管道机制的符号是“|”,其方法为:

    cmd1 | cmd2 | … | cmdn

例如:

$ ls -l /dev | wc -l  

$ cat /etc/passwd | grep "root:"|wc -l

(7)tee命令读取标准输入,并将其内容同时写到标准输出和指定文件,其用法为:tee [-ai] [files].#将当月日历表显示到屏幕的同时也保存到文件calendar中

$ cal | tee calendar   #将根目录短式列表显示到屏幕上的同时也保存到文件f1和f2中

$ ls / | tee f1 f2

(8)单击“继续”按钮,进入正式的安装界面,安装过程中需要在线下载

软件包。在UNIX/Linux系统中,用户可以定义自己的变量。定义后的变量就像在其他程序设计语言里一样被引用。引用变量时需要使用“$”作为变量名的前导字符。

变量的定义方法如下:

var_name=var_value

变量的定义和使用示例如下:

$ x=18         #定义变量x,其值为18

$ y='I am a student'     #定义变量y,值为'I am a student'

$ echo $x $y $HOME    #显示变量x,y和环境变量HOME的值

$ z="$y, I am $x ."      #由变量x和y定义变量z

$ echo $x $y $z

(9)环境变量可用命令env、export或set来查询,比如:

$ export     #显示所有的环境变量

$ env            #同上。

问题:这里由于前面已有$,再次输入$env或$export所以没反应

解决:只需输入env或export即可显示输出.

 

(10)返回值可在命令刚刚执行完毕后,通过$?来访问。比如:

$ ls /dev/sd*     #显示系统中的SCSI硬盘设备

$ echo $?    #显示返回状态(值)

1.列目录内容(ls)      dir

2.建立目录(mkdir)     md / mkdir

3.删除目录(rmdir)     rd / rmdir

4.改变工作目录(cd)    cd / chdir

5.显示当前目录(pwd)   cd

 

(11)将命令行参数中的字符串或变量的值写到标准输出。默认情况下,每个echo命令执行完毕后会产生一个换行符,如果不带参数执行此命令,将输出一个空行。用法为:

echo [options] string ...

参数说明-e:用于处理转义字符;-n:用于抑制默认的换行符;-E:用于抑制对转义字符的处理

$ echo Hell I am echo . #显示字符串常量

#不处理转义字符

$ echo -E "My cell phone number is:\n13903750000"

#处理转义字符

$ echo -e "My cell phone number is:\n\t13903750000"

$ echo -n "I am student, "      #不处理换行

$ echo "My name is Bill Joy"    #以上命令的输出在同一行上

(12)read从标准输入上读入一行,并将它读到的内容按分隔符分隔的字符串传递给相应变量。若值的个数大于变量个数,则多余的部分赋给最后一个变量;若值的个数小于变量个数,则后面多余的变量被置空。如果没有指定变量名,则默认使用REPLY作为变量名。用法为:

read [-d delim] [ -n num] [-p prompt] [-r] [-s] [-t time] var1 var2 …

(13)进程树及进程状态查询(pstree)

# pstree          #显示系统进程树

# pstree   -p| more   #分屏显示系统进程树

# pstree -p | grep vsftpd #查询进程vsftpd

# pstree user #显示指定用户(比如root)的进程


🌍4. 实验心得

  1. 基础掌握与操作熟练 通过本次实验,我成功掌握了shell的基本功能与基本概念,初步熟悉了Linux系统的基本操作,并成功实现了对Linux系统的基本管理。在操作中,我发现了同一个显示日期可以有多个不同的指令,同时使用history [num]时,不论指令是否可运行,都能够正确显示出来。
  2. 命令结合与输入输出处理方法 实验过程中,我深刻理解了将一个程序或命令的输出作为另一个程序或命令的输入的两种方法。通过临时文件将多个命令或程序结合在一起,以及通过通道机制,我能够更灵活地组织和执行多个命令,提高了操作效率。在此过程中,我注意到环境变量输入时,使用命令$env和$export未能正确显示结果,后来发现只需输入env和export即可,因为已经包含了$符号。
  3. 细致观察与细节注意 在实验中,我发现了一些细微但重要的差异,例如在使用echo [options] string ...时,-e与-E的区别。我学到了-e可以识别转义字符,而-E则无法识别,将其视为普通字符串处理。这种对细节的敏感观察帮助我更加准确地使用命令,防止由于遗漏细节而产生错误。

📝总结

Linux操作系统的领域就像一片未被勘探的信息大海,引领你勇敢踏入开源系统的神秘领域。这是一场独特的学习冒险,从基本概念到系统架构,逐步揭示更深层次的操作系统原理、命令行工具和高级系统管理的奥秘。


目录
相关文章
人工智能 运维 架构师
348 0
|
8月前
|
监控 Ubuntu Linux
什么Linux,Linux内核及Linux操作系统
上面只是简单的介绍了一下Linux操作系统的几个核心组件,其实Linux的整体架构要复杂的多。单纯从Linux内核的角度,它要管理CPU、内存、网卡、硬盘和输入输出等设备,因此内核本身分为进程调度,内存管理,虚拟文件系统,网络接口等4个核心子系统。
902 0
|
8月前
|
Unix 物联网 Linux
都什么年代了,你还不懂啥是Linux操作系统
至于华为鸿蒙操作系统是不是独树一帜,这个留给各位阅读本文的网友们来讨论
364 0
|
8月前
|
Web App开发 缓存 Rust
|
8月前
|
安全 Linux iOS开发
linux属于什么操作系统
Linux是一种自由和开放源代码的操作系统,具有高度的灵活性和可定制性。与常见的操作系统如Windows和macOS相比,Linux具有自由、安全和稳定等优势。Linux已广泛应用于服务器、桌面电脑、超级计算机和嵌入式设备等领域,并且在未来的发展前景广阔。由于其自由和开放源代码的特性,Linux还促进了计算机技术和社区的发展,为全球的计算机用户提供了更多的选择和可能性。
|
8月前
|
Ubuntu Unix Linux
操作系统的最强入门科普(Unix/Linux篇)
下期文章,小枣君会重点聊聊Windows和macOS那条线。敬请关注! 如果大家觉得文章不错,还请帮忙多多转发!谢谢!
|
8月前
|
安全 Ubuntu Unix
关于Linux操作系统,你必须要知道的事
我们可以看到无论是Debian还是Buildroot都有各自的特点,为客户提供了更大的选择空间和灵活性,大家可以根据自己的需求选择合适的版本来满足终端用户的体验和功能需求。从平技术将会一直关注更多更安全、灵敏、易于开发的Linux版本,做好适配工作,不断为客户带来“简单开发、方便应用”的使用体验。
|
8月前
|
安全 Ubuntu Linux
如何安装Linux操作系统?
此时,您可以选择重新启动计算机,然后从硬盘上的Linux系统启动。以上是一个大致的安装过程。请注意,不同的Linux发行版可能会在细节上有所差异,因此在进行安装之前,请确保您阅读并理解了相应发行版的安装指南或文档。
|
8月前
|
Ubuntu 物联网 Linux
从零安装一个Linux操作系统几种方法,以Ubuntu18.04为例
一切就绪后,我们就可以安装操作系统了。当系统通过优盘引导起来之后,我们就可以看到跟虚拟机中一样的安装向导了。之后,大家按照虚拟机中的顺序安装即可。 好了,今天主要介绍了Ubuntu Server版操作系统的安装过程,关于如何使用该操作系统,及操作系统更深层的原理,还请关注本号及相关圈子。
|
8月前
|
Ubuntu Linux 开发者
Linux发行版比较:选择适合你的操作系统
在做出选择之前,建议您先在虚拟机或双系统环境中尝试不同的发行版,根据自己的体验和需求做出决策。选择适合自己的Linux发行版是一个个人化和主观的过程,最重要的是找到符合自己需求和喜好的发行版,让您在使用Linux系统时感到舒适和方便。