Linux基本概述
Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。(说实话真特么羡慕这类人)
类 Unix 操作系统,基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。支持 32 位和 64 位硬件 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
发行版
Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。
应用领域
通常服务器使用 LAMP(Linux + Apache + MySQL + PHP)或 LNMP(Linux + Nginx+ MySQL + PHP)组合。
centos 下载地址:可以去官网下载最新版本:Download
Linux系统的启动过程
- 内核的引导。
- 运行 init。
- 系统初始化。
- 建立终端 。
- 用户登录系统。
init程序的类型:
- SysV: init, CentOS 5之前, 配置文件: /etc/inittab。
- Upstart: init,CentOS 6, 配置文件: /etc/inittab, /etc/init/*.conf。
- Systemd: systemd, CentOS 7,配置文件: /usr/lib/systemd/system、 /etc/systemd/system。
内核引领
首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。
操作系统接管硬件以后,首先读入 /boot 目录下的内核文件。
运行init
init 进程是系统所有进程的起点,
没有这个进程,系统中任何进程都不会启动。
init 程序首先是需要读取配置文件 /etc/inittab。
运行级别
许多程序需要开机启动。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。
init进程的一大任务,就是去运行这些开机启动的程序。也就是说,启动时根据"运行级别",确定要运行哪些程序。
Linux系统有7个运行级别(runlevel):
正确的关机流程为:sync > shutdown > reboot > halt
关机指令为:shutdown ,你可以man shutdown 来看一下帮助文档。
Linux发行版:
Linux的发行版说简单点就是将Linux内核与应用软件做一个打包。
Kali Linux:安全渗透测试使用。
Linx系统目录认识
Linux常用的基本命令
绝对路径、相对路径
绝对路径的全称:C:\ProgramData\360safe\xxx.xx
比如说360safe目录下,那这个xxx.xx文件,对应我们的相对配置就是/xxx.xx
cd 切换目录命令
./ 当前目录
../ 返回上一级目录
clear 或者 windows+l 清除屏幕
ls 列出目录
在Linux中ls命令可能是最常被使用的命令。
-a 参数:all 查看全部的文件,包括被隐藏的文件。
-l 参数:列出所有的文件,包含文件的属性和权限,没有隐藏的文件。
所有Linux命令都可以组合使用。
pwd 显示当前用户所在的目录
mkdir 创建一个目录
mkdir -p test/test1/test2 递归创建多级目录
rmdir 删除一个目录
rmdir 只能删除空的目录,如果下面存在文件,需要先删除文件,递归删除多个目录使用 -p 参数即可。
touch hao.txt 创建一个文件
rm -f hao.txt 删除一个文件
cp 复制文件或者目录
cp 原来的地方 新的地方
rm 移除文件或者目录
-f 忽略不存在的文件,不会出现警告,强制删除。
-r 递归删除目录。
-i 互动,删除询问是否删除。
mv 移动文件或者目录
-f 强制
-u 只替换已经更新过的文件
基本属性
Linux系统是一中典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
在Linux中我们可以使用ll或者ls -l 命令来显示一个文件的属性以及文件所属的用户和组,如:
在实例中,zhaohao目录的第一个属性用“d”表示,“d”在Linux中代表文件是一个目录文件。
在Linux中第一个字符代表这个文件是目录、文件或者链接文件等等:
- 当为[d]则是目录
- 当为[-]则是文件
- 若是[l]则表示为链接文档(link file)
- 若是[b]则表示为装置文件里面的可供存储的接口设备(可随机存取装置)
- 若是[c]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)
接下来的字符中,以三个为一组,且均为[rwx]的三个参数的组合。其中,[r]代表可读(read)、[w]代表可写(write)、[x]代表可执行(execute)
要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[-]而已。
文件内容查看
Linux系统中使用以下命令来查看文件的内容:
cat 由第一行开始显示文件内容
tac 从最后一行开始显示文件内容,可以看出tac是cat的倒着写
nl 显示的时候,顺道输出行号
more 一页一页的显示文件内容,带余下内容的(空格键代表翻页,Enter键代表向下看一行,:f代表当前行号)
less 与 more 类似,但是比more更好的是,它可以往前翻页(空格键代表翻页,上下键代表翻页,上键是向上翻页,下键是向下翻页,退出是 q 命令)
查找字符串
/要查找的字符 向下查询
?要查找的字符串 向上查找
查找到字符串之后,小写的 n 表示继续寻找一下个,大写的 N 表示向上寻找
head 只看文件的头几行,通过 -n 参数来控制显示几行
head -n 20 network- functions
tail 只看文件的结尾几行,通过 -n 参数来控制显示几行
网络配置目录: cd etc/sysconfig
ifconfig 查看网络配置,ip等网络基本信息
Linux硬链接和软链接
vim编辑器
磁盘管理
df 列出文件系统整体的磁盘使用量
df -h 列出文件系统整体的使用量,包括每个文件目录使用的大小明细
du 检查磁盘空间使用量
du -a 检查磁盘空间使用量,包括隐藏的文件
du -sm /* 检查根目录下每个文件所占用的容量
进程管理
基本概念
1、在Linux中,每一个程序都有自己的一个进程,每一个进程都有一个Id号。
2、每一个进程,都会有一个父进程。
3、进程可以有两种存在方式:前台和后台运行。
4、一般的话服务都是后台运行的,基本的程序都是前台运行的。
命令
ps 查看当前系统中正在执行的各种进程的信息
ps -xx:
- -a 显示当前终端运行的所有的进程信息(当前的进程一个)
- -u 以用户的信息显示进程
- -x 显示后台运行进程的参数
ps -aux 查看所有的进程
ps -aux|grep java
| 在Linux中这个叫做管道符
grep 查找文件中符合条件的字符串
ps -ef:可以查看父进程的信息
eg:ps -ef|grep mysql 查看父进程我们一般也可以通过目录树结构来查看
进程树
pstree -pu
-p 显示父id
-u 显示用户组
kill -9 进程的id 表示强制结束该进程
firewall防火墙
查看firewall服务状态
systemctl status firewalld
出现Active: active (running)切高亮显示则表示是启动状态。
出现 Active: inactive (dead)灰色表示停止,看单词也行。
查看firewall的状态
firewall-cmd --state
开启、重启、关闭、firewalld.service服务
# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop
查看防火墙规则
firewall-cmd --list-all
查询、开放、关闭端口
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=8087/tcp
重启防火墙之后添加的端口生效:service firewalld restart
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
# 参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;