linux

linux

1.1目录

/bin:是Binary的缩写,这个目录存放着系统必备执行命令

/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放这里

/dev:Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

/etc:所有的系统管理所需要的配置文件和子目录。

/home:存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

/lib:系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

/media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

/misc: 该目录可以用来存放杂项文件或目录,即那些用途或含义不明确的文件或目录可以存放在该目录下。

/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

/net 存放着和网络相关的一些文件.

/opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。

/root:该目录为系统管理员,也称作超级权限者的用户主目录。

/sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

/selinux:这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙

/srv:service缩写,该目录存放一些服务启动之后需要提取的数据。

/sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。

/tmp:这个目录是用来存放一些临时文件的。

/usr: 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。

/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

1.2基础知识

1.2.1硬盘分区

建立分区时遵循的顺序 建立主分区(至少有一个)->建立扩展分区(最多只有一个)->建立逻辑分区(若干个)->激活主分区->格式化所有分区

硬盘容量=主分区容量+扩展分区的容量

扩展分区容量=若干个逻辑分区的容量总数

主分区+若干逻辑分区=驱动器/卷(逻辑磁盘)

1.2.2文件系统

linux(一切都是文件,所以一切东西都是给文件系统保管)

tree / -L数字(第几层):查看文件树

/etc #存放一些关于系统,管理相关用户文件

/boot #存放系统启动时需要的文件

/home #用户目录

/lib #存放共享连接库

/proc #存放系统进程,核心程序的信息

/root #root用户的主目录

/sbin #存放启动的一些命令(root常用)

/tmp #用户存放的临时文件

/usr #里面还有很多子目录,存放程序

/var #里面存放了系统日志,web日志,数据库日志,web源代码,邮箱

绝对,相对路径:/var/www/html/6.php(绝对)…/(相对)

touch:创建文件

echo ’XX‘ >> 6.php :将xx写入6.php

文件类型:普通文件,目录文件,链接文件(快捷方式),设备文件(/dev)

挂载:

/

/boot

swap :交换分区·,临时,虚拟)

XFS:日志文件系统 (高容量磁盘,大文件,最大16TB,centos7+),在之前使用的是EXT4

1.2.3.inode节点与块

硬盘存储最小单位:sector(512字节=0.5KB)

8个扇区=一个块(block):4KB

inode内容:

1)元数据:文件大小,文件操作权限,时间戳,放文件数据的块位置,链接数

2)数据块:文件内容,目录信息

inode大小:512KB

df -i (当前inode信息)

ls -i (inode值)

ls -li(换行显示)

1.2.4对Linux简化系统服务

systemctl stop firewalld #关闭防火墙

iptables -F #清除防火墙规则

setenforce 0 #关闭selinux防火墙

systemctl status 服务状态 #查看服务的系统状态

systemctl status firewalld 服务状态 #查看防火墙状态

sestatus #selinux防火墙状态

1.2.5.init&systemd

centos6用的init服务机制

/etc/init.d/nginx start

/etc/init.d/nginx stop

mysqld httpd

systemd进程代替init进程

ps -ef #进程信息

1.2.6系统服务控制

语法结构:

systemctl

start

stop

systemd的常见单元类型:

12种实体单元类型

  1. 服务单元(service units):启动和控制 daemons 等进程,更多信息 man 5 systemd.service
  2. 套接字单元(socket units):封装本地在系统内等 IPC 或网络 socket,基于网络点激活,man 5 systemd.socket, man 7 daemon
  3. 目标单元(target units):用于对单元分组,或启动阶段更好同步点,man 5 systemd.target
  4. 设备单元(device units):基于设备点激活,内核使用的设备,man 5 systemd.device
  5. 挂载单元(mount units):控制在文件系统内的挂载点,man 5 systemd.mount
  6. 自动挂载单元(automount units):提供自动挂载能力,并行启动阶段文件系统挂载,man 5 systemd.automount
  7. 快照单元(snapshot units):可用来临时对实体单元集合对状态进行临时保存,之后可以从保存快照单元中恢复,man 5 systemd.snapshot
  8. 定时器单元(timer units):基于定时器来触发其他单元对激活,man 5 systemd.timer
  9. 交换单元(swap units):与挂载单元类型,封装了文件系统内存交换分区相关对象,man 5 systemd.swap
  10. 路径单元(path units):用来当文件系统的对象改变或被修改时,激活其他服务,man 5 systemd.path
  11. 切片单元(slice units):用于资源管理的目的来对单元进行分组,管理系统进程(如:服务单元、范围单元)在层次化树中,man 5 systemd.slice
  12. 范围单元(scope units):与服务单元类似,但是用来管理外部进程,而不是启动他们,man 5 systemd.scope

apache启动,停止,重启:

service httpd start #启动
service httpd restart #重新启动
service httpd stop #停止服务

systemctl list-unit-files | grep httpd #查询是否开机自启

systemctl enable httpd #开机自启

systemctl list-unit-files #查看启动项

systemctl list-unit-files | grep enable #过滤查询

runlevel 查看当前等级

/etc/systemd/multi-user.target.wants/ #所有开机自启服务的软连接存放

linux操作

1.shell

/bin/sh

/bin/bash

/bin/zsh

/bin/tcsh

/bin/csh

shell 脚本语言:

2.内核:

1).设备系统

2).文件系统

3).进程系统

4).内存系统

5).网络系统

1.3基础命令

1.3.1压缩

gzip,bzip2,tar(c,x)

相对应的解压方式

*.tar #tar -xvf

*.gz #gzip -d gunzip

*.tar.gz #tar -xzf

*.bz2 #bzip bunzip2

*.rar #unrar -e

*.zip #unzip

1.3.2vim编辑

插入内容光标编辑文件:a,i

退出编辑模式:esc

删除键:backspace

操作键::

保存:w

退出:q

h,j,k,l:左下上右

ctrl+f #翻页(上移)

ctrl+b #翻页(下移)

H:移动光标到最上方

M:移动光标到中间

K:移动光标到最下方

在一行中,将光标移动到行首行尾:

0

$

dd:删除本行

ndd:往下删除n行

yy:复制本行

nyy:向下复制n行

u:撤销

ctrl+r:重做上一步

/字符串 查找字符串向下

?字符串 查找字符串向上

1.3.3linux应用程序

1)bin(用户指令) sbin(root/超级用户)

/bin

/var

/home

已安装rpm包的常见查询指令:

rpm -qa #查询已安装的rpm包

rpm -ql rpm包名 #查看该rpm包的相关安装路径

rpm -qi #查看该rpm包的详细信息

rpm -qd #查看该rpm包的文档安装位置

rpm -qR #查看该rpm包依赖的软件包和文件等

未安装rpm包的常见查询指令:

rpm ——qp($)#功能和上面一样,然后参数也和上面一样,就是中间加上一个p,然后后面指定的一定是一个未安装好的rpm包

编译安装源码

1)解压tar zxf

2)配置 ./configure --prefix=安装apache

3)编译 make

4)安装make install

5)开启web服务:apachectl start

访问本机ip,发现成功开启了web服务

1.3.4账号权限

id

uid

gid

1.4卷

1.4.1物理卷&卷组&逻辑卷

物理卷(PV,Physical Volumes)对应的是硬件存储,是磁盘或者磁盘分区,是物理存在。而卷组(VG,Volume Group)和逻辑卷(LV,Logical Volumes)则是逻辑上的存在。

卷组是由一到多个物理卷组成的,他可以划分成一到多个逻辑卷。

LE,Logical Extent,字面上是逻辑区,是逻辑卷最小的存储单位,个人为了方便理解,常说做逻辑块,实际上是逻辑区域。

PE,Physical Extent,物理区,是物理卷区域,是物理卷最小的存储单位,可以在创建物理卷时,指定大小,但是指定之后,就不可以在更改,除非删除物理卷,重新创建,当然,内容也会被删除。

创建分区

创建交换分区的命令:mkswap

启用:swapon

swapon [OPTION] [DEVICE]

-a:定义在/etc/fstab文件中的所有swap设备;

禁用:swapoff

swapoff DEVICE

mkfs命令

fdisk命令

1.4.2挂载

fstab文件

mount #挂载

umount #移除

1.4.3配额

qiota -u 用户名

qiota -g 组名

xfs_quota -x -c “limit bsoft=100M bhard=120M zhangsan“ /mailbox

xfs_quota -x -c “limit bsoft=N bhard=N 用户名“ 挂载点

touch text{1…4}.txt #创建4个文件

dd if=/dev/zero of=1.txt bs=50M count=1

ps命令:查看进程

ps aux --sort==res #内存占用量排序

ps aux --sort==%cpu #cpu占用量排序

top命令:

pgrep命令:根据特定条件查询进程pid信息

pstree命令:树状查看

cp /xx/xx /xx/xx.xx &

在命令行后加入&后台运行

ctrl+z 拉入后台运行

jobs #查看后台启动进程

fg (bg)#恢复至前台

ctrl+c 中断正在执行的命令

kill,killall命令

pkill命令

at命令

crontab命令

1.5服务

1.5.1软件安装&升级&卸载

安装软件

yum install [软件名]

yum groupinstall <包组名>

升级软件

yum update

yum groupupdate

卸载软件

yum remove <软件名>…

yum groupremove <包组名>…

1.5.2ftp

hostname #更改名称

查看路由表条目 route

netstat [选项] #查看系统的网络连接状态,路由表,接口统计等信息

-a -n -p -t -u -r

netstat -anpt | grep “:80”

traceroute 目标主机地址 #测试当前主机到目的主机之间经过的网络节点

nslookup 目标主机地址 [dns服务器地址] #测试dns域名解析

设置网络接口的ip地址,子网掩码

ifconfig 接口名 ip地址 [netmask 子网掩码]

ifconfig 网络接口 ip地址 [/掩码长度]

禁用或者重新激活网卡

ifconfig 网络接口 up

ifconfig 网络接口 down

设置虚拟网络接口

ifconfig 接口名:序号 ip地址

route add -net 网段地址 gw IP地址 #添加到指定网段的路由记录

route del -net 网段地址 #删除到指定网段的路由记录

route del default gw IP地址 #删除路由表中的默认网关记录

route add default gw IP地址 #向路由表中添加默认网关记录

vi /esc/sysconfig/network-scripts/ #网络接口配置文件

hosts文件和dns服务器的比较:

1)默认情况下,系统首先从hosts文件查找解析记录

2)hosts文件只对当前的主机有效

3)hosts文件可减少dns查询过程,从而加快访问速度

1.5.3dhcp服务

subent网段声明,作用于整个子网地址

range参数:设置用于分配的ip地址池

option subnet-mask 参数:设置客户机的子网掩码

option routers 参数:设置客户机的默认网关地址

host 主机声明,作用于单个主机

hardware ethernet 参数:指定对应主机的mac地址

fixed-address 参数:指定为该主机保留的ip地址

1.5.4dns系统

正向解析

反向解析

缓存域名服务器

主域名服务器

从域名服务器

1.5.5ssh

ssh协议

openssh

1.6smb

1.6.1ssh构建密钥

由客户端的用户在本地创建密钥对

导入到服务端用户的公钥数据库

1.smb

smb协议linux

server message block ,服务消息块

cifs协议

common internet file system ,通用互联网文件系统

samba项目

http://www.samba.org

samba服务器的主要程序

smbd:提供对服务器中文件,打印资源的的共享访问

nmbd:提供基于netbios主机名称的解析

samba的配置目录及文件

/etc/samba/

/etc/samba/smb.conf

配置文件检查工具:testparm

smb.conf文件的配置内容

辅助配置内容

注释行:以#号开头

配置行:以;开头

结合grep命令可以提取有效配置行

grep -v ”^#“ smb.conf | grep -v “^;” | grep -v ^$

常见全局配置项的含义

workgroup:所在工作组名称

server string:服务器描述信息

security:安全级别,可用值如下

share,user,server,domain

log file:日志文件位置,”%m“变量表示客户机地址

passwd backend:设置共享账户文件类型

常见共享目录配置项的含义

comment: 对共享目录的注释、说明信息

path:共享目录在服务器中对应的实际路径

browseable:该共享目录在“网上邻居”中是否可见

guest ok:是否允许所有人访可,等效于"public"

writable:是否可写,与read only的作用相反

1.6.2ftp

控制连接:tcp 21,用于发送tcp命令信息

数据连接:tcp20,用于上传,下载数据

数据连接的建立类型

主动模式:服务端从20端口主动向客户端发起连接

被动模式:服务端在指定范围内某个端口被动等待客户端连接

ftp传输模式

文本模式:ascii模式,以文本序列传输数据

二进制模式:binary模式,以二进制序列传输数据

1.7中间件

1.7.1apache虚拟主机的搭建

1.7.2nginx虚拟主机的搭建

1.7.3tomcat服务的搭建

1.7.4基于awstats的apache日志分析

第一步:安装EPEL-release

yum install epel-release -y

第 二 步:安装 Apache

yum install httpd -y

安装后启动:

systemctl start httpd

systemctl enable httpd

systemctl status httpd

第三步:安装awstats

yum install awstats -y

为 Apache 配置 awstats

AWStats 会生成一个默认的 Apache 配置文件/etc/httpd/conf.d/awstats.conf此文件允许

访问所有 IP 地址,但如果想从特定网络或 IP 地址访问 Awstats,就修改“允许来自”部分

此文件与您所需的网络 IP。进行更改后,使用以下命令重新启动 apache。

systemctl restart httpd

第四步:为网站创建awstats配置文件

为所需网站制作一个配置文件,以便我们检查其统计信息。也可以为每个网站制作单独

的文件。

使用以下命令使用自己的域名创建默认 AStats 配置文件的副本

cp/etc/awstats/awstats.localhost.localdomain.conf/etc/awstats/awstats.yourd

然后在“ awstats.yourdomain.com.conf ”文件中进行一些更改,使用以下命令对其进行编辑。

vim/etc/awstats/awstats.yourdomain.com.conf

并使用自己的域名修改此文件中的以下行

LogFile=”/var/log/httpd/yourdomain.com-access_log”

SiteDomain=”yourdomain.com”

HostAliases=”www.yourdomain.comlocalhost127.0.0.1”

现在保存对文件的更改并重新启动 apache。

systemctl restart httpd

使用以下命令从当前日志更新您的网站统计信息

注意:不要忘记将 -config=yourdomain.com 替换你自己的域名。

如果遇到日志文件错误,尝试新建.log文件再尝试。

mkdir/var/log/httpd/yourdomain.com-access_log

第五步:设置计划任务

设置一个 cron 作业,以在特定时间间隔内不断更新网站统计信息。例如,我们希望每

59 分钟更新一次网站统计信息,因此我们将使用以下命令配置 cron 作业。

crontab-e

*/59 * * * * root /usr/share/awstats/wwwroot/cgi-bin/awstats.pl-config=yourd

第六步:从Web浏览器访问Awstats

想查看您的网站统计信息,请使用以下链接,但不要忘记在该链接中使用我们自己的服

务器 IP 和域名

http://YOUR-SERVER-IP/awstats/awstats.pl?config=yourdomain.com

1.7.5基于awstats的nginx日志分析

一、编译nginx,加上参数 --with

http_stub_status_module

#查看是否安装Status模块

nginx -V 2>&1 | grep -o with-http_stub_status_module

#配置指令

./configure --prefix=/usr/local

–user=nginx

–group=nginx

–with-http_ssl_module

–with-http_realip_module

–http-client-body-temp-path=/usr/local/var/tmp/nginx/client

–http-proxy-temp-path=/usr/local/var/tmp/nginx/proxy

–http-fastcgi-temp-path=/usr/local/var/tmp/nginx/fcgi

–http-scgi-temp-path=/usr/local/var/tmp/nginx/scgi

–http-uwsgi-temp-path=/usr/local/var/tmp/nginx/uwsgi

–with-http_geoip_module

–with-http_stub_status_module

二、修改nginx配置文件,添加监控状态配置

在nginx.conf的server块中添加如下代码

location /status {

​ stub_status on;

​ access_log off;

​ allow 127.0.0.1;

​ deny all;

​ #auth_basic “NginxStatus”;

​ #auth_basic_user_file conf/nginxstaus;

}

三、访问信息

http://127.0.0.1/status,即可查看nginx的状态信息:

四、状态解释

1 在nginx 状态页面,可以看到几个数字,但是都是对应哪个参数呢?

2 Active connections – 活跃的连接数量

3 server accepts handled requests — 对应的是:连接数、成功创建的tcp握手、总请求数 三

4 上面的示例说明:总共处理了7个连接 , 成功创建7次握手, 总共处理了36个请求。

5 reading — 读取客户端的连接数。

6 writing — 响应数据到客户端的数量。

7 waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading+writing):

意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接。

通过这七个参数,就可以从连接到请求全方位的监控起 Nginx 的运行状态。

1.7.6tomcat和nginx搭建环境

1.6.7squid搭建缓存服务器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值