Linux操作系统

本文介绍了Linux操作系统的基础概念,如嵌入式操作系统和主要的Linux版本(如μC/OS、VxWorks和QNX),讲述了Linux的发展历程,强调了其低成本、多平台特性。还涵盖了Linux的安装方法、使用终端和shell、用户权限管理、文件操作(包括目录管理、复制、删除和权限设置)、以及压缩打包工具的使用。
摘要由CSDN通过智能技术生成
本章学习目标
了解操作协同的基本概念
了解嵌入式操作系统
了解Linux操作系统的发展
了解Linux操作系统的安装方法

第1章 认识Linux操作系统

1.1 操作系统

        1.1.1 操作系统概述

         操作系统(Operating System,OS)通常指的是对计算机硬件与软件进行管理控制的计算机程序。它是可以直接运行在硬件平台上的核心系统软件,其他软件则可以在操作系统的基础上完成运行。通俗地说,操作系统是用户和计算机之间的纽带,也是计算机硬件和其他软件之间的桥梁。操作系统实现了配置内存和控制输入、输出设备等计算机硬件管理,也实现了控制程序运行、为应用软件提供支持、分配数据资源等软件管理。现代操作系统提供了各式各样的用户界面,使用户可以有更好的使用与体验。

        1.1.2 嵌入式操作系统

嵌入式系统指的是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统,对功能、可靠性、成本、体积、功耗等有特殊要求的专用计算机系统。

        1.Linux

        Linux已经成为了全球第二大操作系统。Linux是一套免费使用和自由传播的类UNIX操作系统,基于POSIX和UNIX的多用户、多任务。Linux存在着不同的版本,但它们都使用了Linux的内核

        2.μC/OS

        μC/OS是一种典型的实时操作系统、目前流行的是第二版本,即μC/OSⅡ。其开发者为美国嵌入式系统领域的专家拉伯罗斯(JeanJ.Labrosse)。该系统主要提供任务调度和管理、内存管理、通信、时间管理等功能。其特点是开放源代码、占用空间小、实时性能优良、可扩展性强等。

        3. VxWorks

        VxWorks是美国WindRiver公司的产品,是目前嵌入式系统领域中应用比较广泛的操作系统。VxWorks实时操作系统由相对独立、短小精悍的目标模块组成,用户可以根据需
设杂控制    网格协议    
要选择适当的模块来配置系统;提供了基于优先级的任务调度、通信、中断、定时器、内存管理等功能,并且具有简明易懂的用户接口。该系统主要应用于单板机、交换机、路由器等。
驱动    补设备    驱动    网络设备  

        4. QNX    

        QNx 是加拿大QNX软件系统有公司开发的一款实时操作系统。QNX的体系结构决
鼠标、健盘网卡定了其具有非常好的伸缩性,用户可以把应用程序代码和内核编译到一起:其次该系统具有很好的移植性,广泛应用于医疗仪器设备,交通运输、安全防卫、POS机、零售机等关
键型应用领域。
式系统还可以容纳更多的外围接口,    嵌入式操作系统的选择是开发过程中比较关键的一步,这将直接影响整个工程的进度    
各架构的应用场景覆盖。因此嵌入式    以及后期的维护。选择一款操作系统,首先需要考虑其能否支持硬件;其次需要考虑开发    
调试的工具;最后要考虑的是该系统能否满足应用需求。如果该系统开发的接口太少,则
源分配以及任务调度等活动,是整    运行在嵌入式硬件平台的系统软    嵌入式操作系统,是十分重要的。    上层应用很难进行二次开发。因此,选择一款既能满足应用需求,性价比又可达到最佳的嵌入式操作系统,是十分重要的

1.2 Linux操作系统概述

        1.2.1 Linux操作系统的历史

Linux操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:UNIX 操作系统、MINIX 操作系统、GNU计划、POSIX 标准和Internet 网络。
1984年,Andrew S.Tanenbaum开发了用于教学的UNIX系统,命名为Mininx。

1989年,Andrew S.Tanenbaum将Minix系统运行于x86的PC平台。

1990年,芬兰赫尔辛基大学学生Linux Torvalds首次接触Minix系统。

1991年,Linux Torvalds开始在Minix上编写各种驱动程序等操作系统内核组件。

1991年年底,Linux Torvalds公开了Linux内核源码0.02版

1994年,Linux 1.0版本发布

1996年,Linux 2.0版本发布

2011年,Linux3.0版本发布

        1.2.2  Linux操作系统的优势

1.低成本开发
2.可以应用于多种硬件平台
3.可定制内核
4.多用户多任务
5.良好的网络功能

1.3  Linux操作系统的安装

windows教程

mac教程

详情请看以上链接

第二章:Linux操作系统的使用

2.1 初识终端


打开终端(乌班图系统):Ctrl+Alt+T

打开终端(Windows系统):Win+R

关闭终端:exit命令 : Ctrl+D

2.2 认识shell

1.命令行提示符

通常情况下shell命令行提示符采用以下格式

username@histname:direction$

用户在提示符后面输入命令并按Enter键,向系统发送指令。

username:用户名,即当前登录用户的用户名

hostname:主机名,即系统的主机名

direction:目录名,即当前用户所处的路径。"~"表示在用户主目录下;"/"表示在根目录(类似于Windows系统的C盘)下,即系统目录下

2.命令格式

一般情况下,命令的三要素为:命令名称、附加选项、参数。其中命令名称不可缺少,附加选项与参数则一般是可选项。命令格式一般如下所示。

$Command [options] Argument Argument...

Command:命令名称。可以为Shell命令或可执行程序,严格区分大小写。
options:附加选项。通常情况下,用户若希望命令可以实现更加精确或更加全面的功能,则需要在命令后添加选项,指定命令动作。
Argument:参数,一般用来指定作用对象或目标,可以是特定的值。有时可以添加多个参数。
需要注意的是,输入命令时需要将上述3要素用空格隔开;如果多个命令需要同时输入操作系统,则命令与命令之间使用“;”隔开;如果一条命令不能在一行输入完,则需要在本行结尾处使用分隔符“\”,表示本行未输入完整。

2.3 Linux操作系统命令

2.3.1 用户与系统相关命令

        1.切换用命令su

su为SwitchUser缩写意为切换用户,因而在Linux一般用作普通用户与超级用户(管理员)之间的切换。

切换超级用户命令一般如下:


//passwd 设置/更改密码
sudo passwd root 
 
//第一次密码:用户密码(123456)
//第二次密码:要设置的root用户密码(12345678)
 
//switchUser su为切换用户命令
su root 
 
//退出超级管理员身份
exit
 
//以普通用户的身份执行超级用户的权限
sudo

2.3.2 文件相关命令

        1.目录的创建与删除
//目录的创建
mkdir [路径名]
命令mkdir常见附加选项有:
-m    创建目录时,指定目录的存储权限
-p    可以创建一个层级目录.如果此层级目录中的某一级目录不存在,则系统自动创建不催在的目录,保证整个层                        
      级目录的创建

//目录的删除
rmdir [路径名](其选项为"p",表示子目录被删除后,它自身也成为了空目录,因此自身与子目录一并删除.rmdir        
              只能删除空目录)

//创建多级目录
mkdir [文件目录路径]

        2.目录切换命令 
//切换目录
cd [需要切换的路径名]

//查看当前用户工作目录的绝对路径
pwd

//家目录
命令cd如果不指定切换的路径,则默认切换到用户主目录,在任何子目录中执行,都会直接回到用户主目录

其中路径可以分为绝对路径和相对路径,绝对路径通常是从整个目录的根处开始表示.

相对路径与绝对路径不同的是其参照的目录,因此相对路径的表示有时候是不固定的.通常情况下,当前所在目录表示为"./",上层目录表示为"../",上上层目录表示为"../../",以此类推. 

使用"cd+/",将直接切换到顶层根目录;"cd+-"直接切换到上一次切换前的工作目录

        3.文件显示查询
//列出目录中所有文件
ls [选项] [文件]
命令ls常见附加选项为:
-1(数字1):表示一行输出一个文件
-a,-all:列出目录中所有文件,还包括以"."开头的隐藏文件
-i:列出文件所对应的inode(索引节点)号
-l:除列出文件名以外,海疆线是文件类型、存储权限、硬链接数、所属用户、用户组名、大小、时间信息
         4.文件的复制、剪切、删除
//复制文件
cp [选项] 源文件或目录 目标文件或目录

//剪切文件
mv [选项] 源文件或目录 目标文件或目录

//删除文件
rm [选项] 文件或目录 / rm 文件或目录 [选择]

命令cp附加选项:

-d:复制时保留链接

-f:删除已经存在的目标文件

-i:在覆盖目标文件之前将给出提示,要求用户确认

-p:复制文件时,其修改时间和存取权限也将复制到新文件

-r:如果复制的源文件是一个目录文件,则复制该目录下所有文件与目录

-a:等同于-d、-p、-r 选项组合

命令mv附加选项

-i:在覆盖目标文件之前将给出提示,要求用户确认

-p:复制文件时,其修改时间和存取权限也将复制到新文件

-r:如果复制的源文件是一个目录文件,则复制该目录下所有文件与目录

-a:等同于-d、-p、-r 选项组合

命令rm附加选项

-i:与命令、mv情况类似,及交互式操作,系统将询问操作是否执行

-f:忽略不存在文件,不做提示

-r:归递操作,与命令mv情况类似,如果目标文件为目录,则归递删除目录下所有子目录与文件

***文本的创建:***

命令touch:

touch [文件名] 

5.文件搜索

文件搜索有两种情况,一种是搜索特定的内容,一种是搜索指定的文件

(1) 命令grep: 在指定文件搜索特定内容,一般语法格式如下

grep [选择] 格式 [文件及路径]

其中,格式表示搜索的内容格式.如果未指定文件及路径,则默认搜索当前目录

命令grep附加选项

-r:表示归递,遍历这个目录中的所有文件

-i:不区分大小写

-h:查询多文件不显示文件名

-l:查询多文件时只输出包含匹配字符的文件名

-n:显示匹配行及行号

-s:不显示不存在或无匹配文本的错误信息

-v:显示不包含匹配文本的所有行

(2)find:命令find的功能为在指定的目录中搜索文件.一般的语法格式如下

find [路径] [选项] [描述]

 其中路径表示文件搜索路径,若未指定,默认当前目录.描述表示匹配表达式,即搜索的关键字

find附加选项

-depth:使用深度级别的查找方式,在指定的目录中优先查找文件内容

-mount:不在其他文件系统(VFAT等)的目录和文件中查找

-name:按照名字查找,支持通配符"*"和"?"

-user:按照文件所属用户查找

-print:输出搜索结果,并打印

6.文件链接

硬链接:硬链接是通过文件的物理编号(索引节点号)进行链接

硬链接的特点如下。
(1)不论是修改源文件,还是修改硬链接文件,另一个文件中的数据都会发生改变。

(2)不论删除了源文件还是硬链接文件,只要有一个文件存在,文件都可以被访问。

(3)硬链接不会建立新的 inode 信息。

(4)硬链接不能链接目录,给目录建立硬链接,不仅目录本身需要建立链接,目录下所有文件也需要建立链接。

软连接:软连接是通过文件的路径名建立链接,也称符号链接.

软链接的特点如下。
(1)不论是修改源文件,还是修改软链接文件,另一个文件中的数据都会发生变化。
注意,
(2)删除软链接文件,源文件不受影响;而删除源文件,软链接文件找不到实际的数据,则会失效。

ls [选项] 源文件或目录 目录文件或目录

 一般使用选项"-s"表示建立符号链接

7.文件所属用户

chown命令:用于修改文件所属用户.

chgrp命令:用于修改文件所属用户组,两者语法格式如下

chown/chgrp [选项] [所属用户/组] [文件]

命令chown与命令chgrp常见附加选项

-c:详细描述文件实际改变的所有权

-f:显示全部错误信息

8.文件存储权限

使用"ls -l 文件名"即可查看指定文件的属性,包括用户对文件的存取权限

下表为文件的存储权限

 

其中,r表示可读权限,w表示可写权限,x表示可执行权限,-表示不具备该权限. 

修改文件的访问权限使用命令chmod,可使用符号标记和八进制数指定两种方式进行权限的更改.

其中使用符号标记的语法格式如下,符号权限可以指定多个,使用逗号隔开.

其中使用符号权限可以指定多个,使用逗号隔开

chmod [选项] 符号权限 文件

使用八进制书指定的语法格式如下所示,八进制数表示修改后的权限

chmod [选项] 八进制数 文件
选项功能
-f若文件权限无法更改,也不显示错误信息
-c若该文件确实已经更改,才显示更改动作
-v显示文件权限变更的详细资料

如果使用符号标记进行权限修改,则"+"代表增加权限,"-"则代表删除权限.用"="表示设置权限.

不同用户级别表示为:文件所属用户(u)、同族其他用户(g)、系统其他用户(o)、以及所有用户(a)

采用八进制数指定方式进行权限修改则更加方便,用户只需要指定修改后的权限对应的八进制数即可.八进制数、二进制数以及对应权限如下表所示

八进制数二进制数对应权限
0000无任何权限
1001可执行
2010可写
3011可写可执行
4100可读
5101可读可执行
6110可读可写
7111可读可写可执行

2.3.3 压缩打包相关指令

Linux常用压缩打包相关指令
命令功能使用格式
bzip2.bz2文件压缩(或解压缩)bzip2[选项]文件
bunzip2.bz2解压缩bunzip2[选项].bz2压缩文件
gzip.gz文件压缩gzip[选项]文件gunzip
gunzip.gz文件解压缩gunzip[选项].gz文件名
unzip被WinZip压缩的.zip文件解压缩unzip[选项]。zip文件名
compress早期压缩、解压缩(压缩文件.Z)compress[选项]文件
tar文件目录打包或解包tar[选项][打包后文件名]文件目录
1:命令gzip和gunzip命令

 

//gzip可以用来实现对文件进行压缩或解压缩
//gzip只能压缩或解压缩单个文件,不能压缩目录
 
$ gzip [选项] 文件
// -d 选项可以对压缩文件进行解压缩
 
//zcat命令可以在不解压的情况下查看这个文件中的内容
 
//gunzip 命令对文件进行解压缩
$ gunzip [选项] .gz文件
2:tar命令
//命令tar用于实现目录的打包或解包
 
//打包指的是将一些目录或文件整合成一个单文件
//而压缩则是将个大文件通过压缩算法变成一个体积较小的文件
 
$ tar 参数 新包名 源文件或目录
 
//-c creat 创建档案
//-v 显示详情
//-f 文档
//-x 从打包文件中解压缩参数
//-z 压缩打包文件
//-C 还原到指定文件夹
 
 
 
//-cvf 打包参数
//-xvf 解包参数
//-czvf 打包压缩参数
//-xzvf 解包解压缩参数

2.3.4:系统常用功能命令

1:Tab 补齐

命令补齐需要连续按两次Tab键

文件名补齐需要按一下Tab键

2:查询历史命令
按“⬆”即可翻看历史命令
 
//将命令以列表的形式记录1开始显示出来
$ history
 
// 能够查看的命令行数
$ echo SHISTSIZE
 
// 修改历史命令容器
$ HISTSIZE=num
3:  通配符的使用
//问号(?)代表它所在位置上的任何单个字符
 
//星号(*)代表从它位置开始的任何字符串
 
//方括号([]) 表示一个指定范围的字符
//([])匹配指定的范围
//([!]) !非运算意为不匹配[]内的任意字符
4:管道的使用
//wc命令用于统计指定文本的行数,字数,字节数
 
$ wc [参数] 文件名
 
//-l 只显示函数(包括空行)
//-w 只统计单词数
//-c 只显示字节数(空行,换行,结尾符)
 
//wc -w 可以查询文件中的单词数
//      也可以查询目录中文件的数量
 
// 管道 |
// 连接命令,将第一个命令的输出作为第二个命令的输入。

第三章:linux用户管理 

 
3.1:用户的基本概念


1:用户的属性
a:用户名
b:口令
口令是登录账号的密码

c:用户标识符
用户标识符(UID)是账号的提示符。

一般情况下,与用户是一一对应的。

UID为0的账号属于系统管理员;

UID为1-499的账号是系统保留账号,不可登录。

UID为500-65526为可登录账号,供一般用户使用。

d:用户主目录
用户主目录即用户的起始工作目录,默认”home/用户名“

// 从用户主目录切入到home目录
$ cd ..
// 查看home目录下的文件夹
$ ls (会有一个用户文件夹)
// 查看用户主目录的绝对路径
$ pwd

3.1.2:用户与组

a:一对一:某一用户是某个组的唯一成员

b:多对一:多个用户是某唯一组的成员,成员不归属其他用户组

c:一对多:某个用户可以是多个用户组的成员

d:多对多:多个用户对应多个用户组

3.1.3:与用户相关的配置文件

a:/etc/passwd

//记录了用户的基本属性
$ cat /etc/passwd
$ tail /etc/passwd
 
//gdm:x:126:131:Gnome Display Manager:/var/lib/gdm3:/bin/false
//用户名:加密口令:UID:GID:个人信息:主目录:登录shell

b:/etc/shadow

//WJK:123456:19600:0:99999:7:::
//登录名:加密口令:最后一次修改时间距离1970年元旦的天数:最小时间间隔:最大时间间隔
:警告时间

c:/etc/group

$ cat /etc/group
 
// tfboys:x:1004:
// 组名:口令(加密后):组标识号(GID):组内用户列表

3.2:用户管理

1:添加用户
$ useradd [参数] 用户名
//-m 指定新建用户的用户文件夹在home目录中
 
//eg:
$ sudo useradd -m tom
$ cd ..
$ ls (home文件夹中多出了一个tom文件夹)
2:用户命令
$ passwd [选项] 用户名
 
eg:
// $ sudo passwd tom
// $ 输入两遍要设置的密码
 
3:删除用户
$ userdel [选项] 用户名
// -r 将用户主目录一并删除
 
eg:
$ sudo userdel -r tom(当前进程在运行,无法删除tom用户)
//退出tom用户进程
$ sudo kill -SIGKILL 进程号 
4:用户属性修改
$ usermod [选项] 用户名
//【-p 修改用户密码】
 
//查看用户密码文件夹
$ cat /etc/shadow
$ tail /etc/shadow
//修改用户密码
$ usermod -p 新密码 用户名
$ usernod -p 123456 tom
//查看用户修改密码后的密码文件
$ cat /etc/shadow | grep "tom"
 
$ usermod [选项] 用户名
//-a  添加
//-G  指定组名
 
//将xx用户添加到xx组
$ sudo usermod -aG 组名 用户名
//查看xx组成员
$ cat /etc/group | grep "xx组"

3.2.2:用户组管理

1:用户组的添加
$ groupadd [选项] 用户组
 
$ su root
$ groupadd tfboys
(用户组的所有信息都存放在“/etc/group“文件夹中)
//查看组
$ cat /etc/group
$ tail /etc/group (查看最后10个组的命令)
关于tail命令
tail [参数] [文件]
 
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示文件的尾部 n 行内容
 
tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。
tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,
只要 filename 更新就可以看到最新的文件内容。
2:用户组成员的添加与删除
$ gpasswd [选项] 用户名 组名
// -a 把用户添加到组
// -d 把用户从组中删除
 
$ su root
$ tail /etc/group
$ tail /etc/passwd
$ gpasswd -a czt mjq
$ grep "mjq" /etc/group
 
$ gpasswd -d czt mjq
$ grep "mjq" /etc/group
3:用户组的修改
$ groupdel 用户组

第四章:linux软件管理

4.1:dpkg软件包管理工具

$ dpkg [选项] <package//包名>
//-l 列出已安装软件包的简要信息,包括状态,名称,版本,结构和
描述状态
$ dpkg -l apt(列出apt软件包的基本信息)
$ ctrl+c (终止正在进行命令)
$ dpkg -l (显示所有已经安装的Deb软件包)
//ctrl+b(向上翻页)ctrl+f(向下翻页)
$ dpkg -l | grep <package> (结合管道操作在使用grep命令可以查询某些软件包)
 
//-i 安装一个已经下载至本地的Deb软件包
//-s 检测软件包的安装状态
 
//[下载net-tools]
$ ifconfig (未能查看网络接口的详细信息)
$ wget http://mirrors.kernel.org/ubuntu/pool/main/n/net-tools/net-tools_1.60+git20161116.90da8a0-1ubuntu1_amd64.deb
(从网上下载一个Deb包)(wget命令用与从指定的URl中下载文件)
$ sudo dpkg -i 文件夹名(安装Deb软件包)
$ sudo dpkg -s net-tools(检测软件包的安装状态)
$ ifconfig (可以成功查看网络接口信息,包括接口名称、IP地址、MAC地址、网络掩码。)
$sudo dpkg -L net-tools(查询软件包安装后产生的文件列表)
$sudo dpkg -r net-tools(卸载软件包)
$sudo dpkg -P net-tools(卸载软件包及相关文件)
 
4.2:APT软件包管理工具
//从配置的源文件中下载更新包信息。以确保获取最新的软件包
$ sudo apt update
//查看net=tools软件包信息,如果已经安装过这个软件,会显示已经安装
$ apt list net-tools
//如果已经安装,使用已经学过的dpkg命令卸载软件
$ sudo dpkg -P net-tools
//再次查看软件包信息
$ apt list net-tools
//安装软件包
$ sudo apt install net-tools
//显示软件包的细节
$ sudo apt show net-tools
//移除软件包
$ sudo apt remove net-tools
//升级所有可以升级的软件
$ sudo apt upgrade(通过“安装-升级”的方式更新软件包)
$ sudo apt full-upgrade(通过“卸载-安装-升级"的方式更新软件包)

  • 18
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值