目录
发展历程
Linux操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:Unix操作系统、MINIX操作系统、GNU计划、POSIX标准和Internet网络。
20世纪80年代,计算机硬件的性能不断提高,PC的市场不断扩大,当时可供计算机选用的操作系统主要有Unix、DOS和MacOS这几种。Unix价格昂贵,不能运行于PC;DOS显得简陋,且源代码被软件厂商严格保密;MacOS是一种专门用于苹果计算机的操作系统。
此时,计算机科学领域迫切需要一个更加完善、强大、廉价和完全开放的操作系统。由于供教学使用的典型操作系统很少,因此当时在荷兰当教授的美国人AndrewS.Tanenbaum编写了一个操作系统,名为MINIX,为了向学生讲述操作系统内部工作原理。
MINIX虽然很好,但只是一个用于教学目的的简单操作系统,而不是一个强有力的实用操作系统,然而最大的好处就是公开源代码。全世界学计算机的学生都通过钻研MINIX源代码来了解电脑里运行的MINIX操作系统,芬兰赫尔辛基大学大学二年级的学生Linus Torvalds就是其中一个。在吸收了MINIX精华的基础上,Linus于1991年写出了属于自己的Linux操作系统,版本为Linux0.01,是Linux时代开始的标志。他利用Unix的核心,去除繁杂的核心程序,改写成适用于一般计算机的x86系统,并放在网络上供大家下载,1994年推出完整的核心Version1.0。至此,Linux逐渐成为功能完善、稳定的操作系统,并被广泛使用。
1.了解Linux的基本概念
什么是Linux?
在信息技术领域,Linux操作系统的学习和应用成为了不可或缺的一部分。随着对Linux的探索加深,我逐渐体会到它的强大与灵活,以及开源社区的巨大力量。下面分享一个在学习过程中获得的重要经验。
Linux是一种开源的类Unix操作系统,其内核最初由Linus Torvalds在1991年发布。与Windows或macOS不同,Linux允许用户自由地修改和定制其代码,因此被广泛应用于各种设备和系统中。Linux具有良好的稳定性、安全性和灵活性,因此在服务器、嵌入式系统和个人电脑等领域都有着广泛的应用。此外,Linux还有许多不同的发行版,如Ubuntu、CentOS、Debian、Fedora等,每个发行版都有其独特的特性和用途。
在初次接触Linux时,我被其终端界面的简洁和强大所吸引。与图形用户界面(GUI)相比,命令行界面(CLI)提供了更加直接和高效的方式来管理系统资源、执行任务和自动化操作。通过键入简单的命令,可以完成从文件操作到系统配置的各种任务。
2.如何操作Linux系统
安装Linux
- 选择发行版:根据需求选择适合的Linux发行版,如Ubuntu、CentOS、Debian等。
- 下载镜像:从官方网站下载ISO镜像文件。
- 制作启动盘:使用工具(如Rufus)将ISO镜像写入U盘。
- 安装系统:
- 将U盘插入电脑并设置为启动盘。
- 启动电脑,进入安装界面,按照提示进行安装。
- 设置语言、时区、用户名和密码等信息。
3.Linux代码及操作
1. 文件和目录操作
ls
:列出当前目录中的文件和子目录。cd
:切换当前工作目录。cp
:复制文件或目录。mv
:移动或重命名文件或目录。rm
:删除文件或目录。mkdir
:创建新目录。
2. 文件内容查看与编辑
cat
:显示文件内容。less
:分页查看文件内容。nano
/vim
:文本编辑器,用于编辑文件内容。
3. 系统信息与管理
ps
:显示当前正在运行的进程。top
:实时显示系统资源使用情况。df
:查看磁盘空间使用情况。free
:查看内存使用情况。
4. 网络操作
ping
:测试网络连接。ifconfig
/ip
:查看和配置网络接口。scp
:在不同主机间安全地复制文件。
5.系统监控
- htop:交互式进程查看工具。
- iostat:查看CPU和I/O统计信息。
- vmstat:查看系统虚拟内存统计信息。
6.磁盘管理
- df:查看磁盘空间使用情况 (
df -h
)。 - du:查看目录和文件大小 (
du -sh directory
)。 - fdisk/parted:管理磁盘分区。
4. Shell脚本
Shell脚本是自动化任务的重要工具,通过简单的脚本可以完成复杂的操作。
5.配置命令
hostname - 显示或设置系统的主机名。
bash
hostname
sudo hostname newhostname
date - 显示或设置系统的日期和时间。
bash
date
sudo date MMDDhhmm[[CC]YY][.ss]
uname - 显示系统信息。
bash
uname -a # 显示所有信息
uname -r # 显示内核版本
sysctl - 用于在运行时动态地修改内核参数。
bash
sudo sysctl -w parameter=value
sudo sysctl -p # 应用/etc/sysctl.conf中的更改
systemctl - 管理系统服务(systemd系统)。
bash
sudo systemctl start/stop/restart/status service-name
sudo systemctl enable/disable service-name
软件包管理
apt/apt-get - Debian和Ubuntu系统上的软件包管理工具。
bash
sudo apt update
sudo apt install package-name
yum/dnf - CentOS和Fedora系统上的软件包管理工具。
bash
sudo yum update
sudo yum install package-name
snap - 安装、更新和管理Snap软件包。
bash
sudo snap install package-name
sudo snap refresh package-name
网络配置
ifconfig - 显示和配置网络接口信息(已过时,建议使用ip命令)。
bash
ifconfig eth0
sudo ifconfig eth0 192.168.1.10 netmask 255.255.255.0
ip - 管理和显示路由、网络设备、连接等信息。
bash
ip addr show
sudo ip addr add 192.168.1.10/24 dev eth0
ss - 显示套接字统计信息。
bash
ss -tuln # 显示所有监听端口
用户和权限管理
useradd/adduser - 创建新用户。
bash
sudo useradd -m username
sudo passwd username # 设置用户密码
usermod - 修改用户属性。
bash
sudo usermod -aG groupname username
chmod/chown - 修改文件或目录的权限和所有者。
bash
chmod 755 filename
sudo chown username:groupname filename
sudoers - 编辑sudo命令的权限。
bash
sudo visudo
6.总结
通过掌握Linux的基础命令,我不仅提升了技术水平,还培养了更好的问题解决能力和系统思维能力。这一课一得让我更加坚定地投入到Linux的学习和应用中,也让我对开源社区充满了敬意。在未来的学习旅程中,我将继续探索更多高级功能和工具,以不断提升自我。
Linux的世界广阔而深邃,每一次学习和实践都能带来新的收获和启迪。希望这篇分享能为其他同样在学习Linux道路上的人提供一些帮助和激励。