赞
踩
目录
1.桥接模式,虚拟系统可以和外部系统通讯,但是容易造成IP冲突
2.NAT模式,网络地址转换模式,虚拟系统可以与外部系统通讯,而且不造成IP冲突
3.主机模式,独立的系统
/bin:存放最经常使用的命令
/sbin:存放系统管理员使用的系统管理程序
/home:存放普通用户的主目录,每个用户都有自己的一个目录,一般以账号命名
/root:系统管理员,超级用户主目录
/lib:系统开机所需要最基本的动态连接共享库
/lost+found:这个目录一般情况下为空,当系统非法关机,就会存放一些文件
/etc:所有的系统管理所需要的配置文件和子目录 my.conf
/usr:用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录
/boot: 存放的是启动linux时使用的一些核心文件包括一些连接文件以及镜像文件
/proc:这个目录是一个虚拟目录,它是系统内存的映射,访问这个目录来获取系统信息
/srv:service缩写,该目录存放一些服务启动后需要提取的数据
/sys:是linux2.6内核的一个很大的变化,该目录下安装了2.6内核中新出现的一个文件系统sysfs
/tmp:这个目录存放一些临时文件
/dev:类似于windows的设备管理器,把所有硬件使用文件形式存储
/media:linux系统会自动识别一些设备,例如U盘,光驱等等,识别后会将设备挂载在此目录下
/mnt:系统提供该目录是为了让用户临时挂载别的文件系统,可以将外部存储挂载在/mnt/上
/opt:这是给主机额外安装软件所摆放的目录,默认为空
/usr/local:这是另一个主机额外安装软件所需安装的目录,一般通过编译源码方式安装的程序
/var:这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件
/selinux[security-enhanced linux]:SElinux是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置
正常模式
插入模式:按下i,I,o,O,a,A,r,R任意一个即可,一般按i
点击esc输入:进入命令行模式:可提供相关指令,完成读取等操作
:q(退出) :wq(保存且退出) :q!(强制退出不保存)
一般模式下复制:yy 复制3行:3yy 粘贴:p 删除:dd 删除3行:3dd
查找单词:命令行下/关键字,回车进行查找,输入n查找下一个
设置行号:命令行下 :set nu 取消 :set nonu
在一般模式下光标移动至文档最末行输入G 移动至首行输入gg 移动至3行输入3 按下shift+g
添加用户:useradd 用户名 (-d /目录名称) 包含组:useradd -g 组名 用户名
查询用户信息: id 用户名
修改用户密码: passwd 用户名
查看当前所在目录: pwd
删除用户: userdel 用户名(一般保留家目录) userdel -r 用户名(完全删除需谨慎操作)
切换用户:su - 用户名 权限由高切换到低用户不需要输入密码反之需要,返回原来用户时使用logout/exit
查询登录用户: who am i
新增组:groupadd 组名
删除组:groupdel 组名
修改用户组:usermod -g 用户组 用户名
/etc/passwd文件:用户(user)的配置文件,记录用户的各种信息
每行含义:用户名:口令:识别号:组识别号:注释性描述:主目录:登录shell
/etc/shadow文件:口令的配置文件
每行含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group文件:组的配置文件,记录linux包含的组信息
每行含义:组名:口令:组标识号:组内用户列表
0:关机
1:单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:重启系统
常用运行级别是3和5,也可以指定默认运行级别
使用 init 切换运行级别
centos7以前,/etc/inittab文件中
multi-user.target:analogous to runlevel 3
graphical.target:anologous to runlevel 5
查看当前运行级别:systemctl get-default
设置默认运行级别:systemctl set-default TARGET.target
1,启动系统,进入开机界面,在界面中按“e”进入编辑界面
2,进入编辑界面,使用键盘上下键将光标往下移动,找到“Linux16”开头内容所在的行数,在行的最后键入 init=/bin/sh
3,输入完成后,点击快捷键,ctrl+x 进入单用户模式
4,在光标闪烁的位置输入:mount -o remount,rw / 注意:各个单词间有空格,完成后按enter
5,在新的一行最后输入:passwd,完成后按键盘的回车键(enter),输入密码,再次确认密码即可,完成后显示passwd。。。。即修改成功
6,在鼠标闪烁的位置中 输入:touch /.autorelabel (注意:couch与/.之间有空格)完成后点enter
7,在鼠标闪烁的位置中 输入:exec /sbin/init (注意:exec与/之间有空格)完成后点enter,随后系统重启,新密码生效
linux的隐藏文件是以 . 开头的选项可以组合使用如 ls - al,ls - al /root(指明文件夹)
man:获得帮助信息 如:man ls
help:获得shell内置命令的帮助信息 如:help cd
基本语法:pwd 描述:显示当前工作目录的绝对路径
基本语法:ls [选项] [目录或文件]
常用选项:
-a:显示所有目录和文件包括隐藏的
-l:以列表方式显示信息
基本语法:cd [参数] 描述:切换到指定目录
理解:绝对路径与相对路径
cd ~ 或者 cd : 回到用户的家目录
cd.. 回到当前目录的上一级目录
用于创建目录
基本语法:mkdir [选项] 目录名
常用选项
-p 创建多级目录
用于删除空目录
基本语法:rmdir [选项] 目录名
rmdir删除的是空目录,如果有内容是无法删除的
提示:如果需要删除非空目录,需要使用 rm -rf 目录名
用于创建空文件
touch语法:touch 文件名
用于拷贝文件到指定目录
基本语法
cp [选项] 被拷贝文件 目标文件夹
常用选项
-r 递归复制整个文件夹
使用细节:强制覆盖不提示的方法 \cp -r /home/bbb/ /opt/
用于移除文件或目录
基本语法
rm [选项] 要删除的文件或目录
常用选项
-r 递归删除整个文件夹
-f 强制删除不提示
用于移动文件与目录或者重命名
基本语法
mv OldNameFile NewNameFile 同一目录下重命名
mv /temp/movefile /targetFolder 移动文件
用于查看文件内容
基本语法
cat [选项] 查看的文件
常用选项 -n 显示行号
使用细节
cat 只能浏览文件,而不能修改文件,为了浏览方便,一般会带上管道命令 | more
是一个基于VI编辑器的文本过滤,它以全屏幕的方式按页显示文本文件内容。more指令内置若干快捷键,详看操作说明
基本语法
more 查看的文件
less指令用于分屏查看文件内容,它的功能与more指令类似但比more指令强大,支持各种显示终端。less指令在显示文件内容时,并不是一次性将整个文件加载之后再显示,而是根据显示需要加载内容,对于大型文件具有较高效率
基本语法
less 查看的文件
用于输出内容到控制台
基本语法
echo [选项] [输出内容]
用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行
基本语法
head 文件名 显示前十行内容
head -n 5 文件名 显示前五行内容
用于输出文件的尾部内容,默认输出后十行内容
基本语法
1)tail 文件名 查看文尾十行内容
2)tail -n 5 文件名 查看文尾五行内容,5可以是任意行数
3)tail -f 文件名 实时追踪该文档的所有更新
>输出重定向和>>追加
基本语法
1)ls -l >文件 列表的内容写入进a.txt中(覆盖)若文件不存在则会自动创建
2)ls -al >> 文件 列表的内容追加进a.txt的末尾
3)cat 文件1>文件2 将文件1的内容覆盖到文件2
4)echo “内容” >> 文件 追加
cal命令显示日历
软链接也称为符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径
基本语法
ln -s [原文件或目录] [软链接名] 给原文件创建一个软链接
删除直接用rm删
查看已经执行过的指令,也可以执行历史指令
基本语法
history 查看已经执行过的历史指令
history 10 查看最近10条历史指令
输入history后再输入 !5 会再次执行编号为5的指令
用于显示当前日期
基本语法
1)date 显示当前时间
2)date+%Y 显示当前年份
3)date+%m 显示当前月份
4)date+%d 显示当前是哪一天
5)date"+%Y-%m-%d %H:%M:%S" 显示年月日时分秒
设置日期
基本语法
date -s 字符串时间
如:date -s "2024-01-06 08:02:01"
查看日历命令
基本语法
cal [选项] 不加选项显示本月日历
cal 2024 显示2024所有月份日历
find指令将从指定目录下递归遍历其各个子目录,将满足条件的文件或目录显示在终端
基本语法
find [搜索范围] [选项]
选项说明
文件大小(+n 大于 -n 小于 n等于,单位有K,M,G)
如 find /root -size +200M
locate指令可以快速定位文件路径,locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件,locate指令无需遍历整个文件系统,查询速度快,为了保证结果准确度,管理员必须定期更新locate时刻
基本语法
locate 搜索文件
特别说明
由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。
which指令,可以查看某个指令在哪个目录下,比如ls指令在哪个目录 which ls
grep过滤查找,管道符,”|“,表示将前一个命令的处理结果输出传递给后面的命令处理
基本语法
grep [选项] 查找内容 源文件
常用选项
例如:cat /home/hello.txt | grep -n "yes" 显示hello文件中所有yes字符串并显示行号
grep -n ”yes“ /home/hello.txt
gzip用于压缩文件,gunzip用于解压
基本语法
gzip 文件 压缩文件,只能将文件压缩为*.gz文件
gunzip 文件.gz 解压文件
zip用于压缩,unzip用于解压,项目打包发布中很有用
基本语法
zip [选项] xxx.zip 将要压缩的内容 压缩文件和目录的命令
unzip [选项] xxx.zip 解压缩文件
zip常用选项
-r 递归压缩,即压缩目录
unzip常用选项
-d<目录>指定解压后文件的存放目录
例如:zip -r myhome.zip /home/ 将home及之下的所有子目录进行压缩为myhome.zip
mkdir /opt/tmp unzip -d /opt/tmp /home/myhome.zip 将myhome.zip解压到/opt/tmp目录下
tar指令是打包指令,最后打包的文件是.tar.gz的文件、
基本语法
tar [选项] XXX.tar.gz 打包内容 打包目录,压缩后的文件格式.tar.gz
选项说明
例如:tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt 压缩多个文件为pc.tar.gz
tar -zxvf pc.tar.gz -c /opt/tmp2 解压到/opt/tmp2
在linux中每个用户都必须属于一个组,不能独立于组外。linux中每个文件都有所有者,所在组,其他组的概念
文件/目录所有者
一般为文件的创建者,谁创建了文件,就自然的成为该文件的所有者
查看文件所有者 ls -ahl
修改文件所有者 chown 用户名 文件名
组的创建
groupadd 组名
创建一个monster组
groupadd monster
创建一个用户fox,并放入monster组中
useradd -g monster fox
文件/目录所在组
当某个用户创建了一个文件后,这个文件的所在组就是该用户的所在组
查看文件/目录所在组
ls -ahl
修改文件所在组
chgrp 组名 文件名
其他组
除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组
改变用户所在组
在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的管理权限可以改变某个用户所在的组
usermod -g 组名 用户名
usermod -d 目录名 用户名 改变该用户登陆的初始目录. 特别说明:用户需要有进入到新目录的权限
在ls -l 中显示
-rw-------. 1 root root 1881 9月 27 19:43 anaconda-ks.cfg
0-9说明:
1)第0位确定文件类型(d,-,l,c,b)
l是链接,相当于windows的快捷方式
d是目录,相当于windows的文件夹
c是字符设备文件,鼠标,键盘
b是块设备,如硬盘
2)第1-3位确定所有者(该文件的所有者)拥有该文件的权限。---User
3)第4-6位确定所属组(同用户组的)拥有该文件的权限。---Group
4)第7-9位确定其他用户拥有文件的权限。---Other
rwx作用到文件
r:可读
w:可写,但不代表可以删除文件,删除一个文件的前提是对该文件所在目录有写权限,才能删除
x:可执行
rwx作用到目录
r:可读,ls查看目录内容,将目录的内容显示出来
w:可写,可以修改,对目录内创建+删除+重命名目录,
x:可执行,可以进入该目录
-rw-------. 1 root root 1881 9月 27 19:43 anaconda-ks.cfg
1 文件:硬链接数或 目录:子目录数+文件数
root 用户
root 组
1881 文件大小(字节),如果是文件夹,
9月 27 19:43 最后修改日期
anaconda-ks.cfg 文件名
修改权限 chmod
通过chmod指令,可以修改文件或目录的权限
第一种方式:+,-,=变更权限
u:所有者 g:所在组 o:其他人 a:所有人(u,g,o的总和)
chmod u=rwx,g=rx,o=x 文件/目录名
chmod o+w 文件/目录名
chmod a-w 文件/目录名
第二种方式:通过数字变更
r=4 w=2 x=1 rwx=7
chmod u=rwx,g=rx,o=x 文件目录名
相当于 chmod 751 文件目录名
修改文件所有者 chown
基本介绍
chown newowner 文件/目录 改变所有者
chown newowner:newgroup 文件/目录 改变所有者和所在组
-R 如果是目录 则使其下所有子文件或目录递归生效
chown -R tom /home/test 将/home/test 目录下的所有文件和目录的所有者都改为tom
修改文件所在组 chgrp
基本介绍
chgrp newgroup 文件/目录 改变所在组
chgrp -R ... 递归生效
如果要对目录内的文件进行操作,需要现有对该目录的相应权限
概述
任务调度:是指系统在某个时间执行的特定的命令或程序
任务调度分类:1,系统工作:有些重要的工作必须周而复始的进行,如病毒扫描
2,个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份
基本语法
crontab [选项]
常用选项
设置任务调度文件:/etc/crontab
设置个人任务调度。执行 crontab -e 命令
接着输入任务到调度文件
如: */1 * * * * ls -l /etc/ > /tmp/to.txt 每小时的每分钟执行ls -l /etc/ > /tmp/to.txt命令
五个占位符说明
特殊符号的说明
例如:
任务调度步骤:
每隔一分钟,将当前日期和日历都追加到/home/mycal中
1)vim /home/my.sh 写入操作 date >> /home/mycal 和 cal >> /home/mycal
2)给my.sh追加执行权限,chmod u+x /home/my.sh
2)执行 crontab -e 增加 */1 * * * * /home/my.sh
备份数据库
mysqldump -u root -p密码 数据库 >>/home/db.bak
相关指令
crontab -r 终止任务调度
crontab -l 列出当前有哪些任务调度
service crond restart 重启任务调度
基本介绍:
1.at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行
2.默认情况下,atd守护进程每六十秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业
3,at命令是一次性定时计划任务,执行完一个任务后不再执行此任务
4.在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看
ps -ef 监测当前正在运行的进程
ps -ef | grep atd 监测atd是否在运行
at命令格式
at [选项] [时间]
at命令选项
at时间指定方法:
1.接受在当天的hh:mm(小时:分钟)式的时间指定,假如该时间已过去,那么就放在第二天执行,例如:04:00
2,使用midnight,noon,teatime(一般为下午四点)等比较模糊的词语来指定时间
3.采用12小时计时制,即在时间后面加上AM或PM来说明是上午还是下午,例如:12pm
4,指定命令执行时间的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。例如:04:00 2024-01-12
5.使用相对计时法。指定格式为:now + count time-units,now就是当前时间,time-units是时间单位,这里能够是minutes,hours,days,weeks。count是时间的数量,几天,几小时例如: now + 5 minutes
6,直接使用today,tomorrow来指定完成命令的时间
ctrl+d 结束at命令的输入(需要输入两次)
例如:两天后的下午五点执行 /bin/ls /home
利用atq命令来查看系统中有没有执行的工作任务
明天17点钟,输出时间到 /root/date100.log
两分钟后,输出时间到 /root/date200.log
删除已经设置的任务,atrm 编号
原理介绍
1.对linux来说无论有几个分区,分区给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,linux中每个分区都是用来组成整个文件系统的一部分
2.linux采用了一种叫“载入”的处理方式,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来,这时要载入的一个分区将使它的存储空间在一个目录下获得
查看所有设备挂载情况
命令: lsblk 或者 lsblk -f
硬盘说明
1)linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘
2)对于IDE硬盘,驱动盘标识符为“hdx~”,其中“hd”表明分区所在设备的类型,这里是指IDE硬盘了。“x”为盘号(a为基本盘,b为基本从盘,c为辅助主盘,d为辅助从属盘),“~”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例如:hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区
3)对于SCSI硬盘则标识为”sdx~“,SCSI硬盘是用”sd“来表示分区所在设备类型的,其余则和IDE硬盘的表示方法一样
1.虚拟机添加硬盘
在虚拟机菜单中,选择设置,然后选择添加硬盘,修改添加硬盘的大小,然后设置完成重启系统
2.分区
分区命令 fdisk /dev/sdx(对哪个分就写哪个如sdb)
开始对/sdb分区
m 显示命令列表
p 显示磁盘分区 同 fdisk -I
n 新增分区
d 删除分区
w 写入并退出
说明:开始写入分区后输入n,新增分区,然后选择p,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q
3.格式化
格式化磁盘
格式化命令: mkfs -t ext4 /dev/sdb1(sdbx)
其中ext4是分区类型
4.挂载
将一个分区与一个目录联系起来
mount 设备名称 挂载目录
例如:mount /dev/sdb1 /newdisk
unmount 设备名称 或者 挂载目录
例如:unmount /dev/sdb1 或者 umount /newdisk
注意:用命令行挂载后重启会失效
5.设置可以自动挂载
永久挂载:通过修改/etc/fstab实现挂载
添加完成后 执行 mount -a 即刻生效
基本语法 df -h
查询指定目录的磁盘占用情况
基本语法 du -h /目录 默认为当前目录
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
--max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值
例如:查询/opt目录的磁盘占用情况,深度为1
练习:
统计/opt文件夹下文件的个数
ls -l /opt | grep "^-" | wc -l
统计/opt文件夹下目录的个数
ls -l /opt | grep "^d" | wc -l
统计/opt文件夹下文件的个数,包括子文件夹里的
ls -lR /opt | grep "^-" | wc -l
统计/opt文件夹下目录的个数,包括子文件夹里的
ls -lR /opt | grep "^d" | wc -l
以树状显示目录结构
tree 目录名(如果没有tree,则使用 yum install tree 进行安装)
查看虚拟网络编辑器和修改ip地址
查看window的网络配置使用ipconfig
查看虚拟机的网络配置使用ifconfig
ping测试主机之间网络连通性
基本语法
ping 目的主机(功能描述:测试当前服务器是否可以连接目的主机)
第一种方法(自动获取)
说明:登陆后,通过界面的来设置自动获取ip,特点:linux启动后会自动获取ip,缺点是每次自动获取的ip地址可能不一样
第二种方法(指定ip)
说明:直接修改配置文件来指定ip,并可以连接到外网(程序员推荐)
编辑 vi /etc/sysconfig/network-scripts/ifcfg-ens33
要求:将ip地址配置为静态的,比如:ip地址为192.168.200.130
文件说明
TYPE="Ethernet" 网络类型
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp" 需修改
none |static |bootp |dhcp 引导时不使用协议 |静态分配ip| bootp协议 |dhcp协议
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="60900378-7174-4741-81aa-04717379083f" 随机id
DEVICE="ens33" 接口名
ONBOOT="yes" 系统启动时网络接口是否有效
需要添加部分:
IP地址
IPADDR=192.168.200.130
网关
GATEWAY=192.168.200.2
域名解析器
DNS1=192.168.200.2
重启网络服务或重启系统生效
service network restart reboot
设置主机名和hosts映射
设置主机名
1)为了方便记忆,可以给linux系统设置主机名,也可以根据需要修改主机名
2)指令hostname :查看主机名
3)修改文件在 /etc/hostname 指定
4)修改后,重启生效
设置hosts映射
windows系统中
在C:\Windows\System32\drivers\etc\hosts 文件中指定
IP地址 主机名
linux系统中
在/etc/hosts 文件中指定
IP地址 主机名
主机名解析过程(Hosts、DNS)
hosts是什么?
一个文本文件用来记录IP和Hostname(主机名)的映射关系
DNS?
1.DNS,就是Domain Name System的缩写,翻译过来就是域名系统
2.是互联网上作为域名和IP地址互相映射的一个分布式数据库
浏览器访问域名流程
基本介绍:
1.在linux中,每个执行的程序都被称为一个进程,每一个进程都分配一个ID号(pid,进程号)
2.每个进程都可能以两种方式存在,前台和后台,所谓前台进程就是用户目前的屏幕上可以进行操作的,后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行
3.一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束
显示系统执行的进程
ps命令是用来查看目前系统中,有哪些正在执行,以及它们的执行情况,可以不加任何参数
1.指令 ps - aux | grep xxx
2.指令说明
System V 展示风格
USER 用户名称
PID 进程号
%CPU 进程占用cpu百分比
%MEM 进程占用物理内存的百分比
VSZ 进程占用虚拟内存大小(单位:KB)
RSS 进程占用物理内存大小(单位:KB)
TTY 终端名称,缩写
STAT 进程状态,其中S-睡眠,s-表示该进程是会话先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
STARTED 进程启动时间
TIME cpu时间,即进程使用cpu总时间
COMMAND 启动进程所用的命令和参数,如果过长会被截断显示
ps -ef 是以全格式显示当前所有的进程
-e显示所有进程 -f是全格式
ps -ef|grep xxx 是BSD风格
UID:用户ID
PID:进程ID
PPID:父进程ID
C:CPU用于计算执行优先级的因子,数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,说明进程是I/O密集型运算,执行优先级会提高
STIME:进程启动时间
TTY:完整的终端名
TIME:CPU时间
CMD:启动进程所使用命令和参数
介绍:
若是某个进程执行一半需要停止时,或是已消耗了很大的系统资源时,此时可以考虑停止该进程,使用kill命令来完成此项任务
基本语法
kill [选项] 进程号 功能描述:通过进程号终止进程
killall 进程名称 功能描述:通过进程名称终止进程,也支持通配符,这在系统因负载过大而变得缓慢时很有用
常用选项
-9 表示强迫进程立即停止
例如:
终止远程登录服务sshd,在适当的时候再次重启sshd服务
kill sshd对应的进程号;/bin/systemctl start sshd.service
基本语法
pstree [选项],可以更加直观的来看进程信息
常用选项:
-p 显示进程pid
-u 显示进程的所属用户
介绍:
服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如(mysqld,sshd,防火墙等),因此我们又称为守护进程,是linux中非常重要的知识点
service管理指令
1.service 服务名[start | stop | restart | reload | status]
2.在CentOS7.0后,很多服务不在使用service,而是systemctl
3.service指令管理的服务在 /etc/init.d查看
方式一:使用setup -> 系统服务 就可以看到全部
方式二:/etc/init.d 看到service指令管理的服务
linux系统有七种运行级别(runlevel):常用的级别是3和5
0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
1:单用户工作状态,root权限,用于系统维护,禁止远程登录
2:多用户状态(没有NFS),不支持网络
3:完全多用户状态(有NFS),登陆后进入控制台命令模式
4:系统未使用,保留
5:X11控制台,登陆后进入图形GUI模式
6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
开机流程:
centos7以前,/etc/inittab文件中
multi-user.target:analogous to runlevel 3
graphical.target:anologous to runlevel 5
查看当前运行级别:systemctl get-default
设置默认运行级别:systemctl set-default TARGET.target
介绍:
1.通过chkconfig 命令可以给服务的各个运行级别设置自启动/关闭
2.chkconfig 指令管理的服务在 /etc/init.d 查看
3.注意:Centos7.0后,很多服务使用systemctl 管理
chkconfig 基本语法
查看服务 chkconfig --list [|grep xxx]
chkconfig 服务名 --list
chkconfig --level 5 服务名 on/off 指定某个级别服务设置为自启动或关闭
使用细节:chkconfig重新设置服务后自启动或关闭,需要重启机器reboot生效
1)基本语法:systemctl [start | stop | restart | status] 服务名
2)system指令管理的服务在 /user/lib/systemd/system 查看
systemctl设置服务的自启动状态
1.systemctl list-unit-files [ | grep 服务名] 查看服务开机启动状态,使用grep进行过滤
2.systemctl enable 服务名 设置服务开机启动
3.systemctl disable 服务名 关闭服务开机启动
4.systemctl is-enabled 服务名 查询某个服务是否是自启动的
细节:
a:关闭或启用防火墙后,立即生效
b:这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置
c:如果希望某个服务自启动或关闭永久生效,要使用 systemctl [ enable | disable] 服务名
打开或者关闭指定端口
在真正的生产环境,往往要将防火墙打开,但问题来了,如果我们将防火墙打开,那么外部请求数据包就不能跟服务器监听端口通讯。这时,需要打开指定的端口。比如80,22,8080等。
打开端口:firewall-cmd --permanent --add-port=端口号/协议
关闭端口:firewall-cmd --permanent --remove-port=端口号/协议
重新载入,才能生效:firewall-cmd --reload
查询端口是否开放:firewall-cmd --query-port=端口/协议
介绍:top与ps命令很相似。它们都用来显示正在执行的进程,top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的进程。
基本语法 top [选项]
选项说明
交互操作说明:
实例:
监控特定用户:
输入top后,再键入 u 输入用户名后回车即可显示
终止指定的进程:
输入top后,再键入 k 输入要结束的进程ID号回车(输入信号量)再键入9即可
查看系统网络情况netstat
基本语法:
netstat [选项]
选项说明
-an 按一定顺序排列输出
-p 显示哪个进程在调用
检测主机连接命令ping:
是一种网络检测工具,它主要是用检测远程主机是否正常,或是两部主机间的网线或网卡故障
ping ip地址
介绍:
rpm用于互联网下载包的打包及安装工具,它包含在某些linux发布版中,它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager(红帽软件包管理工具)的缩写,类似于Windows的setup.exe,这一文件格式虽然打上了RedHat的标志,但理念通用
Linux的分布版本都有采用(suse,redhat,centos等等)可以算是公认的标准
rpm包的简单指令
查询已安装的rpm列表 rpm -qa | grep xxx
rpm包名基本格式
一个rpm包名:firefox-60.2.2-1.el7.centos.x86_64
名称:firefox
版本号:60.2.2-1
适用操作系统:el7.centos
表示centos7.x的64位系统
如果是i686、i386表示32位系统,noarch表示通用
rpm包的其他查询指令
rpm -qa 查询所安装的所有rpm软件包
rpm -qa | more
rpm -qa | grep xx
rpm -q 软件包名 查询软件包是否安装
如:rpm -q firefox
rpm -qi 软件包名 查询软件包信息
如:rpm -qi firefox
rpm -ql 软件包名 查询软件包中的文件
如:rpm -ql firefox
rpm -qf 文件全包路径 查询文件所属软件包
rpm -qf /etc/passwd
rpm -qf /root/install.log
基本语法:rpm -e RPM包名称 //erase
细节:
1.如果其他软件包依赖与所要卸载的软件包,卸载时则会产生错误信息
2.如果我们要硬要删除这种软件包,可以增加参数 --nodeps,就可以强制删除,但一般不推荐,这样做后,依赖与被删除的查询可能会无法执行
基本语法:rpm -ivh RPM包全路径名称
参数说明:
i = install 安装
v = verbose 提示
h = hash 进度条
Yum是一个Shell前端软件包管理器,基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次性安装所有依赖的软件包。
yum的基本指令
查询yum服务器是否有需要安装的软件
yum list | grep xx软件列表
安装指定的yum包
yum install xxx 下载安装
步骤:
1.mkdir /opt/jdk
2.通过xftp 传到 /opt/jdk 下
3.cd /opt/jdk
4.解压 tar -zxvf jdk-8u261-linux-x64.tar.gz
5.mkdir /user/local/java
6.mv /opt/jdk/jdk1.8.0_261 /user/local/java
7.配置环境变量的配置文件 vim /etc/profile
8.export JAVA_HOME=/user/local/java/jdk1.8.0_261
9.export PATH=$JAVA_HOME/bin:$PATH
10.sorce /etc/profile [让文件生效]
步骤:
1)上传安装文件,并压缩到/opt/tomcat
2)进入解压目录/bin,启动tomcat ./startup.sh
3)开放端口 8080
测试安装是否成功:访问 http://linuxip:8080
1.下载安装包
2.解压缩到 /opt/idea
3.启动idea bin目录下 ./idea.sh,配置jdk
a:新建文件夹/opt/mysql,并cd进去
b:运行 wget https://dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar 下载mysql安装包 PS:centos7.6自带mysql 数据库 是 mariadb,会跟mysql冲突,要先删除
c:运行 tar -zxvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
d:运行 rpm -qa | grep mari,查询 mariadb 相关安装包
e:运行 rpm -e --nodeps mariadb-libs,卸载
f:然后真正开始装 mysql ,依次运行以下命令
rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm
g:运行 systemctl start mysqld.service 启动mysql
h:然后开始设置root用户密码
Mysql 自动给 root 用户设置随即密码,运行 grep "password" /var/log/mysqld.log 可以看到当前密码
i:运行 mysql -uroot -p,用root用户登录,提示输入密码可用上述的,可以成功登录进入 mysql 命令行
j:设置root密码,对于个人开发环境,如果要设比较简单的密码,可以运行
set global validate_password_policy=0;设置密码策略, validate_password_policy默认为1
set global validate_password_length=1;
k:set password for ‘root’ @‘localhost’=password('xxxx');
发现报错:需要使用alter句子 alter user 'root'@'localhost' identified by 'xxxx';
l:运行 flush privileges;使密码生效
为什么学:
1)linux运维工程师在进行服务器集群管理时,需要编写shell程序来进行服务器管理
2)对于JavaEE和Python程序员来说,工作的需要,你的上司会要求你编写一些shell脚本进行程序或者对服务器的维护,比如编写一个定时备份数据库的脚本
3)对于大数据程序员来说,需要编写shell程序来管理集群
什么是shell
shell是一个命令解释器,它为用户提供了一个向linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动、挂起、停止甚至是编写一些程序。
shell脚本执行方式
格式要求:
1.脚本以 #!bin/bash 开头
2.脚本需要有可执行权限
脚本的常用执行方式
方式一:输入脚本的绝对路径或相对路径
说明:首先要赋予helloworld.sh 脚本的 + x 权限,再执行脚本
例如: ./hello.sh 或者使用绝对路径 /root/shcode/hello.sh
方式二(sh脚本):不用赋予权限,直接执行即可
例如:sh hello.sh,也可以使用绝对路径
介绍:
1)linux shell 中变量分为,系统变量和用户自定义变量
2)系统变量:$HOME $PWD $SHELL $USER等等,比如:echo $HOME 等等
3)显示当前shell中所有变量:set
shell变量的定义
基本语法
1.定义变量:变量名=值
2.撤销变量:unset 变量
3.声明静态变量:readonly变量,注意:不能unset
shell变量的定义
规则:
1)变量名称可以又字母、数字、和下划线组成,但是不能以数字开头。4A=200(这是非法的)
2)等号两边不能有空格
3)变量名称一般习惯大写
将命令的返回值赋给变量
1.A=`date`反引号,运行里面的命令,并将结果返回给变量A
2.A=$(date)等价反引号
基本语法
a:export 变量名=变量值 将shell变量输出为环境变量/全局变量
b:source 配置文件 让修改后的配置信息立即生效
c:echo $变量名 查询环境变量的值
注意:在输出TOMCAT_HOME 环境变量前,需要让其生效 source /etc/profile
shell脚本的多行注释
:<<!
内容
!
位置参数变量
介绍:当我们执行一个shell脚本时,如果希望获得到命令行的参数信息,就可以使用到位置参数变量,比如:./myshell.sh 100 200,这个就是一个执行shell的命令行,可以在myshell 脚本中获取到参数信息
基本语法:
$n n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要使用大括号包含,如${10}
$* 这个变量代表命令行中所有参数,$*将所有的参数看成一个整体
$@ 这个变量也代表命令行中所有参数,不过把$@把每个参数区别对待
$! 这个变量代表命令行中所有参数个数
预定义变量
介绍:就是shell设计者事先已经定义好的变量,可以直接在shell脚本中使用
基本语法
$$ 当前进程的进程号
$! 后台运行的最后一个进程的进程号
$? 最后一次执行的命令的返回状态,如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值非0(具体哪个数,由命令自己决定),则证明上一个命令执行不正确
以后台运行一个脚本,在绝对路径后加&
基本语法:
1."$((运算式))" 或 "$[运算式]" 或者 expr m + n expression x
2.注意expr运算符见要有空格,如果希望将 expr 的结果赋给某个变量,必须使用反引号将其包裹住
3.expr m - n
4.expr \*,/,% 乘,除,取余
条件判断
基本语法:
[ condition ](注意condition前后要有空格)
#非空返回true,可使用$?验证(0为true,>1为false)
例如:[ ak ] 返回true [ ] 返回false
[ condition ] && echo OK || echo notok 条件满足,执行后面的语句
判断语句
1)= 字符串比较
2)两个整数比较
-It 小于little
-el 小于等于
-eq 等于
-gt 大于grater
-ge 大于等于
-ne 不等于
3)按照文件权限进行判断
-r 读
-w 写
-x 执行
4)按照文件类型进行判断
-f 文件存在并且是一个常规文件
-e 文件存在exist
-d 文件是一个目录
细节,if 后面又空格,[]中前后也需要空格,即便内部没有表达式也需要空格
流程控制
基本语法
if [ 条件式判断 ] 注意条件式在中括号内前后需要空格
then
代码
fi
或者 多分支
if [ 条件判断式 ]
then
代码
elif [ 条件判断式 ]
then
代码
fi
注意事项:[ 条件判断式 ],中括号和条件判断式之间必须有空格
基本语法:
case $变量名 in
"值1")
如果变量的值等于值1,则执行程序1
;;
"值2")
如果变量的值等于值2,则执行程序2
;;
.........
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
例如:
细节:注意结尾的esac!!!
基本语法1
for 变量 in 值1 值2 值3 。。。
do
程序
done
例子打印命令行输入的参数 可以看出 $* 与 $@的区别
基本语法2
for((初始值;循环控制条件;变量变化))
do
程序
done
例子:定义一个变量,从1加到100的值输出展示
基本语法
while [ 条件判断式 ]
do
程序
done
注意:while 和 [ 有空格,条件判断式 和 [ 也有空格
例子:从命令行输入一个数n,统计从1+。。。+n的值为多少
基本语法
read(选项)(参数)
选项:
-p 指定读取值式的提示符
-t 指定读取值时等待的时间(秒),如果没有在指定的时间内输入,就不再等待
参数:
变量:指定读取值的变量名
shell编程和其他编程语言一样,有系统函数,也可以自定义函数。介绍两个系统函数
系统函数
功能:返回完整路径最后 / 的部分,常用于获取文件名
basename [pathname] [suffix]
basename [string] [suffix] besename命令会删掉所有的前缀包括最后一个(’/‘)字符,然后将字符串显示出来
选项:
suffix为后缀,如果suffix被指定了,basename会将pathname或string中的suffix去掉。
例如:请返回/home/aaa/test.txt的“test.txt”部分 basename /home/aaa/test.txt
如果 basename /home/aaa/test.txt .txt 则只会返回 test
功能:返回完整路径最后 / 的前面部分,常用于返回路径部分
dirname 文件绝对路径 从给定的包含绝对路径的文件名中去除文件名(非目录部分),返回剩下的路径(目录部分)
例如:请返回/home/aaa/test.txt的“/home/aaa” dirname /home/aaa/test.txt
自定义函数
基本语法
[function] funname[()]
{
Action;
[return int;]
}
调用直接写函数名:funame [值]
例如:计算输入两个参数的和(动态的获取),getSum
需求分析
1.每天凌晨 2:30 备份 数据库 akun 到 /data/backup/db
2.备份开始和备份结束能够给出相应的提示信息
3.备份后文件要求以备份时间为文件名,并打包为 .tar.gz 的形式,例如:2021-03-12_230201.tar.gz
4.在备份的同时,检查是否有10天前的备份数据库文件,如果有则进行删除
最后使用 crontab -e 添加任务调度加入 30 2 * * * /usr/sbin/mysql_db_backup.sh
介绍
Ubuntu 是一个以桌面应用为主的开源GNU/Linux操作系统,Ubuntu基于GNU/Linux,支持x86、amd64(即x64)和ppc架构,由全球化的专业开发团队(Canonical Ltd)打造
专业的Python开发者一般会选择Ubuntu 这款Linux系统作为生产平台
温馨提示:
Ubuntu和Centos 都是基于 GNU/Linux 内核的,因此基本使用和Centos一样,他们的各种指令可以通用,只是界面和预先安装的软件有所差别
安装Ubuntu
1.查询 BIOS 虚拟化支持
2.新建虚拟机
3.选择安装镜像文件
4.创建用户
5.选择安装位置
6.指定空间大小
7.指定内存大小
8.分配cpu内核
9.配置网络适配器
10.点击完成,开始进行 Ubuntu 的安装,安装过程可能较长
11.进入登录界面
12.下一步
介绍:
安装Ubuntu成功后,都是普通用户权限,并没有最高的root用户权限,如果需要使用root权限,通常会在命令前加上 sudo,有时候感觉很麻烦
我们一般会使用su命令来直接切换到root用户,但如果没有给root设置初始密码,就会抛出 su:Authentication failure 这样的问题,所以,我们只要给root用户设置一个初始密码就好
给root用户设置密码并使用
1.输入 sudo passwd 命令,输入一般用户密码并设定root用户密码
2.设定root密码成功后,输入su命令,并输入刚才设定的root密码,就可以切换成root了,提示符$代表一般用户,提示符#代表root用户
3.以后就可以使用root用户了
4.输入exit命令,退出root用户并返回一般用户
在Ubuntu下开发一个python程序(需要使用root用户)
1)vi hello.py
2)python3 hello.py
apt是Advanced Packaging Tool 的简称,是一款安装包管理工具。在Ubuntu下,我们可以使用apt命令进行安装包的安装,删除,清理了等。类似于Windows中的软件管理工具
sudo apt-get update 更新源
sudo apt-get install package 安装包
sudo apt-get remove package 删除包
sudo apt-cache research package 搜索软件包
sudo apt-cache show package 获取包的相关信息,如说明,大小以及版本号
sudo apt-get install package --reinstall 重新安装包
sudo apt-get -f install 修复安装
sudo apt-get remove package --purge 删除包,包括环境配置文件等
sudo apt-get build-dep package 安装相关的编译环境
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
sudo apt-cache depends package 了解使用该包的依赖
sudo apt-cache rdepends package 查看该包被那些包依赖
sudo apt-get source package 下载该包源代码
备份Ubuntu默认的源地址
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
更新源服务器列表
先清空 sources.list 文件复制镜像网站的地址
echo ‘’ > sources.list
复制镜像网站的地址,拷贝到 sources.list 文件
更新源
sudo apt-get update
实例:
sudo apt-get remove vim 删除
sudo apt-get install vim 安装
sudo apt-cache show vim 显示软件信息
ssh介绍:
SSH为Secure Shell缩写,由IETF的网络小组所制定,SSH为建立在应用层和传输层基础上的传输协议,
SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,常用于远程登陆,几乎所有 UNIX/LINUX 平台都可以运行SSH
使用SSH服务,需要安装相应的服务器和客户端。服务器与客户端关系:如果,A机器想被B机器远程登录,那么A机器需要安装SSH服务器,B机器需要安装SSH客户端
和Centos不一样,Ubuntu 默认没有安装SSHD服务(使用netstat 指令查看:apt install net-tools),因此,我们不能进行远程登录
安装SSH与启用
sudo apt-get install openssh-server
执行上面指令后,在当前这台linux上就安装了ssh服务端和客户端
service sshd restart
执行上面命令,就启动了 sshd服务,会监听端口22
从一台linux系统远程登录到另一台linux系统
在创建服务集群时,会用到该技术
基本语法
ssh 用户名@IP
例如:ssh akun@192.168.200.129
使用ssh访问,如果访问出现错误,可以查看是否有该文件
/.ssh/konwn_ssh 尝试删除该文件解决
登出:exit或logout
Centos下载
1.日志文件是重要的系统信息文件,其中记录了许多重要的系统信息事件,包括用户的登录信息,系统的启动信息,系统的安全信息,邮件相关信息,各种服务相关信息
2.日志对于安全性来说也很重要,它记录了系统每天发生的各种事情,通过日志来检查错误发生的原因,或是受到攻击者攻击留下的痕迹
3.可以这样理解,日志是用来记录重大事件的工具
/var/log/ 目录就是系统的日志文件的保存位置
系统中常用的日志
CentOS7.6日志服务 rsyslogd ,CentOS6.x 日志服务是syslogd,rsyslogd功能更强大,rsyslogd 的使用,日志文件的格式,和syslogd服务兼容
查询linux中的rsyslogd 服务是否自启动
ps -aux | grep “rsyslogd” | grep -v “grep” 反向匹配:显示不包含grep的服务
查询 rsyslogd 服务的自启动状态
systemctl list-unit-files | grep rsyslog
配置文件:/etc/rsyslog.conf
编辑文件的格式为: *.* 存放日志文件
第一个 * 代表日志类型,第二个 * 代表日志级别
1.日志类型分为:
auth ##pam产生的日志
authenpriv ##ssh、ftp等登录信息的验证信息
corn ##时间任务相关
kern ##内核
Ipr ##打印
mail ##邮件
mark(syslog)-rsyslog ##服务内部的信息,时间标识
news ##新闻组
user ##用户程序产生的相关信息
uucp ##unix to nuix copy主机直接相关的通信
local1-7 ##自定义的日志设备
2.日志级别分为:
debug ##有调试信息的,日志通信最多
info ##一般信息日志,最常用
notice ##最具有重要性的普通条件的信息
warning ##警告级别
err ##错误级别,阻止某个功能或模块不能正常工作的信息
crit ##严重级别,组织整个系统或整个软件不能正常工作的信息
alert ##需要立刻修改的信息
emerg ##内核崩溃等重要信息
none ##什么都不记录
注意:从上到下,级别从低到高,记录信息越来越少
由日志服务 rsyslogd 记录的日志文件,日志文件包含以下4列
1)事件产生的时间
2)产生事件的服务器的主机名
3)产生事件的服务名或程序名
4)事件的具体信息
日志轮替就是把旧的日志文件移动并改名,同时建立新的空日志文件,当旧日志文件超出保存范围后就会自动删除
日志轮替文件命名
1.CentOS7使用logrotate进行日志轮替管理,要想改变日志轮替文件名字,通过 /etc/logrotate.conf 配置文件中 “dateext” 参数
2.如果配置文件中有“dateext”参数,那么日志会用日期来作为日志文件的后缀,例如:“secure-20240110“,这样日志文件名不会重叠,也就不需要日志文件的改名,只需要指定保存日志的个数,删除多余的日志文件即可
3.如果配置文件中没有”dateext“参数,那么日志就需要进行改名了,当第一次进行日志轮替时,当前”secure“日志会自动改名为”secure.1“,然后新建”secure“日志,用来保存新的日志。当第二次进行日志轮替时,”secure.1“ 会自动改名为 ”secure.2“ ,当前的”secure“日志会改名为”secure.1“,然后新建 ”secure“ 日志,用来保存新的日志,以此类推
logrotate 配置文件
/etc/logrotate.conf 为logrotate的全局配置文件
说明:也可以把某个日志文件的轮替规则写到 /etc/logrotate.d 目录,比如/var/log/boot.log
参数说明:
将自己的日志加入日志轮替
日志轮替之所以可以在指定的时间备份日志,是依赖系统定时任务,在/etc/cron.daily/ 目录,就会发现这个目录中有 logrotate 文件(可执行),logrotate 通过这个文件依赖定时任务执行
journalctl 可以查看内存日志
journalctl -n 3 ##查看最新3条
journalctl --since 19:00 --until 19:10:10 ##查看起始时间到结束时间的日志可加日期
journalctl -o verbose ##日志详细内容
journalctl _PID=1245 _COMN=sshd ##查看包含这些参数的日志(在详细日志查看)
或 journalctl | grep sshd
注意:journalctl 查看的是内存日志,重启清空
Linux启动原理:
1)首先Linux要通过自检,检查硬件设备有没有故障
2)如果有多块启动盘的话,需要在BIOS中选择启动磁盘
3)启动MBR中的bootloader引导程序
4)启动内核文件
5)执行所有进程父进程、老祖宗systemd
6)欢迎界面
在linux启动流程中,加载内核文件时关键文件:
1.kernel文件:vmlinuz-3.10.0-957.el7.x86_64
2.initrd文件:initramfs-3.10.0-957.el7.x86_64.img
自定义linux系统思路
操作步骤:
1)首先,给现有的inux添加一块大小为20G的硬盘,选择scsi类型并存为单个文件
2)添加完成后,点击确定,然后启动现有的linux,通过fdisk来给/dev/sdb 进行分区
3)对/dev/sdb 分区进行格式化 mkfs ext4 /dev/sdb1
4)创建目录,并挂载新磁盘
5)安装 grub,内核文件拷贝至磁盘
6)修改 grub2/grub.cfg 文件,添加 selinux=0 init=/bin/bash
7)创建目标主机根文件系统
8)拷贝需要的bash(也可以拷贝你需要的指令)和库文件给新的系统使用
9)现在就可以创建一个新的虚拟机,然后将默认分配的硬盘 移除掉,指向刚刚创建的磁盘即可
10)这时,很多指令没法用,比如ls,reboot等,可以将需要的指令拷贝到对应的目录即可
11)如果要拷贝指令,重新进入到原来的linux系统拷贝相应的指令即可,
12)再重启新的linux系统,就可以使用指令了
uname -a 查看当前内核版本
yum info kernel -q 检测内核版本,显示可以升级的内核
yum update kernel 升级内核
yum list-kernel -q 查看已经安装的内核
1.把需要的文件(或分区)用tar进行打包,下次需要恢复的时候,再解压覆盖即可
2.使用dump命令和restore命令
如果系统上没有两个指令,先进行安装
yum -y install dump
yum -y install restore
使用dump进行备份
使用restore进行恢复
6666端口可能无法使用,切换至8010端口可使用
webmin简单使用
语言设置:
webmin中点击configue进行配置language
IP访问控制
webmin中点击configue进行配置IP访问控制
查看进程
system中最后一个选项进程管理器
修改密码
system中点击change passwords
任务调度
system中cron任务调度
mysql
server 中点击mysql
浏览器打开显示不是私密连接,可以强制打开
忘记密码:
1) cat t.txt | cut -d '/' -f 3 | sort | uniq -c | sort -nr
2)netstat -an | grep ESTABLISHED | awk -F " " '{print $5}' | awk -F ":" '{print $1}' | sort | uniq -c | sort -nr
1.a:vim /etc/my.cnf b:在末尾加入skip-grant-tables c:service mysqld restart
d:空密码进入 e:update user set authentication_string=password("xxx") where user="root";
f:flush privileges; g:vim /etc/my.cnf h:注释掉刚刚加上的skip。。。并保存退出
i:service mysqld restart
2.cat access.log | awk -F " " '{print $1}' | sort | uniq -c | sort -nr | head -2
3.tcpdump -i ens33 host 192.168.200.1 and port 22 >> /opt/interview/tcpdump.log
4.常用的Nginx模块,用来做什么?
rewrite 模块 实现重写功能
access模块 来源控制
ssl模块 安全加密
ngx_http_gzip_module 网络传输压缩模块
ngx_http_proxy_module 模块实现代理
ngx_http_upstream_module 模块实现定义后端服务器列表
ngx_cache_purge 实现清除缓存功能
速通完了,路也越迷茫了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。