静态IP配置
-
默认情况下,虚拟机和笔记本一样,采用的都是动态IP - 每次联网都会在当前网段内随机分配一个IP
-
实际过程中,虚拟机一般需要自己固定静态IP
-
步骤
-
查看网络编辑器中VMnet8对应的网段
-
编辑文件
shvim /etc/sysconfig/network-scripts/ifcfg-ens33
-
修改属性
sh# BOOTPROTO="dhcp"表示为动态IP BOOTPROTO="static"
-
在文件末尾添加
sh# 静态IP,网段必须和网络编辑器中的网段一致 IPADDR=192.168.53.128 # 子网掩码 NETMASK=255.255.255.0 # 网关 GATEWAY=192.168.53.2 DNS1=192.168.53.2
-
重启网络
shsystemctl restart network
-
查看
shifconfig
-
测试能否连接外网
shping www.baidu.com
-
常用命令
日期类
-
date
:获取日期-
用法一:获取当前的系统时间
sh# 获取当前的系统时间 date # 对日期/时间来进行格式化 # 格式:date +格式 # %Y-年 %m-月 %d-日 %H-时 %M-分 %S秒 date +%Y-%m-%d
-
用法二:以当前系统时间为基础,前后推算时间
sh# 无论是几天,都必须是days,不能写day!!! # 3天前是哪一天 date -d '3 days ago' # 3天后是那一天 date -d '-3 days ago'
-
用法三:修改/设置系统时间
sh# 命令格式:date -s "日期 时间" date -s "2024-02-29 09:22:25"
-
-
时间同步
-
实际过程中,时间同步的方式非常多:ntpdate,chrony等,上课使用的ntpdate方式
-
步骤
-
Linux中默认没有内置ntpdate,所以需要安装ntpdate
shyum -y install ntp
-
同步时间
shntpdate ntp3.aliyun.com
-
-
-
cal
:calendar的缩写sh# 查看当前日期所在的月份的日历 cal # 查看指定年份的日历 cal 2024
用户类
-
useradd
:添加新用户sh# 添加tom用户 useradd tom
-
passwd
:修改密码sh# 修改tom的登陆密码 passwd tom
-
su
:switch user的缩写,切换用户sh# 切换到tom用户 su tom # 切换回root用户 su
-
id
:确定用户是否存在sh# 确定bob用户是否存在 id bob # 查看所有的用户 cat /etc/passwd
-
who
:查看当前登陆的用户sh# 只显示用户名 whoami # 显示用户名、连接数、登陆时间 who am i
-
userdel
:删除用户sh# 删除bob用户,但是不删除对应的数据目录 userdel bob # 删除bob用户,同时删除对应的数据目录 userdel -r bob
-
在Linux中,用户创建之后,如果没有指定,那么默认组和用户名是相同的
sh# 创建bob用户,放入root组中 # 命令格式:useradd -g 组名 用户名 useradd -g root bob # 将tom用户迁移到root组中 # 命令格式:usermod -g 组名 用户名 usermod -g root tom
用户组类
-
groupadd
:添加用户组sh# 添加用户组 groupadd bigdata
-
groupdel
:删除用户组,要求组为空sh# 删除用户组 groupdel bigdata
-
groupmod
:修改组名sh# 命令格式:groupmod -n 新组名 老组名 groupmod -n test tom # 查看所有的组 cat /etc/group
文件权限类
-
chmod
:change mode的缩写,用于改变文件的权限-
方式一
sh# u:user所有者 g:group同组 o:other其他用户 a:all所有用户 # +:添加 -:减少 =:覆盖 # 给同组用户添加写权限 chmod g+w a.txt # 去掉其他用户的读权限 chmod o-r a.txt # 除了所有者以外的用户,都只能读,不能进行其他操作 chmod g=r,o=r a.txt
-
方式二
sh# r=4,w=2,x=1,通过3个数字的和来确定文件的权限 # -rw-r--r--. 1 root root 12 Feb 28 00:55 a.txt # 对应的权限就是644 # 命令格式:chmod 权限数字 文件/目录 chmod 760 a.txt # 默认情况下,chmod只改变指定文件或者目录的权限,而不会影响子目录和子文件的权限 # 递归更改 chmod -R 740 a
-
-
chown
:change owner的缩写,改变文件的所有者sh# 命令格式:chown 所有者 文件 # 将a.txt的所有者改为tom chown tom a.txt # 将a.txt的所有者改为bob,同时所有组改为test # 注意:bob用户可以不是test组的!!! chown bob:test a.txt # 如果对应的是目录,那么chown也是只改变这个目录的所有者,不会改变子目录 # 如果需要全部改变,那么需要进行递归-R chown -R tom a
-
chgrp
:change group的缩写,改变文件的所有组sh# 命令格式:chgrp 所有组 文件 chgrp root a.txt # 同样,如果是目录,那么也是只改变这个目录的所有组,如果需要全部改变,同样需要进行递归-R
搜索查找类
-
find
:在使用的时候需要指定搜索范围,会在这个范围内递归搜索符合条件的文件/目录sh# 命令格式:find 搜索范围 -name 要搜索的条件 # 寻找/var目录下所有的log文件 find /var -name *.log # 命令格式:find 搜索范围 -user 用户名 # 寻找/opt目录下所有用户为tom的文件 find /opt -user tom # 命令格式:find 搜索范围 -size +/-数字 # +n 表示>n,-n表示<n 数字表示=n # 搜索/var目录下所有大于10M(10240KB)的文件 find /var -size +10240
-
locate
:快速定位文件所在的位置。locate在使用之前,会先将Linux中的文件系统加载到临时数据库中,然后locate实际上是在这个数据库中进行搜索,因此搜索的效率会更高sh# 第一次使用locate之前,需要先加载数据库 updatedb # 搜索指定的文件 # 需要知道a.txt在哪个位置 locate a.txt
-
grep
和|
-
|
:管道符。会将上一个命令的结果作为数据传递给下一个命令 -
grep
:对数据进行过滤的 -
案例
sh# 案例一:获取/opt下所有含有字母a的文件或者目录的详细信息 ll /opt | grep a # 案例二:获取文件中含有user的行数据 cat original-ks.cfg | grep user # 如果需要忽略大小写 cat original-ks.cfg | grep -i user
-
压缩类
-
gzip类:
sh# gzip:对文件进行压缩,不保留原文件,并且不能压缩目录 gzip a.txt # gunzip:对gz文件进行解压,解压完之后,会自动删除压缩包 gunzip a.txt.gz
-
zip类:
sh# 命令格式:zip 压缩文件名.zip 要压缩的文件 zip big.zip a.txt b.cfg original-ks.cfg # 如果要压缩目录,需要添加参数-r zip test.zip -r test # 命令格式:unzip 压缩文件名 unzip big.zip # 解压到指定目录 unzip big.zip -d test
-
tar类:
sh# 可以压缩/解压tar或者tar.gz类文件 # -z 执行 # -c 产生.tar文件 # -v 显示压缩/解压过程信息 # -f 指定压缩文件的名字 # 将a.txt和b.cfg进行压缩 tar -cvf b.tar.gz a.txt b.cfg # -x 解压 # -C 指定解压之后的存放路径 # 将b.tar.gz解压到当前目录下 tar -xvf b.tar.gz # 将b.tar.gz解压到a目录下 tar -xvf b.tar.gz -C a
磁盘/内存类
-
df
:disk free的缩写,查看磁盘的使用和剩余空间sh# 查看磁盘使用情况 df # 以友好的方式的来查看 df -h
-
free
:查看内存的使用情况shfree
进程类
-
ps
:process status的缩写,查看进程的运行状态-
案例一
sh# 查看系统中所有的进程 ps aux # USER:启动这个进程的用户 # PID:进程编号 # %CPU:占用CPU的百分比 # %MEM:占用内存的百分比 # VSZ:Virtual Size,进程占用的虚拟内存的大小,单位都是KB # RSS:实际占用的物理内存的大小,单位都是KB # TTY:这个进程在哪一个终端运行。tty1~tty6表示由本地的字符终端运行,tty7表示由本地的图形终端运行,pts/0~255表示由虚拟终端运行 # STAT:status的缩写,表示进程的状态。常见状态:R-running运行,S-sleeping睡眠,T-terminated停止,s-sub表示这个进程包含子进程,+表示后台运行 # START:这个进程的启动时间 # TIME:这个进程占用了CPU的运行时间 # COMMAND:这个进程对应的命令 # 实际过程中一般会结合|和grep使用,用于确定某一个具体的进程的状态 # 查看mysql的运行状态 ps aux | grep -i mysql
-
案例二
shps -ef # UID:启动这个进程的用户 # PID:进程编号 # PPID:Parent PID,父进程的编号 # C:CPU执行计算的影响因子。数值越大,说明占用CPU资源越多,属于CPU密集型计算;数值越小,说明占用CPU资源越少,属于IO密集型计算。数值越小,任务优先级越高 # STIME:Start Time,启动时间 # TTY:终端名字 # TIME:占用CPU的时间 # CMD:Command,进程对应的命令 # 同样,实际过程中,会结合|和grep使用
-
如果需要查看进程对CPU和内存的使用情况,使用
aux
;如果需要确定父子进程的关系,那么使用-ef
-
-
kill
:杀死进程sh# 命令格式:kill -9 进程号 # -9表示强制并且立即中止进程 # 中止火狐浏览器 kill -9 15903 # 命令格式:killall 进程名 # 支持通配符,在系统运行效率较低的时候,可以使用killall killall firefox
-
pstree
:以树状形式来展现进程状态sh# 进程树,能够比较好的展现父子进程的关系 pstree # -p显示进程号 pstree -p # -u显示进程对应的用户 pstree -u
-
top
:监控系统的运行情况sh# 默认每隔3秒钟对系统情况进行一次监控 top # 每隔10s监控一次 top -d 10 # -i表示忽略掉僵死、闲置的进程 top -i -d 10 # top -p 进程编号 top -p 16050 # 可以对监控结果进行排序 # P 以CPU使用率排序 # M 以内存使用率排序 # N 以PID排序 # q表示退出监控
结果信息解释:
sh# top - 00:02:42 up 7:04, 2 users, load average: 0.00, 0.01, 0.05 当前系统时间 系统的运行时间 当前登陆的用户数量 系统负载率:过去的1min、5min和15min的负载率 # Tasks: 195 total, 1 running, 194 sleeping, 0 stopped, 0 zombie 任务 总共运行的任务数量 在运行的任务数量 睡眠的进程数 结束的进程数 僵死的进程
-
netstat
:查看进程对网络的使用情况shnetstat -anp netstat -nlp # 结合|和grep使用 # 确定firefox是否占用了端口,占用了哪个端口 netstat -anp | grep -i firefox # 127.0.0.1, 0.0.0.0以及::1都表示本机地址!!!
定时任务
-
启动定时服务
shsystemctl start crond
-
crontab
:定时任务参数 解释 -e
编辑定时任务 -l
查询所有的crontab任务 -r
取消定时任务 -
编辑定时任务
shcrontab -e
进入之后,本质上就是进入了一个vim界面
sh*/2 * * * * /bin/ls -l /opt
-
定时格式:在定时任务的编辑界面,需要输入
定时 任务
位置 解释 范围 案例 第一位 一个小时中的第几分钟 0~59 5 * * * *每一个小时的第5min都要执行这个任务 5,10 * * * *每一个小时的第5min和第10min都要执行这个任务 1-5 * * * *每一个小时的1-5min都要执行这个任务 */5 * * * *每5分钟执行一次 第二位 一天的第几个小时 0-23 30 8 * * *每天的8点半执行任务 第三位 一个月的第几天 1-31 0 8 1 * * 每月1号的8点执行任务 第四位 一年的地几个月 1-12 0 8 1 12 * 每年的12月1号的8点执行 0 8 * 12 *每年12月的每一天的8点 第五位 一周的第几天 0-7(0和7都表示周天) 0 8 * * 1每周一的8点执行任务
关机和重启
-
关机
命令 解释 init 0
关闭系统并断电 halt
关闭系统但是不断电 poweroff
直接断电 shutdown -h 1
1min以后关机 shutdown -c
取消shutdown命令 shutdown -h 0
或者shutdown -h now
理解关机 -
重启
命令 解释 init 6
立即重启 reboot
立即重启 shutdown -r 1
1min以后重启 shutdown -r 0
或者shutdown -r now
立即重启 -
init
有0~6运行级别级别 解释 0 系统停机 1 单用户状态。此时只能使用root用户登陆,其他用户无法登录,也无法进行远程连接 2 多用户状态,但是不支持网络,也就意味着无法进行远程连接 3 完全的多用户状态,登录之后直接进入了命令模式 4 暂时未使用,系统保留 5 完全的多用户状态,登陆之后直接进入图形模式 6 系统正常关闭并重启