Linux的操作系统说明安装和系统维护方式
1、操作系统说明
- 现存操作系统(centos 6.3、centos7.2、centos 7.3 、centos 7.5、centos 7.9、ubuntu20.04、EulerOS 2.0)
2、Linux安装部署
- 注意硬件要求操作系统的版本(bios 可查询)
- 磁盘分区合理化
3、Linux日常命令使用
3.1 操作系统目录结构
-
ls 查询目录
-
-
树状目录结构
-
boot (核心文件)
-
dev (驱动文件)
-
home (家目录)
-
tmp (零时文件)
-
var (日志文件)
常用目录:home 、opt、 appslog业务
3.2 系统维护方式
- 1) 服务器与之间的终端连接管理服务器,直接在Linux服务器上执行ssh命令
- #ssh user@127.0.0.1 -p 端口 回车后,输入对应密码则可正常登录》。
- 2)工具管理服务器,一般常用的有Xshell、SecureCRT;功能强大,内嵌sftp,支持命令保存,多步跳转操作输入,端口隧道等功能。
- xftp(文件传输)、Xshell使用、登录跳转、隧道
3.3 常规命令使用
(1)ssh 命令是一种用于远程登录、数据传输和命令执行的安全协议
- #ssh 127.0.0.1 (直接登录目标服务器,默认是root登录,端口号22)
- #ssh user@172.0.0.1 -p 1218(通过user用户,指定端口为1218为目标端口)
(2) scp 命令是一种文还能传输方式,用ssh协议进行加密,安全可靠的将文件传输从一个系统传输到另一个系统
- #scp local_file user@remote_hostremote_folder(将本地文件复制到远程服务器上)
- #scp user@remote_host/tmp/remote_file local_folder(价将服务器上的文件复制到本地指定目录下)
- #scp -r /home/test user@1.1.1.1:/home/user/(scp的-r 选项指定递归复制,将本地目录/home/test复制到远程服务器1.1.1.1的/home/user目录下)
- #scp -P 1218 /home/test.txt user@1.1.1.1:/home/user/(scp默认使用22号端口传输,如果是非22端口,可以使用-P 选项指定端口)
sftp 是一种安全文件按传输协议,基于可靠数据流文件存取和管理的网络传输协议,是ftp的增强版
- #sftp 127.0.0.1(直接远程连接目标服务器的ftp,默认账号是root,端口22)
- #sftp -P1218 user@127.0.0.1(指定端口登录目标服务器用户user 的ftp )
rz 该命令是Linux系统下用来从Windows系统上传文件到Linux系统的命令
- #rz 该操作需要使用xshell 登录目标Linux服务器
- 注意:如果该服务器通过多次跳转,且文件大小大于3M以上,需要在第一次跳转的Linux服务器上传,不然会出现大量的报错,最终只能通过 Ctrl+Z或者Ctrl+C来终止
sz 将选定的Linux文件传到本地电脑上,需要在Linux服务器上安装lrzsz才能使用
- #sz (在xshell软件上登录到目标服务器,输入sz file ,会弹出一个选项框,选择对应的位置,该文件就是下载到本地了,一般做数据分析使用)
sync、find
- sync 命令可以是内存中的数据与磁盘中的数据相同,目的是在使用find命令前执行一次这样的命令(通常该命令不用执行,系统会自动执行update或者bdflush操作,如果该服务器做了非正常关机才需要执行该命令)
- find 用于查询指定目录中符合参数条件的文件,如果不设置任何参数,直接执行该命令则会将当前路径下查询子目录与文件全都显示
- #find /etc -name passwd (按照名字查询文件)
- #find /etc -size -3M (按照大小查询文件)
- #find /etc -type -d(按照文件类型查询文件)
wget 、curl
- wget 可以从网络下载文件,从Internet上面获取数据并将其保持到本地上
- #wget https://www.baidu.com
- curl命令指定对URL进行网络传输,得到数据后不做任何处理,
- #curl https://www.baidu.com(执行后直接在屏幕上显示网站内容,该命令与wget不同的地方在于,该命令可以带多种类型的命令,比如发送get请求、发送post请求、发送json请求)
tar、zip、unzip
-
tar 命令用于打包和压缩,打包是将多个文件做成一个文件包,解压时候不需要选择哪种tar解压格式
-
#tar -cvf myfile.tar ceshi.txt (压缩参数+压缩后的文件名+要压缩的目标文件)
-
#tar -xvf myfile.tar -C /home (解压参数+解压包名±C +解压目录)
-
zip 命令用于压缩文件
-
#zip -r myfile .zip /home/ceshi(将/home/ceshi目录下的文件打包成myfile.zip )
-
#zip -rP passwd myfile.zip /home/ceshi(-rP 为加密压缩带密码 )
-
unzip 命令用于解压缩
-
#unzip myfile.zip (将该压缩包解压缩 )
-
#unzip -P passwd myfile.zip (解压加密压缩的压缩 包)
hwclock、date 、ntpdate
- hwdate 用于查询和设置硬件时钟
- #hwdate (查看硬件时钟)
- #hwdate -w(将系统时间同步到硬件时钟)
- date 用于显示或设定系统时间
- #date (查看系统时间)
- #date -s ‘2023-07-21 12:00:00’(将系统时间按设置成2023年7月21日的12点)
- ntpdate 同步更新互联网时间,可以使计算机对其服务器做同步化做到高精度的时间
- #ntpdate 1.1.1.1 (同步远端IP为1.1.1.1的时间同步服务器)
3.4 系统维护命令使用
ps 、pwdx、netstat、jps、kill、killall
-
ps 查询进程的命令
-
#ps aux|grep python3(查看系统上有哪些python3进程在运行)
-
pwdx通过pid寻找程序路径
-
#pwdx 进程号(通过ps -aux 查询到进程号在通过该命令查询该程序的实际路径)
-
#netstat 是一个强大的网络工具,它能够提供网络连接、路由表和网络接口等信息,可以查看端口号
-
#netstat -anltp|grep :22(查看系统上是否开放了22端口)
-
jps 用于查询正在运行的Java进程(该命令安装后才可使用 #yum install java-1.8.0-openjdk-devel.x86_64)
-
#jps (查看运行的Java程序)
-
#jps -l (查看系统运行的Java程序的路径和进程号)
-
kill 根据一个信号给出特定的动作
-
#kill -9 进程号(通知某个进程)
-
killall 用于杀死指定名称的进程,不常用
head 、tail
- head 用来显示文件的开头的标准输出
- #head file (默认显示文件的前十行)
- #head -n 5 file (显示文件的前五行内容)
- tail 从指定点开始将文件写到标准输出
- #tail file (默认显示文件末尾的10行数据)
- #tail -f file.log (显示正改变的日志文件)
- #tail -100f file.log (显示末尾100行数据并且显示这个在改变的日志文件)
top 、free 、df 、du 、wc、ethtool
- top 可以实时显示系统中各个进程的资源占用情况,可以查询CPU占用情况,距离上次服务器重启有多少天,多少进程在运行,内存状态,各个进程使用硬件资源状况
- #top ->enter->1(输入top后在执行enter,然后再按1可以监控每个逻辑CPU的使用情况)
- #top ->enter->c(显示当前运行的进程的完整路径及命令)
- free 可以实时监控系统的内存使用情况
- #free -m (查看内存的兆,主要包括总大小、已使用多少、剩余多少)
- #free -g(查看内存的G,主要包括总大小、已使用多少、剩余多少)
- df 检查文件系统的磁盘空间占用情况
- #df -h (查看磁盘空间的的使用情况和剩余情况)
- #df -i (查看磁盘的iNode索引值的使用情况和剩余情况)
- #cat /proc/meminfo | more 查看内存的准确值
- du 统计目录或文件所占磁盘空间大小
- #du -sh /home/ (查看/home/目录占用磁盘大小)
- #du -sh file (查看文件占用磁盘大小)
- wc 统计文件内容,主要用于统计文件中的字节数、单词数、行数
- #cat /etc/passwd/wc -l(查看/etc/passwd文件有多少行)
- ethtool 查看网卡
- #ethtool eth0 (查看eth0 网卡的模式,类型,link状态)
dd 、time
- dd 主要用来数据备份,并且可以在备份过程中进行格式转换,它的重要用途可以测试磁盘读写能力
- #dd if=“输出文件” of=“输出文件” bs="数据块"count=“数量”
- time dd if=/dev/zero of=tmp/test bs=1024k count=1000(/dev/zero 是一个伪造设备,只产生空字符流,对它不会产生IO,所有IO都会集中到of文件中去,of 文件只用于写,这个命令相当于测试磁盘的写能力,写一个G文件IO写的效率如何,花费多长时间)
- time dd if=/dev/mapper/centos of=/dev/null bs=10M count=1000(测试读能力)
- time dd if=/dev/mapper/centos of=tmp/test bs=1M count=1000(慎用,同时测试读写能力,)
- time 用于测量一个命令的执行时间
watch 、nohup、tcpdump
- watch监测一个命令的持续性运行结果,监视结果变化
- #watch -n 1 netstat -ant(每隔一秒显示网络连接数变化情况,使用Ctrl+ C退出)
- #watch -n 1 ipconfig | grep (可查询接口流量)
- #watch -n 0.1 ‘ps aux |grep python3’(每隔一秒监视python3程序运行情况)
- nohup忽略所有挂断信号,在注销后使用nohup命令运行后台中的程序,并在当前目录下产生nihup.out日志
- #nohup python3 policy_sync_client.py>/devnull 2>&1 &(将写好的Python循环脚本通过nohup 做一个空输出并通过&持续运行在后台)
- tcpdump可以根据使用者需求对网络上传输的数据包进行捕获的抓包工具
- tcpdump -i eth0 host 1.1.1.1 -w /tmp/ceshi.pcap -vvv(捕获带有1.1.1.1的ip 的eth0接口流量,并将结果保存在/tmp/ceshi.pcap 中,-vvv 表示在线打印多少个包动态显示,pcap文件可以sz到本地主机上通过wireshark分析流量)
3.5 vi 、vim命令使用
1、光标倒第一行:gg
2、光标到最后一行:GG
3、set nu 将文件展示行号
4、删除10-20行 : 10gg 让输入10dd
5、对上一次操作回退:u
6、筛选文章某个字段: /字段名称
7、将筛选的文件往下查看输入n,网上看输入N
8、yy用于复制文件,p用于粘贴文件
9、在当下光标的下一行编辑数据,直接输入o
3.6 三剑客命令使用
awk
- 强大的文本处理工具
- #cat /var/log/secure|awk ‘{print $1 }’(查看并获取安全日志以默认空格位分隔符截取所有行的第一列数据)
- #cat /var/log/secure | awk -F ‘:’ ‘{print $2}’(查看并获取安全日志以“:”为分隔符截取所有行的第二列数据)
- #du -s /home/* | awk ‘{print sum=sum+$1}’|taill -n 1(用du -s 获取home目录下所有文件对应的文件大小,通过awk得出home目录的文件总大小,tail取最后一个总量值)
grep egrep
- grep 是一个文本搜索工具,可以配合正则表达式搜索文本,并把匹配的打印出来
- #grep -n root /etc/passwd
- #grep -v root /etc/passwd
- #grep -i root /etc/passwd
- #cat /etc/passwd | grep root
- #ps aux | grep xsa |grep -v grep (查看xsa进程是否存在,并且排除grep进程)
- egrep 是grep 增强版,和grep -E 效果一样
- #egrep ‘root|deamon’ /etc/passwd(包含两个关键字)
sed
- 在线编辑器,一次处理一行,常用作替换文本操作
- #sed -i ‘s/task77/task78/g’ /tmp/test(修改/tmp/test文件中,task77修改为task78,后面添加参数g,保证每一行所有的目标字符都被替换)
- #sed -n ‘10p’ /tmp/test(查看第十行的数据)
3.7 iptables使用说明
- 集成在Linux内核的包过滤防火墙,使用iptables可以添加、删除具体的过滤规则,默认维护着4个表5个链,主要关注INPUT和OUTPUT
- iptables 操作用法
1、停止并屏蔽firewalld (centos7.0以下可省略)
systemmctl stop firewalld
systemmctl mask firewalld
2、安装iptables (7.0版本需要重新安装iptables)
yum install iptables-service(设备必须上网)
3、设置开机启动(7.0版本一下可省略)
systemmctl enable iptables.service
4、启动服务步骤
service iptsbles restart
service iptsbles start
service iptsbles status
5、常规配置iptables 的格式
iptables -P INPUT ACCEPT(全部放行)
iptables -P FIREWALLD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F(刷新)
iptables -INPUT -s 本机 ip/32 -j ACCEPT(添加白名单)
iptables -INPUT -s 127.0.0.1 ip/32 -j ACCEPT
iptables -INPUT -m state --state ESTABLISH,RELATED -j ACCEPT
iptables -P INPUT DROP
service iptables save
checkconfig iptables on
iptables -nL (查询)
配置文件: /etc/sysconfig/iptables
4、Linux常规问题处理
4.1 怎么破解Linux密码
- grep引导程序进入救援模式,该模式可以修改root密码,恢复硬盘等操作
4.2 怎么大量删除数据
情况1
- 1、当你要删除的文件夹频繁写数据是,可以使用mv 命令将该文件夹迁移成bak文件,如果无法删除转到情况二;
- 2、操作步骤:
1)#ll /tmp/ceshi 查看要删除的数据
2)#mv /tmp/ceshi /tmmp/ceshi.bak迁移
3)#mkdir /tmp/ceshi
4) #chmod 75 /tmp/ceshi
5) #rm -rf /tmp/ceshi.bak(如果无法删除,参考情况二)
情况2
- 出现文件夹无法直接删除时,可通过删除特定文件大小文件、特定时间文件以搜索的方式分批删除
1)#find /tmp/ceshi -type f -size +10M -delete
2) #find /tmp/ceshi -name “*.txt”|xargs rm
4.3 怎么查询大量日志
- #tail -10000 file.log >> test再打开test文件查看
4.4 怎么查询一个文件的关键字
- 使用grep命令