02-第1章 键入第一个linux命令

第1章 键入第一个linux命令

本章是介绍性章节,您将了解Linux的历史,以及Linux在当今世界的影响,以及它的发展趋势。您还将学习如何安装一个Linux虚拟机和运行一些简单的命令。

Linux的起源

Linux的故事始于1991年,当时林纳斯·托瓦兹(Linus Torvalds)是芬兰赫尔辛基大学的一名计算机科学学生。他作为一个爱好,开始编写一个免费的操作系统。这个小小的业余项目最终成为了世界上最大的开源项目,也就是现在大家熟知的Linux操作系统。

什么是开源(Open-Source):

开源项目是指其源代码对公众开放,任何人都可以查看、修改和使用这些代码。源代码就是构建软件所使用的代码集合。如:Linux操作系统、Python、

什么是闭源(Closed-Source):

闭源项目则是指源代码不对公众开放,公众无法查看、修改或使用这些代码。如Windows操作系统、Word、Excel软件

操作系统与内核Kernel的关系

操作系统与内核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发行版。

distrowatch截图

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虚拟机大致步骤

安装虚拟机的过程非常简单,你只需按照以下步骤操作:

  1. 安装VirtualBox(或VMware Player)。
  2. 下载任何Linux发行版的ISO镜像文件。
  3. 打开VirtualBox并开始安装Linux系统

安装VirtualBox

首先,你需要安装VirtualBox,这是一款跨平台的虚拟化应用程序,它允许我们创建虚拟机。VirtualBox是免费的,可以在macOS、Windows和Linux上运行。通过百度搜索”VirtualBox下载”可以找到它,或者你也可以直接访问以下链接下载:www.virtualbox.org/wiki/Downloads

VirtualBox官网
VirtualBox官网

下载镜像文件iso

安装完VirtualBox后,接下来需要下载一个Linux发行版的ISO镜像文件。本课程中会使用Ubuntu 20.04 LTS,它是初学者中最受欢迎的Linux发行版。

官网镜像获取

你可以在以下链接下载Ubuntu:

https://releases.ubuntu.com/

https://releases.ubuntu.com/20.04

Ubuntu22.04镜像
Ubuntu22.04镜像
Ubuntu镜像
Ubuntu镜像

镜像站获取

全部镜像站: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

课后练习

练习题

打开你的终端,尝试解决以下任务:

  1. 显示2023年全年的日历。
  2. 以人类可读的格式显示系统的内存信息。
  3. 显示你的主目录内容。
  4. 更改当前用户的密码。
  5. 在终端上打印这行文字:“Mr. Robot is an awesome TV show!”

判断题:

  1. 命令 DATE 显示当前的日期和时间。(对/错)
  2. 重新启动Linux系统,你只需运行 restart 命令。(对/错)
  3. free -h 和 free –human 命令之间没有区别。(对/错)
  4. 如果平均负载值是:load average: 2.12, 3.09, 4.03,系统负载正在增加。(对/错)
  5. 如果平均负载值是:load average: 0.30, 1.09, 2.03,系统负载正在减少。(对/错)

Scroll to Top