Skip to content
Published at:

操作系统

Linux简介

kernal:https://www.kernel.org/

Linux是一种自由和开放源码类UNIX操作系统。该操作系统的内核林纳斯·托瓦兹在1991年10月5日首次发布[5][6],在加上用户空间应用程序之后,成为Linux操作系统。Linux也是自由软件开放源代码软件发展中最著名的例子。只要遵循GNU 通用公共许可证(GPL),任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。大多数Linux系统还包括像提供GUIX Window之类的程序。除了一部分专家之外,大多数人都是直接使用Linux 发行版

Linux严格来说是单指操作系统的内核,因操作系统中包含了许多用户图形接口和其他实用工具。如今Linux常用来指基于Linux的完整操作系统,内核则改以Linux内核称之

Ubuntu简介

桌面生态相对完善

官网 https://ubuntu.com/

基于Debian GNU/Linux.

Ubuntu系统类型:

Ubuntu系统版本号:

格式:年份.月份,

示例:16.04/20.04

LTS:long time support

软件领域的一条原则: 稳定 > 新

版本开发代号中译发布日期标准支援结束时间延长安全维护结束时间内核版本
.....................
14.04 LTSTrusty Tahr可靠的塔尔羊2014-04-17[13]2019-042022-043.13
14.10Utopic Unicorn乌托邦的独角兽2014-10-23[14]2015-07-23[15]N/A3.16[16]
15.04Vivid Vervet活泼的长尾黑颚猴2015-04-23[17]2016-02-04[18]N/A3.19[19]
15.10Wily Werewolf老谋深算的狼人2015-10-22[20]2016-07-28[21]N/A4.2[22]
16.04 LTSXenial Xerus好客的非洲地松鼠2016-04-21[23]2021-042024-044.4[24]
16.10Yakkety Yak喋喋不休的牦牛2016-10-13[25]2017-07-20N/A4.8
17.04Zesty Zapus热情的美洲林跳鼠2017-04-13[26]2018-01-13N/A4.10[27]
17.10Artful Aardvark巧妙的土豚2017-10-19[28]2018-07-19N/A4.13[29]
18.04 LTSBionic Beaver[30][31]仿生的海狸2018-04-26[32]2023-04[33]2028-044.15
18.10Cosmic Cuttlefish宇宙的墨鱼2018-10-182019-07-18N/A4.18
19.04Disco Dingo摇滚的野狗2019-04-182020-01-23N/A5.0
19.10Eoan Ermine黎明的白鼬2019-10-172020-07N/A5.3
20.04 LTSFocal Fossa焦点的马岛长尾狸猫2020-04-232025-042030-045.4

CLI和GUI

CLI:命令行界面(英语:Command-Line Interface,缩写:CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。

GUI:图形用户界面Graphical User Interface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。

GUI vs CLI

没有指引 -help ? Cli + 手册

如何快速上手一个新系统

操作系统作用? 管理、调度、协调计算机的各部分工作,更有效地分配计算机系统的硬件和软件资源

img

更多的在于如何使用上层应用:

而这些东西每个系统都有,只是界面不一样,功能或多或少,或是操作逻辑不一样

  • 文件管理器
  • 进程管理器
  • 文本编辑器
  • 系统设置
  • 音乐,视频播放器
  • 软件中心
  • ......

软件安装

deb文件:

code_1.48.0-1597304990_amd64.deb

方式一:鼠标双击

方式二:命令安装

shell
$ sudo dpkg -i code_1.48.0-1597304990_amd64.deb

apt软件包管理器:

高级打包工具(英语:Advanced Packaging Tools,缩写为APT)是Debian及其派生的Linux软件包管理器。APT可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了Unix系统上管理软件的过程。

Apt主要命令:
shell
# 显示安装的软件包
$ 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运行原理:

img

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)

bash
$ pwd
/Users/Ben

绝对路径相对路径:

  • 绝对路径:是以文件系统的根目录/开始; 比如:cd /home/shibin/.ssh/
  • 相对路径:是当前工作的目录开始:
    • 以当前目录的文件名开始:比如:cd .ssh
    • .开始;比如:cd ./.ssh
    • ..开始;比如: cd ../shibin/.ssh

ls命令:显示指定工作目录下之内容(list)

bash
# 默认显示当前目录的文件和文件夹
$ ls

# 显示
$ ls dir_name

常用选项:

  • -a 显示所有文件all
  • -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出(long)
  • -h 文件大小格式化,比如1K 234M 2G;(human-readable)

img

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] …

bash
$ ls -hal .ssh

说明:

  • command:命令名,相应功能的英文单词或单词的缩写
  • [-options]:选项,可用来对命令进行控制,也可以省略,
  • parameter1 …:传给命令的参数,可以是零个一个或多个