为什么需要使用linux操作系统?

  1. 性能问题:windows服务器操作系统不如linux高
  2. 稳定性问题:
  • 底层架构:linux更加稳定,其开机时间可以达到好几年不关机
  • 开源:因为开源,人人都可以看到源代码,就可以为其提供自己的补丁,补丁可以提高稳定性和安全性
  1. 安全性问题:
  • linux操作系统,相对于windows操作系统更加安全
  1. 远程管理方面:
  • windows:输入mstsc
  • windows不及linux操作高效
  1. 服务器价格昂贵:
  • 需要对资源进行充分利用,充分把计算机资源用到项目上(访问并发、性能),而不是把资源浪费在图形化界面或者方便程度上

linux命令总结

一、linux文件目录

linux一切皆文件

在这里插入图片描述

  • bin目录:binary 二进制,该目录中存储的是一些二进制文件,文件都可以被运行
  • dev目录:该目录中主要存放的是外接设备,例如盘、其他的光盘等。在其中的外接设备是不能直接被使用的,需要挂载(类似windows下的分配盘符)
  • etc目录:该目录主要存储一些配置文件
  • home目录:表示除了root用户以外,其他用户的家目录(类似windows下的user用户目录)
  • proc目录:process进程,该目录中存储的是linux运行时候的进程(一般不要打开,容易卡屏)
  • root目录:该目录是root用户自己的家目录
  • sbin目录:super binary,该目录也是存储一些可以被执行的二进制文件,但是必须得有super权限的用户才能执行
  • tmp目录:temporary临时的,当系统运行时产生的临时文件会在这个目录下
  • usr目录:存放的是用户自己安装的软件(类似windows下的program files)
  • var目录:存放的程序/系统的日志文件的目录
  • mnt目录:当外接设备需要挂载的时候,就需要挂载到mnt目录下

二、linux的基本指令

# 指令主体 [选项] [对象]

1. 基础指令

(1) 列出文件 ls

ls :list列出文件
ls 路径: 列出指定路径下的所有文件(./当前目录下; …/上级目录下; /表示根路径)
ls -l 路径:表示以详细列表的形式展现所有信息
ls -la 路径:显示所有文件包含隐藏文件
ls -lh 路径:显示问文件大小可读性较高的形式

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
第一列的第一位:d表示文件夹,-表示文件
linux中的隐藏文件都以.开头

蓝色的名称表示文件夹,黑色的表示文件,绿色的表示全部权限

(2) 打印当前路径 pwd

pwd:print working directory打印当前路径
在这里插入图片描述

(3) 切换目录 cd

cd 路径: change directory切换当前工作目录
cd ~:切换到当前用户的根路径
在这里插入图片描述

(4) 创建目录 mkdir

mkdir 路径:make directory 创建目录
mkdir -p 路径:可以一次性创建多层不存在路径
在这里插入图片描述

(5) 创建文件 touch

touch 文件路径:创建文件
在这里插入图片描述

(6) 复制文件 cp / 跨机拷贝 scp

cp 被复制的文件路径 复制目标路径:copy复制(复制过程支持改名)
cp -r 被复制的文件夹路径 目标路径:-r表示递归复制,否则目录将被忽略
在这里插入图片描述
在这里插入图片描述

scp 文件 root@目标服务器ip:文件地址 :将文件 拷贝到 目标服务器
在这里插入图片描述

(7) 剪切文件 mv

mv 需要移动的文档 目标路径:move移动,剪切,重命名
在这里插入图片描述

(8) 删除文件 rm

rm 文件 :移除/删除命令
rm -f 文件:-f(force强制)强制删除命令(没有中间的提示了)
在这里插入图片描述
*:通配符,表示任意字符
在这里插入图片描述

(9) 编辑文件 vim

vim 文件路径:打开一个文件(文件可存在也可以不存在)
点击esc,shift+冒号,输入q 退出 回车:退出

a. vim的打开方式:
  • vim 文件路径 :打开指定的文件
  • vim +数字 文件路径 :打开指定的文件,并且将光标移动到指定行
  • vim +/关键词 文件路径:打开指定的文件,并且高亮显示关键词
  • vim 文件路径1 文件路径2 文件路径3:同时打开多个文件
    在这里插入图片描述
b. 光标移动
  • 光标移动到行首:按键shift+6 : ^
  • 光标移动到行尾:按键shift+4 : $
  • 光标移动到首行:按键gg
  • 光标移动到末行:按键G
  • 光标向上翻屏:按键ctrl+b 或者PgUp
  • 光标向下翻屏:按键crtl+f 或者PgDn

补充:

  • 快速移动 :数字↑ 数字↓ 数字← 数字→
  • 英文冒号,输入数字
c. 复制-粘贴 / 剪切/删除-粘贴
  • 复制光标所在行:按键yy
    粘贴:在想粘贴的地方 按键p
  • 以光标所在行为准,向下复制指定行数:按键 数字yy
  • 可视化复制:ctrl+v ,利用光标选择复制区域
  • 剪切/删除光标所在行:按键dd
  • 剪切/删除光标所在的当前行之后,下一行不上移,显示空白行:D
d. 撤销/恢复
  • 撤销: 输入冒号,输入u
  • 恢复:ctrl+r
e. 末行模式操作

esc

  • :w ——保存
  • :w 路径 ——另存为
  • :q —— 退出文件
  • :wq —— 保存并退出
  • :q! —— 强制退出
  • 在vim内部调用外部命令 :! 外部命令
f. 搜索/查找
  • /关键词 :查找关键词,会高亮显示
  • N/n:搜索结果切换上/下一个结果
  • :nohl :nohightlight 取消高亮
  • :s/搜索的关键词/新的内容:替换光标所在行符合条件的第一个
  • :s/搜索的关键词/新的内容/g:替换光标所在行的全部符合条件的内容
  • :%s/搜索的关键词/新的内容/g:替换光标所有符合条件的内容
  • :set nu:显示行号
  • :set nonu:取消显示行号
    在这里插入图片描述
g. 同时打开多个文件
  • :files :显示同时打开的多个文件,#表示上一个活跃文件,%a表示当前活跃文件
  • :bn:切换到下一个文件
  • :bp:切换到上一个文件
    在这里插入图片描述
h. 编辑模式
  • i:在光标前插入insert
  • a:在光标后插入after
i. 代码着色

末行模式下:

  • :syntax on:代码着色
  • :syntax off:关闭代码着色
(10) 输出重定向 >>

> : 覆盖输出,会覆盖原先的问题文件
>>: 追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加
在这里插入图片描述

(11) 查看文件 cat

cat 文件路径:直接打开一个文件
cat 待合并的文件路径1 待合并的文件路径2… 待合并的文件路径n > 合并之后的问文件路径:
在这里插入图片描述

(12) 查找文件 find / locate

locate 文件名:查找文件
find 路径 -name 值:按照文档名称进行搜索,支持模糊搜索
find 路径 -type 值:按照文档类型进行搜索(- 用f替换表示文件 或者 d文件夹)
在这里插入图片描述
type后面只能是f或者d

(13) 获取网卡配置 ifconfig

ifconfig :获取网卡信息
inet addr 显示的是IP地址

(14) 重启 reboot

reboot:重新启动计算机
reboot -w:模拟重启,但是不重启(只写关机与开机的日志信息)

(15) 关机 shutdown

shutdown -h now:立即关机
shutdown -h 23:10 "关机提示":指定时间关机

(16) 运行时间 uptime

uptime:输出计算机的持续在线时间(从开机到现在运行的时间)
在这里插入图片描述

(17) 获取操作系统 uname

uname:获取计算机操作系统的类型
uname -a:获取全部的系统信息(类型,主机名,内核版本,发布时间,开源计划)
在这里插入图片描述

(18) 压缩解压文件

yum install lrzsz 安装lrzsz工具

1. tar命令
a. 压缩 tar -cvf

tar -cvf 压缩包名字.tar 文件1 文件2 文件夹3 ... :压缩至tar文件
gzip 压缩包名字.tar:压缩tar文件归档,形成tar.gz压缩文件

b. 解压 tar -zxvf

tar -zxvf 压缩包名字.tar.gz:解压到当前目录

2. zip命令
a. 压缩 zip -r

zip -r 压缩包名字.zip 文件1 文件2 文件夹3 ...

b. 解压 unzip

unzip 压缩包名字.zip

(19) 传输文件 lrzsz (使用xshell才可用)

yum install lrzsz 安装lrzsz工具

a. 上传 rz

将文件上传到本地,默认上传到当前目录
rz

b. 下载 sz filename

sz etc/1.txt

2. 进阶指令

(1) 查看磁盘空间 df

df -h:查看磁盘空间
在这里插入图片描述

(2) 列出块设备信息 lsblk
  • lsblk:列出块设备信息
    在这里插入图片描述
(3) 磁盘扩容
  1. 查看磁盘 fdisk -l

在这里插入图片描述
新加了一块10G的磁盘做测试
在这里插入图片描述

  1. 创建物理卷 pvcreate 新加磁盘名

pvcreate /dev/sdb : /dev/sdb 为上图10.7G磁盘名
在这里插入图片描述

  1. 创建卷组vgcreate 自定义的卷组名 新加的物理卷名

vgcreate vg_test /dev/sdb:vg_test为自定义的卷组名,/dev/sdb为上图的物理卷名
查看卷组:vgs
在这里插入图片描述

  1. 创建逻辑卷 lvcreate -l 100%VG -n 自定义的逻辑卷名 新加的卷组名

lvcreate -l 100%VG -n lv_10g vg_test:-l 按百分比配置大小、-n 设置逻辑卷的名称为lv_10g、vg_test 创建的逻辑卷从vg_test中选择
查看逻辑卷:lvs
在这里插入图片描述
查看逻辑卷路径:lvdisplay
在这里插入图片描述

  1. 格式化逻辑卷 mkfs -t xfs 逻辑卷路径

mkfs -t xfs /dev/vg_test/lv_10g:/dev/vg_test/lv_10g是上图逻辑卷路径

若为centos6,使用mkfs -t ext4 逻辑卷路径
在这里插入图片描述

  1. 挂载

创建挂载目录:mkdir /data
临时挂载:mount 原路径 挂载的目标路径
mount /dev/vg_test/lv_10g /data
永久挂载:编辑文件:vi /etc/fstab
在这里插入图片描述
reboot重启一下

在这里插入图片描述

(4) 查看内存情况 free

free -m:查看内存使用情况,-m以MB为单位查看
在这里插入图片描述
剩余真实可用内存为827MB

(5) 查看文件
a. head

head -n 文件路径:不指定n(数字),默认查看前10行
在这里插入图片描述

b. 动态查看 tail

tail -n 文件路径:不指定n,默认查看末尾10行
tail -f 文件路径:动态查看文件
tail -F 文件路径:动态查看文件

c. less

less 需要查看的文件路径:以较少的内容进行输出,回车,空格键,上下键查看更多内容

(6) 统计文件内容 wc

wc -lwc:统计文件内容信息,包含-l(lines)行数,-w(words)单词数,-c(bytes)字节数
在这里插入图片描述

(7) 日期 date

date: 输出当前日期
date +%F:以特定格式显示当前日期
date "+%Y-%m-%d":以特定格式显示当前日期
date "+%F %T" :以特定格式显示当前日期
date "+%Y-%m-%d %H:%M:%S" :以特定格式显示当前日期
date -d “-1 day” “+%F”:前一天的日期
在这里插入图片描述

(8) 日历 cal

cal -1:直接输出当前月的日历
cal -3:输出上一个月,本月和下一个月
cal -y 年:输出全年的日历
在这里插入图片描述

(9) 清屏 clear

clear:清除终端中已经存在的命令和结果,或者快捷键ctrl+L

(10) 过滤管道 |

|过滤,特殊,扩展处理
ls |grep e:过滤出当前目录下包含e的文件和文件夹,grep过滤
cat 路径|less:作用相当于less
ls \root|wc -l:统计指定路径下的文件数
在这里插入图片描述

3. 高级指令

(1) 读取主机名 hostname

hostname:读取完整的服务器主机名
hostname -f:读取主机名中的FQDN全限定域名
在这里插入图片描述

(2) 查看修改主机名 hostnamectl

hostnamectl:查看当前主机信息
hostnamectl set-hostname 新名字:修改主机名
bash:最后输入bash立即生效
在这里插入图片描述

(3) 查看用户信息 id

id:用于查看一个用户的基本信息,如果不指定,则默认当前用户
id 用户名:查看指定用户的基本信息
在这里插入图片描述
验证用户信息:通过文件cat /etc/passwd
验证用户组信息:通过文件cat /etc/group

(4) 显示当前登录用户 whoami

whoami:who am i 显示当前登录的用户名
在这里插入图片描述

(5) 查看服务器进程 ps -ef

ps:查看服务器的进程信息
ps -e:列出全部的进程
ps -f :显示全部的列
在这里插入图片描述
uid:该进程执行的用户id
pid:进程id
ppid:进程的父级进程,如果一个程序的父级进程找不到,该程序为僵尸进程
c:cpu占用率,百分数
stime:进程启动时间
tty:终端设备,发起该进程的设备识别符号,如果显示?表示该进程并不是由终端设备发起
time:进程的执行时间
cmd:该进程的名称或者对应的路径

(6) 查看进程占用资源 top

top:查看服务器的进程占的资源(退出:按q)
top,按下M:结果按照内存占用从高到低排序
top,按下P:结果按照CPU占用率从高到低排序
top,按下1:当服务器含有多个CPU的时候,可以切换显示各个CPU的详细信息
在这里插入图片描述
zombie:僵尸进程个数
PID:进程id
USER:该进程对应的用户
PR:优先级
NI:用户进程空间内改变过优先级的进程占用CPU百分比
VIRT:虚拟内存
RES:常驻内存
SHI:共享内存
计算一个进程实际使用的内存 = 常驻内存 - 共享内存
s:表示进程的状态,sleep,running
%CPU:表示CPU的占用百分比
%MEM:表示内存的占用百分比
TIME:执行的时间
COMMAND:进程的名称或者路径

(7) 查看目录大小 du -sh

du -sh:查看目录的真实大小
在这里插入图片描述

(8) 启动服务 service / systemctl

service 服务名 start/stop/restart:控制一些软件的启动/停止/重启
service httpd start:启动apache服务
systemctl start httpd:启动apache服务
在这里插入图片描述

(9) 杀死进程 kill

kill 进程id:杀死进程
killall 进程名称 :杀死进程
kill -9 进程名称:强制杀死进程

(10) 网络连接状态(协议/端口) netstat

netstat -tnlp:查看网络的连接状态

-t:只列出tcp协议的连接
-n:表示将地址从字母组合转化为ip地址,将协议转化为端口号
-l:过滤出状态列中中其值为listen监听中的
-p:表示显示发起连接的进程pid和进程名称

(11) 忘记root密码单用户登录
  1. 在启动页面按e键进入启动项选择,选择kernel选项
  2. 在rhgb quiet语句后添加 single,按回车,重新进入启动项选择
  3. 在kernel项,按b进入单用户维护模式
  4. 使用passwd命令,修改密码
(12) 帮助手册 man

man 命令:manual手册(包含了linux中全部命令手册)

4、练习

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、linux服务

1. linux运行模式

在这里插入图片描述
/etc/inittab 文件查看init命令
在这里插入图片描述
init 3 :进入纯命令模式
init 5:进入桌面模式
在这里插入图片描述

  • 安装图形界面gnome
    yum -y groups install "GNOME Desktop" "Graphical Administration Tools" 安装GUI图形界面
    systemctl set-default graphical.target 设置成默认图形模式
    systemctl set-default multi-user.target //设置成默认命令模式

2.linux用户管理

  • /etc/passwd 存储用户的关键信息
  • /etc/group 存储用户组的关键信息
  • /etc/shadow 存储用户的密码信息
(1) 添加用户 useradd

useradd -g 用户名:指定用户的用户主组,选项的值可以是用户组的id,也可以是组名
useradd -G 用户名:指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名
useradd -u 用户名:uid,用户的id,系统默认会从500之后按照顺序分配uid
在这里插入图片描述

  • 用户名:
  • 密码占位(一般都是x):
  • 用户ID:
  • 用户组ID:
  • 注释:
  • 家目录:(用户登录进入系统之后默认的位置)
  • 解释器shell(用户输入指令之后,该解释器会收集用户输入的指令,传递给内核处理)

查看用户的主组可以查看/etc/passwd文件,查看附加组可以查看/etc/group文件

(2) 修改用户 usermod

usermod -g 用户名:usermodify指定用户的用户主组,选项的值可以是用户组的id,也可以是组名
usermod -G 用户名:指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名
usermod -u 用户名:uid,用户的id,系统默认会从500之后按照顺序分配uid
usermod -l 新用户名 旧用户名:修改用户名

(3) 设置密码 passwd

linux不允许没有密码的用户登录到系统,因此前面创建的用户目前处于锁定状态,需要设置密码之后才能登录计算机

passwd 用户名:设置密码
/etc/shadow:查看用户的密码信息
在这里插入图片描述
在这里插入图片描述

(4) 切换用户 su

su 用户名(不写默认切换到root):switch user

(5) 删除用户 userdel

userdel -r:删除用户,-r删除用户的同时把家目录页删除
登录用户无法删除,先用kill登录用户的全部进程
在这里插入图片描述
ps -ef|grep 用户名:查看进程(上图出错)
kill 进程号:杀死对应用户的进程
userdel -r 用户名:删除用户

3.linux网络设置

(1) 网卡配置文件
a. 网卡配置文件路径:/etc/sysconfig/network-scripts

在这里插入图片描述

  • 在目录中网卡的配置文件命名格式:ifcfg-网卡名称
b. 查看网卡配置信息

在这里插入图片描述

  • ONBOOT:是否开机启动
  • BOOTPROTO:ip地址分配方式,DHCP动态主机分配协议
  • HWADDR:即MAC地址
c. 重启网卡命令

service network restart :重启网卡
在这里插入图片描述
如果分支版本没有service命令,则有一个共性目录:/etc/init.d 放着很多服务的快捷方式

/etc/init.d/network restart:重启网卡
在这里插入图片描述

d.创建快捷方式(软连接)

ln -s 源路径 快捷方式的路径:创建快捷方式
在这里插入图片描述

e. 扩展

ifdown 网卡名:停止某个网卡
ifup 网卡名:开启某个网卡
在这里插入图片描述

4. SSH服务

ssh (secure shell,安全外壳协议):该协议有2个常用的作用,远程连接协议,远程文件传输协议,默认协议端口号22

  • 如果需要修改端口号,就要修改ssh服务配置文件,路径:/etc/ssh/ssh_config
(1) 服务启动/关闭/重启
  • 方法一
    在这里插入图片描述
  • 方法二
    在这里插入图片描述
(2) 重用终端设备

终端设备使用了ssh协议(远程连接,远程文件传输)

  • Xshell
  • secureCRT
  • PuTTY
(3) 允许root直接登录
  1. sudo nano /etc/ssh/sshd_config 使用nano编辑文件
  2. 将下面代码注释去掉或者添加以下语句:
    PermitRootLogin yes
    PasswordAuthentication yes
  3. ctrl+x之后,按y,再按回车,进行退出保存。
  4. 重启ssh服务: sudo systemctl restart sshd 或者sudo service sshd restart

5. 设置主机名

hostname:查看主机名
hostname -f:全限定域名FQDN
在这里插入图片描述
hostname 新主机名: 临时设置主机名
在这里插入图片描述
②永久设置主机名
找到主机名的配置文件: /etc/sysconfig/network
修改HOSTNAME值
在这里插入图片描述
③设置主机名之后,还没有生效:修改linux服务器的hosts文件: /etc/hosts
在这里插入图片描述
在localdomain4 后面加

6. chkconfig开机启动项管理

  • chkconfig --list:列出开机启动列表
    在这里插入图片描述
    0-6:表示启动模式
  • chkconfig --del 服务名:删除开机启动启动管理服务
  • chkconfig --add 服务名:添加开启启动管理服务
    在这里插入图片描述
  • chkconfig --level 连在一起的启动模式 服务名 on:设置服务在某些模式下开机启动
  • chkconfig --level 35 服务名 off:设置服务在3,5模式下开机不启动
    在这里插入图片描述

7. ntp服务

ntp作用:主要用于对计算机的时间同步管理操作
在这里插入图片描述
同步服务器时间:

  • 手动同步 :ntpdate 时间服务器ip
  • 通过服务自动同步 ntpd服务:service ntpd start
    在这里插入图片描述

8. 防火墙服务

防火墙:防范一些网络攻击,有软件防火墙和硬件防火墙之分。

在当前的centOs6.5中防火墙有一个名称:iptables
centos7.x中默认使用的是firewalld

(1) iptables
a. 查看iptables是否开机启动

ps -ef | grep iptables:查看iptables进程
chkconfig --list | grep iptables:查看开机启动项
在这里插入图片描述

b. iptables服务启动/重启/关闭

service iptables start:iptables服务启动
service iptables stop:iptables服务关闭
service iptables restart:iptables服务重启
/etc/init.d/iptables restart:iptables服务启动
在这里插入图片描述

c. 查看iptables服务状态

service iptables status:查看iptables状态
iptables -L -n:查看iptables规则
在这里插入图片描述

d. 常用防火墙规则

iptables命令:

  • -i:表示将规则放到最前面
  • -A:add 添加规则
  • INPUT:进站请求(OUTPUT 出站请求)
  • -p:protocol指定协议,tcp/udp/icmp
  • –dport:指定端口号
  • -j:指定行为结果,允许accept/禁止reject
  • 保存规则设定操作:/etc/init.d/iptables save
  1. iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT :允许本地回环接口(运行本机访问本机)
  2. iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT :允许已建立的或相关连的通行
  3. iptables -A OUTPUT -j ACCEPT:允许所有本机向外的访问
  4. iptables -A INPUT -p tcp --dport 22 -j ACCEPT:允许访问22端口
  5. iptables -A INPUT -p tcp --dport 80 -j ACCEPT :允许访问80端口
  6. iptables -A INPUT -p tcp --dport 21 -j ACCEPT :允许访问ftp服务的21端口
  7. iptables -A INPUT -p tcp --dport 20 -j ACCEPT :允许ftp服务的20端口
  8. iptables -A INPUT -j reject :禁止其他未允许的规则进入
  9. iptables -A FORWARD -j REJECT :禁止其他未允许的规则访问

在这里插入图片描述

e. 开放防火墙端口

netstat -antp:查看已开放的端口情况
在这里插入图片描述
vi /etc/sysconfig/iptables:编辑防火墙配置文件
添加端口语句:-A INPUT -m state --state NEW -m tcp -p tcp --dport 端口号 -j ACCEPT
重启防火墙服务:service iptables restart

9. rpm服务

作用:

  • rpm的作用类似windows上的电脑管家中的软件管理等,
  • 对linux服务器上的软件包进行对应管理操作:查询、卸载、安装
(1) 查询软件包是否安装

rpm -qa | grep 关键词:查看软件包(-q:查询query,-a:全部all)
在这里插入图片描述

(2) 卸载某个软件

rpm -e 关键词:卸载某个软件
rpm -e 关键词 --nodeps:忽略依赖关系,强制卸载

(3) 安装某个软件
a. 软件包的获得
  • 去官网去下载

  • 从光盘中读取(或者镜像文件)

  • 扩展:查找块中设备的信息:lsblk(list block devices),mountpoint 挂载点,类似windwos的盘符

  • 光盘的挂载与解挂:

    • 解挂:umount 当前设备的挂载点(即路径)
    • 挂载:mount 设备原始地址 要挂载的位置路径(设备原始地址:统一都在/dev下,然后根据大小确定具体name值,挂载目录一般都在mnt下)

在这里插入图片描述

b. 安装软件

rpm -ivh 软件包完整名称:安装软件(-i:install安装,-v:进度条,-h:以#形式显示进度条)
在这里插入图片描述

10. 计划服务 cron / crontab

crontab -l :list列出指定用户的计划任务列表
crontab -e:edit编辑指定用户的计划任务列表
crontab -u:user指定用户名,如果不指定,默认当前用户
crontab -r:remove 删除指定用户的计划任务列表

计划任务一行为一个计划:
**分 时 日 月 周 需要执行的命令**
例如: 0 0 * * * reboot 每天00分重启

*表示通配符,
-表示连续区间,
/表示每多少个,如每10分钟 */10, 
,表示多个取值

在这里插入图片描述

*/1 * * * * date "+%F %T" >> /root/RT.txt:每隔1分钟往root家目录中的RT.txt中输入当前的时间信息

a. 任务程序黑名单
  • 超级管理员可以通过配置来设置某些用户不允许设置计划任务:/etc/cron.deny
  • 里面写用户名,一行一个
b.任务程序白名单
  • 超级管理员可以通过配置来设置某些用户允许设置计划任务:/etc/cron.allow(不存在,可自己创建)
  • 里面写用户名,一行一个

tab键:补全命令

四、 Linux权限管理操作

1. 权限身份介绍

linux系统一般将文件可存/取访问的身份分为3个级别:owner,group,others,且三种身份各有read,write,execute等权限。

  • owner:文件所有者,默认为文档创建者
  • group:与文件所有者同组的用户
  • others:其他人
  • root:超级用户

2. 权限的查看

ls -l 路径:查看详细信息(-a 显示隐藏文件)
ll 路径:等价于ls -l,查看详细信息
在这里插入图片描述
首字母d是文件夹,-是文件
在这里插入图片描述
rwx顺序不变,-表示没有对应权限
在这里插入图片描述

3. 权限设置

  • 权限操作者:root用户 或者 owner用户
  • 不指定谁,默认all
  • linux中,如果要删除一个文件,不是看文件有没有对应的权限,而是看文件所在的目录是否有权限,如果有才能删除

chmod -R 权限模式 文件/文件夹路径:权限设置,-R表示递归设置权限(用于文件夹权限)

(1) 字母形式设置

在这里插入图片描述

chmod u+x,g+rx,o+r 1.cfg:给1.cfg文件(-rw------)设置权限,所有者拥有所有权限,同组用户拥有读和执行权限,其他用户只读权限
chmod u=rwx,g=rx,o=r 1.cfg:①的同等功能

(2) 数字形式设置

rwx 二进制形式 ,011=3可写可执行
在这里插入图片描述
chmod 754 1.cfg:给1.cfg文件(-rw------)设置权限,所有者拥有所有权限,同组用户拥有读和执行权限,其他用户只读权限

4. 属主与属组设置

属主:所属的用户(文件的主人)
属组:所属的用户组

(1) 更改文档的所属用户 chown

chown -R 用户名 文件夹路径:递归更改文件所属用户
chown 用户名 文件路径:更改文件所有者
在这里插入图片描述

(2) 更改文件所属组 chgrp

chgrp -R 用户组名 文件夹路径:递归更改文件所属组
chgrp 用户组名 文件路径:更改文件所属组
chown -R 用户名:用户组名 文档路径 : 同时该用户和组名

4. 切换用户操作 sudo

sudo(switch user do),让root用户事先定义某些特殊命令谁可以执行

sudo配置文件:/etc/sudoers

  • a. 配置sudo文件使用visudo打开,之后使用方法和vim一致
  • b. 配置用户操作权限
    在这里插入图片描述
    • root:表示用户名,如果用用户组,写成 %组名
    • all:表示允许登录的主机,
    • (all):表示以谁的身份执行,all表示root
    • all:表示当前用户可以执行的命令,多个命令用,分隔

在写sudo规则的时候不建议写直接形式的命令,而是写命令的完整路径,路径可以使用
which 指令名称 查看

输入visudo添加命令:
在这里插入图片描述
为用户添加完命令之后,执行的时候要加 sudo useradd 用户名sudo passwd 用户名
在这里插入图片描述
在这里插入图片描述
passwd root命令不可执行 !/usr/bin/passwd root

五、网络相关命令

1. 检测主机连通性 ping

ping 主机地址(ip,主机名,域名等):检测当前主机与目标主机之间的连通性

与windows的区别:linux数据包默认一直发送(类似windows中的 ping 地址 -t),windows默认发送4个数据

2. 查看网络的连接信息 netstat

netstat -tnlp:查看网络的连接信息(-t:tcp协议,-n:将字母转化为数字,-l:监听,-p:进程相关信息)
netstat -an:-a表示全部
在这里插入图片描述

3. 查看路由信息 traceroute

traceroute 目标主机:查看当前主机与目标主机之间所有的网关(路由信息),会给沿途各个路由器发送icmp数据包【类似windows的tracert 目标主机
在这里插入图片描述

4. 查看mac表 arp

地址解析协议,arp(address resolution protocol):根据IP地址获取MAC地址的协议
arp -a:查看本地mac表
arp -d ip地址 :删除mac表中某条记录
在这里插入图片描述

5. 抓取数据包 tcpdump

作用:抓取数据包

  • tcp 协议
  • tcpdump port 端口
  • tcpdump host 地址
  • tcpdump -i 网卡设备名
    在这里插入图片描述
    18:02:21.466646 监听数据的时分秒
    IP 使用的协议类型
    192.168.15.151 数据包的方向(来自)
    > 数据流向
    117.18.237.29 数据包的另外一个方向(到达)
    在这里插入图片描述

六、shell入门

shell是一种C语言编写的程序,是命令语言,也是一种程序设计语言。

1. 代码规范

#!/bin/bash:【注释】指定告知系统当前这个脚本要使用的shell解释器
文件命名规范:文件名.sh

.sh 是linux下bash shell的默认后缀

2. shell基础

① 创建.sh文件:touch或者vim
② 编写shell代码
③ 执行shell脚本:脚本必须得有执行权限
在这里插入图片描述
在这里插入图片描述

  • 案例:创建test2.sh,实现shelltest用户创建,并在其家目录中新建文件try.html
#!/bin/bash
useradd shelltest
touch /home/shelltest/try.html
  • 执行文件方式:
    • ./test2.sh
    • /bin/bash test2.sh

3. shell进阶

(1) 变量
a. 变量定义
  • 定义变量:name=“value”(变量后面的等号左右两边不能有空格
  • 使用变量:echo $class name(变量前要添加$符号
b. 变量规范
  • 变量后面的等号左右不能有空格
  • 变量命名只能使用英文字母、数字和下划线,首字母不能以数字开头
  • 变量中间不能有空格,可以使用下划线_
  • 变量不能使用标点符号
  • 不能使用bash里的关键字(可以使用help命令查看保留关键字)

双引号能够识别变量,双引号可以实现转义
单引号不能识别变量只能直接字符串式输出,单引号不能转义
在这里插入图片描述
反引号(esc键下方的那个键):当脚本中需要执行一些指令并且将执行的结果赋给变量的时候需要使用反引号 `

c. 只读变量

readonly 变量名:声明变量为只读变量
在这里插入图片描述

d. 删除变量

unset 变量名:删除变量

(2) 接收用户输入

read -p 提示信息 变量名:接收输入,将输入作为参数赋给变量

  • 案例:要求执行之后提示用户输入文件的名称(路径),然后自动为用户创建该文件

在这里插入图片描述

(3) 条件判断语句
  • 语法一:一个条件
if condition
then
	command1
	command2
	...
fi

单行写法:if[condition];then command;fi

  • 语法二:二个条件
if condition
then 
	command1
	command2
	...
else
	command
fi
  • 语法三:多个条件
if condition1
then
	command1
elif condition2
then
	command2
...
else 
	commandN
fi
a. 算术运算符

在这里插入图片描述
expr表达式计算工具:用反引号括起来,表达式和运算符之间要有空格,例如:var=`expr`空1空+空2
在这里插入图片描述
注意空格,运算符前后要有空格
在这里插入图片描述

b. 关系运算符

关系运算符只支持数字,不支持字符串,除非字符串的值是数字

在这里插入图片描述
-eq:equal
-ne:not equal
-gt:great than
-lt:less than
-ge:great than or equal
-le:less than or equal

c. 逻辑运算符

在这里插入图片描述
在这里插入图片描述

d. 字符串运算符

在这里插入图片描述

e. 文件测试运算符

在这里插入图片描述
在这里插入图片描述

f. shell脚本附带选项

接收命令参数:
例如:./test.sh a b c
通过脚本 $1 获取a值,$2 获取b值, $3 获取c值

g. 练习:自定义指令

user -add 添加用户
user -del 删除用户及其家目录
在这里插入图片描述
在这里插入图片描述

七、MySQL

1. 软件安装方式

(1) 源码包
  • 使用源码编译安装方式,可安装ncurses一种常用的终端库
    在这里插入图片描述
    配置(config/configure/bootstrap) —→ 编译(make/bootstrapd) —→ 安装(make install/bootstrapd install)

配置操作:指定软件的安装目录、需要的依赖在什么地方、指定不需要可选依赖、配置文件的路径、通用数据存储位置等等

  • 指定安装的路径:--prefix=路径
  • 需要依赖的路径:--with-PACKAGE 名=包所在位置
  • 不需要依赖:--without-PACHAGE 名

例如:

  • ./configure --prefix=/usr/local/ncurses
  • make && make install
(2) 二进制包

rpm相关指令

  • rpm -qa|grep 关键词:查看软件包
  • rpm -e 关键词 --nodeps:忽略依赖关系,强制卸载
  • rpm -ivh 软件包完整名称:安装软件
  • rpm -qf 文件路径:查询指定文件属于哪个包
    在这里插入图片描述

案例:使用二进制包安装lynx(一款纯命令行的浏览器)
在这里插入图片描述

(3) 使用yum安装
  • yum list:列出当前以及装的和可以安装的全部软件
  • yum search 名:搜索指定关键词的包
  • yum -y install 包名:安装指定的包 -y表示默认允许
  • yum -y update 包名:更新指定的包,不指定包则更新全部软件
  • yum -y remove 包名:卸载最好不要写-y,可以再次确认是否删除
    在这里插入图片描述
    在这里插入图片描述

八、MySQL安装

1. 安装

yum install mysql-server

2. MySQL初始化

service mysqld start:启动mysql服务(加d表示守护进程)
mysql_secure_installation:启动mysql,可修改root密码

3. MySQL启动控制

mysql -u 用户名 -p:进入mysql
exit:退出mysql

4. 默认目录/文件位置

数据库存储目录:/var/lib/mysql
配置文件:/etc/my.cnf

5. MySQL的基本操作

(1) 库操作

show databases; 显示mysql所有的数据库
create database; 库名; 创建新的数据库
drop database; 库名; 删除已有数据库
use 库名; 使用指定的数据库

(2) 表操作

delete from 表名;数据表内容数据清掉,自增id会保留
truncate table 表名; 自增id也一同会被清掉

(2) 备份与还原

mysqldump -u [数据库用户名] -p -A>[备份文件的保存路径]; 导出所有数据库
mysqldump -u [数据库用户名] -p [要备份的数据库名称]>[备份文件的保存路径]; 导出数据和数据结构
mysqldump -u [数据库w用户名] -p -t [要备份的数据库名称]>[备份文件的保存路径];只导出数据不导出数据结构
mysqldump -u [数据库用户名] -p -E [数据库用户名]>[备份文件的保存路径];导出数据库中的Events
mysqldump -u [数据库用户名] -p -R [数据库用户名]>[备份文件的保存路径];导出数据库中的存储过程和函数
mysql>source [备份文件的保存路径]; 从外部文件导入数据库
mysql -u root –p < [备份文件的保存路径]; 从外部文件导入数据库
mysqldump -u用户名 -p数据库名 > 导出的文件名;备份数据库

flush privileges:刷新权限表

九、Nginx

Nginx:是一款比较流行的web服务器软件,类似于Apache

1. 编译安装Nginx

① 下载nginx:nginx下载官网,选定版本,右键复制地址,
在/usr/local/src下安装:

  1. cd /usr/local/src
  2. wget http://nginx.org/download/nginx-1.18.0.tar.gz

在这里插入图片描述

② 解压安装包tar -zxvf nginx-1.18.0.tar.gz
在这里插入图片描述
③ 安装pcre:
cd /usr/local/src/:切换目录
wget https://sourceforge.net/projects/pcre/files/pcre/8.35/pcre-8.35.tar.gz --no-check-certificate :获取安装包
tar zxvf pcre-8.35.tar.gz:解压安装包
cd pcre-8.35:切换到解压后pcre目录
./configure:配置pcre
make && make install:编译安装pcre
pcre-config --version:查看pcre版本

④ 安装zlib : yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
安装ssl:yum -y install openssl openssl-devel

⑤ 配置nginx
cd nginx-1.18.0:进入nginx解压目录
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35/
–prefix指定在安装目录:/usr/local/nginx
在这里插入图片描述
⑥ 编译安装nginx
make && make install:编译安装
/usr/local/nginx -v:查看nginx版本

2. 启动nginx

/usr/local/nginx/sbin/nginx:启动nginx
/usr/local/nginx/sbin/nginx -s reload:重载,配置文件修改后执行
/usr/local/nginx/conf/nginx.conf:配置文件
如果80端口被占用,关闭apache:service httpd stop
在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐