Linux教程

Linux基础学习(一)

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

Linux是什么该如何学习

Linux是什么

Linux就是一个操作系统,就是内核与系统调用接口那两层,但是应用程序不算Linux

苹果在硬件架构上发展了自家的操作系统(Mac OS

Windows则是基于x86架构的操作系统之一

Linux是开源(Open source)的操作系统,所以它的程序代码可以修改成适合在各种硬件架构上能运行,也就是说Linux是具有 可移植性的这是一个很重要的功能

Linux之前Unix的历史

Thompson的Unix文件系统两个概念

  • 所有程序或系统设备都是文件
  • 不管程序本身还是附属文件,所写程序只有一个目的就是要有效的完成目 标

Linux内核版本

可以使用命令 uname -r来检测内核版本

image-20210108201927961

主机规划与磁盘分区

Linux与硬件的搭配

Linux对于计算机各组件的或设备的识别与大家常用的Windows系统不一样。因为各个组件或设备在Linux下面就是一个文件

选择与Linux搭配的主机设备

较早期的硬件设备也可能由于保护的问题或者电子元件老化的问题导致这样的计算机系统反而非常容易在运行的时候发生宕机现象

事实上在Linux服务器中,内存的重要性比CPU还要高很多,因为如果内存不够大,就会使用到硬盘的内存交换分区,我们知道硬盘比内存的速度要慢很多,所以内存大小可能会影响到整体系统的性能。

各硬件在Linux中的文件名

在Linux中每个设备都被当做一个文件来对待

在Linux这个系统中,几乎所有的硬件设备文件都在 /dev 这个目录中,所以你会看到/dev/sad 、/dev/sr0 等的文件名

常见设备在Linux中的文件名

image-20210109115411885

备注:

  1. SCSI是小型计算机系统接口的简称(Small Computer System Interface)一种用于计算机和智能设备之间(硬盘、软驱、光驱、打印机、扫描仪等,系统级接口的独立处理器标准。 SCSI是一种智能的通用接口标准
  2. IDE接口(Integrated Drive Electronics)是电子集成驱动器,是把“硬盘控制器”与“盘体”集成在一起的硬盘驱动器。就是那种跳针做主,备切换的,当前已经越来越少用了。
  3. 每个硬盘磁盘驱动器的磁盘分区不同时,其磁盘文件名还会改变。

磁盘分区

磁盘连接方式与设备文件名的关系

正常的物理机器大概使用的都是 / dev / sd[a ~ p] 的文件磁盘名,至于虚拟环境中,为了加速,可能就会使用 / dev / vd [a ~ p]这种设备文件名。

MBR主要分区、扩展分区与逻辑分区的特性做一个简单地定义

  • 主要分区与扩展分区主要有四个(硬盘的限制)
  • 扩展分区最多只能有一个(操作系统的限制)
  • 逻辑分区是由扩展分区持续划分出来的分区
  • 能够被格式化后作为数据存取的分区是主要分区与逻辑分区,扩展分区无法格式化
  • 逻辑分区的数量依操作系统而不同,在Linux系统中SATA硬盘已经可以突破63个以上的分区限制,

首次登陆与在线求助

所谓图形环境就是:【命令行界面上加 X Window 软件】的组合

基础命令的操作

  • 显示时间与如期的命令: date

    image-20210110151343782

  • 显示日历的命令: cal

    image-20210110151243267

    image-20210110151311265

    image-20210110151932089

  • 简单好用的计算器: bc

image-20210110152035082

bc 默认只输出整数,如果要输出小数点下位数,那么就必须执行 scale = number 命令,那么 number就是小数点后位数

image-20210110152446407

重要的几个热键【tab】、【Ctrl】- c、【Ctrl】-d

  • 【tab】按键 :具有命令补全和文件补齐的功能
  • 【Ctrl】-c: 中断目前程序的键
  • 【Ctrl】-d: 可直接离开命令行模式(exit)

terminal意思为终端

错误信息的查看

【command not found】可能的原因

  • 这个,命令不存在因为该软件没有安装之故
  • 这个命令所在的目录目前的用户没有将它加入查找路径
  • 很简单,因为打错字

命令的----help求助说明

image-20210112102559203

man page

进入map命令的功能后,可以按下空格键往下翻页 可以按下【q】键离开

map命令中【DATE(1)】的命令中 1 代表什么: 一般用户可以使用的命令在其后面的数字是有意义的

  • 【1】:用户在shell中可执行的命令或可执行的文件
  • 【2】:系统内核可调用的函数与工具
  • 【3】:一些常用的函数(function)与函数库(library),大部分c的函数库(libc)
  • 【4】:设备文件的说明,通常在/dev 下的文件
  • 【5】:配置文件或某些文件的格式
  • 【6】:游戏(games)
  • 【7】:惯例与协议等,例如Linux文件系统、网络协议、ASCII代码等说明
  • 【8】:系统管理员可用的管理命令
  • 【9】:跟内核有关的文件

使用 【-f】这个选项可以取得更多与man相关的信息

image-20210112105300530

info page

into page 是将文件数据拆成一个一个的段落,每个段落用自己的页面来写,并且各个页面中还有类似网页的超链接来跳到不同的页面,每个独立的页面也被称为一个节点。

info page只是Linux上面的产物

其他有用的文件(documents)

/usr/share/doc/ 说明文件的目录,这个目录下的数据主要是以软件包(packages)为主

总结上面三个东西

  • 在命令行模式中,如果你知道某个命令,但却忘记了相关参数与选项,请先使用 --help的功能来查询相关信息
  • 当有任何你不知道的命令或文件格式这种玩意,但是你想了解它,请赶快使用man 或 info 来查询
  • 如果你想要架设一些其他的服务或想要利用一整组软件来完成某项功能时请赶快到 /usr / share / doc /
  • 另外再次强调,Linux毕竟是外国人发明的,所以中文文档确实比较少但是不要害怕,那本英文字典在旁边,随时查看,不要害怕英文

超简单的文本编译器:nano

Linux系统中有非常多的文本编译器,其中最重要的就是vim这家伙

在这里先介绍一下简单的nano文本编译器

nano编译器的使用其实很简单,可以直接加上文件名就可以打开一个旧文件或是一个新文件

下面我们以打开text.txt文件为例

image-20210113120249973

可以使用【CTRL】-G键获取更多的帮助

正确关机的方法

在Linux下面,由于每个程序(或是服务)都是在后台运行因此在你看不到的屏幕背后可能有相当多的人在你的主机上面工作,例如浏览网页、发送邮件、以及FTP传输文件等,如果你直接按下电源开关来关机时,则其他人的数据可能就此中断

最大问题是若不正常关机会造成文件的损坏

  • 要看目前谁在线可以执行命令 : who

  • 要看网络的联机状态: netsta -a

  • 要看后台执行的程序 : **ps -aux **

  • 通知在线用户关机 可以使用 shutdown 的特别命令来达到此功能

    image-20210113125702541

    • 正确关机的命令使用: shutdown 和 reboot
    • 将数据同步写入硬盘中的命令: sync
    • 常用的关机命令 : shutdown
    • 重新启动, 关机: reboot half poweroff

常用的关机命令 : shutdown(关机只有root有权利)

  • 可以自由选择关机模式:是要关机还是重启均可
  • 可以设置关机时间:可以设置成现在立刻关机,也可设置为某一特定的时间才关机
  • 可以自定义关机信息:在关机钱可以将自己的设置信息发给在线用
  • 可以仅发出警告信息:有时有可能你要进行一些测试,而不像让其他用户干扰,或是明白的告诉用户某短时间要注意一下,这个时候可以使用shutdown吓一吓,但却不是的关机

重新启动、关机: rerboot halt poweroffv,.'吗

这三个调用的函数库差不多所以要使用manboot时,会同时出现三个命令的用法给你看

目录与文件的权限意义

  • 权限对文件的重要性

    • r (read):可读取文件的实际内容,如读取文件的文字内容
    • w(write):可以编辑、新增或是修改文件内容(但不删除文件内容)
    • x(eXecute):改文件具有可被系统执行的权限

    注:在Linux下面,我们的文件是否被执行,则是借由是否有【x】这个权限来决定的,跟文件名是没有绝对关系的,对于文件的rwx而言,主要是针对文件的内容而言,与文件名的存在与否没有关系,因为文件记录的是实际的数据嘛

  • 权限对目录的重要性(目录主要的内容在记录文件名列表,文件名与目录具有强烈的关联)

    • 建立新的文件与目录
    • 删除已存在的文件与目录(不论文件的权限是什么)
    • 将已存在的文件或目录进行更名
    • 移动该目录内的文件、目录位置

    如果在目录下不具有 x 权限,那么你将无法切换到该目录下也就无法执行该目录下的任何命令,即使你具有该目录的r 或 w 的权限

    注意 要开放目录给任何人浏览时,应该至少要给予 r 及 x 的权限,但是 w 权限不能随便给

mkdir             mke2fs            mkfontscale       mkfs.cramfs       mkfs.ext4         mkfs.msdos        mkhomedir_helper  mkisofs           mknod             mktemp            
[root@localhost tmp]# mkdir testing
[root@localhost tmp]# chomd 744 testing
bash: chomd: 未找到命令...
相似命令是: 'chmod'
[root@localhost tmp]# chmod 744 testing
[root@localhost tmp]# touch testing/testing
[root@localhost tmp]# chm
chmem  chmod  
[root@localhost tmp]# chmod 600 testing/testing 
[root@localhost tmp]# ls -ald testing testing/testing
drwxr--r--. 2 root root 21 1月  23 11:26 testing
-rw-------. 1 root root  0 1月  23 11:26 testing/testing
[root@localhost tmp]# 

Linux文件种类 与扩展名

文件种类

  • 常规文件:就是一般我们在进行读写的类型文件,在有ls -al所显示出来的属性方面第一个字符为【-】,另外依照文件内容,有大概可分为:
    • 纯文本文件(ASCII) :cat 是将一个文件内容读取出来的命令
    • 二进制文件(binary)
    • 数据文件(data) :那些特定格式的文件被称为数据文件,Linux在用户登陆时,都会将登录数据记录在 **/var/log/wtmp **这个文件内,他能够通过 last这个命令读出来,但是使用cat 读取时 会出现乱码
  • 目录
  • 连接文件
  • 设备与设备文件
    • 区块设备文件
    • 字符设备文件
  • 数据接口文件
  • 数据输送文件

Linux文件扩展名

一个Linux文件能不能被执行,与他的第一栏的十个属性有关,与文件名真的一点关系都没有这个观念跟Windows的情况不相同。在Windows中,能被执行的文件的扩展名通常是.com , .exe , .bat等,而在Linux下面,只要你的权限有【x】的话,例如【-rwxr-xr-x】即代表这个文件具有可被执行的能力

下面的数据常用的扩展名

  • *.sh :脚本或批处理文件(scripts)因为批处理文件使用shell写成所以扩展名就编成 .sh
  • *Z , *.tar , *.tar.gz , *.zip , *,tgz : 经过打包的压缩文件
  • *.html , *.php : 网页相关文件,分别代表HTML语法与PHP语法的网页文件。,html 文件可以使用浏览器服务端浏览,至于.php 文件则可以通过客户端的浏览器烂服务端浏览,以得到运算后的网页结果

Linux文件名长度限制

  • 单一文件或目录的最大容许文件名为255字节,以一个ASCII 英文占用一个字节来说则大约可达255个字符长度,若是以每个汉字占两个字节来说最大文件名就大约在128个汉字之间

Linux目录配置

Linux目录配置的依据---------FHS

FHS 它的主要目的是希望用户可以了解自己已安装软件通常放在哪个目录下

FHS标准建议: 根目录( / )所在分区应该是越小越好且应用程序所安装的软件不要与根目录放在同一个分区内,保持根目录越小越好。如此不但性能较佳,根目录所在的文件系统也较不容易发生问题

  • 根目录的意义与内容
    • /bin : 系统有很多存放执行文件的目录但是/bin目录比较特殊。因为/bin 放置的是在单人维护模式下还能够被使用的命令。在/bin下的命令可以被root和一般账户所使用的,主要有cat , chmod , chown 、date 、MV 、mkdir 、 cp 、bash 等常用命令

绝对路径与相对路径

根据文件名写法的不同,也可将所谓的路径(path)定义为绝对路径(absolute)与相对路径(relative)

  • 绝对路径: 有根目录( / )开始写起的文件名或目录名称
  • 相对路径: 相对于目前路径的文件名写法
lsb(Linux Standard Base英文缩写) 

lsb_release命令功能: 
      用于显示LSB和特定版本的相关信息
       
    lsb_release命令的语法格式:
          lsb_release [参数]
       -----常用参数说明------        
       -i:输出系统名称简写
       -d:输出系统全称和版本号
       -r:输出版本号
       -a:输出LSB所有信息

     -----注意事项----
     当使用此命令未加入参数时,则默认为加入-v参数
这篇关于Linux基础学习(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!