第1章 键入第一个linux命令
本章是介绍性章节,您将了解Linux的历史,以及Linux在当今世界的影响,以及它的发展趋势。您还将学习如何安装一个Linux虚拟机和运行一些简单的命令。
Linux的起源
Linux的故事始于1991年,当时林纳斯·托瓦兹(Linus Torvalds)是芬兰赫尔辛基大学的一名计算机科学学生。他作为一个爱好,开始编写一个免费的操作系统。这个小小的业余项目最终成为了世界上最大的开源项目,也就是现在大家熟知的Linux操作系统。
什么是开源(Open-Source):
开源项目是指其源代码对公众开放,任何人都可以查看、修改和使用这些代码。源代码就是构建软件所使用的代码集合。如:Linux操作系统、Python、
什么是闭源(Closed-Source):
闭源项目则是指源代码不对公众开放,公众无法查看、修改或使用这些代码。如Windows操作系统、Word、Excel软件
操作系统与内核Kernel的关系
内核只是任何操作系统的核心。它是操作系统的一部分,用来组织对CPU、内存和磁盘等系统资源的访问。内核是计算机系统中的核心部分,负责管理所有硬件资源,并提供与硬件交互的接口。其他系统组件和应用程序,如GUI、Web浏览器、文件管理器和文本编辑器,都是在操作系统的框架内,通过内核提供的功能来实现各自的任务。因此,内核是所有软件与硬件之间的中介,它确保了资源的有效分配和管理。
Linux发行版
与微软的Windows或苹果的macOS不同,Linux有许多不同的版本,这些版本被称为发行版(distributions),简称为distros。
由于Linux是开源的,许多个人和组织修改了Linux内核以及其他Linux操作系统的组件,开发和定制了适合其需求的Linux版本。
实际上,有数百个Linux发行版存在!你可以访问www.distrowatch.com来查看庞大的Linux发行版列表。
distrowatch.com的好处是,它向你展示了全球所有Linux发行版的受欢迎程度排名。你还会发现,一些Linux发行版是为了特定目的设计的。例如,Scientific Linux是科学家中非常受欢迎的发行版,因为它预装了许多科学应用程序,这使得它成为科学界首选的Linux发行版。
Linux现状和未来
Linux自1991年由Linus Torvalds开发以来,已经从一个业余项目成长为全球最重要的开源操作系统之一。最初,它只是一个简单的内核,但随着全球社区的贡献和开发,Linux如今在各个领域都占据了举足轻重的地位。现今,Linux不仅运行着超过90%的全球顶级超级计算机,还广泛应用于服务器、云计算、嵌入式系统和移动设备。事实上,Android操作系统本质上就是一个基于Linux的发行版。
Linux的开源和高安全性使其成为政府、企业和大型互联网公司(如亚马逊、eBay和PayPal)运行关键任务服务器的首选操作系统。此外,Linux在云计算领域的统治地位显著,超过75%的云解决方案运行在Linux上。
此外,随着人工智能、物联网和边缘计算等技术的发展,Linux将继续在这些领域发挥核心作用。其开放的生态系统和全球社区的持续支持,保证了Linux在未来的不断创新和进步。
安装linux虚拟机
安装Linux系统有多种方法。例如,如果你当前的主要操作系统是Windows,你可以选择在Windows里双启动Linux,但这种方法对初学者不太友好。安装过程中出现的任何错误都可能带来很多麻烦,甚至有时你可能无法启动Windows!为了避免这些麻烦,我将向你展示如何将Linux安装为虚拟机。
什么是虚拟机?
虚拟机简单来说就是在一台计算机(主机)中运行的另一台计算机。虚拟机共享主机的资源,并且表现得像一台独立的物理机器。你甚至可以运行嵌套虚拟机,也就是说,可以在一台虚拟机中运行另一台虚拟机。
安装linux虚拟机大致步骤
安装虚拟机的过程非常简单,你只需按照以下步骤操作:
- 安装VirtualBox(或VMware Player)。
- 下载任何Linux发行版的ISO镜像文件。
- 打开VirtualBox并开始安装Linux系统
安装VirtualBox
首先,你需要安装VirtualBox,这是一款跨平台的虚拟化应用程序,它允许我们创建虚拟机。VirtualBox是免费的,可以在macOS、Windows和Linux上运行。通过百度搜索”VirtualBox下载”可以找到它,或者你也可以直接访问以下链接下载:www.virtualbox.org/wiki/Downloads。
下载镜像文件iso
安装完VirtualBox后,接下来需要下载一个Linux发行版的ISO镜像文件。本课程中会使用Ubuntu 20.04 LTS,它是初学者中最受欢迎的Linux发行版。
官网镜像获取
你可以在以下链接下载Ubuntu:
https://releases.ubuntu.com/20.04
镜像站获取
全部镜像站:https://launchpad.net/ubuntu/+cdmirrors
清华源镜像:https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/
百度网盘链接
通过网盘分享的文件:软件包
链接: https://pan.baidu.com/s/1DTa_0n5so7vetVWrFp9NkA?pwd=2pf7 提取码: 2pf7
–来自百度网盘超级会员v6的分享
打开VirtualBox并开始安装Linux系统
点击“新建”
输入虚拟机的名称、选择保存路径、虚拟机类型
配置虚拟机的内存大小2G以上,处理器2个
配置虚拟机的硬盘大小10G以上
点击完成
查看虚拟机的明细
配置宿主机与虚拟机之间端口转发,方便SSH链接(可选步骤)
启动虚拟机,会弹出选择光驱,这里选择下载好的ISO
选择您已经下载的Ubuntu ISO映像,然后单击开始以启动Ubuntu安装程序,如下屏幕截图所示。
这一步是选择你的键盘布局,由于我国的布局和美国的一致,咱们这里选择默认。
软件安装选项和其他设置,选择默认
磁盘分区和系统安装选项,选择默认
选择时区
为这个系统创建一个用户,这里推荐使用下面的信息,elliot是电视剧《黑客军团》的主人公的名字,他可以使用linux系统随时侵入他人的电脑。注意记住你的设置的密码。
等待系统安装完成,然后重启
过程中可以调整窗口大小,我这里选择200%
安装完成,提示重启
提示需要remove the installationmedium,按回车即可
进入登录界面,点击elliot,输入密码进行登录
登录成功,首次可能会询问一下,是否更新,这里选择关闭。
启动终端terminal
可选步骤:在虚拟机中安装openssh-server
sudo apt install openssh-server
接着输入y
在虚拟机中启动ssh服务,并查看服务状态为active即可
sudo service ssh start
sudo systemctl status ssh
可选步骤:宿主机cmd命令行中,使用ssh连接虚拟机
ssh elliot@localhost -p 2222
选择yes,然后输入elliot的密码,即可
可选步骤:使用ssh连接虚拟机成功。以后启动虚拟机后,可以选择在这里输入学习。
一些简单命令
date命令
显示日期信息
elliot@ubuntu-linux:~$ date
2024年 09月 18日 星期三 22:17:47 CST
cal命令
显示日历(calender)信息
elliot@ubuntu-linux:~$ cal
九月 2024
日 一 二 三 四 五 六
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
显示2024年日历信息
elliot@ubuntu-linux:~$ cal 2024
2024
一月 二月 三月
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
1 2 3 4 5 6 1 2 3 1 2
7 8 9 10 11 12 13 4 5 6 7 8 9 10 3 4 5 6 7 8 9
14 15 16 17 18 19 20 11 12 13 14 15 16 17 10 11 12 13 14 15 16
21 22 23 24 25 26 27 18 19 20 21 22 23 24 17 18 19 20 21 22 23
28 29 30 31 25 26 27 28 29 24 25 26 27 28 29 30
31
四月 五月 六月
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
1 2 3 4 5 6 1 2 3 4 1
7 8 9 10 11 12 13 5 6 7 8 9 10 11 2 3 4 5 6 7 8
14 15 16 17 18 19 20 12 13 14 15 16 17 18 9 10 11 12 13 14 15
21 22 23 24 25 26 27 19 20 21 22 23 24 25 16 17 18 19 20 21 22
28 29 30 26 27 28 29 30 31 23 24 25 26 27 28 29
30
七月 八月 九月
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
1 2 3 4 5 6 1 2 3 1 2 3 4 5 6 7
7 8 9 10 11 12 13 4 5 6 7 8 9 10 8 9 10 11 12 13 14
14 15 16 17 18 19 20 11 12 13 14 15 16 17 15 16 17 18 19 20 21
21 22 23 24 25 26 27 18 19 20 21 22 23 24 22 23 24 25 26 27 28
28 29 30 31 25 26 27 28 29 30 31 29 30
十月 十一月 十二月
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
1 2 3 4 5 1 2 1 2 3 4 5 6 7
6 7 8 9 10 11 12 3 4 5 6 7 8 9 8 9 10 11 12 13 14
13 14 15 16 17 18 19 10 11 12 13 14 15 16 15 16 17 18 19 20 21
20 21 22 23 24 25 26 17 18 19 20 21 22 23 22 23 24 25 26 27 28
27 28 29 30 31 24 25 26 27 28 29 30 29 30 31
显示1996年2月日历信息
elliot@ubuntu-linux:~$ cal feb 1996
二月 1996
日 一 二 三 四 五 六
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29
clear命令
清屏终端
elliot@ubuntu-linux:~$ clear
lscpu命令
显示CPU体系结构信息,是List CPU的英文缩写
elliot@ubuntu-linux:~$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 39 bits physical, 48 bits virtual
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 1
Core(s) per socket: 2
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 186
Model name: 13th Gen Intel(R) Core(TM) i5-13500H
Stepping: 2
CPU MHz: 3187.210
BogoMIPS: 6374.42
Hypervisor vendor: KVM
Virtualization type: full
L1d cache: 96 KiB
L1i cache: 64 KiB
L2 cache: 2.5 MiB
L3 cache: 36 MiB
NUMA node0 CPU(s): 0,1
Vulnerability Gather data sampling: Not affected
....
uptime命令
显示当前的时间,电脑运行了多久,几个用户登录、及过去1、5、15分钟的系统的平均负载。
elliot©ubuntu-linux:-$ uptime
18:48:04 up 4 days, 4:02, 1 user, load average: 0.98, 2.12, 3.43
平均负载的理解
2.00, 4.00, 6.00
2.00——+:过去1分钟的平均负载。
4.00——+:过去5分钟内的平均负载量。
6.00——+:过去15分钟内的平均负载量。
平均负载的例子
1.00, 3.00, 7.00
显示系统负载正随时间的推移而减少。
5.00, 3.00, 2.00
系统负载正随时间的推移而增加
reboot命令
重启电脑
elliot©ubuntu-linux:-$ reboot
pwd命令
打印当前所在的目录
elliot@ubuntu-linux:~$ pwd
/home/elliot
ls命令
列出您当前的工作目录的内容
elliot@ubuntu-linux:~$ ls
Desktop Downloads Pictures SimpleList Templates
Documents Music Public snap Videos
passwd命令
设置当前用户的密码
elliot@ubuntu-linux:~$ passwd
Changing password for elliot.
Current password:
New password:
Retype new password:
hostname命令
显示系统的主机名
elliot@ubuntu-linux:~$ hostname
ubuntu-linux
free命令
显示系统上的空闲内存和使用内存量
elliot@ubuntu-linux:~$ free
total used free shared buff/cache available
Mem: 2010976 896200 126064 7444 988712 945968
Swap: 703976 3864 700112
free -h:以对人类(human)友好的方式,显示系统上的空闲内存和使用内存量。
elliot@ubuntu-linux:~$ free -h
total used free shared buff/cache available
Mem: 1.9Gi 875Mi 122Mi 7.0Mi 965Mi 923Mi
Swap: 687Mi 3.0Mi 683Mi
free –human:同上
elliot@ubuntu-linux:~$ free --human
total used free shared buff/cache available
Mem: 1.9Gi 875Mi 122Mi 7.0Mi 965Mi 923Mi
Swap: 687Mi 3.0Mi 683Mi
df命令
显示您的系统上可用的磁(硬)盘空间量
elliot@ubuntu-linux:~$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 958360 0 958360 0% /dev
tmpfs 201100 1476 199624 1% /run
/dev/sda5 14856168 11161436 2918284 80% /
tmpfs 1005488 0 1005488 0% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 1005488 0 1005488 0% /sys/fs/cgroup
/dev/loop0 128 128 0 100% /snap/bare/5
/dev/loop2 65536 65536 0 100% /snap/core20/2318
/dev/loop3 354688 354688 0 100% /snap/gnome-3-38-2004/119
/dev/loop4 358144 358144 0 100% /snap/gnome-3-38-2004/143
/dev/loop5 517248 517248 0 100% /snap/gnome-42-2204/176
/dev/loop6 321280 321280 0 100% /snap/code/169
/dev/loop7 93952 93952 0 100% /snap/gtk-common-themes/1535
/dev/loop8 76160 76160 0 100% /snap/core22/1612
/dev/loop9 47104 47104 0 100% /snap/snap-store/638
/dev/loop11 39808 39808 0 100% /snap/snapd/21759
/dev/loop10 13312 13312 0 100% /snap/snap-store/1113
/dev/loop12 51072 51072 0 100% /snap/snapd/18357
/dev/sda1 523248 4 523244 1% /boot/efi
tmpfs 201096 32 201064 1% /run/user/1000
/dev/loop13 65536 65536 0 100% /snap/core20/2379
df -h:以对人类友好的方式,显示您的系统上可用的磁(硬)盘空间量
elliot@ubuntu-linux:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 936M 0 936M 0% /dev
tmpfs 197M 1.5M 195M 1% /run
/dev/sda5 15G 11G 2.8G 80% /
tmpfs 982M 0 982M 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 982M 0 982M 0% /sys/fs/cgroup
/dev/loop0 128K 128K 0 100% /snap/bare/5
/dev/loop2 64M 64M 0 100% /snap/core20/2318
/dev/loop3 347M 347M 0 100% /snap/gnome-3-38-2004/119
/dev/loop4 350M 350M 0 100% /snap/gnome-3-38-2004/143
/dev/loop5 506M 506M 0 100% /snap/gnome-42-2204/176
/dev/loop6 314M 314M 0 100% /snap/code/169
/dev/loop7 92M 92M 0 100% /snap/gtk-common-themes/1535
/dev/loop8 75M 75M 0 100% /snap/core22/1612
/dev/loop9 46M 46M 0 100% /snap/snap-store/638
/dev/loop11 39M 39M 0 100% /snap/snapd/21759
/dev/loop10 13M 13M 0 100% /snap/snap-store/1113
/dev/loop12 50M 50M 0 100% /snap/snapd/18357
/dev/sda1 511M 4.0K 511M 1% /boot/efi
tmpfs 197M 32K 197M 1% /run/user/1000
/dev/loop13 64M 64M 0 100% /snap/core20/2379
echo命令
可以在终端上打印一行文本,例如
elliot@ubuntu-linux:~$ echo Cats are better than Dogs!
Cats are better than Dogs!
history命令
按时间顺序显示了我们到目前为止所运行的所有命令。
elliot©ubuntu-linux:-$ history
1 date
2 blabla
3 cal
4 cal 2022
5 cal feb 1993
6 clear
7 lscpu
8 uptime
9 reboot
10 pwd
11 ls
12 passwd
13 hostname
14 free
15 free -h
16 free --human
17 df
18 df -h
19 echo Cats are better than Dogs!
20 history
!7:运行第7个命令
elliot@ubuntu-linux:~$ !7
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 39 bits physical, 48 bits virtual
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 1
Core(s) per socket: 2
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
uname命令
显示系统的内核信息
elliot@ubuntu-linux:~$ echo Cats are better than Dogs!
Cats are better than Dogs!
uname -v:打印当前的内核版本的信息
elliot@ubuntu-linux:~$ uname -v
#131~20.04.1-Ubuntu SMP Mon Aug 12 13:09:56 UTC 2024
uname -r:打印当前内核发布版本信息
elliot@ubuntu-linux:~$ uname -r
5.15.0-121-generic
uname -a:一次性打印出当前内核的所有信息
elliot@ubuntu-linux:~$ uname -a
Linux ubuntu-linux 5.15.0-121-generic #131~20.04.1-Ubuntu SMP Mon Aug 12 13:09:56 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
lsb_release -a
显示您当前正在运行的Ubuntu版本的命令
elliot@ubuntu-linux:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.6 LTS
Release: 20.04
Codename: focal
exit命令
退出您当前的终端会话
elliot@ubuntu-linux:~$ exit
课后练习
练习题
打开你的终端,尝试解决以下任务:
- 显示2023年全年的日历。
- 以人类可读的格式显示系统的内存信息。
- 显示你的主目录内容。
- 更改当前用户的密码。
- 在终端上打印这行文字:“Mr. Robot is an awesome TV show!”
判断题:
- 命令 DATE 显示当前的日期和时间。(对/错)
- 重新启动Linux系统,你只需运行 restart 命令。(对/错)
- free -h 和 free –human 命令之间没有区别。(对/错)
- 如果平均负载值是:load average: 2.12, 3.09, 4.03,系统负载正在增加。(对/错)
- 如果平均负载值是:load average: 0.30, 1.09, 2.03,系统负载正在减少。(对/错)