LInux简介


Linux的发展要素

  1. UNIX操作系统
  2. Minix操作系统
  3. GUN计划
  4. POSIX标准
  5. Internet网络

LInux内核版本

内核编号形如:主版本号.次版本号.主补丁号.次补丁号

Linux的系统架构

  1. 进程调度:

    • SCHED_ORTHER:针对普通进程的时间片轮转调度策略,给所有进程分配时间片,当前进程时间片用完后,从进程优先级最高的进程选择运行
    • SCHED_FIFO:针对运行的实时性要求比较高,运行时间短的进程调度策略。系统按照进入队列的先后进行进程的调度
    • SCHED_RR:针对实时性要求比较高,运行时间比较长的调度策略。系统分配时间片,将事件片耗尽的进程放入队尾
  2. 内存管理MMU

    内存管理的主要概念是虚拟内存,分配策略是每个进程公平的使用内存

  3. 虚拟文件系统VFS

    Linux中支持多种文件系统,最常用的是ext2和ext3,ex3是ex2加上日志之后的文件

  4. 网络接口

    Linux支持多种网络接口,网络接口分为网络协议和驱动程序,网络协议是网络传输的通信标准,网络驱动则是对于硬件设备的驱动程序

  5. 进程间通信

    Linux下进程间通信方式主要有:管道方式,消息队列方式,信号方式,共享内存和套接字等方法

Linux的文件结构

常用的文件目录如下所示

  • /etc:Linux系统引导所需要的配置文件
  • /lib:包含C编程所需要的函数库,是一组二进制文件
  • /usr:包括所有其他内容
  • /var:包含系统定义表,以便在系统运行改变时可以只备份该目录
  • /tmp:用于临时存储
  • /bin:大多数命令放在这里
  • /home:主要用于存放用户账号
  • /dev:在这个目录下存放一种设备文件的特殊文件
  • /mnt:在Linux系统中,专门给外挂的文件系统使用的。分别是cdrom,floopy,登录光驱,软驱

Linux编程环境


Linux环境下的编辑器

Vim是Linux环境下编译器的一种,基于文本编辑器。

Vim使用简介

Vim的安装

在使用Vim编译器之前要先使用Vim安装包,如果没有安装Vim可以使用如下命令进行安装

#apt-get install vim (centos 要转换成yum)

Vim编辑器的模式

Vim主要分为普通模式和插入模式,普通模式是命令模式,插入模式是编辑模式

在插入模式下可以进行字符的输入,输入的键值显示在编辑框中,这些文本用于编辑

普通模式进行命令操作的,输入的值代表一个命令

插入模式和普通模式的切换分别为按i键和Esc键

使用Vim建立文件

Vim的命令模式是“vim 文件名”,一般来说建立文件如下操作

建立文件

使用Vim建立一个新文件的命令行格式为“vim 文件名”。使用如下命令建立一个hello.c的C语言源文件,同时将文件打开

$vim hello.c

进入插入模式

打开文件后,默认情况下进入普通模式。按i键,进入插入模式

文本输入

退出Vim

编译完成后,按Esc键退出插入模式回到普通模式,输入“: wq”退出Vim编辑器

运行命令ls:

$ls -l

输入的wq是保存后退出的意思,当不想进行保存时,输入":“后输入"q!”,Vim会直接退出,不保存所做修改。q!代表强制退出

辅助工具vimtutor

使用Vim编辑文本

Vim的编辑命令有很多,介绍Vim下移动光标,进行删,查,复制,跳转等操作

  1. 移动光标h(左),j(下),k(上),l(右)[也可以使用方向键]

  2. 删除字符

    删除一个字符可以用x,普通模式下,光标移动到需要删除的字符上然后按x键

    删除一整行用dd

    恢复删除用u

    Ctrl+r是一个特殊命令:为取消一个命令

  3. 复制粘贴p,y

    Vim下的粘贴命令为p,作用是将内存中的字符复制到光标的后面。

    例如将一行复制到某个地方,可以使用dd删除,并使用u命令恢复,这时候内存中是dd命令删除的字符串。将光标移动到插入的行之前,使用p命令可以把内存中的字符串复制后放置在选定的位置。

    y(即yark)是复制命令,将指定的字符串复制到内存中,yw命令用于复制单词,可以指定复制的单词量,y2w用于复制两个单词

  4. 查找字符串“/”

    查找字符串的命令是"/xxx" 其中xxx代表要查找的字符

    “:/printf”

    查找结果按“n“移动到上一个匹配的字符串上,按"N"移动到下一个字符串上

  5. 跳转到某一行g

    编写或者修改程序的过程中,经常需要跳转到某一行

    命令“:n”让光标转到某一行,或者使用nG,n为要跳转的行数,G为大写

Vim 格式设置

仅介绍常用格式

  1. 设置缩进

    合理的缩进使4程序更加清晰,对C语言程序实现缩进,设定cindent选项;需要设置下一行的缩进长度设置shiftwidth选项。

    :set cindent shiftwidth=4
    
  2. 设置Tab的空格数量

    不同编辑器对Tab键移动距离是不同的。对于Tab键需要设置

    ":set tabstop=n"设置Tab键对应空格的数量

  3. 设置行号

    ":set number"使代码头部有行号数值

Vim配置文件.vimrc

可以在.vimrc文件中进行修改

set shiftwidth = 2           #缩进宽度
set tabstop = 2              #Tab键宽度
set number                   #显示行号

使用其他编辑器

在使用Windows编辑器时注意换行符

Windows:回车+换行

UNIX:换行

如果Windows下没有保存为UNIX格式,在Linux下可以使用dos2UNIX进行转换

$dos2UNIX hello.c

Linux--Linux的简介和Vim的使用相关推荐

  1. linux wc 命令简介

    此wc命令不是让大家没有食欲的地方.而是linux下一个简单的小命令. NAME wc - word, line, character, and byte count SYNOPSIS wc [-cl ...

  2. linux下的vi与vim

    vi与vim vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器.他是我们使用Linux系统不能缺少的工具.由于对 ...

  3. Kali Linux 安全渗透教程第二更Linux安全渗透简介

    第1章  Linux安全渗透简介 渗透测试是对用户信息安全措施积极评估的过程.通过系统化的操作和分析,积极发现系统和网络中存在的各种缺陷和弱点,如设计缺陷.技术缺陷.本章将简要介绍Linux安全渗透及 ...

  4. linux下源码安装vim,ubuntu 源码编译安装最新的vim 8.0

    为什么要源码编译安装VIM? 因为我要安装ycm,但是ubuntu14.04仓库vim版本低 教程步骤: 1, 核对系统版本 2, 删除系统自带的vim 3, 编译安装vim 4, 检验vim的安装 ...

  5. 资料收集新一代 Linux 文件系统 btrfs 简介

    来自: http://www.ibm.com/developerworks/cn/linux/l-cn-btrfs/ Btrfs 简介 文件系统似乎是内核中比较稳定的部分,多年来,人们一直使用 ext ...

  6. 面向dba的linux shell 脚本简介,面向 DBA 的 Linux Shell 脚本简介

    DBA:Linux 面向 DBA 的 Linux Shell 脚本简介 作者:CasimirSaternos 学习一些在 Linux 上安装.运行和维护 Oracle 数据库所需的基本 bash sh ...

  7. Linux Namespace机制简介

    最近Docker技术越来越受到关注,作为Docker中很重要的一项技术,Namespace也就经常在Docker的简介里面看到. 在这里总结一下它的内部机制.也解决一下自己原来的一些疑惑. Names ...

  8. [转] Windows完成端口与Linux epoll技术简介

    Windows完成端口与Linux epoll技术简介 2008-01-03 16:18 WINDOWS完成端口编程1.基本概念 2.WINDOWS完成端口的特点 3.完成端口(Completion ...

  9. Linux系统中VI或VIM输入时小键盘无法使用

    Linux系统中VI或VIM输入时小键盘无法使用 问题描述 在使用Xshell.Webshell或者PuTTY连接Linux服务器时经常会用到VIM对文件进行编辑.这是就会发现,小键盘无法使用.想输入 ...

  10. Linux安全原理简介

    Linux安全原理简介 介绍 在设置Linux计算机的所有阶段,安全性应是首要考虑之一.要在计算机上实施良好的安全策略,需要对Linux的基础知识以及所使用的某些应用程序和协议有充分的了解. Linu ...

最新文章

  1. 学习鸟哥的Linux私房菜笔记(4)——文件
  2. 【实用】ABAP ALV单元格修改信息提示
  3. hive和hbase区别和联系
  4. 前端学习(1979)vue之电商管理系统电商系统之让文本框获得焦点
  5. 11.m进制转十进制
  6. 使用 Flomesh 强化 Spring Cloud 服务治理
  7. 【ES9(2018)】Object Rest Spread
  8. docker mysql镜像 使用_docker下MySQL镜像的使用方法
  9. 网游源码完整服务端_【每日源码】微人事是一个前后端分离的人力资源管理系统,项目采用SpringBoot+Vue开发。...
  10. win10python安装失败_python3.6 + win10 安装 python-Levenshtein 错误记录
  11. 物联网的“最好”与“最坏”之间往往只差了一个“安全”
  12. 动态代理和静态代理的区别_动态代理与静态代理
  13. →箭头符号大全复制_特别符号大全,特殊符号大全
  14. 正则表达式-验证手机号与邮箱
  15. MCU控制继电器的电路详解
  16. XiaoZi's CrackMe
  17. mysql分组取最新时间的数据
  18. 社保交了24年,还有十几年才到退休年龄。还有必要继续交下去吗?
  19. window7电脑如何调亮度
  20. fork和lockf应用

热门文章

  1. Linux之top查看资源、网络操作相关的命令(ping、service)、登录远程服务器、文件互传
  2. 2016级计专班编程课程主页
  3. 提高消费品质 创造便民品牌 便利蜂在路上
  4. SQL Sever 学习笔记
  5. char *无法转换为LPCWSTR问题
  6. Java_内存管理和继承
  7. Cypress 最佳实践
  8. [IOS APP]佛度有缘人
  9. mysql避免笛卡尔积_避免hive笛卡尔积
  10. 滤波笔记二:运动模型(CVCACTRV)