初识Linux操作系统

学习视频

Linux基础入门教程-linux命令-vim-gcc/g++ -动态库/静态库 -makefile-gdb调试_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV13U4y1p7kB/?spm_id_from=333.1387.collection.video_card.click&vd_source=b0ff309389fa15ce9ed7b52de0ab9ccbLinux基础入门教程-linux命令-vim-gcc/g++ -动态库/静态库 -makefile-gdb调试Linux基础入门教程-linux命令-vim-gcc/g++ -动态库/静态库 -makefile-gdb调试_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV13U4y1p7kB/?spm_id_from=333.1387.collection.video_card.click&vd_source=b0ff309389fa15ce9ed7b52de0ab9ccb

课件内容

1. Linux介绍

1.1 Linux的诞生

1991年,GNU计划已经开发出了许多工具软件,最受期盼的GNU C编译器已经出现,GNU的操作系统核心HURD一直处于实验阶段(GNU工程从1984年起就在做这件事),没有任何可用性,实质上也没能开发出完整的GNU操作系统。

也是这一年, Linux诞生了, Linux 是 UNIX 操作系统的一个克隆系统, 但是Linux是开源的。 那时候它只是一个系统内核, 没有与之配套的应用软件,这时候 Linux 和 GNU一拍即合, 就有了我们现在使用的操作系统,GNU奠定了Linux用户基础和开发环境。

Linux时间线

1991年初,林纳斯·托瓦兹开始在一台386sx兼容微机上学习minix操作系统。

1991年4月,林纳斯·托瓦兹开始酝酿并着手编制自己的操作系统。

1991 年4 月13 日在comp.os.minix 上发布说自己已经成功地将 bash 移植到了minix 上,而且已经爱不释手、不能离开这个shell软件了。

1991年的10月5日,林纳斯·托瓦兹在comp.os.minix新闻组上发布消息,正式向外宣布Linux内核的诞生

1992年Linux与其他GNU软件结合,完全自由的操作系统正式诞生。该操作系统往往被称为"GNU/Linux"

1993年,大约有100余名程序员参与了Linux内核代码编写/修改工作,其中核心组由5人组成,此时Linux 0.99的代码大约有十万行,用户大约有10万左右。

1994年3月,Linux1.0发布,代码量17万行,当时是按照完全自由免费的协议发布,随后正式采用GPL协议。

Linux主要特性

Linux是一个基于文件的操作系统

操作系统需要和硬件进行交互, 对应Linux来说这些硬件都是文件,比如: 操作系统会将 硬盘, 鼠标, 键盘, 显示屏等抽象成一个设备文件来进行管理。

Linux 操作系统是一种自由软件,是免费的,并且公开源代码。

可以同时登陆多个用户,并且每个用户可以同时运行多个应用程序。

提供了友好的图形用户界面, 操作简单, 易于快速上手。

支持多平台(这里指的是基于不同CPU架构的平台,比如国产Linux使用的龙芯等)。

Linux的发音 -- 关于 Linux 的发音有各种说法,主要有两种:

第一种读作 'linΛks ,汉语发音:"喱呐科斯"

第二种是按照 Torvalds 的说法,Linux 中 Li 中 i 的发音类似于 Minix 中 i 的发音,而 nux 中 u 的发音类似于英文单词 pronounce 中第一个 o 的发音。根据 Torvalds 对此的解释,依照国际音标其发音为'linэks。在网络上有一份 Torvalds 本人说话的音频,音频中的内容为"Hello, this is Linus Torvalds, and I pronounce Linux as Linux"。

1.2 一些名词

在学习和使用Linux的过程中, 我们经常会见到一些特有名词, 下面给大家介绍一些常用的:

GNU:Gnu's Not Unix. 可以理解成一种口号,最早由Richard Stallman呼吁并倡导的,号召软件自由。

GPL:General Public License. GNU通用公共许可证,GPL 授予程序的接受方下述的权利,即 GPL 所倡导的"自由":

可以以任何目的运行所购买的程序;

在得到程序代码的前提下,可以以学习为目的,对源程序进行修改;

可以对复制件进行再发行;

对所购买的程序进行改进,并进行公开发布。

LGPL(GNU Lesser General Public License): LGPL是GPL的一个为主要为类库使用设计的开源协议。

LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。

采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。

BSD开源协议: BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以"为所欲为",以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:

如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。

不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。

BSD代码鼓励代码共享,但需要尊重代码作者的著作权。

FSF:自由软件基本会,给GNU提供资金支付的,毕竟没钱难成事啊。

自由软件:GNU项目下的所有软件都基于GPL许可证(非GNU项目也可使用GPL),都是自由软件。

开源软件:是美国Open Source Initiative协会定义,软件开放源代码。

POSIX:(Portable Operating System Interface for Computing Systems)是由 IEEE 和 ISO/IEC 开发的一套标准。POSIX 标准是对 UNIX 操作系统的经验和实践的总结,对操作系统调用的服务接口进行了标准化,保证所编制的应用程序在源代码一级可以在多种操作系统上进行移植。

1.3 Linux发行版

Linux 的发行版本众多,曾有人收集过超过 300 种的发行版本。这里对最常用的发行版本进行简单的介绍,下表为用户经常使用的版本。大家可以去相关网址查找,选择适合的版本使用。

版本名称 网址 特点 软件包管理器
Debian Linux www.debian.org 开放的开发模式,并且易于进行软件包升级 apt
Fedora Core www.redhat.com 拥有数量庞大的用户,优秀的社区技术支持,并且有许多创新 up2date(rpm)yum(rpm)
CentOS www.centos.org CentOS 是一种对 RHEL(Red Hat Enterprise Linux)源代码再编译的产物,由于 Linux 是开发源代码的操作系统,并不排斥基于源代码的再分发,CentOS 就是将商业的 Linux 操作系统 RHEL 进行源代码再编译后分发,并在 RHEL 的基础上修正了不少已知的漏洞 rpm
SUSE Linux www.suse.com 专业的操作系统,易用的 YaST 软件包管理系统 YaST(rpm),第三方 apt(rpm)软件库
Gentoo Linux www.gentoo.org 高度的可定制性,使用手册完整 portage
Ubuntu www.ubuntu.com 优秀易用的桌面环境,基于 Debian 构建 apt

1.4 Linux 内核

Linux 系统从应用角度来看,分为内核空间和用户空间两个部分。内核空间是 Linux 操作系统的主要部分,但是仅有内核的操作系统是不能完成用户任务的。丰富并且功能强大的应用程序包是一个操作系统成功的必要件。这个和武林秘籍一样, 不仅得有招式还得有内功心法。

Linux 的内核主要由 5 个子系统组成:进程调度、内存管理、虚拟文件系统、网络接口、进程间通信。下面将依次讲解这 5 个子系统。

进程调度 SCHED

进程调度指的是系统对进程的多种状态之间转换的策略。Linux 下的进程调度有 3 种策略:SCHED_OTHER、SCHED_FIFO 和 SCHED_RR。

SCHED_OTHER:分时调度策略(默认),是用于针对普通进程的时间片轮转调度策略。

SCHED_FIFO:实时调度策略,是针对运行的实时性要求比较高、运行时间短的进程调度策略

SCHED_RR:实时调度策略,是针对实时性要求比较高、运行时间比较长的进程调度策略。

内存管理 MMU

内存管理是多个进程间的内存共享策略。在Linux中,内存管理主要说的是虚拟内存。

虚拟内存可以让进程拥有比实际物理内存更大的内存,可以是实际内存的很多倍。

每个进程的虚拟内存有不同的地址空间,多个进程的虚拟内存不会冲突。

虚拟文件系统 VFS

在 Linux 下支持多种文件系统,如 ext、ext2、minix、umsdos、msdos、vfat、ntfs、proc、smb、ncp、iso9660、sysv、hpfs、affs 等。

目前 Linux 下最常用的文件格式是 ext2 和 ext3。

网络接口

Linux 是在 Internet 飞速发展的时期成长起来的,所以 Linux 支持多种网络接口和协议。网络接口分为网络协议和驱动程序,网络协议是一种网络传输的通信标准,而网络驱动则是对硬件设备的驱动程序。Linux 支持的网络设备多种多样,几乎目前所有网络设备都有驱动程序。

进程间通信

Linux 操作系统支持多进程,进程之间需要进行数据的交流才能完成控制、协同工作等功能,Linux 的进程间通信是从 UNIX 系统继承过来的。Linux 下的进程间的通信方式主要有管道、信号、消息队列、共享内存和套接字等方法。

2. Linux 目录

与 Windows 下的文件组织结构不同,Linux 不使用磁盘分区符号来访问文件系统,而是将整个文件系统表示成树状的结构,Linux 系统每增加一个文件系统都会将其加入到这个树中。

操作系统文件结构的开始,只有一个单独的顶级目录结构,叫做根目录。所有一切都从"根"开始,用"/"代表,并且延伸到子目录。Linux 则通过"挂接"的方式把所有分区都放置在"根"下各个目录里。一个 Linux 系统的文件结构如下图所示。

2.1 Linux目录结构

在linux中根目录的子目录结构相对是固定的(名字固定), 不同的目录功能是也是固定的

cpp 复制代码
bin: binary, 二进制文件目录, 存储了可执行程序, 今天要将的命令对应的可执行程序都在这个目录中

sbin: super binary, root用户使用的一些二进制可执行程序

etc: 配置文件目录, 系统的或者用户自己安装的应用程序的配置文件都存储在这个目录中

lib: library, 存储了一些动态库和静态库,给系统或者安装的软件使用

media: 挂载目录, 挂载外部设备,比如: 光驱, 扫描仪

mnt: 临时挂载目录, 比如我们可以将U盘临时挂载到这个目录下

proc: 内存使用的一个映射目录, 给操作系统使用的

tmp: 临时目录, 存放临时数据, 重启电脑数据就被自动删除了

boot: 存储了开机相关的设置

home: 存储了普通用户的家目录,家目录名和用户名相同

root: root用户的家目录

dev: device , 设备目录, Linux中一切皆文件, 所有的硬件会抽象成文件存储起来,比如:键盘, 鼠标

lost+found: 一般时候是空的, 电脑异常关闭/崩溃时用来存储这些无家可归的文件, 用于用户系统恢复

opt: 第三方软件的安装目录

var: 存储了系统使用的一些经常会发生变化的文件, 比如:日志文件

usr: unix system resource, 系统的资源目录

    /usr/bin: 可执行的二进制应用程序

    /usr/games: 游戏目录

    /usr/include: 包含的标准头文件目录

    /usr/local: 和opt目录作用相同, 安装第三方软件

对于用户自己的文件, 一般都是存放到自己的家目录中, 也就是 /home/用户名里边, 通过指定的相应的路径就可以找到这个文件了。关于路径的指定的有两种方式:相对路径和绝对路径。

cpp 复制代码
# 这是在root用户的家目录中, 并且展示了家目录中的子目录的从属关系
[root@VM-8-14-centos ~]# tree
.
|-- ace
|   `-- brother
|       `-- finally
|           `-- die.txt
`-- luffy
    `-- get
        `-- onepiece
            `-- haha.txt

2.2 相对路径

相对路径:相对路径就是相对于当前文件的路径。在Linux中有两个表示路径的特殊符号:

cpp 复制代码
./:代表目前所在的目录,也可以使用 .表示。

../:代表当前目录的上一层目录,也可以使用 ..表示。

以上边的目录为例, 从当前root家目录 /root, 进入到 onepiece目录使用相对路径

cpp 复制代码
[root@VM-8-14-centos ~]# cd luffy/get/onepiece/

接下来研究一下相对路径的优缺点:

优点: 简洁, 目录相对较短, 书写方便

缺点: 变更工作目录之后, 使用相同的相对路径就找不到原来的文件了

2.3 绝对路径

绝对路径:从系统磁盘起始节点开始描述的路径。

Linux:起始节点为根目录,比如: /root/luffy/get/onepiece

Windows: 起始节点为某个磁盘的盘符,比如:f:\\root\\luffy\\get\\onepiece

以上边的目录为例, 从当前root家目录 /root, 进入到 onepiece目录使用绝对路径

Erlang 复制代码
[root@VM-8-14-centos ~]# cd /root/luffy/get/onepiece/

接下来研究一下绝对路径的优缺点:

优点: 在操作系统的任意位置都可以通过绝对路径访问到对应的文件

缺点: 字符串较长, 书写起来比较麻烦, 看起来也不够简洁

3. 命令解析器

在Linux中需要通过终端执行对应的命令来完成某些操作, 那么这些命令是如何被执行的呢?

这些命令都是通过命令解析器解析完成并执行的, 如果用户在终端输入是正确的内部指令, 命令解析器就执行这个命令, 如果不是正确的指令, 则提示命令无法解析。

下图是Windows是命令行窗口,平台虽然不同但是命令解析器的工作原理是相同的。

3.1 工作原理

命令解析器在Linux操作系统中就是一个进程(运行的应用程序), 它的名字叫做bash通常我们更习惯将其称之为shell (即: sh)。他们之间的渊源是这样的,在Unix操作系统诞生之后一个叫伯恩(Bourne )的人为其编写了命令解析器取名为shell, Linux操作系统诞生之后伯恩再次改写了shell (sh), 将其称之为bash (Bourne Again SHell), bash 就是 sh 的增强版本。

在Linux操作系统中默认使用的命令解析器是 bash, 当然也同样支持使用sh。当用户打开一个终端窗口,并输入相关指令, 按回车键, 这时候命令解析器就开始工作了, 具体步骤如下:

在Linux中有一个叫做PATH的环境变量, 里边存储了一些系统目录 (windows也有, 叫 Path)

cpp 复制代码
# 通过 echo 命令可以查看环境变量 PATH 中的值, 在shell中变量名前加 $ 就是取值
[root@VM-8-14-centos ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

命令解析器需要依次搜索 PATH中的各个目录, 检查这些目录中是否有用户输入的指令

如果找到了, 执行该目录下的可执行程序, 用户输入的命令就被执行完毕了

如果没有找到, 继续搜索其他目录, 最后还是没有找到, 会提示命令找不到, 因此无法被执行

cpp 复制代码
[root@VM-8-14-centos ~]# asdjflksd
-bash: asdjflksd: command not found

3.2 命令提示行

在Linux终端中, 输入要执行的指令之前会有想用的命令提示, 我们将其称之为命令提示行, 例如:

cpp 复制代码
[root@VM-8-14-centos ~/luffy/get/onepiece]#
[robin@VM-8-14-centos ~/luffy/get/onepiece]$ 
cpp 复制代码
root : 当前登录的用户的用户名
@: at -> 在
VM-8-14-centos: 主机名, 在安装这个linux操作系统的时候手动指定, 可以修改
    ~: 当前用户的家目录
        在linux中有很多用户, 每个用户都用一个属于自己的目录, 这个目录称之为家目录
        普通用户家目录/home/用户名, root用户家目录 /root
~/luffy/get/onepiece: 当前用户所在的工作目录, 也可以使用 pwd命令查看
#: 代表当前用户是root用户
$: 当前用户是普通用户, 也就是说例子中的 robin是一个普通用户

3.3 命令行快捷键

我们在命令行输入一些指令的时候, 经常需要移动光标, 或者删除一些字符, 对应的一些快捷键操作如下表:

快捷键 功能 备注
Tab 命令自动补齐 在终端中输入某个命令的前一个或若干个字符,再按 Tab 键
Ctrl+p 显示输入的上一个历史命令 从输入的最后一个命令往前倒,也可以使用 ↑ 键
Ctrl+n 显示输入的下一个历史命令 也可以使用 ↓ 键
Ctrl+a 光标移动命令行首 也可以使用 Home 键
Ctrl+e 光标移动命令行尾 也可以使用 End 键
Ctrl+u 删除光标前的部分字符串
Ctrl+k 删除光标后的部分字符串
光标向右移动一个字符
光标向左移动一个字符
Backspace/Delete 删除光标前 / 后的一个字符

关于Tab的补充:

由于很定shell命令的开头字母是相同的, 在这种情况下, 按一次Tab是不会自动补齐的,我们可以连续按两次Tab键,在当前终端中就可以显示出所有匹配成功的shell命令

为了能够快速补全shell指令, 我们可以多输入一些前缀字符之后, 再按Tab键

笔记

把Linux安装到虚拟机软件中,虚拟机常见的有两种,vmware和virtual box,下为官方地址

VMware by Broadcom - Cloud Computing for the Enterprisehttps://www.vmware.com/

Oracle VirtualBoxhttps://www.virtualbox.org/

VMware WorkStation 安装

(一)虚拟化软件

可通过 VMware WorkStation、VirtualBox 等虚拟化软件获得虚拟机,课程选用 VMware WorkStation。

(二)安装步骤

下载 VMware WorkStation 软件,地址为

融合与工作站 |VMwarehttps://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion

运行安装程序,按提示操作

接受许可协议

选择安装位置,尽量不要安装在c盘,我的路径为下方路径

cpp 复制代码
D:\software

创建快捷方式

安装完成后还需要检查虚拟网卡是否安装成功

打开设置网络和internet页面

打开高级网络设置,下方有个更多网络适配器选项

需要确保有VMware1和VMware8这两个虚拟网卡

通用打开方式:通过快捷键指令win + r 输入命令

cpp 复制代码
ncpa.cpl

可以打开网络适配器界面

ZF3R0-FHED2-M80TY-8QYGC-NPKYF这是密钥

在 VMware 上安装 Linux

(一)下载 CentOS 操作系统

直接点击下方链接即可安装,注意内存有些大,需安装在大容量磁盘中

https://mirrors.tuna.tsinghua.edu.cn/centos-vault/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.isohttps://mirrors.tuna.tsinghua.edu.cn/centos-vault/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso

博主的安装包在该路径下

cpp 复制代码
D:\重要文件\课程\大三下课程\Linux\1、Linux零基础快速入门到精通\课程资料\软件包\CentOS系统安装包

下面通过在虚拟机软件完成centOS Linux操作系统的安装部署

(二)安装步骤

1.打开 VMware,点击创建新虚拟机

选择典型

选择安装来源为下载的 CentOS ISO 文件,点击下一步

点击用户名:

itheima

输入密码:

123456

点击下一步

选择路径,不要放在c盘,点击下一步

我的路径如下

cpp 复制代码
D:\重要文件\课程\大三下课程\Linux\CentOS 7

指定磁盘容量,建议 20-40GB。

完成创建后开启虚拟机,等待安装完成。

安装完成后可以看到左边有虚拟机

如果提示没有权限退出去,右键vmware选择以管理员方式进入重新来一次

显示这个画面表示操作系统已经在虚拟机上启动成功了

输入123456看下能否登录成功

当前就进入到操作系统的界面中了

远程连接 Linux 系统

(一)图形化与命令行操作

图形化操作:使用操作系统图形化页面,以图形化窗口形式获得操作反馈。

命令行操作:使用命令,以文字字符形式获得操作反馈。

Linux 使用命令行原因:Linux 图形化页面不好用、不稳定,命令行操作效率高、资源占用低、程序运行稳定。

(二)FinalShell 软件

作用:远程连接 Linux 系统,方便操作,解决 VMware 中复制粘贴、文件上传下载不方便的问题。

FinalShell的下载地址为:

Windows: FinalShell官网https://www.hostbuf.com/

直接点击该链接即可下载

https://dl.hostbuf.com/finalshell3/finalshell_windows_x64.exehttps://dl.hostbuf.com/finalshell3/finalshell_windows_x64.exe下载完成后双击打开安装

选择要安装的路径

提示我们需要安装一个依赖软件,点击确定

安装即可

我的安装路径如下

cpp 复制代码
D:\重要文件\课程\大三下课程\Linux\1、Linux零基础快速入门到精通\课程资料\软件包\finalshell

连接 Linux 系统:查询 Linux 系统 IP 地址(在终端输入 ifconfig),在 FinalShell 中配置连接信息,包括名称、主机 IP、端口、用户名、密码等,连接成功后即可操作。

在右键虚拟机中右键打开终端,输入 ifconfig。

打开VMware虚拟机,登录进来

在看空白处点击鼠标右键,点击最下面的打开终端的选项

输入命令

cpp 复制代码
ifconfig

输入完可以看到这里有一个ip地址,这个就是虚拟机的ip地址

cpp 复制代码
192.168.175.128

回到finalshell,点击左上角的文件夹

点击白色的小加号

选择ssh连接

输入内容点击确定

可以看到连接

点击进行连接

可以看到在finalshell输入ls和虚拟机输入ls的结果一样表示连接成功了

注意:如果出现一直连接不成功连接超时的情况,可能是防火墙没关

在 CentOS 终端执行(需要 root):

cpp 复制代码
# 1. 切换到 root 用户(输入 root 密码:123456)
su -

# 2. 立即关闭防火墙(无需重启)
systemctl stop firewalld

# 3. 顺便关掉它开机自启,以免下次重启又连不上
systemctl disable firewalld

(三)总结

图形化和命令行是操作系统的两种操作模式,Linux 因图形化问题主要使用命令行。

使用 FinalShell 远程连接 Linux 系统,方便操作,需先查询 Linux 系统 IP 地址,再配置连接信息。

WSL(Windows Subsystem for Linux)

(一)WSL 介绍

定义:Windows Subsystem for Linux,是 Windows 系统之上的 Linux 子系统,可在

Windows 中获得 Linux 系统环境,直连计算机硬件,无需虚拟机虚拟硬件。

优点:轻量化、方便、省内存,开发者逐步拥抱 WSL。

(二)部署步骤

开启 WSL 功能:在 Windows 控制面板中启用 "适用于 Linux 的 Windows 子系统" 和 "虚拟机平台"。

菜单栏搜索控制面板,找到程序,点击启动或关闭windows功能,找到适用于Linux的windows子系统勾选上即可,然后需要重启电脑

在wsl上安装操作系统:

打开 Windows 应用商店,搜索 Ubuntu 并下载安装。

启动 Ubuntu,创建用户a3063494603和密码123456,得到 Ubuntu 操作系统环境。

Linux 常用命令合集

一、文件与目录操作

命令 说明 示例
ls 列出目录内容 ls -la(显示所有文件,含隐藏)
cd 切换目录 cd /home/itheima
pwd 显示当前路径 pwd
mkdir 创建目录 mkdir my_project
rmdir 删除空目录 rmdir empty_folder
rm 删除文件或目录 rm -rf my_folder(强制递归删除)
cp 复制文件或目录 cp file1.txt file2.txt
mv 移动/重命名 mv old.txt new.txt
touch 创建空文件或更新时间戳 touch main.cpp
find 查找文件 find / -name "*.cpp"
grep 搜索文件内容 grep "plate" main.cpp

二、文件查看与编辑

命令 说明 示例
cat 查看完整文件内容 cat /etc/os-release
less 分页查看(按 q 退出) less large.log
head 查看文件开头 10 行 head -20 file.txt
tail 查看文件末尾 10 行 tail -f log.txt(实时跟踪)
vim / vi 文本编辑器 vim main.cpp
nano 简易文本编辑器 nano readme.md

三、权限管理

命令 说明 示例
chmod 修改文件权限 chmod 755 script.sh
chown 修改文件所有者 chown itheima file.txt
whoami 查看当前用户 whoami
su - 切换到 root su -
exit 退出当前 shell exit

四、进程与系统信息

命令 说明 示例
ps 查看进程 ps aux(所有进程)
top 实时系统监控 top(按 q 退出)
htop top 增强版(需安装) htop
kill 终止进程 kill -9 1234(强制终止 PID 1234)
systemctl 管理系统服务 systemctl status sshd
free -h 查看内存使用 free -h
df -h 查看磁盘空间 df -h
uname -a 查看系统信息 uname -a
uptime 查看系统运行时间 uptime

五、网络相关

命令 说明 示例
ip addr 查看 IP 地址 ip addr show
ifconfig 查看网络接口(旧) ifconfig
ping 测试网络连通性 ping 8.8.8.8
netstat 查看网络连接/端口 netstat -tlnp
ss netstat 替代(更快) ss -tlnp
curl 发送 HTTP 请求 curl https://www.baidu.com
wget 下载文件 wget https://example.com/file.zip

六、包管理(CentOS / Ubuntu 不同)

CentOS(yum)

命令 说明 示例
yum install 安装软件 yum install -y openssh-server
yum remove 卸载软件 yum remove vim
yum update 更新所有包 yum update -y
yum search 搜索软件包 yum search opencv
yum list installed 查看已安装的包 yum list installed

Ubuntu(apt)

命令 说明 示例
apt install 安装软件 sudo apt install g++
apt remove 卸载软件 sudo apt remove vim
apt update 更新软件源 sudo apt update
apt upgrade 升级软件包 sudo apt upgrade -y
apt search 搜索软件包 apt search opencv

七、压缩与解压

命令 说明 示例
tar -czvf 创建 .tar.gz 压缩包 tar -czvf archive.tar.gz folder/
tar -xzvf 解压 .tar.gz tar -xzvf archive.tar.gz
tar -xvf 解压 .tar tar -xvf archive.tar
unzip 解压 .zip unzip file.zip
gzip 压缩为 .gz gzip file.txt

八、常用快捷键(在终端里)

快捷键 作用
Ctrl + C 终止当前命令
Ctrl + Z 挂起当前命令
Ctrl + D 退出当前 shell
Ctrl + L 清屏(相当于 clear
Tab 自动补全命令或文件名
↑ / ↓ 查看命令历史
Ctrl + R 搜索命令历史

九、一键记忆表(最常用的 20 个)

# 命令 用途
1 ls -la 列出所有文件
2 cd .. 返回上级目录
3 pwd 看当前在哪
4 mkdir dir 创建目录
5 rm -rf dir 删除目录(小心!)
6 cp a b 复制文件
7 mv a b 移动/重命名
8 cat file 查看文件
9 vim file 编辑文件
10 grep "xxx" file 搜索内容
11 find / -name "xxx" 查找文件
12 ps aux 查看进程
13 kill -9 PID 强制杀进程
14 systemctl start sshd 启动服务
15 ip addr 查看 IP
16 ping ip 测网络
17 yum install xxx 装软件(CentOS)
18 apt install xxx 装软件(Ubuntu)
19 tar -xzvf file.tar.gz 解压压缩包
20 exit 退出终端

bin 里面存储的都是一些可执行的二进制文件

cd .跳转当前目录

cd ..跳转到上级目录

pwd查看当前目录的绝对路径

whoami可以查看当前登录的用户名

@可以看作是连接符,连接前后两个关键字

@后面的OS表示当前的主机名

:冒号是间隔符

冒号后面有个字符串,这个字符串表示当前用户所在的工作目录,工作目录前面的~就表示当前用户的家目录

$表示当前用户是普通用户

如果当前用户是管理员,会变成#

su root可以切换到管理员

echo将变量输出

如果要输出环境变量里的值需要用取值符号$,这个大字符串里有若干个子字符串,子字符串通过:间隔

命令解析器在工作的时候会先去PATH环境变量里路径,然后依次搜索里面有没有符合条件的可执行程序

如果想要让一个可执行程序能够全局访问,需要把这个可执行程序对应的路径放到path环境变量中就可以了

常用快捷键

tab命令自动补齐,如果命令是唯一的自动补齐,不然需要按两次

history可以查看输入的历史命令

按两次tab键可以输出共同前缀的所有命令

相关推荐
Awna1 小时前
MySQL 存储空间与索引运维实战:从空间排查到在线扩容
android·运维·mysql
hz567891 小时前
视频会议终端的核心功能与采购指南
运维·音视频·信息与通信·智能硬件
xiaoxiangsiyan1 小时前
现代大型虚拟化智慧园区整体架构EVPN‑VXLAN落地全解
运维·网络·学习·架构
嵌入式小能手1 小时前
飞凌嵌入式ElfBoard-Shell脚本编写基础-特殊变量
linux·运维·服务器
SWAGGY..1 小时前
【C++初阶】:(15)模板进阶--从非类型参数到模板特化与分离编译
java·服务器·前端
呉師傅1 小时前
关于惠普LaserJet1018打印机在Windows11上打印颜色偏淡的问题解决方法
运维·服务器·windows·计算机外设·电脑
九硕智慧建筑一体化厂家2 小时前
楼宇智能优选!KNX总线系统打造稳定高效智能控制体系
运维·人工智能·笔记·智慧城市
正在走向自律2 小时前
数采与虚拟仿真技术在电力智能运维赛道的实践探索
运维·数据采集·虚拟仿真·技能竞赛·人机协同·惯性动捕·电力智能运维
qq_11360149352 小时前
CopyEscape Docker容器逃逸(CVE-2026-17106)
运维·docker·容器