操作系统
Linux简介
kernal:https://www.kernel.org/
Linux是一种自由和开放源码的类UNIX操作系统。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布[5][6],在加上用户空间的应用程序之后,成为Linux操作系统。Linux也是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU 通用公共许可证(GPL),任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。大多数Linux系统还包括像提供GUI的X Window之类的程序。除了一部分专家之外,大多数人都是直接使用Linux 发行版
Linux严格来说是单指操作系统的内核,因操作系统中包含了许多用户图形接口和其他实用工具。如今Linux常用来指基于Linux的完整操作系统,内核则改以Linux内核称之
Ubuntu简介
桌面生态相对完善
Ubuntu系统类型:
- Ubuntu Desktop › 桌面版本💪 linux/android/后端/前端 单片机(windows)
- Ubuntu Server › 服务器版本
- Ubuntu for IoT › 物联网版本
- Ubuntu Cloud › 云版本
Ubuntu系统版本号:
格式:年份.月份,
示例:16.04/20.04
LTS:long time support
软件领域的一条原则: 稳定 > 新
版本 | 开发代号 | 中译 | 发布日期 | 标准支援结束时间 | 延长安全维护结束时间 | 内核版本 | |
---|---|---|---|---|---|---|---|
... | ... | ... | ... | ... | ... | ... | |
14.04 LTS | Trusty Tahr | 可靠的塔尔羊 | 2014-04-17[13] | 2019-04 | 2022-04 | 3.13 | |
14.10 | Utopic Unicorn | 乌托邦的独角兽 | 2014-10-23[14] | 2015-07-23[15] | N/A | 3.16[16] | |
15.04 | Vivid Vervet | 活泼的长尾黑颚猴 | 2015-04-23[17] | 2016-02-04[18] | N/A | 3.19[19] | |
15.10 | Wily Werewolf | 老谋深算的狼人 | 2015-10-22[20] | 2016-07-28[21] | N/A | 4.2[22] | |
16.04 LTS | Xenial Xerus | 好客的非洲地松鼠 | 2016-04-21[23] | 2021-04 | 2024-04 | 4.4[24] | |
16.10 | Yakkety Yak | 喋喋不休的牦牛 | 2016-10-13[25] | 2017-07-20 | N/A | 4.8 | |
17.04 | Zesty Zapus | 热情的美洲林跳鼠 | 2017-04-13[26] | 2018-01-13 | N/A | 4.10[27] | |
17.10 | Artful Aardvark | 巧妙的土豚 | 2017-10-19[28] | 2018-07-19 | N/A | 4.13[29] | |
18.04 LTS | Bionic Beaver[30][31] | 仿生的海狸 | 2018-04-26[32] | 2023-04[33] | 2028-04 | 4.15 | |
18.10 | Cosmic Cuttlefish | 宇宙的墨鱼 | 2018-10-18 | 2019-07-18 | N/A | 4.18 | |
19.04 | Disco Dingo | 摇滚的野狗 | 2019-04-18 | 2020-01-23 | N/A | 5.0 | |
19.10 | Eoan Ermine | 黎明的白鼬 | 2019-10-17 | 2020-07 | N/A | 5.3 | |
20.04 LTS | Focal Fossa | 焦点的马岛长尾狸猫 | 2020-04-23 | 2025-04 | 2030-04 | 5.4 |
CLI和GUI
CLI:命令行界面(英语:Command-Line Interface,缩写:CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。
GUI:图形用户界面(Graphical User Interface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。
没有指引 -help ? Cli + 手册
如何快速上手一个新系统
操作系统作用? 管理、调度、协调计算机的各部分工作,更有效地分配计算机系统的硬件和软件资源
更多的在于如何使用上层应用:
而这些东西每个系统都有,只是界面不一样,功能或多或少,或是操作逻辑不一样
- 文件管理器
- 进程管理器
- 文本编辑器
- 系统设置
- 音乐,视频播放器
- 软件中心
- ......
软件安装
deb文件:
code_1.48.0-1597304990_amd64.deb
方式一:鼠标双击
方式二:命令安装
$ sudo dpkg -i code_1.48.0-1597304990_amd64.deb
apt软件包管理器:
高级打包工具(英语:Advanced Packaging Tools,缩写为APT)是Debian及其派生的Linux软件包管理器。APT可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了Unix系统上管理软件的过程。
Apt主要命令:
# 显示安装的软件包
$ sudo apt list
# 搜索软件包
$ sudo apt search package_name
# 安装软件包
$ sudo apt install package_name
# 移除软件包(不会删除软件的配置)
$ sudo apt remove package_name
# 移除软件包(同时删除软件的配置)
$ sudo apt purge package_name
# 更新已安装的软件包, 一般不要用
$ sudo apt upgrade # 内核固定(加密)
# 卸载所有自动安装且不再使用的软件包
$ sudo apt autoremove
# 编辑软件源信息文件
$ sudo apt edit-sources
$ sudo apt update
$ sudo apt-get list
Apt程序重要的目录:
- 源目录:
/etc/apt/source.list
- 下载包目录:
/var/cache/apt/archives
, 命令安装软件的临时存放软件包的位置 - 软件列表目录:
/var/lib/apt/lists
Apt运行原理:
Linux系统目录
目录结构
![img](./01_system.assets/Linux file system hierarchy.webp)
/
:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录。所有的东西都是从这里开始。当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录)开始,再进入到home目录。/bin
:/usr/bin
: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。/boot
:放置linux系统启动时用到的一些文件,如Linux的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub。/dev
:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt。/etc
:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有 /etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d。/home
:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录,~edu 表示用户 edu 的家目录。/lib
:/usr/lib
:usr/local/lib
:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助。/lost+fount
:系统异常产生错误时,会将一些遗失的片段放置于此目录下。/mnt
:/media
:光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载。/opt
:给主机额外安装软件所摆放的目录。/proc
:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有 /proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等。/root
:系统管理员root的家目录。/sbin
:usr/sbin
:usr/local/sbin
:放置系统管理员使用的可执行命令,如fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root使用的命令,一般用户只能"查看"而不能设置和使用。/tmp
:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下。/srv
:服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内。/usr
:应用程序存放目录,/usr/bin 存放应用程序,/usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local: 存放软件升级包。/usr/share/doc: 系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录。/var
:放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下。
几个常用命令:
**cd命令:**目录切换(change directory)
cd
切换到当前用户的主目录(/home/用户目录),用户登陆的时候,默认的目录就是用户的主目录。cd ~
切换到当前用户的主目录(/home/用户目录)cd .
切换到当前目录cd ..
切换到上级目录cd -
可进入上一个进入的目录
pwd命令:打印当前目录位置(print current working directory)
$ pwd
/Users/Ben
绝对路径和相对路径:
- 绝对路径:是以文件系统的根目录
/
开始; 比如:cd /home/shibin/.ssh/
- 相对路径:是当前工作的目录开始:
- 以当前目录的文件名开始:比如:
cd .ssh
- 以
.
开始;比如:cd ./.ssh
- 以
..
开始;比如:cd ../shibin/.ssh
- 以当前目录的文件名开始:比如:
ls命令:显示指定工作目录下之内容(list)
# 默认显示当前目录的文件和文件夹
$ ls
# 显示
$ ls dir_name
常用选项:
-a
显示所有文件all-l
除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出(long)-h
文件大小格式化,比如1K 234M 2G;(human-readable)
ls命令显示详解:
- 文件类型
-
:普通文件d
:目录文件(Directory)p
:管道文件(Pipe)l
:链接文件(Symbolic link)b
:块设备文件(Block special file)c
:字符设备文件(Character special file)s
:套接字文件(Socket link)
- 文件权限
r
:可读(Read)w
:可写(Write)x
:可执行(Executable)-
:表示没有
- 文件权限分类
- 所有者
- 用户组权限
- 其它用户的权限
- 文件链接数
- 所属用户
- 所属组
- 文件大小
- 文件修改时间
- 文件名
命令行基本语法
命令 -选项 参数
command [-options] [parameter1] …
$ ls -hal .ssh
说明:
command
:命令名,相应功能的英文单词或单词的缩写[-options]
:选项,可用来对命令进行控制,也可以省略,parameter1 …
:传给命令的参数,可以是零个一个或多个