Linux常识

 

创建逻辑卷步骤

磁盘空间满了怎么办

1.查询出是什么占用了大量磁盘空间 切换到根目录下: cd / 查询当前目录下占用空间大的文件或者文件夹: du -h –max-depth=1 根据显示出来的文件占用空间大小,选择最多的那个,进入目录,继续:du -h –max-depth=1 当发现全是文件的时候,或者显示不出占用空间最多文件的时候,用: du -sh *

2.删除文件 找到那个占用空间最多的文件,如果不是重要文件,删除就行了。 反之,找占用空间第二多的文件,继续上面操作。 我的是日志打印文件,太久没清空,导致占用了27G。 所以直接清空该文件就行了: echo ““>hhq.log

linux中shell变量$#,$@,$0,$1,$2的含义解释

linux中shell变量$#,$@,$0,$1,$2的含义解释: 
变量说明: 
$$ 
Shell本身的PID(ProcessID) 
$! 
Shell最后运行的后台Process的PID 
$? 
最后运行的命令的结束代码(返回值) 
$- 
使用Set命令设定的Flag一览 
$* 
所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2$n"的形式输出所有参数。 
$@ 
所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2""$n" 的形式输出所有参数。 
$# 
添加到Shell的参数个数 
$0 
Shell本身的文件名 
$1$n 
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。 

如何优化 Linux系统

  • root,添加普通用户,经过sudo受权管理
  • 更改默认的远程链接SSH服务端口及禁止root用户远程链接
  • 自动更新服务器时间
  • 四、配置国内yum源
  • 关闭selinux及iptables(iptables工做场景若是有外网IP必定要打开,高并发除外)
  • 调整文件描述符的数量
  • 精简开机启动服务(crond rsyslog network sshd)
  • 内核参数优化(/etc/sysctl.conf)
  • 更改字符集,支持中文,但建议仍是用英文字符集,防止乱码
  • 锁定关键系统文件
  • 清空/etc/issue,去除系统及内核版本登陆前的屏幕显示

Centos开机流程

  • 开机加电自检,加载BIOS的硬件信息,获取第一个启动设备
  • 读取第一个启动设备MBR的引导加载程序(grub)的启动信息
  • 加载核心操做系统的核心信息,核心开始解压缩,并尝试驱动全部的硬件设备
  • 核心执行init程序,并获取默认的运行信息
  • init程序执行/etc/rc.d/rc.sysinit文件
  • 启动核心的外挂模块
  • init执行运行的各个批处理文件scripts
  • init执行/etc/rc.d/rc.local
  • 执行/bin/login程序,等待用户登录
  • 登陆后开始以shell控制主机。

简述进程的启动、终止的方式以及如何进行进程的查看

在Linux中启动一个进程有手工启动和调度启动两种方式:

  • 手工启动:用户在输入端发出命令,直接启动一个进程的启动方式。能够分为:①前台启动:直接在SHELL中输入命令进行启动。②后台启动:启动一个目前并不紧急的进程,如打印进程。
  • 调度启动:系统管理员根据系统资源和进程占用资源的状况,事先进行调度安排,指定任务运行的时间和场合,到时候系统会自动完成该任务。 常用的进程调度命令为:at、batch、crontab。

在linux系统中,通常都会有swap内存,你以为使用swap内存有什么好处,在什么状况下swap内存才会被使用?

  • 好处:在内存不够用的时候,将部份内存上的数据交换到swap空间上,以便让系统不会由于内存不够用而致使紧急状况出现。
  • 什么状况下会用swap:当系统的物理内存不够用的时候,就须要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操做的程序,这些被释放的空间被临时保存到swap空间中,等到那些程序要运行时,再从swap中恢复保存的数据到内存中。这样,系统老是在物理内存不够时,才进行swap交换。

Centos7破解root口令

  • 首先在菜单界面按【e】键,进入启动文件界面后;
  • 按【↓】拉到底部 在 “LANG=zh_cn.UTF-8” 同行后面加上“init=/bin/sh” ;而后按【Ctrl+X】进入“单用户模式”
  • 输入【ls】,回车,再输入【mount –o remount ,rw / 】,回车 (注意空格)
  • 输入【passwd】(注意:密码不能少于8位),重复输入两次密码
  • 输入【touch /.autorelabel】,回车,再输入【exec /sbin/init】回车,以便重启系统。

某天误操做,执行了rm -rf * ,会有哪些状况发生?请举例

  • 若是当前目录为”/tmp” ,那么这个目录下的东西会所有删除(默认不包含隐藏文件)
  • 若是当前目录为”/”,那么系统上的数据将会丢失,且没法启动,系统崩溃(谨慎使用这个命令)

用tcpdump嗅探80端口的访问看看谁最高

tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}'| sort | uniq -c | sort -nr |head -20

统计/var/log/httpd/access.log日志访问频繁前十的地址,并从大到小排序

cat access.log |cut -d" " -f1 |sort |uniq -c |sort -nr|head -n10

取IPV4地址

ifconfig ens33| grep -Eo "([0-9]{1,3}.){3}[0-9]{1,3}" head -1

取分区利用率

df | grep " /dev/sd " | grep -o " [0-9]{1,3}%" | grep -o " [0-9]+ " | sort -nr | head - n1

取分区利用率

sed -rn ' s/^([^[:space:]]+).([0-9]+)%./\2/p'

用户

sed -rn ' s/^([^[:space:]]+).([0-9]+)%./\1/p'

查看版本型号

 cut -d "." -f1 /etc/redhat-release |egrep -o "[0-9]+"

查看版本型号

grep -o " [0-9]+. " /etc/redhat-release | grep -o " [0-9]+ "

查看版本型号

sed -rn " s/.([0-9]+)../\1/p " /etc/redhat-release

匹配手机号码

egrep -o " 1[0-9]{10} " tel.txt

匹配email邮箱

egrep -o "([[:alnum:]]|_)+@[[:alnum:]]+.com$" mail.txt

使用sed命令取IPV4地址

|sed -n '2p' |sed -r 's/inet//' |sed -r 's/netmask.//' |tr -d " " 
|sed -n '2p' sed -e 's/^.inet//' -e 's/.//' 
|sed -n -e '2s/^.inet//' -e '2s/ .//p' 
|sed -nr '[email protected] (.) .n.@\1@p' 
|sed -nr '2s/[^0-9]+([0-9.]+)./\1/p'

为什么要给硬盘分区 ①、易于管理和使用;②、有利于数据安全;③、节约寻找文件的时间

文件系统查看命令:df 统计目录或文件大小:du 文件系统修复命令:fsck; 显示磁盘状态命令:dumpe2fs; 实现从IP地址到以太网MAC地址转换的命令为:arp 进程查看的命令:ps、top 进程调度的命令:at、crontab、batch、kill。 快速查找/root目录中大于2M的文本,并将文件中的magedu,换成www.magedu.com :

find /root --size +2M -type f -exec sed -i 's/magedu/www.magedu.com/g' {} \;

以txt结尾,30天没有修改的文件大小大于20K同时具备执行权限的文件并备份到/data/backup/目录下:

find / -name *txt -mtime +30 -type f -size +20k -perm a=x -exec cp {} /data/backup/ \;

每次开机在/tmp目录下建立一个当天的日期文件夹(提示:当前日期表示的方法为:date +%Y%m%d):

echo "mkdir /tmp/date +%Y%m%d" >> /etc/rc.d/rc.local

如何开启linux服务器路由转发功能?

echo "1" > /proc/sys/net/ipv4/ip_forward

如何将本地80端口的请求转发到8080端口,当前主机ip 192.168.16.1,网卡eth0:

iptables -t nat -A PREROUTING -i eth0 -d 192.168.16.1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080

如何添加一块新的50G硬盘到linux服务器系统做为单独的分区,并正常使用

  • 创建X分区。假设你的分区在/dev/sdb,用fdisk命令进行
  • 格式化分区用mkfs.xfs命令进行,如果已有其他文件系统创建在此分区,必须加上”-f”参数来覆盖它。 sudo mkfs.xfs -f /dev/sdb1

  • 挂载用mount命令进行,假设/storage是XFS本地挂载点。使用下述命令挂载:sudo mount -t xfs /dev/sdb1 /storage
  • 编辑配置文件“ /etc/fstab ”实现自动挂载。如果你想要启动时自动挂载XFS分区在/storage上,加入下列行到/etc/fstab: /dev/sdb1 /storage xfs defaults 0 0

什么是中间件?

中间件:叫做中间件服务器或应用服务器;是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不一样的技术之间共享资源;中间件位于客户机/ 服务器的操做系统之上,管理计算机资源和网络通信;是链接两个独立应用程序或独立系统的软件。相链接的系统即便它们具备不一样的接口;但经过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递;经过中间件,应用程序能够工做于多平台或OS环境。常见中间件有:kafka、rabbitMQ

什么叫CDN?CDN链接失败的缘由有哪些?

内容分发网络;基本原理是普遍采用各类缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工做正常的缓存服务器上,由缓存服务器直接响应用户请求。其目的是经过在现有的Internet中增长一层新的网络架构,将网站的内容发布到最接近用户的网络边缘;使用户可就近取得所需的内容,提升用户访问网站的速度,解决不一样运营商之间的互联,由于可让联通的网络访问联通让电信的网络访问电信,起到加速用户访问的目的。

一、CDN服务器网络间接性的故障。二、CDN节点出现故障,主要缘由是CDN服务商所提供的节点分布有限或不均衡。三、本地网络处于不正常的状态。四、数据传输过程当中,网络出现网络拥堵或发生故障。5、CDN节点被大量的DDoS或CC。

RabbitMQ也就是消息队列中间件,消息中间件是在消息的传息过程当中保存消息的容器;消息中间件再将消息从它的源中到它的目标中标时充当中间人的做用;队列的主要目的是提供路由并保证消息的传递;若是发送消息时接收者不可用;消息队列不会保留消息,直到能够成功地传递为止,固然,消息队列保存消息也是有期限地。

优点:(1)RabbitMQ易于使用和部署,适宜于不少场景如路由、负载均衡或消息持久化等,用消息队列只需几行代码便可搞定。(2).对外提供客户端API,支持多种编程语言。(3).基于erlang语言开发具备高可用高并发的优势,适合集群服务器。(4). 健壮、稳定、易用、开源、跨平台、支持多种语言、文档齐全。(5). 有消息确认机制和持久化机制,可靠性高。 劣势:(1).这使得它的可扩展性差,速度较慢,由于中央节点增长了延迟,消息封装后也比较大。

Kafka:具备如下特性:快速持久化,能够在O(1)的系统开销下进行消息持久化;高吞吐,在一台普通的服务器上既能够达到10W/s的吞吐速率;彻底的分布式系统,Broker、Producer、Consumer都原生自动支持分布式,自动实现负载均衡;支持Hadoop数据并行加载,Kafka经过Hadoop的并行加载机制来统一在线和离线的消息处理。

优点:(1).经过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即便数以TB的消息存储也可以保持长时间的稳定性能。(2).高吞吐量:即便是很是普通的硬件kafka也能够支持每秒数十万的消息,适合产生大量数据的互联网服务的数据收集业务。(3).支持经过kafka服务器和消费机集群来分区消息。(4).支持Hadoop并行数据加载。

zookeeper=文件系统+通知机制;是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序能够基于它实现同步服务,配置维护和 命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,因为工程师不能很好地使用锁机制,以及基于消息的协调 机制不适合在某些应用中使用,所以须要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。