Linux实操速记-基础1
Linux实操速记-基础1
任务调度
- crontab 选项
- -e 编辑crontab定时任务
- 特殊符号
- * 代表任何时间,比如第一个“*” 就代表一小时中每分钟都执行一次的含义
- ,代表不连续的时间,比如“0 8,12,16***”命令,就代表每天8点0分、12点0分,16点0分都执行
- - 代表连续的时间范围,比如“0 5 * * 1-6”命令,代表周一到周六凌晨5点0分执行
- */n 代表每隔多久执行一次,比如“*/10 * * * *”命令,代表每隔10分钟执行一次
- 五个*的意义
- 第一个* 一小时当中的第几分钟 范围0-59
- 第二个* 一天当中的第几个小时 范围0-23
- 第三个* 一个月当中的第几天 范围1-31
- 第四个* 一年当中的第几月 范围1-12
- 第五个* 一周当中的星期几 范围0-7 (0和7都代表星期日)
- */1**** ls -l /etc/ > /tmp/to.txt 每分钟执行ls -l /etc/ > /tmp/to.txt 命令
- 45 22 * * *,在每天22点45分执行命令
- 0 17 * * 1,在每周一17点0分执行
- 0 5 1,15 * * ,在每月1号和15号的凌晨5点0分执行命令
- 40 4 * * 1-5,在每周一到周五凌晨4点40分
- */10 4 * * *,每天凌晨4点到5点之间,每隔10分钟执行一次命令
- 0 0 1,15 * 1 ,每月1号和15号,每周一的0点0分都会执行命令。注意星期几和几号不要同时出现,非常容易让管理员混乱
- 每隔一分钟,就将当前的日期信息,追加到/tmp/mydate文件中
- */1 * * * * date >> /tmp/mydate
- 每隔一分钟,将当前日期和日历都追加到/home/mycal文件中
- vim /home/my.sh 在脚本中写入:data>> /home/mycal 和cal >> /home/mycal
- 给my.sh增加执行权限,chmod u + x /home/my.sh
- crontab -e 增加*/1 * * * * /home/my.sh
- 每天凌晨2:00将mysql数据库testdb,备份到文件中
- crontab -e
- 0 2 * * * mysqldump -u root -p密码 testdb >> /home/db.bak
- 特殊符号
- -l 查询crontab任务
- -r 删除当前用户所有crontab任务
- service crond restart 重启任务调度
- -e 编辑crontab定时任务
定时任务
- at命令
- 它是一次性定时任务计划任务,只运行一次任务,at的守护进程atd会以后台模式运行,检查作业队列来运行
- 默认情况,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业
- 在使用at任务的时候,一定要保证atd进程启动,可以使用指令查看(ps -ef | grep atd)
- 语法 : at 选项 时间
- ctrl + D 结束at命令的输入
- -m 当指定任务被完成后,将给用户发送邮件,即使没有标准输出
- -I atq的别名
- -d atrm的别名
- -v 显示任务将被执行的时间
- -c 打印任务的内容到标准输出
- -V 显示版本信息
- -q <队列> 使用指定的队列
- -f <文件> 从指定文件读入任务而不是从标准输入读入
- -t <时间参数> 以时间参数的形式提交要运行的任务
- 指定时间的方法
- 接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行,例如:04:00
- 使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点),等模糊的单词描述
- 采用12小时制,即在时间后面加上AM(上午)或PM(下午),如12pm
- 指定命令执行具体日期,格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面,如:04:00 2021-03-1
- 使用相对计时法,指定格式为:now + count time-units,now就是当前时间,time-units瑟是时间单位,minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是数量,如:now + 5minutes 五分钟后执行
- 直接使用today(今天)、tomorrow(明天)来指定完成命令的时间
- 应用
- 2天后的下午5点执行/bin/ls /home
- at 5pm + 2days
- /bin/ls /home
- ctrl + D *2
- atq查询当前任务列表
- 明天17点,输出时间到指定文件中
- at 5pm tomorrow
- date > /temp/1.txt
- ctrl + D *2
- 2分钟后,输出时间到指定文件内,比如 /root/date200.log
- at now + 2 minutes
- date > /root/date200.log
- ctrl + D *2
- 删除已经设置的任务,atrm编号
- 2天后的下午5点执行/bin/ls /home
磁盘分区
linux只有一个根目录,一个独立且唯一的文件结构,每个分区都是用来组成整个文件系统的一部分
linux采用“载入”的处理方法,整个文件系统包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得
-
lsblk 查询磁盘分区挂载情况
- -f 显示格式与挂载情况
- ide硬盘标识符“hdx~”
- x为盘号(a为基本盘、b为基本从属盘,c为辅助主盘,d为辅助从属盘)
- ~代表分区,前四个分区1-4标识主盘或扩展分区,从5开始是逻辑分区
- scsi硬盘标识符“sdx~”
- 同上
-
添加硬盘
- 加上硬盘重启,lsblk查看识别情况
- fdisk /dev/sdb 对硬盘进行分区,回车后可以使用m来查看帮助
- 输入n ,输入p ,输入1,回车,回车, 输入w
- lsblk查看分区情况
- 格式化分区:mkfs -t ext4 /dev/sdb1
- lsblk查看分区格式情况
- 挂载分区:mount /dev/sdb1 /newdisk 把分区挂载到/newdisk
- 卸载分区:umount /dev/sdb1 或者umount /newdisk
- 此时的挂载只是临时挂载,重启后要重新挂载
- 永久挂载:通过修改/etc/fstab实现
- vim /etc/fstab
- i进入插入模式,/dev/sdb1 /newdisk ext4 00
- 保存退出
- mount -a 可马上生效,或者重启即可
-
df -h查询分区使用情况
-
du -h 查询指定目录的磁盘占用情况
- -s指定目录占用大小汇总
- -h 带计量单位
- -a 含文件
- --max-depth=1 子目录深度
- -c列出明细的同时,增加汇总值
- 应用:
- 查询/opt目录的磁盘占用情况,深度为1 du -h --max-depth=1 /opt
- 统计/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
- 以树状显示目录结构:thee (如果没哟安装,需要使用命令:yum install tree 安装)
网络配置
-
修改配置文件来指定IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33
#接口名(设备,网卡) DEVICE=eth0 #MAC地址 HWADDR=00:0C:2x:6x:0x:xx #网络类型(通常是Ehernet) TYPE=Ehernet #随机ID UUID=926a57ba-92c6-4231-bacb-f27e5e6a9f44 #系统启动时网络接口是否有效 ONBOOT=yes #IP的配置方法(none|static|bootp|dhcp)(引导时不使用协议|静态分配IP|BOOTP斜体|DHCP协议) BOOTPROTO=static #IP地址 IDADDR=192.168.200.130 #网关 GATEWAY=192.168.200.2 #域名解析器 DNS1=192.168.200.2
-
设置主机名和ip映射
vim /etc/hosts ip地址 主机名
进程管理
每个执行的程序都成为一个进程,每个进程都分配一个ID号(pid,进程号)
每个进程都可以以两种方式存在,前台、后台(顾名思义,能否被用户可见区分)
一般系统服务都是以后台进程方式存在,而且常驻系统,直到关机
shell中在可执行程序后面添加&作用:后台运行、nohup作用:shell退出后此进程不被杀死
-
ps 查看目前系统中进程情况
- PID 进程识别号 TTY 终端机号 TIME 此进程所消CPU时间 CMD 正在执行的命令或进程名
- -a 显示所有信息
- -u 以用户的格式显示
- -x 显示后台进程运行的参数
- -e 显示所有进程
- -f 全格式
- 应用:
- ps -aux|grep XXX 查看XXX进程运行情况
- ps -ef|grep XXX 查看全格式所有进程,包含父进程信息
-
kill与killall 终止进程
- kill 【选项】 进程号(通过进程号杀死进程)
- killall 进程名称(通过进程名称杀死进程包括它的子进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
- 选项 -9:强迫进程立即停止
- 实践
- 踢掉某个非法登入用户: 1.ps -aux |grep sshd 2.kill 进程号
- 终止远程登入服务sshd,在适当时再次重启sshd服务: 1.ps -aux |grep sshd 2.kill 进程号3./bin/systemctl start sshd.service
- 终止多个gedit:killall gedit
- 强制杀死一个终端:kill -9 进程号
-
pstree [选项] 更直观的看进程信息
- -p 显示进程的PID
- -u 显示进程的所属用户
服务管理
运行在后台的进程,即服务其他程序的进程又称为守护进程(如mysqld、sshd、firewall)
centos7之前使用以下进行管理:
-
服务存在的位置 /etc/init.d
-
service 服务名 (start|stop|restart|reload|status)
-
chkconfig
- chkconfig --list 显示服务各个运行级别的自动启动情况
- chkconfig --list | grep network 显示服务各个运行级别的自动启动情况,只看network
- chkconfig network --list 显示服务各个运行级别的自动启动情况,只看network
- chkconfig --level 5 network on/off 开启network 服务在启动级别5自启动开关(这里要重启后生效)
centos7之后使用以下进行管理
-
服务存在的位置/usr/lib/systemd/system
- 当不知道某个服务全名的时候可以这样查,查防火墙示例:ls -l /usr/lib/systemd/system |grep fire
-
systemctl 【start|stop|restart|status】 服务名(临时开启和关闭,不影响自启动设置)
-
systemctl list-unit-files [| grep 服务名] (查看服务开机启动状态,grep可以进行过滤)
-
systemctl enable 服务名 (设置开机启动服务)
-
systemctl disable 服务名 (关闭开机启动服务)
-
systemctl is-enable 服务名 (查询服务是否开启自启动)
查看服务名
- ls -l /etc/init.d 查看centos7之前的服务
- setup 查看所有服务,选择服务,使用空格开勾选(*)自启动
服务的运行级别
- 0 关机
- 1 单用户无网络,root权限,单机维护
- 2 多用户无网络
- 3 多用户网络,无界面
- 4 预留
- 5 多用户网络,图形界面
- 6 重启
- 运行级别在:/etc/initab下,centos7之后可以直接运行以下命令设置和浏览默认开机运行级别
- systemctl set-default TARGET.target 设置(TARGET有常用的枚举值:multi-user 代表3,graphical 代表5)
- systemctl get-default 查看
开机流程:开机->BIOS->/boot->systemd进程1->运行级别->运行级别对应的服务
防火墙使用
- 打开端口:firewall-cmd --permanent --add-port=端口号/协议
- --permanent 这个代表永久生效
- 关闭端口:firewall-cmd --permanent --remove-port=端口号/协议
- 打开和关闭都需要重新载入才生效:firewall-cmd --reload
- 查询端口是否开启:firewall-cmd --query-port=端口号/协议
- 查看防火墙已开放端口列表 firewall-cmd --list-all
动态监控
进程监控
区别于ps命令使用top命令
- top
- 参数
- -d 秒数 指定进程几秒更新,默认是3秒
- -i 使top不显示任何闲置或者僵死进程
- -p 通过指定监控的进程id来仅仅监控某个进程的状态
- 交互操作
- P 以CPU使用率排序
- M 以内存使用率排序
- N 以PID排序
- q 退出监控
- 应用
- 监控特定用户:top,输入‘u’,再输入用户名
- 终止指定进程:top,输入‘k’,在输入要结束的进程PID号
- 参数
网络监控
- netstat [选项]
- -an 按一定顺序输出
- -p 显示哪个进程再调用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY