1. 什么是Linux

1)Linux系统是一种自由和开放源代码的类UNIX的完整操作系统。

2)林纳斯·本纳第克特·托瓦兹(LinusBenedictTorvalds,1969年~)

3)诞生于1991年10月5日。Linux存在着许多不同的Linux版本,均使用Linux内核。

4)Linux系统基于GPL协议发布,该协议是GNU项目所创立开放源代码的公共许可证。

5)支持各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

2. GNU项目简介

1)GNU项目在1983年由理查德·斯托曼(RichardStallman)创立

2)GNU项目花了十余年时间创建了GCC编译器、Emacs编辑器等多个工具。所有的工具以源代码形式发布,并且无需支付任何费用。只是这些工具的改进版本和衍生品必须遵循同样的发布形式,这就形成了GPL协议。但当时缺少一个最关键的组件——操作系统核心

3. GNU项目组织结构

4. Linux起源

1)Minix——安德鲁·塔能鲍姆(AndrewTanenbaum)出于教学目的编写的类UNIX操作系统

2)Freax(Freak+x)——Linus Torvalds

3)Linux——Ari Lemmke

4)GNU/Linux——Linux内核与GNU工具结合体(GNU是“GNUisNotUnix”的递归缩写)费软件与开源软件

5. 免费软件与开源软件

1)免费软件与开源软件概念并不相同,免费软件通常以二进制文件形式发布。用户虽然可以免费使用,但无权对软件进行任何修改。开源软件是将软件以源代码形式发布,并遵循GPL等开源协议,用户不仅能使用,而且还可对软件进行改进。

2)Linux系统是开源软件,所以基于Linux系统开发必须遵循开源规则。这种开发方式最大的优势是,开发者能最大限度的利用现有代码,从而避免重复工作

6. Linux内核与版本

1)内核是操作系统的心脏,系统其它部分必须依靠内核这部分软件提供的服务,例如管理硬件设备、分配系统资源等。内核由中断服务程序、调度程序、内存管理程序、网络和进程间通信等系统程序共同组成。Linux内核是提供保护机制的最前端系统,它独立于普通应用程序,一般处于系统态,拥有受保护的内存空间和访问硬件设备的所有权限。这种系统态和被保护起来的内存空间,统称为内核空间。

2)内核负责管理计算机系统的硬件设备,为硬件设备提供驱动。对于操作系统上层的应用程序来说,内核是抽象的硬件,这些应用程序可通过对内核的系统调用访问硬件。这种方式简化了应用程序开发的难度,同时在一定程度上起到了保护硬件的作用。Linux内核支持几乎所有的计算机系统结构,并将多种系统结构抽象为同样的逻辑结构。

7.Linux内核结构

8.Android系统结构

9.Linux系统架构和目录

10. Linux基本操作

Linux系统有两种操作方法,一种是使用鼠标键盘等输入设备直接在图形界面XWindow上操作,另一种是通过输入文本命令方式在控制台上操作。各种Linux发行版的操作遵循同样的原则,所以操作方法非常相似。

11. Shell、控制台、终端

1)Shell是一种具备特殊功能的程序,也是介于用户和Linux内核间的一个接口。Linux系统拥有多种shell,发行版中常用的是名为bash的shell。这种shell不但能执行简单的命令,还能将多个命令、条件和参数编写为程序执行。使用Linux系统进行程序开发通常需要掌握一些常用shell命令。

2)Linux系统是一个多用户多任务的分时操作系统。任何一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统,该账号的名称就是登录名。Linux系统通常有多个控制台,进入控制台后可使用shell程序操作计算机。

3)终端是XWindow里访问shell程序的接口。

12. 文件和目录

文件系统是在物理存储设备中存放数据的索引格式,文件和目录是数据的逻辑划分形式。Linux系统的文件类型概括起来可分为5种:普通文件、目录文件、链接文件、设备文件和管道文件。

1) 普通文件就是平时所见的大多数文件,它的特点是不包含文件系统的结构信息。

2) 目录文件是用于存放文件路径及相关信息的文件,是文件系统的基本节点。目录文件使文件系统呈现出树形结构。在Linux系统中,通常所说的目录就是指目录文件。

3) 链接文件是指向另一个真实文件的链接,是一种特殊的文件结构。

4) 设备文件是保存计算机设备信息和接口的文件,这是Linux操作系统的独特形式,计算机的所有设备都以文件的形式提供给应用程序使用。

5) 管道文件是用于应用程序之间进行通信的文件。

13. 文件系统

文件系统是磁盘及其逻辑分区的目录结构,一个磁盘设备可包含一个或多个文件系统,但每个文件系统必须占据硬盘中单独的一个分区。按照Linux系统对分区的命名规则,ATA接口的硬盘以字母组合hd开始,SCSI和SATA接口硬盘以字母组合sd开始。第3个字母是硬盘的序号,a为第1块硬盘,b为第2块硬盘,依次类推。最后一位数字是分区的序号。

 

14. 文件名及路径名

1) Linux系统的文件名由字符和数字组成,其中字符可以是大小写英文字母或其他Unicode编码的文字和符号。但不能包括“*”、“?”和“[]”文件名通配符。

2) Linux系统的文件名也有类似其他操作系统的扩展名,在文件名最后一个“.”后的内容即是扩展名。例如,C语言源文件的扩展名是c,头文件的扩展名是h。

3) Linux文件系统采用带链接的树形目录结构,即只有一个根目录。根目录可含有下级子目录或文件;子目录中又可含有更下级的子目录或者文件。这样一层一层地延伸下去,构成一棵倒置的树,如图所示。

4) 路径名可分为绝对路径和相对路径,绝对路径是从根目录到目标目录或文件所经过的所有节点名称,如文件m1.c的绝对路径是“/home/shizhe/workspace/m1.c”。相对路径是某一个目录到目标目录或文件所经过的所有节点名称,如文件m1.c的相对于“/home”的相对路径是“shizhe/workspace/m1.c”。

15. 工作目录

1) 控制台或终端在某个时刻总是对应着一个目录,该目录即工作目录。在控制台或终端执行命令或程序,对某个没有指定路径的文件或子目录进行操作,控制台或终端会自动在文件或子目录前加入当前工作目录的路径。例如,执行ls命令会将工作目录下的文件和子目录名称显示出来,除非在ls命令后输入某一具体的路径名称。

2) 工作目录可用“.”表示,工作目录上层父目录用“..”表示。cd命令用于改变工作目录。

3) 控制台或终端会将“~”符号替换成用户起始目录的绝对路径,该符号也被认为是环境变量,Linux系统会自动维护“~”符号的值。

16. 文件描述符

1) 文件描述符是一个小的非负整数,内核用以标识某一特定进程正 在存访的文件。当内核打开一个现存文件或创建一个新文件时, 它会返回一个文件描述符给该进程,这样该进程就能通过内核访 问目标文件。

2) 按惯例,每当运行一个新程序时,所有的shell都为其打开3个文件 描述符:标准输入(0)、标准输出(1)以及标准错误(2)。如果像简 单命令ls那样没有做什么特殊处理,则这3个描述符都连向终端。

17. Linux黑洞

1)  /dev/null 是一个虚设的设备,俗称“Linux黑洞”,任 何对/dev/null的写入都会成功,但数据会消 失得无影无踪,没有任何反馈。所以经常把 不想在屏幕显示的信息全部送到/dev/null中, 在shell脚本中用得比较多。 如:ls –l > /dev/null

2) 还可以用来清空文件的内容:cat /dev/null > FileName

18.常用命令——用户管理

1.新建用户(useradd)

useraddUserName

新建用户后,会在/home目录下建立一个以UserName命名的文件夹,用户每次登录时自动定位到该文件夹下。

2. 为用户添加密码(password)

passwdUserName

3. 删除用户(userdelete)

userdelUserName

使用–p选项可以删除用户目录下的文件及与用户相关联的其他文件。

4. 新建组群(groupadd)

groupaddGroupName

5. 删除组群(groupdelete)

groupdelGroupName

6.用户身份

whoami

7.查看登录用户

who[选项]

-a显示所有用户的所有信息

-H显示列标题

8.查看用户的操作

w某一时刻用户的行为

9.用户间切换(substituteuser)

suUserName如:su或suroot切换为根用户

suHaison切换为名为Haison的用户

19.常用命令——目录管理

1.创建目录(makedirectory)

mkdirDirecName

2.删除目录(removedirectory)

rmdirDirecName

3.显示工作目录(printworkingdirectory)

pwd

4.显示目录内容(list)

ls[选项]

选项:-a显示当前目录下的所有文件,包括以.开头的文件。

-l以长列表的形式显示文件列表,如:

-rw-r--r--1haisonhaison18Nov210:10haison.c

5.改变当前目录(changedirectory)

cd或cd~进入登录时的主目录

cd/进入根目录

cd..进入上一级目录

cd/home进入系统的home目录

cdhome进入当前目录下的home目录

6.目录重命名(move)

mvSourceDirecNameTargetDirecName

7.目录拷贝(copy)

cpSourceDirecTargetDirec

-r拷贝目录下的文件、子目录及子目录下的文件

20.常用命令——文件管理

1.新建文件

>FileName或touchFileName或viFileName

2.删除文件(removefile)

rm[选项]FileName

选项:-i系统提示是否真要删除该文件

-f删除文件之前不提示任何确认信息

-r递归删除目录下所有子目录的内容

3.文件拷贝(copy)

cpSourceFileTargetFile

4.文件链接(link)

ln–sSourceFileTargetFile

创建文件链接,用ls–l查看,会看到TargetFile->SourceFile

5.显示文件内容

moreFileName一次一屏的显示文件内容,空格或回车显示下一屏

lessFileName一次一屏的显示文件内容,空格或回车显示下一屏

catFileName一次全部显示文件的内容

catfile1file2>file3将file1、file2的内容写到file3,覆盖file3原内容

catfile1>>file2将file1的内容追加到file2,file2原内容不变

headFileName只显示文件的前10行

head–nFileName显示文件的前n行

tailFileName只显示文件的后10行

tail–nFileName显示文件的后n行

nlFileName以编号的形式一次全部显示文件的内容,忽略空格

6.文件移动/重命名(move)

mvSourceFileTargetFile将一个或多个文件移动到另外一个目录下,或者将一个文件重命名为另一个文件。

7.文件查找(find)

find[路径][选项]

如:find/-name“Linux”-print

8.文件内容查找(grep)

如:grep“main”haison.c

9.文件类型

命令ls–l以长列表形式显示文件的类型等,如:-rw-r--r--

21.常用命令——权限管理

-rw-r--r--1haisonhaison18Nov210:10haison.c

改变文件/目录的属主(changeowner)

chownOwnerFileName/DirecName

如:chownDavehaison.c

改变文件/目录的属组(changegroup)

chgrpGroupFileName/DirecName

如:chgrpDavehaison.c

改变文件/目录的属主和属组

chownowner:groupFileName/DirecName

如:chownDave:Davehaison.c

Linux程序设计——Linux基础的更多相关文章

  1. 1)Linux程序设计入门--基础知识

    )Linux程序设计入门--基础知识 Linux下C语言编程基础知识 前言: 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将 会学到以下内容: 源程序编译 Makef ...

  2. Linux回归篇-基础恶补

    前言:  LINUX在之前仅仅了解一些皮毛知识,最近计划深入研究大数据,LINUX当然少不了,所以借此良机将LINUX也顺带添加进入学习的目录之中.为了知识的全面性,本文先恶补一下LINUX的基础,作 ...

  3. 鸟哥Linux私房菜基础学习篇学习笔记2

    鸟哥Linux私房菜基础学习篇学习笔记2 第九章 文件与文件系统的压缩打包: Linux下的扩展名没有什么特殊的意义,仅为了方便记忆. 压缩文件的扩展名一般为: *.tar, *.tar.gz, *. ...

  4. 6)Linux程序设计入门--消息管理

    )Linux程序设计入门--消息管理 前言:Linux下的进程通信(IPC) Linux下的进程通信(IPC) POSIX无名信号量 System V信号量 System V消息队列 System V ...

  5. 7)Linux程序设计入门--网络编程

    )Linux程序设计入门--网络编程 Linux系统的一个主要特点是他的网络功能非常强大.随着网络的日益普及,基于网络的 应用也将越来越多. 在这个网络时代,掌握了Linux的网络编程技术,将令每一个 ...

  6. linux程序设计——个人总结

    linux程序设计--个人总结 到今天为止,<linux程序设计>学习基本完毕了.从五月下旬開始接触linux,学习安装Ubuntu14.04,六月份開始学习<linux程序设计&g ...

  7. Linux 脚本编写基础

    txt去重    http://man.linuxde.net/sort Linux 脚本编写基础 http://www.cnblogs.com/linn/archive/2007/03/05/664 ...

  8. linux发行版基础目录

    linux发行版基础目录 linux 基础目录 linux基础目录 目录 作用 / 根目录,起源 /boot linux引导启动目录 /lib 库目录 /bin 常用内部命令 /sbin 常用内部管理 ...

  9. LINUX二十个基础命令

    LINUX二十个基础命令 一. useradd命令 1.命令格式: useradd 选项 用户名 2.命令功能: 添加新的用户账号 3.常用参数: -c comment 指定一段注释性描述.-d 目录 ...

随机推荐

  1. rename 表名

    rename table 旧表名1 to 新表名1,旧表名2 to 新表名2;

  2. AgileConfig - RESTful API 介绍

    AgileConfig AgileConfig是一个基于.net core开发的轻量级配置中心. AgileConfig秉承轻量化的特点,部署简单.配置简单.使用简单.学习简单,它只提取了必要的一些功 ...

  3. 计算起始车站车费问题-JavaScript数组对象写法

    计算起始站车费 题目:深圳--60--广州--50-虎门--40- -中山--36-珠海一34-澳门一89一香港以上车票费用计算,如坐车深圳到广州60元,广州到虎门50元,深圳到虎门就是60+50-1 ...

  4. MySQL全面瓦解19:游标相关

    定义 我们经常会遇到这样的一种情况,需要对我们查询的结果进行遍历操作,并对遍历到的每一条数据进行处理,这时候就会使用到游标. 所以:游标(Cursor)是处理数据的一种存储在MySQL服务器上的数据库 ...

  5. 探索微软开源Python自动化神器Playwright

    相信玩过爬虫的朋友都知道selenium,一个自动化测试的神器工具.写个Python自动化脚本解放双手基本上是常规的操作了,爬虫爬不了的,就用自动化测试凑一凑. 虽然selenium有完备的文档,但也 ...

  6. 無法直接連接互聯網,需要使用代理時(Scrapy)

    在windows系統中,如果無法直接連接互聯網,需要使用代理時該怎麽做呢? 1. 在powershell中設置proxy 背景:使用公司電腦,無法直接訪問互聯網,想要訪問互聯網就得使用代理,但是在控制 ...

  7. 计算机网络安全 —— 报文摘要算法 ME5 (三)

    一.报文摘要算法基本概念 使用加密通常可达到报文鉴别的目的,因为伪造的报文解密后一般不能得到可理解的内容.但简单采用这种方法,计算机很难自动识别报文是否被篡改.另外,对于不需要保密而只需要报文鉴别的网 ...

  8. Python+Selenium+Unittest实现PO模式web自动化框架(6)

    1.TestCases目录下的模块 TestCases目录下是存放测试用例的目录. TestCases目录下的测试用例采用unittest框架来构建. 例如:登录功能的测试用例.(test_1_log ...

  9. What is the difference between Serialization and Marshaling?

    How to serialize and deserialize JSON using C# - .NET | Microsoft Docs https://docs.microsoft.com/en ...

  10. 精通MySQL之索引篇,这篇注重练习!

    老刘是即将找工作的研究生,自学大数据开发,一路走来,感慨颇深,网上大数据的资料良莠不齐,于是想写一份详细的大数据开发指南.这份指南把大数据的[基础知识][框架分析][源码理解]都用自己的话描述出来,让 ...