Linux教程

Linux概述+面试

本文主要是介绍Linux概述+面试,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • 1.Linux概述
      • 1.由来
      • 2.是什么?
      • 3.Unix和Linux有什么区别?
      • 4.什么是Linux内核?
      • 5.特点
      • 6.用途
  • 2.linux目录结构
  • 3.linux常用命令
  • 4.虚拟软件网络模式
      • 1.NAT网络模式
      • 2.桥接网络模式
      • 3.仅主机模式
  • 5.软件安装
  • 6.vim编辑器
      • vim和vi

1.Linux概述

1.由来

Linux内核最初只是由芬兰人林纳斯·托瓦兹在赫尔辛基大学上学时出于个人爱好而编写的。

2.是什么?

Linux是一套免费使用和自由传播的类Unix操作系统,是一个多用户、多任务、支持多线程和多CPU的操作系统。

Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承来Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux的发行版说简单点就是将Linux内核与应用软件做一个打包。

概述

目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。

3.Unix和Linux有什么区别?

Linux和Unix都是功能强大的操作系统,都是应用广泛的服务器操作系统,有很多相似之处。

  • 开源性

    Linux是一款开源操作系统,免费的;Unix是一款对源码实行知识产权保护的传统商业软件,使用需要付费授权使用。

  • 跨平台性

    Linux操作系统具有良好的跨平台性能,可运行在多种硬件平台上;Unix操作系统跨平台性能较弱,大多需要与硬件配套使用。

  • 可视化界面

    Linux除了进行命令行操作,还有窗体管理系统;Unix只是命令行下的系统。

  • 硬件环境

    Linux操作系统对硬件的要求较低,安装方法更易掌握;Unix对硬件要求比较苛刻,安装难度较大。

  • 用户群体

    Linux的用户群体很广泛,个人和企业均可使用;Unix的用户群体比较窄,多是安全性要求高的大型企业使用,如银行、电信部门等,或者Unix硬件厂商使用,如Sun等。
    相比于Unix操作系统,Linux操作系统更受广大计算机爱好者的喜爱,主要原因是Linux操作系统具有Unix操作系统的全部功能,并且能够在普通PC计算机上实现全部的Unix特性,开源免费的特性,更容易普及使用。

4.什么是Linux内核?

Linux系统的核心是内核。内核控制着计算机系统上的所有硬件和软件,在必要时分配硬件,并根据需要执行软件。

  • 系统内存管理
  • 应用程序管理
  • 硬件设备管理
  • 文件系统管理

5.特点

  • 免费的/开源/稳定
  • 支持多线程/多用户/处理高并发
  • 安全性好
  • 对内存和文件管理优越

6.用途

  • Linux运维工程师
  • Linux嵌入式开发工程师
  • Linux环境下部署项目

2.linux目录结构

目录结构

  • /bin

    bin是binary的缩写。这个目录沿袭了Unix系统的结构,存放着使用者最经常使用的命令。例如cp、ls、cat,等等。

  • /boot

    这里存放的是启动Linux时使用的一些核心文件。

  • /dev

    dev是device(设备)的缩写。这个目录下是所有Linux的外部设备,其功能类似DOS下的.sys和Win下的.vxd。在Linux中设备和文件是用同种方法访问的。例如:/dev/hda代表第一个物理IDE硬盘。

  • /etc

    这个目录用来存放系统管理所需要的配置文件和子目录。

  • /home

    存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示

  • /lib

    这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的.dll文件。几乎所有的应用程序都须要用到这些共享库。

  • /lost+found

    这个目录平时是空的,当系统不正常关机后,这里就成了一些无家可归的文件的避难所。

  • /mnt

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

  • /proc

    这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存里。

  • /root

    系统管理员的主目录。作为系统的拥有者具有的特权。

  • /sbin

    存放的是系统管理员使用的管理程序。

  • /tmp

    存放临时文件的地方。

  • /var

    这个目录中存放者那些不断在扩充的东西,为了保持/usr的相对稳定,那些经常被修改的目录可以放在这个目录下,实际上许多系统管理员都是这样干的。系统的日志文件就在/var/log目录中。

  • /usr

    这是最庞大的目录,我们要用到的应用程序和文件几乎都存放在这个目录下。

3.linux常用命令

  • 系统信息

    1. date命令

      -d<字符串>  显示字符串所指的日期与时间。字符串前后必须加上双引号。
      -s<字符串>  根据字符串来设置日期与时间。字符串前后必须加上双引号。
      -u  显示GMT。
      %H 小时(00-23)
      %I 小时(00-12)
      %M 分钟(以00-59来表示)
      %s 总秒数。起算时间为1970-01-01 00:00:00 UTC。
      %S 秒(以本地的惯用法来表示)
      %a 星期的缩写。
      %A 星期的完整名称。
      %d 日期(以01-31来表示)。
      %D 日期(含年月日)。
      %m 月份(以01-12来表示)。
      %y 年份(以00-99来表示)。
      %Y 年份(以四位数来表示)。
      

      实例:

      (1)显示下一天

      date +%Y%m%d --date="+1 day"  //显示下一天的日期
      

      (2)-d参数使用

      date -d "nov 22"  今年的 11 月 22 日是星期一 Mon Nov 22 00:00:00 CST 2021
      date -d '2 weeks' 2周后的日期 Thu Jul 29 20:23:50 CST 2021
      date -d 'next monday' (下周一的日期)
      date -d next-day +%Y%m%d(明天的日期)或者:date -d tomorrow +%Y%m%d
      date -d last-day +%Y%m%d(昨天的日期) 或者:date -d yesterday +%Y%m%d
      date -d last-month +%Y%m(上个月是几月)
      date -d next-month +%Y%m(下个月是几月)
      

    显示系统日期

    cal
    

    显示当前月份日历

    cal 2018
    

    显示2018年日历

  • 关机(系统的关机、重启以及登出)

    shutdown -h now 关闭系统
    shutdown -r now 重启
    reboot 重启
    logout 注销
    
  • Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

    在Linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属的用户和组,如:

    [root@www /]# ls -l
    total 64 
    dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin
    dr-xr-xr-x 4 root root 4096 Apr 19 2012 boot……
    

    实例中,bin文件的第一个属性用”d“表示。”d“在Linux中代表该文件是一个目录文件。

    在Linux中第一个字符表示这个文件是目录、文件或链接文件等等。

    当为[d]则是目录

    当为[-]则是文件

    当为[l]则是链接文档

    当为[b]则是装置文件里面的可供储存的接口设备

    当为[c]则是装置文件里面的串行端口设备,例如键盘、鼠标。

    接下来的字符中,以三个为一组,且均为[rwx]的三个参数的组合。其中,[r]代表可读、[w]代表可写、[x]代表可执行。要注意,这三个权限的位置不会改变,如果没有权限,就会出现减号[-]而已。每个文件的属性由左边第一部分的10个字符来确定。

    权限

  • 文件和目录

    ls / 查看根目录下的文件
    ls 查看目录中的文件
    ls -F 查看目录中的文件
    ls -l 显示文件和目录的详细资料
    ls -a 显示隐藏文件
    
    cd / 进入到根目录
    cd /home 进入‘/home’目录
    cd 名称 进入其他子目录
    cd .. 返回上一级目录
    cd 进入个人的主目录
    pwd 显示当前所在的目录。
    
    mkdir dir1 创建一个叫做‘dir1’的目录
    mkdir dir1 dir2 同时创建两个目录
    rm -f file1 删除一个叫做‘file1’的文件
    rmdir dir1 删除一个叫做‘dir1’的目录(删除空文件夹)
    rm -rf dir1 删除一个叫做‘dir1’的目录并同时删除其内容
    mv dir1 new_dir 重命名 mv dir1 /usr/local/xxx 把dir移动到/user/local/xxx
    cp 文件名 /目标地址 复制文件
    touch file 创建文件
    
    搜索文件命令
    find / -name mysql
    查看进行详细信息
    ss -ef|grep 程序名
    

4.虚拟软件网络模式

1.NAT网络模式

  • **特点:**虚拟主机和宿主网络信息可以不一致
  • **优点:**不容易出现局域网中IP地址冲突
  • **缺点:**其他宿主机不能直接访问虚拟主机

2.桥接网络模式

  • **特点:**虚拟主机和宿主网络信息是一致的
  • **优点:**容易出现局域网中IP地址冲突
  • **缺点:**其他宿主机能直接访问虚拟主机

3.仅主机模式

  • **特点:**虚拟主机网络只能和宿主机或其他虚拟主机建立通讯
  • **优点:**更安全
  • **缺点:**不能连接外网

5.软件安装

yum是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。

基于 RPM( Red-Hat Package Manager)包管理,能够从指定的服务器自动下载 RPM 包并且装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

语法:

查看已经安装的软件
yum list |grep 程序名
查看可以安装的软件
yum list 程序名 
yum [options] [command] [package ...] 
options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"), -q(不显示安装的过程)等等。 
command:要进行的操作 。 Install(安装), update (更新), info (查看信 息),remove (删除), clean (清除缓存) 
package :操作的对象。

6.vim编辑器

在线安装vim编辑器
yum -y install vim

**作用:**vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。

vim和vi

vim是从vi发展出来的一个文本编辑器。代码补完、编辑及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。

基本上vi/vim共分为三种模式,分别是命令模式输入模式底线模式

  1. 命令模式

    用户刚刚启动 vi/vim,便进入了命令模式。

    此状态下敲击键盘动作会被 Vim 识别为命令,而非输入字符。比如我们此时按下 i,并不会输入一个字符,i 被当作了一个命令。

    以下是常用的命令:

    i 切换到输入模式,以输入字符。

  2. 输入模式

    若想要编辑文本:启动 Vim,进入了命令模式,按下 i,切换到输入模式。

    在命令模式下按下 i 就进入了输入模式。

    在输入模式中,可以使用以下按键:

    字符按键以及 Shift 组合,输入字符

    ENTER,回车键,换行

    BACK SPACE,退格键,删除光标前一个字符

    DEL,删除键,删除光标后一个字符

    方向键,在文本中移动光标

    ESC,退出输入模式,切换到命令模式

  3. 底线模式

    i, I

    进入输入模式(Insert mode):

    i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』。 (常用)

    :w

    将编辑的数据写入硬盘档案中(常用)

    :w!

    若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入,还是跟你对该档案的档案权限有关啊!

    :q

    离开 vi (常用)

    :q!

    若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。

    注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~

    :wq

    储存后离开,若为 :wq! 则为强制储存后离开 (常用)

    ZZ

    这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开!

    [Esc]

    退出编辑模式,回到一般模式中(常用)

    :1

    回到第一行

这篇关于Linux概述+面试的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!