Linux学习笔记
入门篇
1.Linux概述
大多服务器都是配置在linux上
linux中万物皆文件
1.1Linux是什么
Linux是一个基于Unix的多用户的分时操作系统(操作系统:直接用来操作计算机底层硬件的软件–最底层的软件)
操作系统:Window、Linux、MacOs
Linux内核最初只是由李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
1.2Window和Linux区别
window:主要面向用户,提供很多软件适合各种应用
Linux:适合于搭建服务器,内核小占用系统资源小减少维护
Linux模块化机制:可以根据用户的需求进行内核的定制化设计–十分适合嵌入式系统
Linux系统的内核可以特别小(甚至几百KB),短小精悍性能强悍,安全性强,开源免费
1.3Linux的发行版
计算机硬件:最终执行命令操作的东西
硬件接口层(核心层kernel):linux内核,linux核心开发、驱动开发
命令解释层(shell):连接外部应用和linux内核
从技术上来说,李纳斯•托瓦兹开发的 Linux 只是一个内核。内核指的是一个提供设备驱动、文件系统、进程管理、网络通信等功能的系统软件,内核并不是一套完整的操作系统,它只是操作系统的核心。一些组织或厂商将 Linux 内核与各种软件和文档包装起来,并提供系统安装界面和系统配置、设定与管理工具,就构成了 Linux 的发行版本。
在 Linux 内核的发展过程中,各种 Linux 发行版本起了巨大的作用,正是它们推动了 Linux 的应用,从而让更多的人开始关注 Linux。因此,把 Red Hat、Ubuntu、SUSE 等直接说成 Linux 其实是不确切的,它们是 Linux 的发行版本,更确切地说,应该叫作“以Linux为核心的操作系统软件包”。
2.Linux安装
发行版本:
以下两个发行版本都有很多软件,免费,社区活跃
ubuntu:偏向于页面精美(代价:性能差一点),适用于个人
centOs:相对不漂亮,兼容性不好,但是稳定占用资源少,性能强劲。适用于企业
centOs官网:https://www.centos.org/download/
vmware:vmware可以配置一个虚拟机环境,让linux可以在该虚拟机环境上运行
VMware官网:https://www.vmware.com/
基础篇
3Linux文件与目录结构
3.1Linux文件
linux中一切皆文件
3.2Linux目录结构
Linux只有一个根
Linux中路径是以/划分
常见目录:
/bin:binary(二进制)缩写,存放可以直接执行的常用命令(二进制码) 有一个小箭头,指它其实是一个连接,指向user文件夹下的bin文件夹
/sbin:system bin s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/lib:libary(库) 系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/user:unix system resources 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/boot:之前挂载的引导的目录,很小,不要写自己的用户数据
/dev:device(设备) 设备目录,含有所有的硬件设备的文件映射,类似于windows的设备管理器,把所有的硬件用文件的形式存储。
/root:该目录为系统管理员,也称作超级权限者的用户主目录。 也就是桌面上点的主文件夹
/opt:optional 可选目录 给第三方软件包留的目录,比如你安装一个mysql数据库则就可以放到这个目录下。默认是空的。
/media:媒体 识别可移动磁盘(光驱,u盘),是他们的挂载点
/proc:process(进程),对于系统很重要的,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt上,然后进入该目录就可以查看里面的内容
/var:可变目录,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
3.3挂载点
当前linux把所有的目录结构都放在了根目录下
若想在不同的分区放不同的内容就需要挂载点
挂载点实际上就是linux中的磁盘文件系统的入口目录,类似于windows中的用来访问不同分区的C:、D:、E:等盘符。
/(根目录)
这是Linux系统唯一一个必须挂载的目录。一般情况下分配10G即可,但是也多多益善。
/boot
这个是Linux系统的内核和系统启动过程中比如一些系统的初始化等等所需要用到的文件的存储目录。如果有了一个单独的/boot启动分区,即使主要的根分区出现了问题,计算机依然能够启动。这个分区的大小约在60MB—120MB之间。
/home
这个是我们使用Linux系统最常见的home目录的挂载点,用于存储用户自己创建的文件。可以将多个用户存储在统一的分区。根据我们上面的那个例子我们可以知道,有了这个目录的挂载点即使你的清空根目录你的用户信息也还在,所以为home单独建立一个挂载点还是很有必要的。home的需求很大所以可以尽量多的分配空间给它。
/usr
应用程序所在目录,一般情况下我们的软件都装在这个目录下,它就类比于Windows下的Program Files
/var
用于存放日志文件,或者磁盘读写率比较高的文件也可以放在这里。
/etc
这个是Linux系统下各种配置文件所在的目录,建议大家安装软件后进行的一些系统配置配置在这个目录下的相应的一些文件中,比较不容易出问题。
swap
这个是用做于交换分区,不是必须的。交换分区用于内存不够时的一个额外内存使用,容易一般在系统内存的1-2倍之间。
4VIM编译器
4.1VIM概述
VI 是 Unix 操作系统和类 Unix 操作系统中最通用的文本编辑器。
VIM 编辑器是从 VI 发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计。VIM 与 VI 编辑器完全兼容。
4.2模式间转换
4.3一般模式
以 vi 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、粘贴』来处理你的文件数据。
当要复制多行时----- 要复制的行数+y
当要粘贴多次被复制的内容时----要粘贴的次数+p
w:光标跳到下一个单词
d+$:删除直到行尾
r+任意字符:改变光标位置的字符
gg:到当前文档的开头
G:到当前文档的最后一行
3G:到指定行
:set nu 显示所有行的行号
:set nonu 不显示所有行的行号
4.4编辑模式(插入模式)
在一般模式中可以进行删除、复制、粘贴等的动作,但是却无法编辑文件内容的!要等到你按下『i, I, o, O, a, A』等任何一个字母之后才会进入编辑模式
注意了!通常在Linux中,按下这些按键时,在画面的左下方会出现『INSERT或REPLACE』的字样,此时才可以进行编辑。
而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。
4.5指令模式(特殊的一般模式)
在一般模式当中,输入『 : / ?』3个中的任何一个按钮,就可以将光标移动到最底下那一行。
在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等动作是在此模式中达成的!
:/noh :取消高亮显示
:%s/old/new 替换内容 /g替换每一行的第一个匹配到的字符
5网络配置
在linux中命令行敲ifconfig(interface config)查看ip地址等
5.1网络连接模式
VMware提供了三种网络连接模式:
桥接模式:
虚拟机直接连接外部物理网络的模式,主机起到了网桥的作用。这种模式下,虚拟机可以直接访问外部网络,并且对外部网络是可见的。
NAT模式(Netword Address Translate网络地址转换):
虚拟机和主机构建一个专用网络,并通过虚拟网络地址转换(NAT)设备对IP进行转换。虚拟机通过共享主机IP可以访问外部网络,但外部网络无法访问虚拟机。
仅主机模式:
虚拟机只与主机共享一个专用网络,与外部网络无法通信。
5.2修改主机名
5.2.1改主机名
#hostnamectl set-hostname ThhLinux(要修改的名字)
#hostname 查看主机名
5.2.2对应Ip地址和主机名
[root@hadoop100hhT /]# vim /etc/hosts 进入修改IP地址与主机名的映射表(也可以修改对应的域名)
windows中也修改
此时只用ping主机名即可
5.3实现远程登录
通常在工作过程中,公司中使用的真实服务器或者是云服务器,都不允许除运维人员之外的员工直接接触,因此就需要通过远程登录的方式来操作。所以,远程登录工具就是必不可缺的,目前,比较主流的有 Xshell, SSH Secure Shell, SecureCRT,FinalShell 等,可以根据自己的习惯自行选择.
进入cmd
此时就远程登录了我的Linux虚拟机
5.4修改静态ip
1)查看IP 配置文件
[root@hadoop100hhT#vim /etc/sysconfig/network-scripts/ifcfg-ens33
编辑完后,按键盘 esc ,然后输入 :wq 回车即可。
2)执行service network restart 重启网络,
6系统管理
6.1Linux 中的进程和服务
计算机中,一个正在执行的程序或命令,被叫做“进程”(process)。
启动之后一直存在、常驻内存的进程,一般被称作“服务”(service)
Linux中很多进程带着d结尾 这个进程就是守护进程—>守护着系统服务
6.2 systemctl (CentOS 7 版本-重点掌握)
6.2.1基本语法
systemctl start | stop | restart | status 服务名
6.2.2技巧
查看服务的方法:/usr/lib/systemd/system
6.3系统运行级别
linux中服务相关设置的命令: setup
CentOS6中init是系统启动后主动启动的第一个进程,init通过调用init.d目录下的脚本来根据用户定义的系统运行级别来启动相应服务的启动进程
运行级别越高功能越丰富
CentOS7中init就被systemd取代了
NFS:network file system网络文件系统
6.3.1CentOS6中
6.3.2CentOS7中
CentOS7 的运行级别简化为:
multi-user.target 等价于原运行级别 3(多用户有网,无图形界面)
graphical.target 等价于原运行级别 5(多用户有网,有图形界面)
6.3.3相关命令
查看当前运行级别:
systemctl get-default
修改当前运行级别:
systemctl set-default TARGET.target (这里 TARGET 取 multi-user 或者 graphical)
进入其他运行级别:
init 3 进入运行级别3 或者(ctrl+alt+f2)
列出当前所有的SysV中自启动的服务:
chkconfig --list
6.4关闭防火墙
6.4.1临时关闭防火墙
6.4.2开机启动时关闭防火墙
6.5关机重启命令
在 linux 领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑的一个程序是永无止境的,除非特殊情况下,不得已才会关机。
Linux中预读迟写 Linux中设置缓冲区(buffer),有文件读写时,先写入buffer,在缓存区满了后,才真正写入磁盘。
sync操作即立刻把缓冲区中内容写入
2)经验技巧
Linux 系统中为了提高磁盘的读写效率,对磁盘采取了 “预读迟写”操作方式。当用户保存文件时,Linux 核心并不一定立即将保存数据写入物理磁盘中,而是将数据保存在缓冲区中,等缓冲区满时再写入磁盘,这种方式可以极大的提高磁盘写入数据的效率。但是,也带来了安全隐患,如果数据还未写入磁盘时,系统掉电或者其他严重问题出现,则将导致数据丢失。使用 sync 指令可以立即将缓冲区的数据写入磁盘。
实操篇
7常用基本命令**
Shell 可以看作是一个命令解释器,为我们提供了交互式的文本控制台界面。我们可以通过终端控制台来输入命令,由 shell 进行解释并最终交给内核执行。 本章就将分类介绍常用的基本 shell 命令。
CentOS中默认的shell工具就是bash
7.1.man 获得帮助信息
7.1.1进入帮助手册
#man ls 进入帮助手册
man+命令 直接查找改命令的用法和解释
q 退出
7.1.2 help 获得shell 内置命令的帮助信息
help只能获得shell的内置命令
一部分基础功能的系统命令是直接内嵌在 shell 中的,系统加载启动之后会随着 shell一起加载,常驻系统内存中。这部分命令被称为“内置(built-in)命令”;相应的其它命令被称为“外部命令”
eg:[root@hadoop101 ~]# help cd
命令(外部命令)±-+help 查找该命令的帮助信息
7.1.3常用快捷键
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6HNHdRzR-1658630826244)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220724002751548.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2ACgjf58-1658630826245)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220724002756791.png)]
中…(img-dWpTj5Uz-1658630826244)]
7.1.2 help 获得shell 内置命令的帮助信息
help只能获得shell的内置命令
一部分基础功能的系统命令是直接内嵌在 shell 中的,系统加载启动之后会随着 shell一起加载,常驻系统内存中。这部分命令被称为“内置(built-in)命令”;相应的其它命令被称为“外部命令”
eg:[root@hadoop101 ~]# help cd
命令(外部命令)±-+help 查找该命令的帮助信息
7.1.3常用快捷键