一、操作系统概述

1.励志公式

2.什么是OS?

3.不同领域的主流操作系统

4.虚拟机

5.操作系统发展简史


转存失败重新上传取消二、Linux与Windows对比

1、Windows与Linux的关系

  • 当前主流的操作系统:Windows、Android、iOS、Linux/Unix
  • Windows:傻瓜式、好学习、工资低
  • Linux:linux认为每一个用户都是专业人士,操作麻烦,学习比较难,免费的、开源的,linux性能好,可移植性好,好的设计理念
  • Android:移动操作系统,Android基于Linux
  • iOS:很优秀,创造性,走钢丝
  • 嵌入式操作系统:Linux + WinCE
  • 当前嵌入式系统:消费电子Android,工业Linux

2、多机开发:双系统与虚拟机

  • 既需要Windows,又需要Linux。
  1. 第一种:双系统 不方便
  2. 第二种:虚拟机 方便,损失性能,与真机微小差异
  3. 第三种:两台电脑:不方便
  • 现实中:
  1. 个人开发者:虚拟机
  2. 大公司:服务器+客户端

3、搭建开发环境

  • 虚拟机软件:就是一个单纯的在Windows中运行的软件,跟word、360没有本质区别。现在主流的虚拟机软件有VMWare和VirtualBox。
  • 虚拟机软件在windows系统中运行,运行后它会模拟出来一个电脑,所以叫虚拟机。然后我们可以在该虚拟机中安装别的操作系统。
  • 安装虚拟机可关注微信公众号 “软件安装管家” 获取详细步骤指导和软件资源。
  • Linux系统可下载Ubuntu桌面

4、隐藏文件与非隐藏文件

  • Windows中:文件隐藏与不隐藏通过设置文件属性实现的,可以点击文件,右键属性,选择勾选隐藏选项来设置文件为隐藏文件。在Windows中查看隐藏文件方法:菜单栏 工具->文件夹选项->查看->显示所有文件和文件夹。
  • Linux中:linux中隐藏文件特点是文件名以.开头,跟文件属性无关。在linux中查看隐藏文件用ls -a命令(普通显示ls)

5、相对路径与绝对路径

  • 什么是路径:路径是用来标识一个文件在操作系统的文件系统中存储位置的。pathname

D:\winshare\enum.c

全路径

pathname

D:\winshare    

路径

path

enum.c  

文件名  

name

  • 绝对路径:路径是从绝对位置开始的。譬如Windows中从某一个盘符(如C:\)开始,linux中从根目录/开始
  • 相对路径:指明路径的时候,是从当前所在的位置开始的。
【举例】
D:\我的文档\123\123.txt
D:\我的文档\abc\abc.txt
当前在123.txt,但是要去abc.txt
方式1:采用绝对路径。D:\我的文档\abc\abc.txt
方式2:采用相对路径。../abc/abc.txt
从当前路径开始,往上走一层,再往下走一层(abc)就到了

/abc/123/def.txt    

是linux绝对路径    

abc/123/def.txt  

不是linux绝对路径

F:\abc\123\def.txt  

是windows绝对路径

abc\123\def.txt  

不是windows绝对路径

6、文件目录结构


三、Linux基础知识与技能

1、Linux的内核版与发行版

  • Linux本身指的是一个操作系统内核,只有内核是无法直接使用的。我们需要的,可以使用的操作系统是一个包含了内核和一批有用的应用程序的一个集合体,这个就叫linux发行版。
  • Ubuntu、Redhat就是Linux的不同的发行版。

转存失败重新上传取消转存失败重新上传取消

转存失败重新上传取消

转存失败重新上传取消

2、GUI(图形用户界面)和cmdline(命令行)

  • GUI:grahics user interface,图形用户界面。
  • cmdline:command line,命令行。
  • 人机交互:人和机器(计算机)进行交互,常用的有命令行和GUI。
  • Windows下既有GUI,又有命令行。linux中也是既有GUI,又有命令行。
  • 但是,我们在linux中常用命令行,在Windows中常用GUI

3、终端及常用快捷键

4、linux常用命令

(1) ls(list,列表)

作用:使用列表把当前文件夹下所有文件显示出来
ls -a      显示所有文件,包括隐藏文件
ls -l       以详细信息显示
ls -a -l
ls -l -a
ls -la
ls -al    四种方式(4,5,6,7)都是可以的,显示全部文件的详细信息

 

  • ls -l显示的详细信息中:
  1. 从后往前依次表示:文件名   最后更新时间   文件大小(文件夹默认4K)   文件所属组   文件所有者   硬链接计数
  2. -rw-r--r--         drwxr-xr-x     此类一共10个字符,第一个字符表示文件类型,后面9个字符表示文件权限。
  • 文件类型:
  1. - 表示普通文件。普通文件指文本文件和二进制文件,如a.c  1.txt   a.out都是普通文件
  2. d 表示文件夹,d是directory的缩写
  3. l 表示符号连接文件,后面会用->打印出它指向的文件
  4. s 表示socket文件
  5. p 表示管道文件 pipe
  6. c 表示字符设备,鼠标键盘等
  7. b 表示块设备,u盘硬盘等
  • 文件权限(9个字符):
  1. r :可读         w :可写          x: 可执行           -: 无权限
  2. 前三个字符:当前用户(属主)   中间三个字符:与当前用户同一组用户(属主所在组)   后三个字符:其他用户

(2) cd(change directory,更改目录)

作用:用来切换目录(涉及到相对路径和绝对路径 )
cd ..    ..代表上一层目录     .代表当前目录
../.的具体实现:
当创建一个空文件夹时,系统默认创建两个隐藏文件(.和..),当使用命令cd ../cd . 时,分别切换到对应路径.

(3) pwd(print work directory,打印工作目录)

  1. 作用:打印出当前的绝对路径

(4) mkdir(make directory,创建文件夹)

  1. 作用:创建空文件夹
  2. mkdir -p 级联创建文件夹

(5) mv(move,移动)

  1. 作用:在目录间移动文件,重命名文件
  2. mv 源文件pathname 目的文件pathname

(6) touch

  1. 作用:创建空文件
  2. touch pathname
  3. 若存在,则更新时间;不存在,则创建

(7) cp(copy,复制)

  1. 作用:复制文件或文件夹
  2. cp 源文件pathname 目标文件pathname
  3. cp -r 用来复制文件夹
  4. cp -f 强制复制
  5. 实际操作时,一般是cp -f复制文件,cp -rf复制文件夹

  1. cp dir(存在) dir1(存在):将dir拷贝到dir1目录下,包括dir1
  2. cp dir(存在) dir1(不存在):将dir拷贝到dir1目录下,不包括dir1

  1. cp file(存在) file1(存在):用file覆盖file1

  2. cp file(存在) file1(不存在):创建file1,将file内容拷贝到file1

(8) rm(remove,去除,删除)

  1. 作用:用来删除文件,文件夹
  2. rm 文件pathname
  3. rm -r(递归删除) 文件夹pathname
  4. rm -f 文件pathname 强制删除(当不存在某文件,却硬要删除时,不会提示(区别 rm)返回真)
  5. 当正在编辑一个文件时,仍可将其删除?删除是在硬盘上操作,而打开文件时,已将文件信息读取到内存进行操作,故与硬盘无关。当编辑完保存退出时,将该文件保存回硬盘。

转存失败重新上传取消

(9) cat

  • 作用:直接在命令行下显示文件内容(适用短文件,长文件一般用 vi 打开)
  • 也可以用来向文件输入,暂时不管
  • 相关命令(不常用):
  1. more 文件名 打开文件 回车向下浏览 空格向下翻页 q退出
  2. less 文件名 打开文件 Ctrl+n向下滚动 Ctrl+p向上滚动 q退出 上下键翻页
  3. head -n 文件名 n默认为10   从文件头部向下显示n行
  4. tail -n 文件名 n默认为10   从文件尾部向上显示n行

(10)rmdir(remove directory,删除文件夹)

  1. 作用:删除空文件夹
  2. rmdir和rm -r的区别:rmdir只能删除空文件夹,而rm -r可以删除空文件夹和非空文件夹

(11) ln(link,连接文件)

  • 基础:windows中快捷方式,实际上快捷方式和它指向的文件是独立的两个文件,两个都占硬盘空间,只不过用户访问快捷方式时,效果等同于访问指向的文件。
  • linux中有两种连接文件:
  1. 一种叫软连接(符号连接),等同于windows中快捷方式
  2. 一种叫硬连接
  • 创建软连接文件: ln -s 源文件名 符号连接文件名
  1. 举例:ln -s src.c,linker.c         linker.c就是src.c的一个符号连接文件
  2. 文件名使用绝对路径,以保证快捷方式移动到各路径下时都可正常使用。使用相对路径则不行。
  • 创建硬连接文件:ln 源文件名 连接文件名
  1. 硬连接实际上和源文件在硬盘中是同一个东西,效果类似于硬盘上的一个文件,在文件系统上,在我们看来有好多个文件一样。每次删除一个文件时,只要他还有其他的硬连接存在,这个文件就不会被真正删除。只有等所有的连接文件都删除掉了,这个文件才会被真正从硬盘上删除。(免死金牌)

(12) man

  • 作用:查询man手册,获得帮助信息
  • man 1 ls          1表示查询的是linux命令
  • man 2 xxx        2表示查询的是linux api
  • man 3 xxx        3表示查询的是C库函数
  • 注意:在man手册中查询时,退出按Q键(Q就是quit的缩写)

(13)在线安装、卸载软件 apt-get

  • 作用:在ubuntu中用来在线安装、卸载软件的程序
  • apt-get install vim
  • apt-get remove vim
  • 注意,安装和卸载都是在线的,也就是说ubuntu必须能上网才能使用apt-get
  • 说明:apt-get 安装软件的原理和必要性。
  • linux操作系统的发行版,内核版本,定制性,造成了linux中软件的不兼容性。在linux中安装软件是一件困难的事情,装了软件能不能用不一定。ubuntu解决了这个问题,ubuntu就适合某个发行版(ubuntu10.04)的所有软件做了一个列表,然后用户通过apt-get install的方式安装软件,就会实时连接到ubuntu服务器,服务器会根据你的ubuntu版本,给你下载合适的软件来安装。这样确保了软件的兼容性。

(14)修改文件或目录权限  chmod

  • 文字设定法 chomd who[+|-|=]mode 文件名
  1. who: u-user所有者   g-group同组用户   o-other其他用户   a-all默认
  2. +|-|=      增加   剥夺   覆盖
  3. mode: r w x -    读  写  执行  无权限
  • 数字设定法 chomd [+|-|=]mode 文件名
  1. mode(八进制):r 4     w 2    x 1    - 0

(15)修改文件所有者或所属组  chown

  • chown 新的所有者 文件名
  • chown 新的所有者:新的所有组 文件名

(16)根据文件属性查找  find

  • 总格式:  find 目录 查找类型(参数) "搜索内容"
  • 文件名     find 目录 -name "文件名"
  • 文件类型 find 目录 -type "文件名"
  • 文件大小 find 目录 -size +/-nM/K        +大于   -小于  n数字   M 兆    K千
  • 日期        find 目录 -ctime/-mtime/-atime +n/-n       +n天之外   -n天之内  ctime创建日期   mtime修改日期   atime访问日期
  • 深度        find 目录 -maxdepth/-mindepth n          n数字表示深度
  • 高级查找

(17)根据文件内容查找  grep

(18)压缩包管理

  • Linux常用压缩包格式
  1. .gz
  2. .bz2
  • 压缩命令
  1. tar 
  2. rar
  3. zip/unzip

四、编辑器vi的使用(vi和vim的联系)

什么是编辑器?编辑器就是一款软件,它的主要作用就是用来编辑。譬如编写文件,编写代码。

  • Windows中的常用编辑器,如自带的notepad。比较好用的notepad++,UltraEditor,SlickEditor
  • Linux中常用编辑器,自带的最古老的vi。比较好用的vim,gedit。
  • 注:vi和vim的关系:vim是vi的升级版,推荐使用vim。我们在后面提到vi时,其实都是指vim。

1、vi基础使用

  • *使用vi来打开/创建一个文件,vi pathname
  • *vi的两种模式:
  1. 命令模式:当vi打开时默认为命令模式,要转入输入模式,需要按a(after)或者i(insert)插入键。在命令模式下,此时键盘上输入的所有东西都被vi当作命令来对待。
  2. 在命令模式下,最好不要乱输入。此时应该输入相应的命令,来让vi做相应的事。
  3. 输入模式:输入模式用来向文件输入内容。可以从命令模式中按a或者i进入输入模式。进入输入模式后,就可以随意按键盘进行输入了。输入完成后如果要保存,要先退回到命令模式(因为保存也是一种命令)。在输入模式下按ESC键退回到命令模式。
  • 注:注意看屏幕左下角,当命令模式时无提示信息或者提示文件名等信息,当处于输入模式时,提示 -- INSERT --
  • 在命令模式下如何保存:
:wq         保存并且退出
:w          只保存不退出
:q          不保存退出        进来看了一下没改退出
:q!         不保存强制退出
:wq!        保存并强制退出

2、vi的高级使用

  • * 查找:在命令模式下,输入/xxx,就可以查找到xxx
  • * 快速切换行:在命令模式下,输入:num,就可以快速切换到num行
  • * 设置显示行号:在命令模式下,输入:set nu,就可以显示行号
  1. 注:设置不显示行号,命令模式输入:set nonu
  2. 设置永久显示行号,需要修改vi的配置文件。打开vi的配置文件~/.vimrc,在其中输入set nu即可。
  • * 行删除
  1. 命令模式下,先将光标移动到要删除的行,然后输入dd
  2. 如果要删除连续多行,譬如要删除连续的3行,使用3dd
  • * 行复制粘贴
  1. 复制:命令模式下,nyy
  2. 粘贴:命令模式下,p
  3. 细节:复制时要把光标放在多行的第一行,粘贴时实际粘贴到当前光标所在行的下一行。

3、linux中权限表示&管理

3.1、普通用户与特权用户 su 命令切换用户

  • Windows中有普通用户和特权用户,特权用户是Administrator,普通用户可以有很多个。
  • 特权用户是系统的管理员,对系统内所有文件具有操作权限。每个普通用户只能处理自己的文件,不能访问其他用户的文件,更不能随意处理操作系统的文件。
  • Linux中也有普通用户和特权用户的区别。特权用户就是root用户。普通用户权限受到限制,譬如说普通用户不能cd /root,普通用户不能使用apt-get install 来装软件。
  • 可以使用su 用户名来在不同用户间切换。譬如要从普通用户切换到root,可以su root,然后输入root的密码即可转入root用户。从root要切换到普通用户gec,则su gec即可。

3.2、使用sudo暂时获取root权限

  • 这是ubuntu的一个特点,在ubuntu中可以使用sudo命令让普通用户暂时获取root用户的权限,而不必进行用户切换。

4、虚拟机ubuntu上网的问题

4.1、桥接briged和NAT
4.2、linux中网络设置ifconfig
4.3、ubuntu中网络配置文件/etc/network/interface

5、使用技巧:

  • 使用shell的Tab键自动补全

Tab在linux命令行输入中可以自动完成。在linux命令行中使用Tab键会极大提高输入效率。

  • 使用shell的历史记录

shell会记录用户执行命令的历史记录,而我们一般使用命令都会在短时间内集中反复使用,因此当你需要使用一条刚才还使用过的命令时,不需再次花时间输入,只要按下键盘上下箭头按键,就可实现上下翻页,翻出刚才用过的命令,直接回车执行。就好像电话机的通话记录和快速回拨一样。

  • linux命令行中一些符号的含义:
  1. .          代表当前目录
  2. ..         代表上一层目录,当前目录的父目录
  3. -          代表前一个目录,我刚才从哪个目录cd过来(可用于两个目录间的循环跳动)
  4. ~         代表当前用户的宿主目录
  5. /          代表根目录
  6. $         普通用户的命令行提示符
  7. #         root用户的命令行提示符
  8. *         万能匹配符
  • 宿主目录:所谓宿主目录,就是操作系统为当前用户所设计的用来存放文件、工作的默认目录。如Windows中的“我的文档”目录,就是Windows为我们设计的宿主目录。
  • Linux中每个用户都有自己的宿主目录,这个目录对于普通用户来说,在/home/username/,而对于root用户来说,在/root。

五、参考视频

  • 【黑马程序员】2017版 服务器开发之linux基础编程

  • 【编程开发】史上最全的100个linux命令演示实战教程

  • 【csdn学院】朱老师物联网大讲堂

嵌入式攻城狮 I Linux基础相关推荐

  1. 【致敬嵌入式攻城狮第2期活动预热征文】解决瑞萨RA2E1开发板在RT-Thread的版本中编译报错 error: ‘board_cfg.h‘ file not found

    解决瑞萨RA2E1开发板在RT-Thread的版本中编译报错 error: 'board_cfg.h' file not found 继上上周在RA2E1开发板上跑通了RT-Thread最新版本的代码 ...

  2. Haozi的嵌入式攻城狮修炼历程

    文章目录 入门 -- 基础 进阶 -- RTOS(RT-Thread) 番外:工具 练习:设计 入门 -- 基础 ===>> 此系列代码在这 Gitee <<=== STM32 ...

  3. 【致敬嵌入式攻城狮第2期活动预热征文】 [深入理解SSD 20] 话说固态硬盘里的HMB

    声明 主页: 元存储的博客_CSDN博客 依公开知识及经验整理,如有误请留言. 个人辛苦整理,付费内容,禁止转载. 内容摘要 1. 何为 HMB? 2. HMB 是怎么做到的? 2.1 被替代的 DR ...

  4. 【致敬嵌入式攻城狮第2期活动预热征文】蜂鸣器加流水灯按键检测的实现

    一.实验目的 实现按键按下去的时候蜂鸣器响,并且有流水灯效果,当按下另一个按键的时候,关闭蜂鸣器和流水灯. 二.实验原理 图 5.2.1 蜂鸣器原理图 蜂鸣器与 STM32F4 连接原理图图中我们用到 ...

  5. web前端攻城狮 学习笔记——HTML基础

    开始学习web前端开发基础了,我是跟着清华大学在学堂在线的<Web前端攻城狮>学习的,把一些笔记记在这里,方便后期查阅. 1 HTML基础 HTML是超文本语言. 一段HTML代码: &l ...

  6. 女儿提前晒 iPhone X,攻城狮老爸被苹果解雇;Linux Kernel 4.14-rc7 发布

    (点击上方蓝字,快速关注我们) 参考:开源中国.solidot.cnBeta.腾讯科技等 0.女儿提前晒 iPhone X,攻城狮老爸被苹果解雇 防火防盗防女儿,美国女孩 Brooke Amelia ...

  7. 【致敬未来的攻城狮计划】第1期 作业汇总贴 + 获奖公布

    ​ 文章目录 一.写在前面 二.种子学员介绍 三.作业贴汇总 四.小小总结 五.获奖公布 六.学员有话说 七.特别致谢 一.写在前面 时间过得真快,距离 [致敬未来的攻城狮计划]第1期 的发起,已经过 ...

  8. 【致敬未来的攻城狮计划】第2期定向赠书《RT-Thread设备驱动开发指南》+ 《GD32 MCU原理及固件库开发指南》

    开启攻城狮的成长之旅!这是我参与的由 CSDN博客专家 架构师李肯(超链接:http://yyds.recan-li.cn)和 瑞萨MCU (超链接:瑞萨电子 (Renesas Electronics ...

  9. Copy攻城狮辛酸史:含泪“一分钟”跑通MindSpore的LeNet模型

    摘要:一个Cope 攻城狮用切身实例告诉你: Cope代码体验一时爽,BUG修改花半天. 前言:此文为r0.7-beta的操作实践,为什么我的眼里常含泪水,因为我对踩坑这件事爱得深沉.谨以此文献给和我 ...

最新文章

  1. LINQ 学习路程 -- 查询语法 LINQ Query Syntax
  2. HTML的DOM和XML的DOM对象的区别
  3. python-多继承
  4. 连接mysql数据库时提示2003-can t connect to MySQL server on ip(10060)的解决办法
  5. 50张图片做出李飞飞数万张的效果,类脑AI竟然这样玩?
  6. 批量修改同一目录下文件名--操作so easy
  7. 计算机学win7画图,win7自带画图工具
  8. 零基础使用小米球ngrok来快速实现内网穿透
  9. fileupload控件的属性_FileUpload控件的配置 .
  10. 无损图片压缩-设计师程序员的心头爱
  11. Win10下可连wifi的笔记本共享网络至台式机
  12. 安防网络摄像机推送到RTMP流媒体服务器方案
  13. Rational Team Concert 2
  14. 怎么给pdf文件插入页码,有什么简单的方法?
  15. Windows多个桌面切换快捷键
  16. 如何实现微信小程序手机号授权
  17. 工程计算和数据科学中常用的9种测量距离
  18. tomcat启动一闪而逝
  19. putty 遂道_为什么将网络隧道称为“隧道”?
  20. 【刷题记录1】算法|数据结构|C/C++

热门文章

  1. 技术干货|赌神摇骰子——基于MWORKS/Modelica的刚体动力学接触建模与仿真
  2. html 素组长度,javascript如何定义数组长度?
  3. MUSICGEN:简单可控的音乐生成
  4. 取消IDEA默认打开项目设置
  5. bat 判断copy是否执行成功
  6. 在一句话后面加ps是表示附言的意思
  7. Android ProgressBar 的使用
  8. 程序、技术、潮流与时尚
  9. 现代软件工程 第一章 【概论】第8题——原旭莹,张晓丽
  10. 自动化测试实战(一)12306火车票网站自动登录工具