Linux基础

Linux基础

关于Linux系统

什么是操作系统

  • 操作系统是应用程序运行的基础支撑环境

  • 操作系统作用是管理和控制计算机系统的硬件与软件资源

  • Intel x86架构上常见的操作系统:Windows、Linux、Unix…

    ps:有种特殊的Linux支持ARM架构,称为ARM Linux,与标准Linux并不兼容,课程讲解为基于Intel x86的标准Linux

Linux操作系统

  • Linux是开源的基于Intel x86架构的类Unix多用户操作系统
  • Linux是目前最主要的服务器端操作系统
  • 互联网大厂都在使用Linux作为服务器主要操作系统

Linux特点

  • 免费使用,自由传播
  • 支持多任务、多用户、多CPU
  • 高效而灵活
  • 兼容任意x86架构计算机
  • 强大易用的系统命令
  • 完整的应用软件生态

Linux发行版本

  • Linux系统内核(Kernel)提供了Linux操作系统的核心功能
  • 不同开发商在内核基础上扩展封装,形成了不同发行版本
  • 常见发行版:Red Hat Linux、CentOS、Ubuntu、SUSE…

Linux发行版选择建议

  • 桌面系统:Ubuntu
  • 服务器操作系统:CentOS(免费)、Red Hat Linux(收费)
  • 特定需求:Debian(稳定性)、Fedora(新特性)、麒麟Linux(国产)

CentOS - 社区企业操作系统

  • 基于Red Hat Enterprice Linux的开源企业级Linux发行版本
  • 各版本Centos都会获得十年的支持,与RHEL保持同步更新
  • Centos采用社区支持,同时修正了RHEL许多BUG

CentOS版本选择

  • Centos 5/6:历史版本,已被淘汰
  • Cent0S 7:主流版本,稳定成熟,大多数服务器的首选版本
  • CentOS 8:全新版本,基于最新内核,不排除存在漏洞隐患

Linux系统目录

Linux倒挂树形目录结构

在这里插入图片描述

  • ‘/’是所有目录的顶点,称为“根目录”
  • 不同目录下的数据可分布在不同磁盘,所有目录按规则组织与命名
  • Linux也区分绝对路径与相对路径
绝对路径用途
/根目录
/bin *常见的二进制命令所在目录,例如ls、cp、mkdir…
/bootLinux内核与系统引导程序目录
/dev设备文件的目录,比如声卡、磁盘、光驱…
/etc *yum、rpm方式安装应用程序的默认配置文件路径
/home用于存放用户的数据,用户的“家目录”
/var系统与软件服务运行日志目录
/lib启动系统与运行命令所需的共享库文件与内核模块目录
/proc系统运行时,进程信息与内核信息存放在此目录
/rootLinux超级用户目录,类似于windows的administrator
/sbin系统管理命令存放目录,包含两个重要子目录
/usr *存放用户应用程序的目录,包含俩个重要子目录
/usr/local *编码方式安装程序的默认目录
/usr/src *程序源码目录

服务器远程管理

SSH客户端

  • SSH是专为远程登录和其他网络服务提供的安全性协议
  • SSH分为两个不兼容版本1.x与2.x, 默认通过SSH2.x连接
  • 基于SSH远程连接工具有很多,最常见的是Xshell与SecureCRT

Xshell与Xftp

  • Xshell是著名的Linux客户端,常用于在Windows下远程访问
  • Xshell同时还支持Telent、RLogin、Serial等其他连接方式
  • Xftp是Xshell配套组件,用于向服务器上传/下载文件

Linux文件操作指令

Linux命令格式:

命令【参数选项】【文件或者路径】

命令用途
cd切换目录
pwd查看当前目录
ls、ll显示目录内容
mkdir创建目录
cp复制文件与目录
mv移动或重命名文件
rm删除文件或目录
find查找目录或文件

vim文本编辑器

关于Vim文本编辑器

  • vi是Linux重要的文本编辑工具,vim是它的增强版
  • vim用于在远程环境下用命令形式对文本进行在线编辑
  • 用法格式:vim【选项】【文件】

vim三种模式

  • 普通模式:默认模式,文本只读,不可编辑
  • 编辑模式:编辑文本模式,普通模式按i键进入,Esc键退出
  • 命令模式:执行保存、搜索、退出等操作

Vim重要快捷键

命令用途
delete或x删除单个字符
dd删除整行
/str全文查找str字符串,n下一个,N前一个
:% s/old/new/g替换文件内所有old字符串为new
u撤销最近一次操作
:wq或者wq!退出并保存,只读文件要额外加!
:q!强制退出放弃保存

常用文本工具

命令用途
echo屏幕打印与文本输出
cat合并文件或查看文件内容
tail显示文件内容尾部
grep文本过滤工具

打包与压缩

Linux压缩程序-gzip

  • gzip是Linux系统的文件压缩程序
  • gzip压缩包文件扩展名.gz
  • 大流量的网站默认都在使用gzip进行数据压缩传输

tar打包与压缩

  • tar是Linux系统将多个文件打包和压缩的工具
  • tar本质是打包软件,扩展名.tar
  • tar可结合gzip或其他压缩文件实现打包压缩扩展名.tar.gz
  • 压缩命令:tar zcvf tomcat.tar.gz /usr/local/tomcat
  • 解压缩命令:tar zxvf tomcat.tar.gz -C /usr/local/tomcat

tar常用可选项

选项用途
z通过gzip压缩或解压
c创建新的tar.gz文件
v显示执行过程
f指定压缩文件名称
x解压缩tar.gz文件
-C指定解压缩目录

安装应用程序:

为CentOS安装应用程序

  • 在CentOS中安装第三方应用程序包含两种方式:
  • rpm:Red Hat软件包管理器,相当于应用程序安装文件的执行者
  • 编译安装:用户自己从网站下载程序源码进行编译安装

yum与rpm的关系

  • rpm安装过程中,需要用户自己解决依赖问题
  • yum通过引入软件仓库,联网下载rpm包及依赖,并依次自动安装
  • yum是rpm的前端程序,其目的就是简化rpm的安装过程

yum常用命令

  • yum search 应用名 #在仓库中查询是否存在指定应用
  • yum install -y 应用名 #全自动下载安装应用及其依赖
  • yum info 应用名 #查看应用详细信息
  • yum list installed 应用名 #查看已安装的应用程序
  • rpm -ql 应用名 #查看安装后输出的文件清单
  • yum remove -y 应用名 #全自动卸载指定应用

编译方式安装应用程序

  • 如yum仓库未提供rpm,往往需要采用编译安装方式
  • 编译安装是指应用官网下载源码后,对源码进行编译后使用
  • 编译命令:make #使用对应编译器对源码编译生成可执行文件

yum与编译安装比较

yum安装编译安装
兼容性差,每种发行版都要准备好,全平台适用
复杂度简单复杂
安装速度
来源应用仓库官网下载
应用场景日常系统软件开源软件,最新版本

Linux系统管理命令

使用ifconfig查看网卡ip

netstat 查看网络端口号

netstat -tulpn 或者 netstat -ano
netstat常用选项
选项用途
t显示tcp传输协议的连接状况
u显示udp传输协议的连接状况
l显示出于监听状态的网络连接
p显示PID和程序名称
n显示ip地址
a显示所有连接
o显示计时器

查看进程&杀掉进程

  • ps-ef
  • kill -9 PID

应用服务化

应用服务化说明

  • 应用服务化是指让应用程序在系统后台运行
  • Linux系统对服务化应用进行统一管理
  • 服务管理命令:systemctl

systemctl

指令用途
start启动服务
stop停止服务
restart重启服务
enable设置开机启动
disable禁止开机启动
status查看服务状态
daemon-reload重载服务配置文件
list-unit-files列出所有服务

Linux用户与权限

用户

  • Linux是多用户多任务系统,包含俩个概念:用户与用户组
  • 用户与账号是同一个概念,用于登录系统与区分资源权限
  • 用户让系统变的更安全,同时也保护了用户的个人数字资产

用户组

  • 用户组就是将用户分组,隶属用户自动拥有权限
  • 一个用户可隶属于多个组,用户可任意切换当前组
  • 用户组的出现让用户权限管理变更轻松

用户与用户组常用命令

命令用途
useradd创建新用户
passwd修改密码
usermod修改用户信息/分配组(覆盖原组)
groupadd创建新的用户组
chown更改文件的属主或属组
chomod更改文件的访问权限
newgrp切换用户当前组

文件权限代码表

drwxrwxrwx
421421421
目录属主读取属主写入属主执行组读取组写入组执行其他读取其他写入其他执行

chmod命令

  • chmod 750:组用户可读写,其他用户不允许访问
  • chmod 777:所有用户拥有完整权限
  • chmod 700:只有属主拥有完整权限

sudo超级管理员命令

sudo
  • sudo可以让普通用户拥有超级管理员执行权限
  • 普通用户要进行经过超级管理员授权才能使用
  • 授权命令:visudo

CentOS7防火墙firewall

什么是防火墙

  • 防火墙是借助硬件和软件对内外部网络环境的保护措施
  • CentOS 7基于firewall实现应用层防火墙,CentOS6基于iptables
  • firewall-cmd是firewall的核心命令

firewall-cmd

  • systemctl start|restart firewalld #启动防火墙
  • firewall-cmd --state|reload #查看状态,重载防火墙
  • firewall-cmd --zone=public -permanent --add-prot=8502/tcp

Bash Shell

什么是Bash Shell

  • Shell是一个用c语言编写的脚本解释器,是用户通过代码操作Linux的桥梁
  • Shell脚本描述要执行的任务,完成系列复杂操作,文件通常以.sh后缀
  • Shell脚本通过Shell解释器执行,按解释器分类分为多种类型

Linux Shell 分类

shell种类Shell解释器
Bourne Shell/usr/bin/sh或/bin/sh
Bourne Again Shell/bin/bash(默认)
C Shell/usr/bin/csh
K Shell/usr/bin/ksh
Shell for Root/sbin/sh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rex·Lin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值