就是系统性能非常好的电脑~~
minix3 – 一个教授封装最初的一个系统后用于教学 后来因为有bug改进后就变成了今天的Linux
硬件 内核(承上启下,操作系统) 软件 (无法直接操作硬件)
内存管理 , 进程调度 , 文件管理等
环境分类:
开发环境 :
测试环境:
生产环境:
回归测试 : 从头到尾再测试一遍
-----------------------------------
Linxu没有磁盘的说话 , 根目录就是 / ,想当于window里面的此电脑操作
1. / 根
每一个文件和目录从根目录开始。
只有root用户具有该目录下的写权限。请注意,/root是root用户的主目录,这与/不一样
--------------------------------------------------------
2. /bin中 用户二进制文件
包含二进制可执行文件。
在单用户模式下,你需要使用的常见Linux命令都位于此目录下。系统的所有用户使用的命令都设在这里。
-------------------------------------------------------
3. /sbin目录 系统二进制文件,比较铭感重要的
就像/bin,/sbin同样也包含二进制可执行文件。
但是,在这个目录下的linux命令通常由系统管理员使用,对系统进行维护。例如:iptables、reboot、fdisk、ifconfig、swapon命令
-------------------------------------------------------
4. /etc 配置文件
包含所有程序所需的配置文件。
也包含了用于启动/停止单个程序的启动和关闭shell脚本。例如:/etc/resolv.conf、/etc/logrotate.conf
hosts:设备名称(或域名)到ip地址的解析,相当于本地存在的dns功能。
--------------------------------------------------------
5. /user 用户程序
包含设备文件。
这些包括终端设备、USB或连接到系统的任何设备。例如:/dev/tty1、/dev/usbmon0
---------------------------------------------------------
6. /home HOME目录
所有用户用home目录来存储他们的个人档案。
例如:/home/john、/home/nikita
ssh为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。
SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
[root@localhost ~]#
其中:
root 当前登陆用户
localhost 主机名
~ 当前所在目录(家目录)
如果是root代表/root;
如果是普通用户user1代表/home/user1
# 超级用户的提示符#
普通用户提示符$
ls [选项] [文件或目录]
选项:
-a 显示所有文件,包括隐藏文件
-l 显示详细信息
-h 人性化显示文件大小
查询所在目录位置 : pwd
//英文全拼 : print working directory
cd [目录]
命令英文原意: change directory
简化操作:
cd ~ :切换到用户目录(家目录)
cd :切换到用户目录
cd - :切换到上一个访问目录
cd .. :切换到上一级目录
cd . :切换到当前目录
touch 文件名 :创建文件
//make directories
-p 递归创建 多级文件夹
mkdir 目录名 :创建目录
mkdir -p xx/yyy/zz :创建多级目录
remove empty directory
//remove
rm -rf [文件或目录]
命令英文原意:remove
选项:
-r 递归删除目录
-f 强制
rm -r 目录 :递归文件夹 带提示
rm -f 文件 :删除文件
rm -rf 文件/文件夹 :递归删除,无提示
禁止: rm -rf /* 删除所有文件
cp [选项] [原文件或目录] [目标目录]
命令英文原意:copy
选项:
-r 复制目录
cp 源文件 备份文件 :备份文件
cp -r 源目录 目标目录
mv [原文件或目录] [目标目录]
命令英文原意:move
mv 文源文件件 目标文件目录 :剪切
mv 源文件 不存在的文件 :重命名
mv 源文件 文件夹/不存在的文件 :剪切重命名
whereis 命令名
#搜索命令所在路径及帮助文档所在位置
选项:
-b 只查找可执行文件
-m 值查找帮助文件
whereis 命令名 :搜索命令所在来的路径与帮助文档所在的位置
-----------------------------------------------------
which 命令名
#搜索命令所在路径及别名
which 命令名:搜索命令所在路径与别名
------------------------------------------------------\
PATH环境变量:定义的是系统搜索命令的路径
相当于window下的path
echo $PATH : 查看环境变量
find [搜索范围] [搜索条件]
示例:
find / -name install.log
#避免大范围搜索,会非常耗费系统资源
#find是在系统当中搜索符合条件的文件名.如果需要匹配,使用通配符匹配,通配符是完全匹配
find /root -iname install.log #按名字查询: 不区分大小写
find /root -user root #按照所有者搜索
find /root -nouser #查找没有所有者的文件
* 匹配任意内容
? 匹配任意一个字符
[] 匹配任意一个中括号内的字符
-----------------------------------------------------
find /var/log -mtime +10
#查找10天前修改的文件
-10 10天内修改文件
10 10天当天修改的文件
+10 10天前修改的文件
atime 文件访问时间
ctime 改变文件属性时间
mtime 修改文件时间
---------------------------------------------------
find / -size 25k
#查找文件大小是25KB的文件,注意k是小写的.
-25k 小于25KB的文件
25k 等于25KB的文件
+25k 大于25KB的文件
find / -size 25M
#查找文件大小是25MB的文件,注意M是大写的.
--------------------------------------------------
find /etc -size +20k -a -size -50k
#查找/etc/目录下,大于20KB并且小于50KB的文件
-a and 逻辑与,两个条件都满足
-o or 逻辑或,两个条件满足一个即可
find /etc -size +20k -a -size -50k -exec ls -lh {} \;
#查找/etc/目录下,大于20KB并且小于50KB的文件,并显示详细信息
#-exec {} \;这是固定格式
grep [选项] 字符串 文件名
#在文件当中匹配符合条件的字符串
选项:
-i 忽略大小写
-v 排除指定字符串
//cat anaconda-ks.cfg 查看内容
//grep timezone anaconda-ks.cfg
经典使用:
ps(进程) -ef |grep java
man ls
#查看ls的帮助
man 命令名 :查看帮助命令 f b 键翻页 q退出
命令 --help #获取命令选项的帮助
//实例:ls --help
命令 --help :简洁版帮助
但是不适用内部命令,如cd:
help cd
命令特殊时,使用
help 命令 比如: help cd
压缩 :
zip 压缩文件名 原文件 #压缩文件
zip -r 压缩文件名 原文件
//先安装zip 软件
//yum install zip
//yum install -y zip : 不带确认的安装
//卸载: yum remove
zip 压缩文件名 原文件 :压缩文件
zip a.zip a.txt
zip -r 压缩文件名 原文件夹 :递归要是文件夹 【如果不指定递归压缩,仅仅是压缩文件夹】
(特别留意 -r 操作 不然只是压缩一个空文件)
zip -r bb.zip bb
-----------------------------------------------------
unzip 压缩文件
#解压缩.zip文件
unzip 压缩文件名 ;解压
其实.tar.gz格式是先打包为tar格式,在压缩为.gz格式
打包命令:
tar -cvf 打包文件名 源文件
选项:
-c 打包
-v 显示过程
-f 指定打包后的文件名
tar -cvf learn.tar learn
解打包命令:
tar -xvf 打包文件名
选项:
-x 解打包
// 压缩 :
tar -zcvf 压缩包名.tar.gz 源文件
选项:
-z 压缩为.tar.gz格式
tar -zcvf learn.tar.gz learn
---------------------------------------------
//解压
tar -zxvf 压缩包名.tar.gz
选项:
-x 解压缩.tar.gz格式
#加上-C表示解压到指定的目录
tar -zxvf 压缩包名.tar.gz -C 指定目录
tar -zxvf learn.tar.gz -C ./
shutdown [选项] 时间
选项:
-c 取消前一个关机命令
-h 关机
-r 重启
//使用shutdown会在关机的时候帮我们保存数据
shutdown -c :取消上一个关机命令
//shutdown -h 时间 :多少时间后关机
//shutdown -h now :马上关机
//shutdown -f :重启
// w + 用户名
命令输出:
USER 登陆的用户名
TTY 登陆终端
FROM 从哪个IP地址登陆
LOGIN@ 登陆时间
IDLE 用户闲置时间
JCPU 指的是和该终端连接的所有进程占用时间.这个事件并不包括去后台作业的时间,但却包括当前正在运行的后台作业所占用时间;
PCPU 是指当前进程所占用的时间
WHAT 当前正在运行的命令
//磁盘使用情况 df
df:用于显示磁盘的使用情况
df -h: 格式化显示输出磁盘使用情况
-----------------------------------------
//查看任务进程
第三行:cpu状态
6.7% us — 用户空间占用CPU的百分比。
0.4% sy — 内核空间占用CPU的百分比。
0.0% ni — 改变过优先级的进程占用CPU的百分比
92.9% id — 空闲CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
0.0% si — 软中断(Software Interrupts)占用CPU的百分比
第四行:内存状态
8306544k total — 物理内存总量(8GB)
7775876k used — 使用中的内存总量(7.7GB)
530668k free — 空闲内存总量(530M)
79236k buffers — 缓存的内存量 (79M)
------------------------------------------------
//查看内存占用
total:内存总数;
used:已经使用的内存数;
free:空闲的内存数;
buffers Buffer:缓存内存数;
cached Page:缓存内存数。
----------------------------------------------
//查看操作历史
history
// cat
整个文件的内容显示出来
--------------------------------------
// tail
默认在屏幕上显示指定文件的末尾10行
参数:
-f 显示文件最新追加的内容。
-行数 在屏幕上显示指定文件的末尾参数设置的行数
三种模式:
编辑模式(命令模式) :所有的机键动作都会理解为编辑整个文档的操作,默认为编辑模式
输入模式:大部分机键动作都会理解为输入的字符
末行模式:在末行模式,输入很多文件管理命令
模式之间的相互转换:
编辑-->输入
i:在光标所在字符前开始插入
a:在光标所在字符后开始插入
o:在光标所在行的下面另起一新行插入
s:删除光标所在的字符并开始插入
-----------------------------------------
I:在光标所在行的行首开始插入 如果行首有空格则在空格之后插入
A:在光标所在你行的行尾开始插入
O:在光标所在行的上面另起一行开始插入
S:删除光标所在行并开始插入
输入模式-->编辑模式
ESC(键盘左上方的按键)
编辑模式--->末行模式
:
末行模式:-->编辑模式
ESC(键盘左上方的按键)(一次或者多次)
打开文件
vi /path/to/file
关闭文件
在末行模式下
wq: 保存退出
q!: 退出不保存
dd: 删除光标所在行 (编辑模式)
3dd:从光标行开始删除3行(编辑模式)
: 1,4d 删除第一行到第四行(末行模式)
yy 复制光标所在行 (编辑模式)
2yy 从光标行开始复制2行(编辑模式)
p: 粘贴命令
文件的查找
/parttern 从前往后查找
?parttern 从后往前查找
n: 下一个匹配的字符串
N: 上一个匹配的字符串
文本的替换(末行模式)
startNum,endNums/partter/string/gi
g:全局替换
i:忽略大小写
%s/f/F/gi
:.,$s/F/f/gi
/关键字 按n找下一个
set number 设置行号
或者
set nu
取消行号
set nu!
计算资源:(一切皆文件)
权限:定义资源或服务的访问能力,称之为权限
定义某一个特定的人资源或者服务的访问能力, 用户
定义一类用户具有访问某个资源或服务的能力. 用户组(存放一些列用户的容器),同时用户组还拥有具有访问某个资源的权限
定义一个资源的权限:
① 用户具有该资源的权限(文件所有者,属主)
② 用户组具有该资源的权限(属组)
③ 其他用户(既不是属主,也不是属组)
文件权限:
r, 可读 可以执行类似cat命令的操作
w, 可写 可以编辑或者删除此文件
x 可执行
----------------------------------------------------------
//useradd创建用户 :useradd [用户名]
创建用户并分配一个组:useradd -G [组名] [用户名]
查看系统用户:cat /etc/passwd
用户的gid,linux的用户都会有两个ID,一个是用户uid,一个是用户组id,
-----------------------------------------------------------
//groupadd 查看系统用户组:cat /etc/group
------------------------------------------------------------
//usermod 修改用户组属性
usermod -G [组名] [用户名]
------------------------------------------------------------
//userdel 删除用户:
-f:强制删除用户,即使用户已登录
-r:删除与用户相关的所有文件。
-----------------------------------------------------------
//passwd 用户名
切换用户: su 用户名
-rw-r--r--- 文件类型(- 文件 d 目录 I 软链接文件)
rw- r-- r--
u所有者 g所属组 o其他人
r读 w写 x执行
chmod [选项] 模式 文件名
选项
-R 递归
模式
chmod [guoa] [+-=] [rwx] //u user o other a all
chmod u+x 文件
chmod u+x,o+w aa.txt
修改权限的方式:
chmod u+x 文件
#给当前用户添加指定文件的x执行权限
chmod g+w,o+w 文件
#给该文件用户组合其他人添加指定文件的w写的权限
chmod a=rwx 文件
#给该文件的当前用户,当前组,其他人 添加rwx可读可写可执行的权限
权限的数字表示
r 4
w 2
x 1
111--->7 rwx
110--->6 rw-
100--->4 r--
示例:
rwxr-xr-x
7 5 5
chmod 755 文件
chown 用户名 文件名
chgrp 组名 文件名
root把本来只能超级用户执行的命令赋予普通用户执行.
sudo的操作对象是系统命令
//visudo
#实际修改的是/etc/sudoers文件
root ALL=(ALL) ALL
#用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
%wheel ALL=(ALL) ALL
#%组名 被管理注解的地址=(可使用身份) 授权命令(绝对路径)
// 谁 在什么地方 可使用什么身份 被授予的什么权利
1.dafei ALL = (ALL) /usr/sbin/shutdown (复制放在visudo文件内 root 后面 )
2.sudo shutdown -h //更新 告诉这个命令是被授权的命令
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3gPWLy4O-1598764876675)(C:\Users\白米白9999\AppData\Roaming\Typora\typora-user-images\1598417129667.png)]
systemctl是CentOS7的服务管理工具中主要的工具
启动服务:systemctl start <服务名>
关闭服务:systemctl stop <服务名>
重启服务:systemctl restart <服务名>
查看服务状态:systemctl status <服务名>
添加开机启动项:systemctl enable <服务名>
禁止开机启动项:systemctl disable <服务名>
查看开机启动项:systemctl list-unit-files
用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。
ps -ef 显示出的结果:
1.UID 用户ID
2.PID 进程ID
3.PPID 父进程ID
4.C CPU占用率
5.STIME 开始时间
6.TTY 开始此进程的TTY----终端设备
7.TIME 此进程运行的总时间
8.CMD 命令名
ps -ef | grep 进程名
kill -9 pid(进程id)
网络的基本概念
1)ip地址:在网络通信中主机的标识符(好比手机号码)
//网卡 进行数据转换的一个硬件
2)mac地址:网卡硬件的身份证号码 ;主机的物理网卡的唯一标识符(好比身份证号码),
3)子网掩码:用于区分主机的IP地址中的网络地址和主机地址,并由此确定该主机的IP地址的网段
4)网关:就是一个网络中的主机连接到另一个网络的主机的关口//硬件.软件,协议处理 ,软件 :协议转换
5)DNS:域名解析服务器,把域名解析成对应的IP地址
//将用户输入的域名转换成ip ,DNS服务器,有2种 ,一种本地DNS服务器,一种远程DNS服务器
C:\Windows\System32\drivers\etc\hosts
//用户在浏览器中输入地址后 www.baidu.com ,浏览器先从本地hosts(文件),(本地DNS服务器)中查找www.baidu.com 这个域名对应的ip
//如果能找到直接通过这个ip访问
//如果找不到,沿着网线找最近的远程DNS服务器,然后解析DNS服务器缓存域名ip转换表
文件 /etc/sysconfig/network-scripts/ifcfg-eth0在/etc/sysconfig/network-scripts在这个目录下面,存放的是网络接口(网卡)的脚本文件(控制文件)
ifcfg-eth0是默认的第一个网络接口,
如果机器中有多网络接口,那么名字就将依此类推ifcfg-eth1,ifcfg-eth2,ifcfg-eth3......(这里面的文件是相当重要的,涉及到网络能否正常工作)。
TYPE=Ethernet #网卡类型
DEVICE=eth0 #网卡接口名称
ONBOOT=yes #系统启动时是否自动加载
BOOTPROTO=static #启用地址协议 --static:静态协议 --bootp协议 --dhcp协议
IPADDR=192.168.1.11 #网卡IP地址
NETMASK=255.255.255.0 #网卡网络地址
GATEWAY=192.168.1.1 #网卡网关地址
DNS1=8.8.8.8 #网卡DNS地址
BROADCAST=192.168.1.255 #网卡广播地址
centos7的防火墙程序服务名为:firewalld
防火墙配置命令:firewall-cmd
防火墙帮助:
fireweall-cmd --help
查看防火墙状态:
firewall-cmd --state
查看所有打开的端口:
firewall-cmd --zone=public --list-ports
开启端口:
firewall-cmd --zone=public --add-port=端口号/tcp --permanent(--permanent参数为永久生效,不加则重启后失效)
更新防火墙规则:
firewall-cmd --reload
删除端口:
firewall-cmd --zone=public --remove-port=端口号/tcp --permanent
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
软件包管理器: 软件的安装,卸载,查询等功能
后端工具: rpm, dpt
// rpm:RedHat package Management
是Linux界的软件管理的一个工业标准
dpt: debian的一个包管理器
依赖管理:
X --->Y ---Z
X --->Y ---X
//前端工具: yum: 基于后端工具的软件包的管理,主要是解决rpm安装软件的时候的依赖的解决
apt-get
rpm 常用命令
安装一个包
# rpm -ivh <包名>
rpm -ivh --nodeps <包名> : 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。
--force 即使覆盖属于其它包的文件也强迫安装
查询一个包是否被安装
# rpm -q <软件名>
得到被安装的包的信息
# rpm -qi < 软件名>
列出该包中有哪些文件
# rpm -ql < 软件名>
列出服务器上的一个文件或目录属于哪一个RPM包
#rpm -qf <文件或目录名>
列出所有被安装的rpm package
# rpm -qa
卸载一个包
# rpm -e <软件名>
有安装包,知道依赖关系使用rpm
ewall-cmd --zone=public --add-port=端口号/tcp --permanent(–permanent参数为永久生效,不加则重启后失效)
更新防火墙规则:
firewall-cmd --reload
删除端口:
firewall-cmd --zone=public --remove-port=端口号/tcp --permanent
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
## Linux的应用
## 软件的安装
```java
软件包管理器: 软件的安装,卸载,查询等功能
后端工具: rpm, dpt
// rpm:RedHat package Management
是Linux界的软件管理的一个工业标准
dpt: debian的一个包管理器
依赖管理:
X --->Y ---Z
X --->Y ---X
//前端工具: yum: 基于后端工具的软件包的管理,主要是解决rpm安装软件的时候的依赖的解决
apt-get
rpm 常用命令
安装一个包
# rpm -ivh <包名>
rpm -ivh --nodeps <包名> : 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。
--force 即使覆盖属于其它包的文件也强迫安装
查询一个包是否被安装
# rpm -q <软件名>
得到被安装的包的信息
# rpm -qi < 软件名>
列出该包中有哪些文件
# rpm -ql < 软件名>
列出服务器上的一个文件或目录属于哪一个RPM包
#rpm -qf <文件或目录名>
列出所有被安装的rpm package
# rpm -qa
卸载一个包
# rpm -e <软件名>
有安装包,知道依赖关系使用rpm