学习笔记 Day one
----------2019.07.27----------
第一~二章 省略基础知识部分
-
Linux发行版本选择
*常见Linux发行版本* Red Hat Linux *企业级应用首选* Fedora Core Red Hat Enterprise Linux CentOS *本书教程选用Centos 7* 初学者入门首选 *企业级应用首选* SuSE Linux ubuntu Linux *本人使用ubuntu 18.04* 桌面平台首选
-
Linux安装方法 步骤简单,省略此处,教程可直接网络搜索
虚拟机安装法 光驱安装法 U盘安装 *本人采用U盘安装,windows 7+Ubuntu 18.04 双系统* ubuntu安装过程可参考:[https://www.cnblogs.com/Duane/p/6776302.html][1] centos安装可参考:鸟叔的私房菜_基础篇 第四版 第三章
【注】:*安装时注意分区的大小和网络配置,双系统还需注意设置双系统引导
主要分区及作用: / :根目录分区 swap:交换分区,一般为物理内存的2倍,物理内存为4~16G时可等于物理内存大小, /boot:存储系统的引导信息和内核等信息 /usr:存储系统应用软件安装信息 /var:存储系统日志信息 根据个人需要还可增加其他分区.
-
linux学习路线 (图片来源网络,侵必删)
第三章 Linux系统基本结构
linux系统硬件资源管理
查看系统PCI设备: lspci
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 05)
*表示集成主板设备类型为第七代因特尔至强E3 1200 v6 很菜鸡请忽略*
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 05)
表示表示点对点串行总线结构网桥设备(没理解错的话)
01:00.0 VGA compatible controller: NVIDIA Corporation GP106M [GeForce GTX 1060 Mobile 6GB] (rev a1)
*表示VGA显卡设备类型:英伟达影驰GTX1060 6G显存*
00:14.00:1f.3 Audio device: Intel Corporation CM238 HD Audio Controller (rev 31)
*表示Inter声卡设备*
00:14.0 USB controller: Intel Corporation 100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller (rev 31)
*表示USB接口设备*
00:1f.2 Memory controller: Intel Corporation 100 Series/C230 Series Chipset Family Power Management Controller (rev 31)
*表示电源控制设备*
00:17.0 SATA controller: Intel Corporation Q170/Q150/B150/H170/H110/Z170/CM236 Chipset SATA Controller [AHCI Mode] (rev 31)
*表示SATA控制器,表明系统是SATA系列硬盘*
3c:00.0 Ethernet controller: Qualcomm Atheros Killer E2500 Gigabit Ethernet Controller (rev 10)
*千兆以太网设备*
查看CPU类型:more /proc/cpuinfo
解析:
processor :逻辑处理器唯一标识符
vendor_id :处理器类型 如果为因特尔处理器则字符串显示 "GenuineIntel"
physical id :物理封装的唯一标识符,即物理cpu
siblings :表示相同物理封装中的逻辑处理器的数量
core id :内核唯一标识符
cpu cores :相同物理封装的内核数
【注】 siblings与cpu cores存在对应关系,前者是后者两倍,则说明系统支持超线程;如果不一致,则系统不支持超线程,或者超线程未开启。
查看系统物理cpu个数命令:cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
查看每个物理cpu的内核个数:cat /proc/cpuinfo | grep "cpu cores"
查看系统所有逻辑cpu的个数(所有物理cpu中内核个数加上超线程个数):cat /proc/cpuinfo | grep "processor" | wc -l
查看系统内存信息:more /proc/meminfo
根据上图可以清楚看出系统的物理内存大约有16G,可用物理内存大约为13G,缓冲内存为56640KB,缓存占用676424KB等。
查看磁盘分区信息: 步骤一:先进入root用户模式 :su root
--> 在执行 fdisk -l
由图可以看出有一个固态256G的硬盘和一个1T的机械硬盘,还有一个64G的移动U盘,
固态硬盘中的156G内存分给了windows系统,100G分给了linux系统,
1T机械硬盘的机械硬盘采用了挂靠的方式共享。 其中Linux有四个分区,windows同样也分了四个盘。
4. Linux外在设备使用
在linux系统中主要的一些设备文件被放置在`/dev`文件中,以主设备号+次设备号的形式命名,主设备号说明设备类型,次设备号指定具体设备
软盘为`/dev/fdx`,fd为软盘驱动器(floppydisk),次设备号x对应不同软盘编号
U盘在linux系统中被识别为SCSI设备,故设备文件为`/dev/sdax`,sd表示`SCSI disk` a表示第一块SCSI设备,x表示对应的分区编号 主分区1~4 逻辑分区从5开始,切记在整个硬盘中只可能存在四个主分区(多系统下,全部系统的主分区加起来最多只能有4个主分区)
光驱为`/dev/hda`,表示第一个IDE接口的光驱,SCSI光驱在linux下为`/dev/srx`,表示`SCSI ID`
【注】新发行版本中 还有`cdrom`设备文件 `/dev/cdrom`
磁带为 `/dev/st0`,st表示`SCSI tape`,x表示编号。
设备挂靠:
挂靠命令格式: `mount -t 设备系统类型 设备名 挂靠点`
临时挂靠点`/mnt`目录下,主要是临时手动挂靠 `/media`目录自动挂靠目录,如果要现windows系统和linux系统开机自动实现资源的共享,则需要通过在linux系统的`/media`文件下实现windows对应软盘的挂靠,也可以自己新建一个文件夹实现开机自动挂靠,但为了方便一般挂靠在系统规定文件夹下。
(1)软盘挂靠
`mount -t msdos /dev/fd0 /mnt/floppy` 将DOS文件格式的第一张软盘转载到系统,可在`/dev/floppy` 文件夹下查看
【注】书中直接采用上面代码,但是我再ubuntu下出错,于是我在挂靠之前通过 `mkdir -p /mnt/floppy` 先建立挂靠点 得以实现正常挂靠,可能是centos系统和ubuntu的微小差别吧,下面的光盘挂靠也出现这样的问题。
(2)挂靠U盘
先确认U盘设备名`dmesg|more` 建立对应挂靠点 `mkdir /mnt/usb`
`mount -t vfat /dev/sda1 /mnt/usb` 同上,可在对应文件夹下查看内容
(3)挂靠光盘
同上先建立挂靠点 `mkdir -p /mnt/cdrom` p表示多层文件夹
`mount -t iso9660 /dev/hda /mnt/cdrom` 或者 `mount /dev/cdrom /mnt/cdrom`
设备卸载:
命令格式: `umount 挂靠目录`
eg: U盘卸载 `umount /mnt/usb`
光盘卸载 `umount /mnt/cdrom`
文件系统结构介绍
目录功能介绍 下图来源网络,侵必删
各文件夹及子文件夹功能介绍可参考 https://www.cnblogs.com/jxhd1...
/etc:主要用于存放系统管理相关的配置文件以及子目录,
eg:系统初始化文件 `/etc/re` 、用户信息文件 `/etc/passwd`等
tree -d -L 1
tree 表示树型结构显示 d 只显示目录 L 显示目录深度 1 只显示一层深度,不进行递归
/usr: 主要用于存放应用程序和文件
/var 主要存放系统运行以及软件运行的日志信息
/dev 包含系统所有设备文件
/proc:虚拟目录,目录中所有信息都是内存的映射,可通过虚拟目录与内核内部数据进行交互,或许相关进程的有用信息,也可以在系统运行中修改内核参数。
/boot:主要是镜像文件和链接文件,启动linux的核心文件,千万别手贱
/bin和/sbin:/bin存放常用命令,/sbin存放超级用户才可执行的命令
/home:工作目录 默认目录: `/home/username` username:你的用户名
/root:超级用户默认目录
/lib:存放共享程序库和映像文件
/run:外在设备自动挂靠点目录
/lost+found:保存丢失文件 eg:非正常关机情况下和磁盘错误等
/tmp:临时文件目录存放临时文件,可随时删除
linux发行版本运行级别:
0 表示关机模式
1 表示单用户模式,单用户模式只有系统管理员可以登录
6 表示重启模式,自动关闭所有进程,然后重新启动系统
2 表示多用户类型,不支持文件共享,
3 表示完全的多用户模式,支持NFS服务(支持文件共享)
4 表示基本不用的用户模式,可以实现某些特定的登录请求
5 表示完全多用户模式 ## ubuntu桌面版本默认模式
常用系统开关机命令: init
、 shutdown
、halt
、reboot
shutdown命令详细语法: shutdown [-fFhknrc(参数名称)][-t 秒数] 时间 [警告信息]
参数名称解析: -f 重启时不执行fsck
-F 重启时执行fsck
-h 将系统关机,某种程度上相当于halt命令
-k 发送关机信息给所有用户,但并不会真正关机
-n 不调用init程序关机,由shutdown自行关机,使用该参数能加速关机速度,但是可能有数据丢失的风险
-r shutdown之后重新启动系统
-c 取消前一个shutdown命令
-t<秒数> 发送警告信息和关机信息之间要延迟多少秒钟警告信息将提醒用户保存当前进行的工作
[时间] 设置多久之后执行shutdown命令 格式有hh:mm和+m两种,前者表示设置成具体时间点下执行该操作,后者表示在输入该操作命令后的几分钟执行该命令。
[警告时间] 传送所有登录用户的信息
eg
:
立即关机重启 shutdown -r now
立即关机 shutdown -h now
设置成5分钟后关机 shutdown +5 "System will shutdown after 5 minutes"
halt命令
语法格式:halt [-finp]
参数名称解析: -f 不管当前处于何种运行级别,都不调用shutdown而强制关机
-i 关机之前,关掉所有网络接口
-n halt执行时不调用系统指令sync
-p 关机时调用poweroff,即关机时关闭电源 默认选项
reboot命令
语法格式: reboot
关机后重启
init命令 用于不同运行级别之间的切换
语法格式 : init n
n为0~6的7种不同工作模式
4.系统服务管理工具systemd
启动命令 systemctl start httpd.service
启动httpd服务.
停止命令 需在root身份下systemctl stop httpd.service
停止httpd服务
重启 服务在运行则重启,不在运行则直接启动systemctl restart httpd.service
systemctl try-restart httpd.service
只在服务已经运行的状态下重启systemctl reload httpd.service
重新加载配置文件
enable/disable命令systemctl enable httpd.service
打开httpd服务实现开始自启systemctl disable httpd.service
关闭httpd服务systemctl status httpd.service
查看运行状态
第四章 Liunx常用命令及使用技巧
shell介绍:shell是围绕在linux内核之外的“壳”程序,用户在操作系统上完成的所有任务都是通过shell与linu系统内核的交互来实现的。
常见shell:
DOS环境下的shell:command.com、4DOS、NDOS等
linux环境下的shell:Bourne again shell (bash)、 C shell(csh)、Korn shell (ksh)、bourne sehll (sh)、Tenex C shell (tcsh)等
【注】shell是以C语言编写的程序,是用户和操作系统内核沟通的桥梁,shell既是命令解释程序,有是强大的解释型程序设计语言,作为命令解释程序,shell届时用户输入命令,其提交到内核进行处理,最后把结果返回给用户。
# 表示系统超级用户
$ 表示系统普通用户
基本语法分析:
command [options] [aeguments]
【注】:command: 表示命令的名称
options: 命令的选项
arguments: 命令的参数
选项包含一个或者多个字母主要用于改变命令的执行方式,一般在选项前面有“-” 符号,用于区别参数
eg:
a :表示累出当前目录下的所有文件(包含隐藏文件)
l :列出文件详细信息
注意几种不同书写形式的区别
在实际操作中很多命令度接受参数,参数就是在选项后面紧跟的一个或多个字符串,其指定了命令的操作对象,eg:
在实际操作中有些命令语句是可以不带参数的,但是有一部分命令必须带参数,例如:mv命令(移动、重命名)
有时候为了能方便,也会输入多个命令,通过分号分隔
同时也可以通过“”实现在多行中输入一个命令
通配符问题:在bash中主要有“*”“?”“[]”几种常见通配符
* 表示匹配一个或者多个字符
? 匹配任意单一字符
[] 匹配任意包含在方括号的单字符
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。