1-1Linux基础(1-3)
3833字数
01课程简介
让大家对Ubuntu的使用从很陌生到灵活操作
- 必需下载VMware,Ubuntu。
- 可选择下载tree命令,看我主页,教你下载tree必行术
- 以下是励志小故事
$python
1.01 ** 365
37.78343433288728
1.02 ** 365
1377.4082919660
比你努力一点的人,其实已经甩你很远。
1.01 ** 3 * 0.99 **2
1.0097980101000001
1.01 ** 3 * 0.99 ** 2 < 1.01
三天打鱼,两天晒网,终将一无所获
02操作系统简介
1)什么是操作系统(Operation System, OS)
- 没有安装操作系统的计算机,通常被称为裸机
- 如果想在裸机上运行自己所编写的程序,就必须用机器语言 0101010001 书写程序
- 如果安装了操作系统,就可以在操作系统上安装支持的高级语言环境,用高级语言开发程序
操作系统的作用:
1.直接操作硬件
2.把操作硬件的代码封装成一个又一个系统调用,供程序员通过系统调用间接操作计算机的硬件。
2)不同领域的主流操作系统
- 桌面操作系统
- Windows 系列(应用软件多,用户群体大,安全性稳定性不好)
- macOS(适合于开发人员,安全性稳定性好)
- Linux(应用软件少,通常在服务器和嵌入式操作系统使用)
- 服务器操作系统
- Linux(安全,稳定,免费,占有率高)
- Windows Server(付费,占有率低)
- 嵌入式操作系统
-Linux - 移动设备操作系统
- iOS
- Android(基于 Linux)
3)虚拟机(Virtual Machine)简介
虚拟机是通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,可以在学习陌生的操作系统中,在不破坏已有操作系统基础上,安装一套全新的操作系统,不会对已有的操作系统有任何破坏。
VMWare -> ubuntu
4)操作系统的发展简史
1.1 Unix
1965年前,电脑只在军事和学院研究使用,当时大型主机最多提供30台终端(即30个键盘、显示器),连接一台电脑。
为解决数量不够用的问题,贝尔实验室加入了麻省理工学院以及通用电气合作的计划–建立一套多使用者(multi-user),多任务(multi-processor),多层次(multi-level)的MULTICS操作系统。由支持30个终端变成支持300个终端。
而 Ken Thompson 在实验室无聊时为了让电脑能运行星际旅行(Space Travel)游戏,用1个月的时间,使用汇编写出了 Unix 操作系统的原型。
Ken Thompson,以 BCPL 语言为基础,设计出很简单又很接近硬件的的B语言(取BDPL的首字母),并用B语言写了第一个Unix操作系统。
而Dennis M.Ritchie 为了早点玩到星际旅行游戏,加入了Thompson到开发项目,合作开发Unix,他的主要工作是改造B语言,因为B语言跨平台性较差,最终他在B语言的基础上设计出新的高级语言–C语言(取BCPL的第二个字母)。
1973年初,C语言的主体完成,Thompson 和 Ritchie 迫不及待地用它重写了现在大名鼎鼎的 Unix 操作系统。
1.2 Minix
Andrew S. Tanenbaum 教授为了能在课堂上教授学生操作系统的细节,决定在不使用任何AT and T 的源代码前提下,自行开发与Unix兼容的操作系统–Minix(Mini-Unix之意)以避免版权上的纠纷。
1.3 Linux
1991年,Linus 在就读赫尔辛基大学期间,对Unix产生浓厚兴趣,尝试在Minix上做一些开发工作。
不过Minix 只是教学使用,因此功能不强,linus经常要用他的终端仿真器(Terminal Emulator)去访问大学主机上的新闻组和邮件,为了方便读取和下载文件,他自行编写了磁盘启动程序和文件系统,这些后来成为Linux第一个内核的雏形。
Linus用GNU 的bash 当做开发环境,gcc 当做编译工具,编写了Linux内核,一开始Linux并不能兼容Unix。
- 即Unix 上跑的程序不能在Linux 上跑,即应用程序和内核接口不一致。
- 一开始Linux只适用于386,后来经过全世界的网友的帮助,最终能兼容多种硬件。
5)Linux的内核版和发行版
2.1 Linux 内核版本
- 内核(kernel)是系统的核心,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。
2.2 Linux发行版本
Linux发行版(也被叫GNU\Linux 发行版)通常包含了桌面环境、办公套件、媒体播放器、数据库等应用软件。 - Ubuntu
- Redhat
- Fedora
- openSUSE
- Linux Mint
- Debian
- Manjaro
- Mageia
- CentOS
- Arch
6)Linux系统下的文件目录结构
2.1 Windows 下的文件系统(单用户操作系统)
有一个个驱动器盘符,每个驱动器都有自己根目录结构,这样形成了多个树并列的情形。
2.2 Linux 下的文件系统(多用户操作系统)
- 在Linux,我们没有驱动器盘符,只有一个盘,/根目录是最顶级目录,/home家目录。
- 每个用户在各自的家玩耍,不干扰其他用户。
7)Ubuntu系统目录结构演示和简介
- /:根目录
- /bin:执行二进制文件的目录,常用命令如ls、tar、mv、cat等
- /Boot:放置linux系统启动时用到的一些文件,如linux的内核文件:
/boot/vmlinuz
,系统引导管理器:/boot/grub
。 - /dev:存放linux系统下的设备文件,访问该目录下的某个文件,相当于访问某个设备,常用的是挂载光驱
mount /dev/cdrom/mnt
。
-/etc:系统配置文件存放的目录,不建议在此文件存放可执行文件。重要配置文件有:inittab,fstab,init.d,X11,sysconfig,xinetd.d - /home:用户家目录,~ 表示当前用户家目录,~edu表示用户edu的家目录。
8)Ubuntu图形界面基本使用
- Ubuntu任务栏在左侧。
- 打开图标,图标会高亮。
- 长按图标可拖拽移动图标。
- 右击图标可删除图标,或设置成默认图标。
03Linux命令简介
1)明确学习目标
为什么学习Linux终端命令?
- 一开始,linux刚诞生,并没有图形界面,所有操作都依靠终端命令,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。
- 在如今IT市场,若想要做服务器的维护管理工作,绝大多数都会在家安装SSH客户端,远程登录到服务器进行管理,无图形界面,需通过命令完成。
- Linux终端命令大概有200多个,而常用命令只有10多个而已。
- 学习终端命令并不需要死记硬背,用得多,自然会记住。
- 不要尝试一次性学会所有命令,有些命令并不常用,临时遇到,临时Google就可以。
2)放大缩小终端窗口字体
ctrl
+ shift
+ =
放大终端
ctrl
+ -
缩小终端
3)明确6个常见终端命令的操作效果
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | ls | list | 查看当前文件下的内容 |
02 | pwd | print work directory | 查看当前所在文件夹 |
03 | cd[目录名] | change directory | 切换文件夹 |
04 | touch[文件名] | touch | 如果文件不存在,新建文件 |
05 | mkdir[目录名] | make directory | 创建目录 |
06 | rm[文件名] | remove | 删除指定的文件名 |
07 | clear | clear | 清屏 |
4)6个常见终端命令简单演练
使用Ubuntu,打开terminal, 演练命令:
ls、pwd、cd、touch、mkdir [ ]、rm [ ]、clear。
5)终端命令格式
-
command [-options] [parameter]
- command:命令名,相应功能的英文单词或单词缩写
- [-options] : 选项,可用来对命令进行控制,也可以省略
- parameter :传给命令的参数,可以是零个,一个 或者 多个
-
[ ] 代表可选
- 如 ls,pwd,clear 没有[ ],都可以使用命令。
- touch + [文件名], cd [目录名],mkdir [目录名],rm [文件名],需加选项来使用命令。
6)查阅终端命令帮助信息(速查)
有两种方式(先学习常用命令以及常用选项的使用即可,工作中如果遇到问题可以借助网络搜索):
- help
command --help
(说明:显示command命令的简要的帮助信息) - man (是 manual(手册) 的缩写)
man command
(说明:包含绝大多数命令、函数的详细使用说明)
打开Ubuntu
尝试 mkdir --help
和 man mkdir
(满屏)
- q :退出
- 空格键 :显示手册页下一屏
- Enter键 : 滚动手册的下一行
- b(back的缩写):回滚一屏
- f(forward 的缩写):前滚一屏