澳门新浦京娱乐场网站-www.146.net-新浦京娱乐场官网
做最好的网站

澳门新浦京娱乐场网站:全栈技术员学习Linux技术

全栈必备Linux 基础,必备linux基础


Linux 几乎无处不在,不论是服务器构建,还是客户端开发,操作系统的基础技能对全栈来说都是必备的。

Linux 几乎无处不在,不论是服务器构建,还是客户端开发,对操作系统的理解和基础技能对全栈来说都是必备的。

随着科技的普及,Linux作为最受欢迎的服务端操作系统,无人不知,无人不晓。当今,不论是服务器搭建,还是客户端开发,Linux系统的基础技能对全栈来说都是必备的,而了解如下几个问题可以更好的帮助你成为一名合格的全栈工程师。

Linux基础,

1.描述计算机组成及其功能

    在学习Linux操作系统之前,首先我们要对计算机硬件进行简单的了解,随着计算机硬件的快速发展,现代计算机设备主要分为五个部分,分别是运算器、控制器、存储器、输入以及输出设备。

    控制器(Control):正确的分布的完成每一条指令规定的功能。比如控制内存数据给CPU或者CPU结果放入存储器等。

    运算器(Datapath):对数据进行算术运算和逻辑运算。要提到的是计算机的算术运算都是转换成加法进行计算的。

    存储器(Memory):存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要的时候提供这些信息

    输入(input system):输入设备,常见的输入设备有键盘、鼠标、摄像头等。

    输出(output system):输出设备,常用的输出设备有显示器、打印机等。

    其中运算器和控制器组成了电脑中的CPU(中央处理器)。所以CPU也成了计算机的核心组成部分,主要负责对数据的运算。存储器包括了硬盘,内存,负责存储和便于读取数据。输入输出设备,用于与外界信息交互。互相之间通过bus总线来连接传输。

    CPU控制是基于大量的指令集来运行的,而用户态的应用程序并不能直接控制CPU,所以就需要操作系统在中间作为中转,应用程序进行系统接口调用,OS运行特权指令。

    然后就引出了操作系统的概念。

 操作系统的定义:操作系统是一个用来协调、管理和控制计算机硬件和软件资源的系统程序,它位于硬件和应用程序之间。

 操作系统的内核的定义:操作系统的内核是一个管理和控制程序,负责管理计算机的所有物理资源,其中包括:文件系统、内存管理、设备管理和进程管理。

系统的选择

Linux发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。

Redhat,应该称为Redhat系列,包括RHEL、Fedora、CentOS(RHEL的社区克隆版本,免费)。Ubuntu严格来说不能算一个独立的发行版本,Ubuntu是基于Debian加强而来,一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的Linux桌面系统。Ubuntu社区认为实用性和创新性高于一切。

如果你需要一个比较稳定的服务器系统而已,那么最好的选择就是CentOS了,安装完成后,经过简单的配置就能提供非常稳定的服务了。但是对云环境而言,unbantu也许不错,hadoop最早就是在ubantu上开发的。

系统的选择

Linux发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。

Redhat,应该称为Redhat系列,包括RHEL、Fedora、CentOS(RHEL的社区克隆版本,免费)。Ubuntu严格来说不能算一个独立的发行版本,Ubuntu是基于Debian加强而来,一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的Linux桌面系统。Ubuntu社区认为实用性和创新性高于一切。

如果你需要一个比较稳定的服务器系统而已,那么最好的选择就是CentOS了,安装完成后,经过简单的配置就能提供非常稳定的服务了。但是对云环境而言,unbantu也许不错,hadoop最早就是在ubantu上开发的。

1.Linux体系组织结构

1.描述计算机组成及其功能

    在学习Linux操作系统之前,首先我们要对计算机硬件进行简单的了解,随着计算机硬件的快速发展,现代计算机设备主要分为五个部分,分别是运算器、控制器、存储器、输入以及输出设备。

    控制器(Control):正确的分布的完成每一条指令规定的功能。比如控制内存数据给CPU或者CPU结果放入存储器等。

    运算器(Datapath):对数据进行算术运算和逻辑运算。要提到的是计算机的算术运算都是转换成加法进行计算的。

    存储器(Memory):存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要的时候提供这些信息

    输入(input system):输入设备,常见的输入设备有键盘、鼠标、摄像头等。

    输出(output system):输出设备,常用的输出设备有显示器、打印机等。

    其中运算器和控制器组成了电脑中的CPU(中央处理器)。所以CPU也成了计算机的核心组成部分,主要负责对数据的运算。存储器包括了硬盘,内存,负责存储和便于读取数据。输入输出设备,用于与外界信息交互。互相之间通过bus总线来连接传输。

    CPU控制是基于大量的指令集来运行的,而用户态的应用程序并不能直接控制CPU,所以就需要操作系统在中间作为中转,应用程序进行系统接口调用,OS运行特权指令。

    然后就引出了操作系统的概念。

 操作系统的定义:操作系统是一个用来协调、管理和控制计算机硬件和软件资源的系统程序,它位于硬件和应用程序之间。

 操作系统的内核的定义:操作系统的内核是一个管理和控制程序,负责管理计算机的所有物理资源,其中包括:文件系统、内存管理、设备管理和进程管理。

  CPU之寄存器

  CPU的日常操作就是从内存取指令,解码,执行周而复始一直到整个程序结束。但是CPU处理指令花费的时间比他从内存中取指令的速度要快的多,所有CPU内部都有一些用来保存关键变量和临时数据的寄存器,CPU中的某些指令集提供一些指令,将一个数据从内存调入CPU或者从寄存器存入内存,cpu其他的指令集可以把来自寄存器、内存的操作数据组合,或者用两者产生一个结果,比如将两个字相加并把结果存在寄存器或内存中。

体系结构

了解体系结构,可以有一个较好的方向感。Linux 有kernel和user两种模式,内核、shell和文件系统一起形成了基本的操作系统结构,Linux 内核由如下几部分组成:内存管理、进程管理、设备驱动程序、文件系统和网络管理等。

=

体系结构

了解体系结构,可以有一个较好的方向感。Linux 有kernel和user两种模式,内核、shell和文件系统一起形成了基本的操作系统结构,Linux 内核由如下几部分组成:内存管理、进程管理、设备驱动程序、文件系统和网络管理等。

澳门新浦京娱乐场网站 1

引自维基百科

学习一个系统需要了解其体系结构,这样才能更好的学习。Linux有kernel和user两种模式,内核、shell和文件系统统一形成基本的操作系统结构,Linux内核由如下几部分组成:内存管理、进程管理、设备驱动程序、文件系统和网络管理等

2.Linux的发行版本

    Linux发展到现在已经有几百种发行版本。Linux的内核源代码和linux的应用程序都可以自由获得,因此很多公司组织开发了属于自己的Linux发行版。目前有三大主流发行版本,分别是slackware,debain,Redhat。在主流发行版本基础之上,还有这很多常见的二次发行版本和三次发行版本(界面等更优化),比如slackware(最古老的linux版本)的二次发行版本中的suse和三次发行版本opensuse,sles(企业级发行版)。debain(更原汁原味非常遵循GNU规范的版本)的二次发行版乌班图三次发行版本mint,Redhat,rhel(企业版),fedora(桌面版,现在被fedora社区开发研究)。

    这些发行版本内核上基本没区别。不过有的内核是优化过的,比如适合平板的内核,它集成了相当多触摸屏的驱动,其它没有优化的内核要自己安装触摸屏的驱动。 每个发行版本,不光是图形终端不同。 还有安全方面,文件打包方面,还有源方面。

    注:按软件包管理系统的不同,分为Redhat的rmp包管理系统和Ubuntu的基于DPKG包管理系统。使用前者的发行版包括SLES、Fedora、openSUSE、centos、RHEL等,包文件以rpm为扩展名;使用后者的包括Ubuntu系列,Debian系列等,包文件以deb为扩展名。

 Red Hat Enterprise Linux:因为它是所有Linux/UNIX系统中最容易安装,同时也是应用最广的一种Linux操作系统。而Linux操作系统多数是用作服务器的,由于使用Linux的成本十分低廉,因此目前许多Internet服务器都是使用Linux操作系统。

 操作系统的特点:多用户(在同一时刻可以有多个用户同时使用linux操作系统而且他们互不干扰)和多任务(任何一个用户在同一时间可以在linux操作系统上运行多个程序)

  寄存器的分类

  1.通用寄存器

  用来保存变量以及组合或者上述的产生的临时结果。

  2.程序计数器

  同时跑多个程序,保存将要取出下一条指令的内存地址。上一次没干完的状态保留,下一次直接调用这个状态。

  3.堆栈指针

  它指向内存中当前栈的顶端。该栈包含已经进入但是还没有退出的每个过程中的一个框架。在一个过程的堆栈框架中保存了有关的输入参数、局部变量以及那些没有保存在寄存器中的临时变量。

  4.程序状态字计数器

  控制工作状态,这个寄存器包含了条码位(由比较指令设置)、CPU优先级、模式(用户态或内核态),以及各种其他控制位。用户通常读入整个PSW,但是只对其中少量的字段写入。在系统调用和I/O中,PSW非常重要,CPU指令集与内核数据来了,包括操作硬件的指令集都让系统软件使用,而硬件指令集不能让程序使用。内核态一切都开放,用户态会被CPU限制。应用程序需要操作硬件时,需要通过系统软件的内核态来回切换。应用程序必须使用操作系统提供的系统调用功能,切换时应用程序使用系统调用,系统调用调用操作系统,把TRAP指令状态改变。一般就是软件不停的在用户态与内核态之间切换时,由于时效性所以数据的状态是由程序状态字计数器来保存的。

Linux内核

了解linux内核,可以充分利用资源,在系统调优时有目标感。

Linux 将内存划分为容易处理的“内存页”,提供了对 4KB 缓冲区的抽象,例如 slab 分配器。进程实际是某特定应用程序的一个运行实体,进程调度控制进程对CPU的访问。Linux 中常见的进程间通讯机制有信号、管道、共享内存、信号量和套接字等。 内核通过 SCI 提供了一个API来创建一个新进程(fork、exec 或 POSⅨ),停止进程(kill、exit),并在它们之间进行通信和同步(signal 或者 POSⅨ 机制)。

Linux 操作系统将独立的文件系统组合成了一个层次化的树形结构,并且由一个单独的实体代表这一文件系统。由于 Linux 支持许多不同的文件系统,并且将它们组织成了一个统一的虚拟文件系统.设备驱动程序提供一组操作系统可理解的抽象接口完成和操作系统之间的交互,而与硬件相关的具体操作细节由设备驱动程序完成。Linux内核的网络部分由BSD套接字、网络协议层和网络设备驱动程序组成。 网络设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备都有相应的设备驱动程序。

=

Linux内核

了解linux内核,可以充分利用资源,在系统调优时有目标感。

澳门新浦京娱乐场网站 2

Linux 内核结构

Linux 将内存划分为容易处理的“内存页”,提供了对 4KB 缓冲区的抽象,例如 slab 分配器。进程实际是某特定应用程序的一个运行实体,进程调度控制进程对CPU的访问。Linux 中常见的进程间通讯机制有信号、管道、共享内存、信号量和套接字等。 内核通过 SCI 提供了一个API来创建一个新进程(fork、exec 或 POSⅨ),停止进程(kill、exit),并在它们之间进行通信和同步(signal 或者 POSⅨ 机制)。Linux 操作系统将独立的文件系统组合成了一个层次化的树形结构,并且由一个单独的实体代表这一文件系统。由于 Linux 支持许多不同的文件系统,并且将它们组织成了一个统一的虚拟文件系统.设备驱动程序提供一组操作系统可理解的抽象接口完成和操作系统之间的交互,而与硬件相关的具体操作细节由设备驱动程序完成。Linux内核的网络部分由BSD套接字、网络协议层和网络设备驱动程序组成。 网络设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备都有相应的设备驱动程序。

 澳门新浦京娱乐场网站 3

3.Linux的哲学思想

    1、一切皆文件

    一切皆文件是Linux(Unix)的基本哲学之一。不仅普通的文件,目录、字符设备、块设备、 套接字等在 Unix/Linux 中都是以文件被对待,可以说在linux中一切看到的都可以当做是文件。

    2.自由开源

    可以自由使用(增删改),自由学习交流,自由发行

 这意味着:

     1. 你有自由以任何目的来运行该程序。
        2. 你有修改程序满足自己需求的自由。
        3. 你有权利重新发布副件,既可以白送也可以收取一定费用。
        4.你有权利发布该程序修改过的版本,从而让其他人得益于你的改进。

    3.单一程序

    每个程序都只完成一个简单的任务,所以完成一个复杂的任务则需要多个程序组成

    4.尽量避免与用户交互

    使用脚本来完成各种自动化任务

    5.使用文本保存配置信息

    既方便读又方便修改,是一个很棒的方式。

  寄存器的维护

  操作系统必须知晓所有的寄存器。在时间多路复用的CPU中,操作系统会经常中止正在运行的某个程序并启动(或再次启动)另一个程序。每次停止一个运行着的程序时,操作系统必须保存所有的寄存器,这样在稍后该程序被再次运行时,可以把这些寄存器重新装入。

  从别处扣了一张计算机启动运行流程图:

澳门新浦京娱乐场网站 4

澳门新浦京娱乐场网站 5

澳门新浦京娱乐场网站 6

linux 文件系统

Linux系统能支持多种目前流行的文件系统,推荐用EXT4。

Linux下面的文件类型主要有:

1) 普通文件,分为纯文本和二进制。

2) 目录文件,存储文件的地方。

3) 链接文件,指向同一个文件或目录的的文件。

4) 设备文件,分为块设备和字符设备。

5)管道文件,提供进程间通信

6)套接字文件,与网络通信有关

Linux使用标准的目录结构,安装程序就已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型。

目录名 简要说明

/bin

二进制可执行命令

/dev

设备特殊文件

/etc

系统管理和配置文件

/etc/rc.d

启动的配置文件和脚本

/home

用户主目录的基点,比如用户abc的主目录就是/home/user,可以用~abc表示

/lib

标准程序设计库

/sbin

系统管理命令,这里存放的是系统管理员使用的管理程序

/tmp

公用的临时文件存储点

/root

系统管理员的主目录

/mnt

系统提供这个目录是让用户临时挂载其他的文件系统。

/lost found

这个目录平时是空的,系统非正常关机而留下“无家可归”的文件

/proc

虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。

/var

某些大文件的溢出区,比方说各种服务的日志文件

/usr

最庞大的目录,要用到的应用程序和文件几乎都在这个目录。其中包含:
/usr/X11R6 存放X window的目录
/usr/bin 众多的应用程序
/usr/sbin 超级用户的一些管理程序
/usr/doc linux文档
/usr/include linux下开发和编译应用程序所需要的头文件
/usr/lib 常用的动态链接库和软件包的配置文件
/usr/man 帮助文档
/usr/src 源代码,linux内核的源代码就放在/usr/src/linux里
/usr/local/bin 本地增加的命令
/usr/local/lib 本地增加的库

shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。shell 有很多类型,这里推荐BASH。BASH是GNU的Bourne Again Shell,是GNU操作系统上默认的shell,大部分linux的发行套件使用的都是这种shell。Linux Shell 及命令

Linux 的命令很多,下面给出了一个简单的分类。

在shell 中组织linux 的命令来完成一系列的任务,就是shell 编程了。Shell,Perl和Python 是Linux 上最常用的脚本语言,我还是推荐使用Python。

=

linux 文件系统

Linux系统能支持多种目前流行的文件系统,推荐用EXT4。
Linux下面的文件类型主要有:

  1. 澳门新浦京娱乐场网站:全栈技术员学习Linux技术的忠告,全栈必备Linux。普通文件,分为纯文本和二进制。
  2. 目录文件,存储文件的地方。
  3. 链接文件,指向同一个文件或目录的的文件。
  4. 设备文件,分为块设备和字符设备。
    5)管道文件,提供进程间通信
    6)套接字文件,与网络通信有关

Linux使用标准的目录结构,安装程序就已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型。

澳门新浦京娱乐场网站 7

Linux文件目录

学习linux内核知识的同时,我们不仅仅要了解原理,而且还要实际操作相关命令,使我们的理论得到验证,这样我们就需要两本最基础的书籍来帮助我们更好的理解和学习Linux,以初学者的角度我选择的是《红帽官方RHEL7教材》和《Linux就该这么学》这两本书,前者可以帮助我们很好地理解Linux系统到底是怎么样的一个系统,以及内核是如何工作的,后者可以在我理解相关理论知识的同时提供很好的实验教程,加深我们对Linux相关操作命令的熟悉。古人常说实践是检验真理的唯一标准,这里我想说只有通过理论知识加上实际操作的结合,才能更好的学习Linux,只要我们这样坚持过啦,过不了多久你就会发现学习Linux其实并没有那么难。

4.linux系统上,命令使用格式

    linux命令的语法通用格式为:

    command [options] [澳门新浦京娱乐场网站:全栈技术员学习Linux技术的忠告,全栈必备Linux。arguments]

    命令:提示shell程序找到键入命令所对应的可执行程序或代码,并由其分析后提交内核分配资源然后运行。简单来说就是告诉操作系统要执行什么。

    命令类型有两种:

   1. 内置命令:由shell程序自带的命令,通过某命令形式提供。

    2.外部命令:独立的可执行程序文件,当前系统的某文件系统路径下有此可执行程序文件。(使用which或whereis查看文件位置)

    注:我们可以使用type [conmmand]来查看命令类型。

    options:可选的,选项是用来调整使用或者关闭命令的某个或某些功能。也就是命令执行的方式。

    选项有两中表现形式:

   1. 短选项:例如-c,-d,-r,多个短选项是可以合并的

    2.长选项:例如--help,不能合并

    arguments:命令的作用对象,即命令生效对象,想命令提供数据,有些命令的对象可以用多个,使用空格分开

2.Linux的发行版本

    Linux发展到现在已经有几百种发行版本。Linux的内核源代码和linux的应用程序都可以自由获得,因此很多公司组织开发了属于自己的Linux发行版。目前有三大主流发行版本,分别是slackware,debain,Redhat。在主流发行版本基础之上,还有这很多常见的二次发行版本和三次发行版本(界面等更优化),比如slackware(最古老的linux版本)的二次发行版本中的suse和三次发行版本opensuse,sles(企业级发行版)。debain(更原汁原味非常遵循GNU规范的版本)的二次发行版乌班图三次发行版本mint,Redhat,rhel(企业版),fedora(桌面版,现在被fedora社区开发研究)。

    这些发行版本内核上基本没区别。不过有的内核是优化过的,比如适合平板的内核,它集成了相当多触摸屏的驱动,其它没有优化的内核要自己安装触摸屏的驱动。 每个发行版本,不光是图形终端不同。 还有安全方面,文件打包方面,还有源方面。

    注:按软件包管理系统的不同,分为Redhat的rmp包管理系统和Ubuntu的基于DPKG包管理系统。使用前者的发行版包括SLES、Fedora、openSUSE、centos、RHEL等,包文件以rpm为扩展名;使用后者的包括Ubuntu系列,Debian系列等,包文件以deb为扩展名。

 Red Hat Enterprise Linux:因为它是所有Linux/UNIX系统中最容易安装,同时也是应用最广的一种Linux操作系统。而Linux操作系统多数是用作服务器的,由于使用Linux的成本十分低廉,因此目前许多Internet服务器都是使用Linux操作系统。

 操作系统的特点:多用户(在同一时刻可以有多个用户同时使用linux操作系统而且他们互不干扰)和多任务(任何一个用户在同一时间可以在linux操作系统上运行多个程序)

Linux 应用

标准的Linux系统一般都有一套都有称为应用程序的程序集,它包括文本编辑器、编程语言、X Window、Internet工具和数据库等。

对于文本编辑而言,Emacs 和vim 各有千秋,通过插件配合甚至可以作为IDE使用。 个人感觉,VIM 还应该是必备技能。vim的命令也很多,整理如下:

就应用的管理而言,ubuntu 需熟知apt命令,centos 则是yum命令。当然了,源代码编译安装是必须的,makefile的写法,configure/autoconfig/make 的用法要手到擒来才好。

来源:知乎

链接:www.zhihu.com/question/31034164/

Linux云计算1月免费课程火热开启,5天免费**运维干货内容免费听,点击文末“阅读原文”**即可免费听运维课**速速来抢~~~~

**PS:记得查收小编送你的免费大礼包呦~**

福利 | 一万多套PPT模板等你免费来拿!无条件领取!


**免费送 | 1000多套简历模板免费拿,附赠简历制作教程!**

免费领 | 《Shell脚本 100例》电子书免费拿,运维必备干货~

▼▼点击【阅读原文】,免费听5天Linux运维干货分享课,火热开讲中,速来抢!

Linux Shell 及命令

shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。shell 有很多类型,这里推荐BASH。BASH是GNU的Bourne Again Shell,是GNU操作系统上默认的shell,大部分linux的发行套件使用的都是这种shell。

Linux 的命令很多,下面给出了一个简单的分类。

澳门新浦京娱乐场网站 8

常用命令

在shell 中组织linux 的命令来完成一系列的任务,就是shell 编程了。Shell,Perl和Python 是Linux 上最常用的脚本语言,我还是推荐使用Python。

 

5.Linux基础命令

    1.ifconfig,用来查看IP地址,MAC地址,收发包和丢包数目和错误包的个数等。

[[email protected] ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.128  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::bc24:411:5420:a7b1  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:83:57:6c  txqueuelen 1000  (Ethernet)
        RX packets 209231  bytes 192665288 (183.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 89907  bytes 13673732 (13.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 461  bytes 32970 (32.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 461  bytes 32970 (32.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    2.echo,用来回显命令

[[email protected] ~]# echo 'hello world'
hello world

    3.tty,显示当前终端的文件名  

[[email protected] ~]# tty
/dev/pts/0

    4.startx, 开启图形化界面,最小化安装时无法打开图形化界面

    5.export,设置和显示环境变量,单独使用export可以查看当前系统下的环境变量 

   export [-fnp][变量名称]=[变量设置值]

    -f  代表[变量名称]中为函数名称。 
 -n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。 
 -p  列出所有的shell赋予程序的环境变量。
在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。
 6.pwd,显示当前位置。

[[email protected] ~]# pwd
/root

    7.history,显示执行命令的历史信息,用户在登录系统时,会读取历史文件记录下的命令:~/.bash_history

 [[email protected] ~]# history 
    7  cd /opt
    8  ls
    9  su egon
   10  vim /etc/passwd
   11  vim /etc/group
   12  vim /opt/a.txt
   13  id egon
    ...
    1001  ifconfig
    1002  echo 'hello world'
    1003  tty
    1004  export
    1005  pwd
    1006  history 

  history的选项:

    -c:清除历史信息

    -n:显示最近的n行

    -a:将命令历史信息写到history_file文件中,默认会写到~/.bash_history下

    -r:读取histor_file的内容到当前的history

    -w:将目前的history内容写到history_file中

    -d:删除指定行的命令历史

    !编号:再次执行某一行的命令

    !!:执行上一条命令

    8.shutdown,关机命令

    -c:将shutdown的命令取消,取消关机

    -H:停止设备

    -P:关闭电源

    -r:重启设备

    -h:将系统关机

    -k:只送出信息,但是不关机

    --no-wall:关机但是不送出任何信息

    注:poweroff(关闭电源),reboot(重启系统)

    9.hwclock,clock,显示或设定硬件时间

    -s, --hctosys:以硬件为准,把系统调整为与硬件时间相同;     -w, --systohc:以系统为准,把硬件时间调整为与系统时钟相同;     10.date,显示或者设定当前时间。     date [OPTION] [ FORMAT]  Format是时间显示格式设定。     查看时间

[[email protected] ~]# date
Thu Jul 13 12:53:16 EDT 2017

    设定时间:date 月日时分年。

[[email protected] ~]# date 071400562017.30
Fri Jul 14 00:56:30 EDT 2017

  11.whoami

  列出目前登陆Linux系统所使用的用户名

[[email protected] ~]# whoami
root

  12.who

  列出目前哪些用户在系统上工作。who命令的输出结果:显示当前登录的所有用户,以及当前的日期和时间。

[[email protected] ~]# who
root     tty1         2017-06-04 02:29
root     pts/0        2017-08-28 02:05 (192.168.0.1)
root     pts/1        2017-08-28 02:21 (192.168.0.1)
root     pts/2        2017-09-01 03:15 (192.168.0.1)

  13.cal

  显示某月的日历。

[[email protected] ~]# cal
   September 2017   
Su Mo Tu We Th Fr Sa
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

  如果具体要查看某一年的某个月可以使用命令为:cal 月 年

[[email protected] ~]# cal 8 2017
     August 2017    
Su Mo Tu We Th Fr Sa
       1  2  3  4  5
 6  7  8  9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

  14.clear

  快速清屏或者使用Ctrl l

  15.su

  从当前的用户切换到另一个指定的其他用户。

[[email protected] ~]# su - jeff
Last login: Sun May 21 03:53:19 EDT 2017 on pts/0
[[email protected] ~]$ su - root
Password: 
Last login: Fri Sep  1 03:25:59 EDT 2017 on pts/2

3.Linux的哲学思想

    1、一切皆文件

    一切皆文件是Linux(Unix)的基本哲学之一。不仅普通的文件,目录、字符设备、块设备、 套接字等在 Unix/Linux 中都是以文件被对待,可以说在linux中一切看到的都可以当做是文件。

    2.自由开源

    可以自由使用(增删改),自由学习交流,自由发行

 这意味着:

     1. 你有自由以任何目的来运行该程序。
        2. 你有修改程序满足自己需求的自由。
        3. 你有权利重新发布副件,既可以白送也可以收取一定费用。
        4.你有权利发布该程序修改过的版本,从而让其他人得益于你的改进。

    3.单一程序

    每个程序都只完成一个简单的任务,所以完成一个复杂的任务则需要多个程序组成

    4.尽量避免与用户交互

    使用脚本来完成各种自动化任务

    5.使用文本保存配置信息

    既方便读又方便修改,是一个很棒的方式。

Linux 应用

标准的Linux系统一般都有一套都有称为应用程序的程序集,它包括文本编辑器、编程语言、X Window、Internet工具和数据库等。

对于文本编辑而言,Emacs 和vim 各有千秋,通过插件配合甚至可以作为IDE使用。 个人感觉,VIM 还应该是必备技能。vim的命令也很多,整理如下:

澳门新浦京娱乐场网站 9

vi命令集

就应用的管理而言,ubantu 需熟知apt命令,centos 则是yum命令。当然了,源代码编译安装是必须的,makefile的写法,configure/autoconfig/make 的用法要手到擒来才好。

2如何选择Linux发行版?

6.命令帮助

    在linux中获取命令帮助的方式有:

    1.help command,一般内部命令可以使用help加命令可以获取命令帮助

    2.command --help,外部命令可以使用长选项--help来获取帮助

    3.info conmmand,获取命令的在线文档

    4.man[options][arguments],通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。

    -a:在所有的man帮助手册中搜索;

    -f:等价于whatis指令,显示给定关键字的简短描述信息;

    -P:指定内容时使用分页程序;

    -M:指定man手册搜索的路径。
    对于man的参数:数字指定从哪本man手册中搜索帮助(一般在man1到man8中); 关键字指定要搜索帮助的关键字。
    man的一般组成部分:

    (1)NAME:功能性说明

    (2)SYNOPSIS:语法格式

    (3)DESCRIPTION:描述信息

    (4)OPTION:选项

    (5)EXAMPLES:使用示例

    (6)AUTHOR:作者

    (7)BUGS:报告程序bug的方式

    (8)SEE ALSO:参考

4.linux系统上,命令使用格式

    linux命令的语法通用格式为:

    command [options] [arguments]

    命令:提示shell程序找到键入命令所对应的可执行程序或代码,并由其分析后提交内核分配资源然后运行。简单来说就是告诉操作系统要执行什么。

    命令类型有两种:

   1. 内置命令:由shell程序自带的命令,通过某命令形式提供。

    2.外部命令:独立的可执行程序文件,当前系统的某文件系统路径下有此可执行程序文件。(使用which或whereis查看文件位置)

    注:我们可以使用type [conmmand]来查看命令类型。

    options:可选的,选项是用来调整使用或者关闭命令的某个或某些功能。也就是命令执行的方式。

    选项有两中表现形式:

   1. 短选项:例如-c,-d,-r,多个短选项是可以合并的

    2.长选项:例如--help,不能合并

    arguments:命令的作用对象,即命令生效对象,想命令提供数据,有些命令的对象可以用多个,使用空格分开

Linux发行版可以分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发型版本,前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。

7.基础目录的命令法则和功用规定

    linux文件命名法则:

    1.文件名严格区分大小写

    2.文件可以使用除/以外任意字符

    3.文件名长度不能超过255字符

    4.以.开头的文件为隐藏文件

在各种版本的linux发行版中,文件系统必要遵循FHS(Filesystem Hierarchy Standard,文件系统结构标准),它定义了一个发行版所必须有的文件目录和可选的文件目录

    linux发行版的命名法则及功用规定

     /bin:所有用户可用的基本命令程序文件(常用的可执行文件);

     /sbin:供系统管理使用的工具程序(系统的可执行文件);

     /boot:引导加载器必须用到的各静态文件:kernel,initramfs(initrd),grub等;

     /dev:存储特殊文件或设备文件:设备有两种类型:字符设备、块设备;

     /etc:系统程序的配置文件,只能为静态;

     /home:普通的家目录的集中位置,一般每个普通用户的家目录默认为此目录下与用户名同名的子目录:/home/jeff,家目录用来存放用户自己的文件或目录,root的家目录是/root;

     /lib:为系统启动或跟文件系统上的应用程序(/bin,/sbin等)提供共享库,以及为内核提供内核模块等;

     /lib64:64位系统特有的存放64位共享库的路径;

     /media:便携式设备挂载点:cdrom,floppy等;

     /mnt:其它文件系统的临时挂载点,通常可移除式硬件会被挂载在/media或/mnt目录之下;

     /opt:附加应用程序的安装位置;可选路径;

     /tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所用户执行写入操作;有特殊权限;

     /usr:usr Hierarchy:全局共享的只读数据路径;

  绝对路径:必须以一个正斜线(/)开始。绝对路径包括从文件系统的根节点开始到要查找的对象(目录或文件)所必须遍历的每一个目录的名字,它是文件位置的完整路标,因此在任何情况下都可以使用绝对路径找到所需的文件。

  相对路径:不是以正斜线(/)开始,相对路径可以包含从当前目到要查找的对象(目录或文件)所必须遍历的每一个目录的名字。

1.描述计算机组成及其功能 在学习Linux操作系统之前,首先我们要对计算机硬件进行简单的了解,随着计算机硬件的快速发展,...

5.Linux基础命令

    1.ifconfig,用来查看IP地址,MAC地址,收发包和丢包数目和错误包的个数等。

[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.128  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::bc24:411:5420:a7b1  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:83:57:6c  txqueuelen 1000  (Ethernet)
        RX packets 209231  bytes 192665288 (183.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 89907  bytes 13673732 (13.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 461  bytes 32970 (32.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 461  bytes 32970 (32.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    2.echo,用来回显命令

[root@localhost ~]# echo 'hello world'
hello world

    3.tty,显示当前终端的文件名  

[root@localhost ~]# tty
/dev/pts/0

    4.startx, 开启图形化界面,最小化安装时无法打开图形化界面

    5.export,设置和显示环境变量,单独使用export可以查看当前系统下的环境变量 

   export [-fnp][变量名称]=[变量设置值]

    -f  代表[变量名称]中为函数名称。 
 -n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。 
 -p  列出所有的shell赋予程序的环境变量。
在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。
 6.pwd,显示当前位置。

[root@localhost ~]# pwd
/root

    7.history,显示执行命令的历史信息,用户在登录系统时,会读取历史文件记录下的命令:~/.bash_history

 [root@localhost ~]# history 
    7  cd /opt
    8  ls
    9  su egon
   10  vim /etc/passwd
   11  vim /etc/group
   12  vim /opt/a.txt
   13  id egon
    ...
    1001  ifconfig
    1002  echo 'hello world'
    1003  tty
    1004  export
    1005  pwd
    1006  history 

  history的选项:

    -c:清除历史信息

    -n:显示最近的n行

    -a:将命令历史信息写到history_file文件中,默认会写到~/.bash_history下

    -r:读取histor_file的内容到当前的history

    -w:将目前的history内容写到history_file中

    -d:删除指定行的命令历史

    !编号:再次执行某一行的命令

    !!:执行上一条命令

    8.shutdown,关机命令

    -c:将shutdown的命令取消,取消关机

    -H:停止设备

    -P:关闭电源

    -r:重启设备

    -h:将系统关机

    -k:只送出信息,但是不关机

    --no-wall:关机但是不送出任何信息

    注:poweroff(关闭电源),reboot(重启系统)

    9.hwclock,clock,显示或设定硬件时间

    -s, --hctosys:以硬件为准,把系统调整为与硬件时间相同;

    -w, --systohc:以系统为准,把硬件时间调整为与系统时钟相同;

    10.date,显示或者设定当前时间。

    date [OPTION] [ FORMAT]  Format是时间显示格式设定。

    查看时间

[root@localhost ~]# date
Thu Jul 13 12:53:16 EDT 2017

澳门新浦京娱乐场网站,    设定时间:date 月日时分年。

[root@localhost ~]# date 071400562017.30
Fri Jul 14 00:56:30 EDT 2017

  11.whoami

  列出目前登陆Linux系统所使用的用户名

[root@localhost ~]# whoami
root

  12.who

  列出目前哪些用户在系统上工作。who命令的输出结果:显示当前登录的所有用户,以及当前的日期和时间。

[root@localhost ~]# who
root     tty1         2017-06-04 02:29
root     pts/0        2017-08-28 02:05 (192.168.0.1)
root     pts/1        2017-08-28 02:21 (192.168.0.1)
root     pts/2        2017-09-01 03:15 (192.168.0.1)

  13.cal

  显示某月的日历。

[root@localhost ~]# cal
   September 2017   
Su Mo Tu We Th Fr Sa
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

  如果具体要查看某一年的某个月可以使用命令为:cal 月 年

[root@localhost ~]# cal 8 2017
     August 2017    
Su Mo Tu We Th Fr Sa
       1  2  3  4  5
 6  7  8  9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

  14.clear

  快速清屏或者使用Ctrl l

  15.su

  从当前的用户切换到另一个指定的其他用户。

[root@localhost ~]# su - jeff
Last login: Sun May 21 03:53:19 EDT 2017 on pts/0
[jeff@localhost ~]$ su - root
Password: 
Last login: Fri Sep  1 03:25:59 EDT 2017 on pts/2

Redhat称之为红帽系列,包括RHEL,Fedora,CentOS(国内常用,RHEL社区克隆版本,免费)。Ubuntu严格来说不能算一个独立的发型版本,Ubuntu是基于Debian加强而来,一个拥有Debian所有的优点,以及自己所加强的优点,近乎完美的Linux桌面系统,Ubuntu社区认为实用性和创新高于一切。

6.命令帮助

    在linux中获取命令帮助的方式有:

    1.help command,一般内部命令可以使用help加命令可以获取命令帮助

    2.command --help,外部命令可以使用长选项--help来获取帮助

    3.info conmmand,获取命令的在线文档

    4.man[options][arguments],通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。

    -a:在所有的man帮助手册中搜索;

    -f:等价于whatis指令,显示给定关键字的简短描述信息;

    -P:指定内容时使用分页程序;

    -M:指定man手册搜索的路径。
    对于man的参数:数字指定从哪本man手册中搜索帮助(一般在man1到man8中); 关键字指定要搜索帮助的关键字。
    man的一般组成部分:

    (1)NAME:功能性说明

    (2)SYNOPSIS:语法格式

    (3)DESCRIPTION:描述信息

    (4)OPTION:选项

    (5)EXAMPLES:使用示例

    (6)AUTHOR:作者

    (7)BUGS:报告程序bug的方式

    (8)SEE ALSO:参考

作为生产服务器,建议选择CentOS,使用CentOS的国内用户较多,安全性较高,出现问题能解决的途径较多,其社区比较活跃,Linux最常见的命令可以参考:

7.基础目录的命令法则和功用规定

    linux文件命名法则:

    1.文件名严格区分大小写

    2.文件可以使用除/以外任意字符

    3.文件名长度不能超过255字符

    4.以.开头的文件为隐藏文件

在各种版本的linux发行版中,文件系统必要遵循FHS(Filesystem Hierarchy Standard,文件系统结构标准),它定义了一个发行版所必须有的文件目录和可选的文件目录

    linux发行版的命名法则及功用规定

     /bin:所有用户可用的基本命令程序文件(常用的可执行文件);

     /sbin:供系统管理使用的工具程序(系统的可执行文件);

     /boot:引导加载器必须用到的各静态文件:kernel,initramfs(initrd),grub等;

     /dev:存储特殊文件或设备文件:设备有两种类型:字符设备、块设备;

     /etc:系统程序的配置文件,只能为静态;

     /home:普通的家目录的集中位置,一般每个普通用户的家目录默认为此目录下与用户名同名的子目录:/home/jeff,家目录用来存放用户自己的文件或目录,root的家目录是/root;

     /lib:为系统启动或跟文件系统上的应用程序(/bin,/sbin等)提供共享库,以及为内核提供内核模块等;

     /lib64:64位系统特有的存放64位共享库的路径;

     /media:便携式设备挂载点:cdrom,floppy等;

     /mnt:其它文件系统的临时挂载点,通常可移除式硬件会被挂载在/media或/mnt目录之下;

     /opt:附加应用程序的安装位置;可选路径;

     /tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所用户执行写入操作;有特殊权限;

     /usr:usr Hierarchy:全局共享的只读数据路径;

  绝对路径:必须以一个正斜线(/)开始。绝对路径包括从文件系统的根节点开始到要查找的对象(目录或文件)所必须遍历的每一个目录的名字,它是文件位置的完整路标,因此在任何情况下都可以使用绝对路径找到所需的文件。

  相对路径:不是以正斜线(/)开始,相对路径可以包含从当前目到要查找的对象(目录或文件)所必须遍历的每一个目录的名字。

 

3充分了解Linux文件系统

Linux最新的发行版默认都采用ext4格式作为默认文件系统,Linux上面的文件类型主要包含下面几类:

1、 普通文件:分为纯文本和二进制

2、 目录文件:存储文件地方

3、 链接文件:指向同一个文件或目录的文件

4、 分为块设备和字符设备

5、 管道文件:提供进程间通信

6、 套接字文件:与网络通信有关

7、  

Linux使用标准的目录结构,安装程序的同时已经创建了文件系统和完整的目录组成形式,并指定了每个目录的作用和其中的文件类型。

目录名简要说明:

/bin 二进制可执行命令

/dev、 设备特殊文件

/etc、 系统管理和配置文件

/etc/rc.d 启动配置文件和脚本

/home 用户主目录

/bin 标准程序设计库

/sbin 系统管理命令,存放的是系统管理员使用的命令或程序

/tmp 公用的临时文件存储路径

/root 系统管理员主目录

/mnt 系统提供这个目录让用户挂载其他的文件系统

/lost found 这个目录默认是空的,当系统非正常关机的时候这个目录下会保留一些文件

/proc 虚拟目录,是系统内存的映射,可以通过直接访问这个目录来获取系统的相关信息

/var 特定大文件的溢出区,一般常用来存放各种服务的日志文件

/usr Linux系统最主要的目录,因为Linux的绝大多数服务和文件都存放在这个目录下

 

从事IT行业的人员,无论是研发,前端,测试,还是运维都需要了解Linux的基础知识,前三者可能只需要大概了解Linux简单知识点及简单操作,运维需要学习更多的Linux知识,而要想成为一名合格的全栈工程师,需要你敲到一手好代码的同时,还需要更多的Linux知识,这样才能常用在技术的海洋里。自从接触Linux的那一天起,我便知道此生有很多事可以去做,我希望通过Linux实现一个小目标,挣一套房子的钱。路漫漫其修远兮,吾将上下而求索。

澳门新浦京娱乐场网站 10

本文由澳门新浦京娱乐场网站发布于服务器,转载请注明出处:澳门新浦京娱乐场网站:全栈技术员学习Linux技术