linux网络服务器学习总结

留给以后的自己和有需要的朋友

主要内容如下:


一为什么学linux

  1. 商业服务器j基本都是linux
  2. 时下最热门的大数据机器学期首选linux
  3. 整个互联网地基是linux撑起来
  4. 开源软件首先支持linux
  5. 嵌入式开发

二学习目的

  1.  掌握linux服务器运维能力
  2. 可独立部署linux服务器
  3. 系统梳理相关知识


三基本概念

  1. 一切皆文件的理解:Linux 与其他类 UNIX 系统一样并不区分文件与目录:目录是记录了其他文件名的文件。使用命令 mkdir 创建目录时,若期望创建的目录的名称与现有的文件名(或目录名)重复,则会创建失败。
  2. Linux 将设备当做文件进行处理,下面代码.展示了如何打开设备文件 /dev/input/event5 并读取文件内容。文件 event5 表示一种输入设备,其可能是鼠标或键盘等。查看文件 /proc/bus/input/devices 可知 event5 对应设备的类型。设备文件 /dev/input/event5 使用 read() 以字符流的方式被读取。结构体 input_event 被定义在内核头文件 linux/input.h 中。

    代码  打开并读取设备文件
    1
    2
    3
    4
    5
    6
    7
    int fd;
    struct input_event ie;
    fd = open("/dev/input/event5", O_RDONLY);
    read(fd, &ie, sizeof(struct input_event));
    printf("type = %d  code = %d  value = %d\n",
                ie.type, ie.code, ie.value);
    close(fd);

四基本命令和操作

  1. 输入命令和目录时Tab键补全,支持双击
  2. ifconfig:显示或配置网卡,yum install net-tools
  3. 127.0.0.1的理解。一台电脑可以理解为有三块网卡,一块网卡叫做 loopback(这是一块虚拟网卡)用来测试本机的TCP/IP协议栈,发往这段A类地址数据包不会出网卡,网络设备不会对其做路由;另外一块网卡叫做 ethernet (这是你的有线网卡);第三块网卡叫做 wlan(这是你的无线网卡)。其中127.0.0.1/8整个都是环回地址,用来测试本机的TCP/IP协议栈,发往这段A类地址数据包不会出网卡,网络设备不会对其做路由,环回地址是主机用于向自身发送通信的一个特殊地址。可以这么说:同一台主机上的两项服务若使用环回地址而非分配的主机地址,就可以绕开TCP/IP协议栈的下层。(也就是说:不用再通过什么链路层,物理层,以太网传出去了,而是可以直接在自己的网络层,运输层进行处理了)。网络号为127的地址根本就不是一个网络地址(因为产生的IP数据报就不会到达外部网络接口中,是不离开主机的包)。
    当操作系统初始化本机的TCP/IP协议栈时,设置协议栈本身的IP地址为127.0.0.1(保留地址),并注入路由表。当IP层接收到目的地址为127.0.0.1(准确的说是:网络号为127的IP)的数据包时,不调用网卡驱动进行二次封装,而是立即转发到本机IP层进行处理,由于不涉及底层操作。因此,ping 127.0.0.1一般作为测试本机TCP/IP协议栈正常与否的判断之一。 所以说:127.0.0.1是保留地址之一,只是被经常的使用,来检验本机TCP/IP协议栈而已

  4. service xxx start 后面是一个脚本,启动对应的程序
  5. systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起
  6. 任务旧指令新指令
    使某服务自动启动chkconfig --level 3 httpd onsystemctl enable httpd.service
    使某服务不自动启动chkconfig --level 3 httpd offsystemctl disable httpd.service
    检查服务状态service httpd statussystemctl status httpd.service (服务详细信息) systemctl is-active httpd.service (仅显示是否 Active)
    显示所有已启动的服务chkconfig --listsystemctl list-units --type=service
    启动某服务service httpd startsystemctl start httpd.service
    停止某服务service httpd stopsystemctl stop httpd.service
    重启某服务service httpd restartsystemctl restart httpd.service

  7. vim 安装 yum install vim 
  8. wget安装 yum install wget
  9. 安装163的源
    • 备份原有的源。mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    • 下载对应版本repo文件, 放入/etc/yum.repos.d/
    • yum clean all  yum makecache。yum 会把下载的软件包和header存储在cache中,而不自动删除。如果觉得占用磁盘空间,可以使用yum clean指令进行清除,更精确 的用法是yum clean headers清除header,yum clean packages清除下载的rpm包,yum clean all一全部清除。
  10. ps -ef|grep XX ps:查看所有进程 -ef:显示进程环境变量和全格式
  11. 查询服务是否暗转 yum list
  12. 创建文件:touch 文件名
  13. 创建目录:mkdir
  14. 删除文件:rm -e 直接把欲删除的目录的硬连接数据删除成0,删除该目录;
    -f:强制删除文件或目录;
    -i:删除已有文件或目录之前先询问用户;
    -r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
    --preserve-root:不对根目录进行递归操作;
    -v:显示指令的详细执行过程。
  15. 删除目录:rmdir 只能删除非空目录
  16. netstat -anpl:查看网络状态
  17. sudo:用户提权
  18. ll+目录:查看目录权限结果为  drwxrrwxrwx. 2 组名 用户名 时间
  19. chown:改变一个目录的访问权限 chown  -R  组名:用户名  目录
  20. 查看本地安装了哪些程序:rpm -qa
  21. 启动一个服务:systemctl start postfix.service
    关闭一个服务:systemctl stop postfix.service
    重启一个服务:systemctl restart postfix.service
    显示一个服务的状态:systemctl status postfix.service
    在开机时启用一个服务:systemctl enable postfix.service
    在开机时禁用一个服务:systemctl disable postfix.service
    查看服务是否开机启动:systemctl is-enabled postfix.service
    查看已启动的服务列表:systemctl list-unit-files|grep enabled
    查看启动失败的服务列表:systemctl --failed


五linux中软件安装方式

一、源代码形式

1.      绝大多数开源软件都是直接以原码形式发布的

2.      源代码一般会被打成.tar.gz的归档压缩文件

3.      源代码需要编译成为二进制形式之后才能够运行使用

4.      源代码基本编译流程:

1).configure 检查编译环境,这里可以通过--prefix等命令配置安装路径(好像)

2)make对源代码进行编译;

3)make insall 将生成的可执行文件安装到当前计算机中

二、RPM

1.源代码形式的特点:操作复杂、编译时间长、极易出现问题、依赖关系复杂

2.为了方便,RPM(redhat package manager)

3.RPM通过将代码基于特定平台系统编译为可执行文件,并保存依赖关系,来简化开源软件的安装管理。针对不同的系统设定不同的包

4.常用命令规范:linuxcast-1.2.0-30.el6.1686.rpm 包名-版本号-适用平台-32/64-rpm

5.使用rpm –i software.rpm(安装)

rpm -e software.rpm(卸载)

rpm –U software.rpm(升级形式安装);

rpm –ivh http://www.linuxcast.net/software.rpm(支持通过http\ftp协议形式安装)

-v 显示详细信息;-h显示进度条

查询功能:rpm –qa 列出全部已经安装的.rpm软件  rpm –qa |grep ***

三:YUM

1.      rpm软件包形式的管理虽然方便,但是需要手工解决软件包的依赖关系。很多时候安装一个软件安装一个软件需要安装1个或者多个其他软件,手动解决时,很复杂,yum解决这些问题。Yum是rpm的前端程序,主要目的是设计用来自动解决rpm的依赖关系,其特点:

1)  自动解决依赖关系;2)可以对rpm进行分组,基于组进行安装操作;3)引入仓库概念,支持多个仓库;4)配置简单

2.      yum仓库用来存放所有的现有的.rpm包,当使用yum安装一个rpm包时,需要依赖关系,会自动在仓库中查找依赖软件并安装。仓库可以是本地的,也可以是HTTP、FTP、nfs形式使用的集中地、统一的网络仓库。

3.      仓库的配置文件/etc/yum.repos.d目录下

4.      使用:1)yum install 安装;

2)yum remove卸载;

3)yum update 升级制定软件

5.      安装的时候,会下载软件包.Rpm在安装,所以用国内仓库

改变镜像源1)访问地址http://mirrors.163.com/;2)点centos使用帮助;3)按步骤来

6.      查询软件:可以使用yumsearch **

综上,yum 比rpm先进,但源码包比较全。


六 SSH

  1. secure shell安全外壳协议,建立在应用层上的协议,几乎支持所有unix平台
  2. 服务端安装ssh服务 yum install openssh-server   yum install openssh-client(在服务端安装中也会安装)
  3. 开启服务 service sshd start
  4. 开机自启动

七系统用户

  1. adduser:在home下自动创建目录,没有设置密码,需要使用passwd命令修改密码
  2. useradd:在ubuntu下不同(不推荐使用)
  3. userdel:删除用户,但是文件夹还在。userdel -r XXX 删除用户和文件夹。或者继续用rm -rf删除文件夹。
  4. passwd:  passwd 用户名 设置密码
  5. 问题: 在linux下添加用户时,出现错误:Creating mailbox file: 文件已存在?
      怎么解决:
          原来linux下添加用户后,会在系统里自动加一个邮箱(系统邮箱),路径是:/var/spool/mail/用户名.
         可以直接用命令#rm -rf /var/spool/mail/用户名
       这样就可以再次添加同一名字的用户.
  6. 切换用户:su
  7. 修改对文件的访问权限:chmod 权限 文件,777代表最读写删除权限421.

八防火墙

  1. 作用
  2. 端口:http端口 80;ssh端口 22; https端口 443
  3. 安装:yum install firewalld
  4. 启动:service firewalld start
  5. 检查状态:service firewalled status
  6. service firewalld stop/disable
  7. firewalld-cmd 安装防火墙之后默认提供了一这个命令, firewalld-cmd --help
  8. firewalld-cmd --list-zone   --list-all-zones  --list-zone=public 默认区域是public
  9. 查询服务 firewalld-cmd --query-service=ssh  查询是否开启了ssh服务
  10. firewalld-cmd --remove-service=ssh 移出服务
  11. firewalld-cmd  --add-service=ssh 添加服务
  12. firewalld-cmd  --list-services 
  13. firewalld-cmd  --add-port 增加一个端口
  14. firewalld-cmd  --remove-port=22/tcp 关闭端口

九 提权操作

十文件上传下载

  1. wget:wget url
  2. curl:curl-O url 
  3. 区别:在高级用途上的curl由于可自定义各种请求参数所以长于模拟web请求,用于测试网页交互(浏览器);wget由于支持ftp和Recursive所以长于下载,用于下载文件
  4. scp下载:     scp  文件名  用户@ip:服务器目录        然后输入密码
  5. scp上传:     scp  用户@ip:文件名   服务器目录       然后输入密码
  6. xshell上传下载:服务器安装yum install lrzlz; rz直接选择本地文件上传; sz将服务器文件下载
  7. winscp:windows下的服务器文件管理工具。


十一虚拟机安装linux

  1. 下载linux  centos7
  2. 安装过程,选择英文,设置默认root账号密码为123456

十二 目录结构简介

【常见目录说明】

目录

 

/bin

存放二进制可执行文件(ls,cat,mkdir)常用命令一般都在这里。

/etc

存放系统管理和配置文件

/home

存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示

 

/usr

用于存放系统应用程序,比较重要的目录/usr/local 本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。

/usr/x11r6 存放x window的目录

/usr/bin 众多的应用程序  

/usr/sbin 超级用户的一些管理程序  

/usr/doc linux文档  

/usr/include linux下开发和编译应用程序所需要的头文件  

/usr/lib 常用的动态链接库和软件包的配置文件  

/usr/man 帮助文档  

/usr/src 源代码,linux内核的源代码就放在/usr/src/linux里  

/usr/local/bin 本地增加的命令  

/usr/local/lib 本地增加的库

/opt

额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里。

/proc

虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息。

/root

超级用户(系统管理员)的主目录(特权阶级^o^

/sbin

存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等。

/dev

用于存放设备文件。

/mnt

系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统。

/boot

存放用于系统引导时使用的各种文件

/lib

存放跟文件系统中的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,作用类似windows里的.dll文件,存放了根文件系统程序运行所需的共享文件。

/tmp

用于存放各种临时文件,是公用的临时文件存储点。

/var

用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等。

/lost+found

这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里


Linux目录和Windows目录有着很大的不同,Linux目录类似一个树,最顶层是其根目录,如下图:





/bin 二进制可执行命令

/dev 设备特殊文件
/etc 系统管理和配置文件
/etc/rc.d 启动的配置文件和脚本
/home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
/lib 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件
/sbin 超级管理命令,这里存放的是系统管理员使用的管理程序
/tmp 公共的临时文件存储点
/root 系统管理员的主目录
/mnt 系统提供这个目录是让用户临时挂载其他的文件系统
/lost+found这个目录平时是空的,系统非正常关机而留下无家可归的文件(windows下叫什么.chk)就在这里
/proc 虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/var 某些大文件的溢出区,比方说各种服务的日志文件
/usr 最庞大的目录,要用到的应用程序和文件几乎都在这个目录,其中包含:

/usr/x11R6 存放x window的目录
/usr/bin 众多的应用程序
/usr/sbin 超级用户的一些管理程序
/usr/doc linux文档
/usr/include linux下开发和编译应用程序所需要的头文件
/usr/lib 常用的动态链接库和软件包的配置文件
/usr/man 帮助文档
/usr/src 源代码,linux内核的源代码就放在/usr/src/linux
/usr/local/bin 本地增加的命令
/usr/local/lib 本地增加的库根文件系统

 

通常情况下,根文件系统所占空间一般应该比较小,因为其中的绝大部分文件都不需要经常改动,而且包括严格的文件和一个小的不经常改变的文件系统不容易损坏。
除了可能的一个叫/ vmlinuz标准的系统引导映像之外,根目录一般不含任何文件。所有其他文件在根文件系统的子目录中。
1. /bin目录
/ b i n目录包含了引导启动所需的命令或普通用户可能用的命令(可能在引导启动后)。这些命令都是二进制文件的可执行程序( b i nb i n a r y - -二进制的简称),多是系统中重要的系统文件。
2. /sbin目录
/ s b i n目录类似/bin ,也用于存储二进制文件。因为其中的大部分文件多是系统管理员使用的基本的系统程序,所以虽然普通用户必要且允许时可以使用,但一般不给普通用户使用。
3. /etc目录
/ e t c目录存放着各种系统配置文件,其中包括了用户信息文件/ e t c / p a s s w d,系统初始化文件/ e t c / r c等。l i n u x正是*这些文件才得以正常地运行。
4. /root目录
/root 目录是超级用户的目录。
5. /lib目录
/ l i b目录是根文件系统上的程序所需的共享库,存放了根文件系统程序运行所需的共享文件。这些文件包含了可被许多程序共享的代码,以避免每个程序都包含有相同的子程序的副本,故可以使得可执行文件变得更小,节省空间。
6. /lib/modules 目录
/lib/modules 目录包含系统核心可加载各种模块,尤其是那些在恢复损坏的系统时重新引导系统所需的模块(例如网络和文件系统驱动)
7. /dev目录
/ d e v目录存放了设备文件,即设备驱动程序,用户通过这些文件访问外部设备。比如,用户可以通过访问/ d e v / m o u s e来访问鼠标的输入,就像访问其他文件一样。
8. /tmp目录
/tmp 目录存放程序在运行时产生的信息和数据。但在引导启动后,运行的程序最好使用/ v a r / t m p来代替/tmp ,因为前者可能拥有一个更大的磁盘空间。
9. /boot目录
/ b o o t目录存放引导加载器(bootstrap loader)使用的文件,如l i lo,核心映像也经常放在这里,而不是放在根目录中。但是如果有许多核心映像,这个目录就可能变得很大,这时使用单独的文件系统会更好一些。还有一点要注意的是,要确保核心映像必须在i d e硬盘的前1 0 2 4柱面内。
10. /mnt目录
/ m n t目录是系统管理员临时安装( m o u n t )文件系统的安装点。程序并不自动支持安装到/mnt /mnt 下面可以分为许多子目录,例如/mnt/dosa 可能是使用m s d o s文件系统的软驱,而/mnt/exta 可能是使用e x t 2文件系统的软驱,/mnt/cdrom 光驱等等。
11. /proc, /usr,/var,/home目录
其他文件系统的安装点。

 

下面详细介绍;

/etc文件系统

/etc 目录包含各种系统配置文件,下面说明其中的一些。其他的你应该知道它们属于哪个程序,并阅读该程序的m a n页。许多网络配置文件也在/etc 中。
1. /etc/rc/etc/rc.d/etc/rc?.d
启动、或改变运行级时运行的脚本或脚本的目录。
2. /etc/passwd
用户数据库,其中的域给出了用户名、真实姓名、用户起始目录、加密口令和用户的其
他信息。
3. /etc/fdprm
软盘参数表,用以说明不同的软盘格式。可用setfdprm 进行设置。更多的信息见s e t f d p r m
的帮助页。
4. /etc/fstab
指定启动时需要自动安装的文件系统列表。也包括用swapon -a启用的s w a p区的信息。
5. /etc/group
类似/etc/passwd ,但说明的不是用户信息而是组的信息。包括组的各种数据。
6. /etc/inittab
init 的配置文件。
7. /etc/issue
包括用户在登录提示符前的输出信息。通常包括系统的一段短说明或欢迎信息。具体内容由系统管理员确定。
8. /etc/magic
“f i l e”的配置文件。包含不同文件格式的说明,“f i l e”基于它猜测文件类型。
9. /etc/motd
m o t dmessage of the day的缩写,用户成功登录后自动输出。内容由系统管理员确定。常用于通告信息,如计划关机时间的警告等。
10. /etc/mtab
当前安装的文件系统列表。由脚本( s c r i t p )初始化,并由mount 命令自动更新。当需要一个当前安装的文件系统的列表时使用(例如df 命令)
11. /etc/shadow
在安装了影子( s h a d o w )口令软件的系统上的影子口令文件。影子口令文件将/ e t c / p a s s wd文件中的加密口令移动到/ e t c / s h a d o w中,而后者只对超级用户( r o o t)可读。这使破译口令更困难,以此增加系统的安全性。
12. /etc/login.defs
l o g i n命令的配置文件。
13. /etc/printcap
类似/etc/termcap ,但针对打印机。语法不同。
14. /etc/profile / e t c / c s h . l o g i n/etc/csh.cshrc
登录或启动时b o u r n ec shells执行的文件。这允许系统管理员为所有用户建立全局缺省环境。
15. /etc/securetty
确认安全终端,即哪个终端允许超级用户( r o o t )登录。一般只列出虚拟控制台,这样就不可能(至少很困难)通过调制解调器( m o d e m )或网络闯入系统并得到超级用户特权。
16. /etc/shells
列出可以使用的s h e l lchsh 命令允许用户在本文件指定范围内改变登录的s h e l l。提供一台机器f t p服务的服务进程ftpd 检查用户s h e l l是否列在/etc/shells 文件中,如果不是,将不允许该用户登录。
17. /etc/termcap
终端性能数据库。说明不同的终端用什么转义序列控制。写程序时不直接输出转义序列(这样只能工作于特定品牌的终端),而是从/etc/termcap 中查找要做的工作的正确序列。
这样,多数的程序可以在多数终端上运行。

 

/dev文件系统

/dev 目录包括所有设备的设备文件。设备文件用特定的约定命名,这在设备列表中说明。
设备文件在安装时由系统产生,以后可以用/dev/makedev 描述。/ d e v / m a k e d e v.local
系统管理员为本地设备文件(或连接)写的描述文稿(即如一些非标准设备驱动不是标准
makedev 的一部分)。下面简要介绍/ d e v下一些常用文件。
1. /dev/console
系统控制台,也就是直接和系统连接的监视器。
2. /dev/hd
i d e硬盘驱动程序接口。如: / d e v / h d a指的是第一个硬盘, h a d 1则是指/ d e v / h da的第一个
分区。如系统中有其他的硬盘,则依次为/ d e v / h d b/ d e v / h d c. . . . ..;如有多个分区则依次为
h d a 1h d a 2 . . . . . .
3. /dev/sd
s c s i磁盘驱动程序接口。如有系统有s c s i硬盘,就不会访问/ d e v / h a d,而会访问/ d e v / sd a
4. /dev/fd
软驱设备驱动程序。如: / d e v / f d 0指系统的第一个软盘,也就是通常所说的a:盘,
/ d e v / f d 1指第二个软盘,. . . . . ./ d e v / f d 1 h 1 4 40则表示访问驱动器1中的4 . 5高密盘。
5. /dev/st
s c s i磁带驱动器驱动程序。
6. /dev/tty
提供虚拟控制台支持。如: / d e v / t t y 1指的是系统的第一个虚拟控制台, / d e v / t t y2则是系统
的第二个虚拟控制台。
7. /dev/pty
提供远程登陆伪终端支持。在进行te l n e t登录时就要用到/ d e v / p t y设备。
8. /dev/ttys
计算机串行接口,对于d o s来说就是“ c o m 1”口。
9. /dev/cua
计算机串行接口,与调制解调器一起使用的设备。
10. /dev/null
黑洞,所有写入该设备的信息都将消失。例如:当想要将屏幕上的输出信息隐藏起来时,只要将输出信息输入到/ d e v / n u l l中即可。

 

/usr文件系统

/usr 是个很重要的目录,通常这一文件系统很大,因为所有程序安装在这里。/usr 里的
所有文件一般来自l i n u x发行版( d i s t r i b u t i o n);本地安装的程序和其他东西在/usr/local 下,因为这样可以在升级新版系统或新发行版时无须重新安装全部程序。/usr目录下的许多内容是可选的,但这些功能会使用户使用系统更加有效。/ u s r可容纳许多大型的软件包和它们的配置文件。下面列出一些重要的目录(一些不太重要的目录被省略了)
1. /usr/x11r6
包含x wi n d o w系统的所有可执行程序、配置文件和支持文件。为简化x的开发和安装,x的文件没有集成到系统中。x wi n d o w系统是一个功能强大的图形环境,提供了大量的图形工具程序。用户如果对microsoft wi n d o w sm a c h i n t o s h比较熟悉的话,就不会对x win d o w系统感到束手无策了。
2. /usr/x386
类似/ u s r / x 11r6 ,但是是专门给x 11 release 5的。
3. /usr/bin
集中了几乎所有用户命令,是系统的软件库。另有些命令在/bin /usr/local/bin 中。
4. /usr/sbin
包括了根文件系统不必要的系统管理命令,例如多数服务程序。
5. /usr/man/ u s r / i n f o/ u s r / d o c
这些目录包含所有手册页、g n u信息文档和各种其他文档文件。每个联机手册的都有两个子目录。例如: / u s r / m a n / m a n 1中包含联机手册第一节的源码(没有格式化的原始文件)/ u s r / m a n / c a t 1包含第一节已格式化的内容。l联机手册分为以下九节:内部命令、系统调用、库函数、设备、文件格式、游戏、宏软件包、系统管理和核心程序。
6. /usr/include
包含了c语言的头文件,这些文件多以. h结尾,用来描述c语言程序中用到的数据结构、子过程和常量。为了保持一致性,这实际上应该放在/usr/lib 下,但习惯上一直沿用了这个名字。
7. /usr/lib
包含了程序或子系统的不变的数据文件,包括一些s i t e - w i d e配置文件。名字l i b来源于库(library); 编程的原始库也存在/usr/lib 里。当编译程序时,程序便会和其中的库进行连接。也有许多程序把配置文件存入其中。
8. /usr/local
本地安装的软件和其他文件放在这里。这与/ u s r很相似。用户可能会在这发现一些比较大的软件包,如t e xe m a c s等。

 

/var文件系统

/var 包含系统一般运行时要改变的数据。通常这些数据所在的目录的大小是要经常变化或扩充的。原来/ v a r目录中有些内容是在/ u s r中的,但为了保持/ u s r目录的相对稳定,就把那些需要经常改变的目录放到/ v a r中了。每个系统是特定的,即不通过网络与其他计算机共享。下面列出一些重要的目录(一些不太重要的目录省略了)
1. /var/catman
包括了格式化过的帮助( m a n )页。帮助页的源文件一般存在/ u s r / m a n / m a n中;有些m an页可能有预格式化的版本,存在/ u s r / m a n / c a t中。而其他的m a n页在第一次看时都需要格式化,格式化完的版本存在/var/man 中,这样其他人再看相同的页时就无须等待格式化了。(/var/catman 经常被清除,就像清除临时目录一样。)
2. /var/lib
存放系统正常运行时要改变的文件。
3. /var/local
存放/usr/local 中安装的程序的可变数据(即系统管理员安装的程序)。注意,如果必要,即使本地安装的程序也会使用其他/var 目录,例如/var/lock 
4. /var/lock
锁定文件。许多程序遵循在/var/lock 中产生一个锁定文件的约定,以用来支持他们正在使用某个特定的设备或文件。其他程序注意到这个锁定文件时,就不会再使用这个设备或文件。
5. /var/log
各种程序的日志( l o g )文件,尤其是login (/var/log/wtmp log纪录所有到系统的登录和注销syslog (/var/log/messages 纪录存储所有核心和系统程序信息)/var/log里的文件经常不确定地增长,应该定期清除。
6. /var/run
保存在下一次系统引导前有效的关于系统的信息文件。例如, /var/run/utmp 包含当前登录的用户的信息。
7. /var/spool
放置假脱机( s p o o l )”程序的目录,如m a i ln e w s、打印队列和其他队列工作的目录。每个不同的s p o o l/var/spool 下有自己的子目录,例如,用户的邮箱就存放在/var/spool/mail中。
8. /var/tmp
/tmp 允许更大的或需要存在较长时间的临时文件。注意系统管理员可能不允许/var/tmp 有很旧的文件。

 

/proc文件系统

/proc 文件系统是一个伪的文件系统,就是说它是一个实际上不存在的目录,因而这是一
个非常特殊的目录。它并不存在于某个磁盘上,而是由核心在内存中产生。这个目录用于提
供关于系统的信息。下面说明一些最重要的文件和目录(/proc 文件系统在proc man页中有更详
细的说明)
1. /proc/x
关于进程x的信息目录,这一x是这一进程的标识号。每个进程在/proc 下有一个名为自
己进程号的目录。
2. /proc/cpuinfo
存放处理器( c p u )的信息,如c p u的类型、制造商、型号和性能等。
3. /proc/devices
当前运行的核心配置的设备驱动的列表。
4. /proc/dma
显示当前使用的d m a通道。
5. /proc/filesystems
核心配置的文件系统信息。
6. /proc/interrupts
显示被占用的中断信息和占用者的信息,以及被占用的数量。
7. /proc/ioports
当前使用的i / o端口。
8. /proc/kcore
系统物理内存映像。与物理内存大小完全一样,然而实际上没有占用这么多内存;它仅仅是在程序访问它时才被创建。(注意:除非你把它拷贝到什么地方,否则/proc 下没有任何东西占用任何磁盘空间。)
9. /proc/kmsg
核心输出的消息。也会被送到s y s l o g
10. /proc/ksyms
核心符号表。
11. /proc/loadavg
系统平均负载; 3个没有意义的指示器指出系统当前的工作量。
12. /proc/meminfo
各种存储器使用信息,包括物理内存和交换分区( s w a p )
13. /proc/modules
存放当前加载了哪些核心模块信息。
14. /proc/net
网络协议状态信息。
15. /proc/self
存放到查看/proc 的程序的进程目录的符号连接。当2个进程查看/proc 时,这将会是不同的连接。这主要便于程序得到它自己的进程目录。
16. /proc/stat
系统的不同状态,例如,系统启动后页面发生错误的次数。
17. /proc/uptime
系统启动的时间长度。
18. /proc/version
核心版本


十三webserver

  1. Apache:yum install httpd,service httpd start,service httpd stop
  2. Apache虚拟主机:一个服务器多个域名的时候用,每个域名访问的网站内容和源代码不一样。apache的配置文件httpd.conf,在这个里面的virtual host being defined的位置下面定义虚拟主机,
    <VirtualHost *:80>
        ServerName www.blue.com
        DoucumentRoot /data/www
            <Directory "/data/www">
                Option -Indexes FollowSymLinks
                AllowOverride None
                Require all granted
            </Directory>
    </VirtualHost *:80>

    可以建立多个虚拟机,复制上面的代码就好
    然后重启服务
  3. apache 默认代码目录 /var/www/html 配置文件中可以找到,虚拟主机可以指定任意目录
  4. selinux临时设置:setenforce:0 宽松模式; 1严格模式,setenforce是临时模式。
  5. selinux持久设置:持久设置模式:持久关闭是在 /etc/selinux/config文件中的属性 SELINUX属性的设置,enforcing 强制模式,permissive 警告模式,disabled 关闭模式
  6. Nginx虚拟服务器参数:
  7. Nginx中文知识网站:http://www.nginx.cn/

十四 数据库

  1. mysql安装:删除mariadb数据库;在dev.mysql.com中下载redhat7或对应的rpm包到本地(这次安装的是mysql57-community-release-el7-11.noarch.rpm);yum localinstall 将下载rpm包添加到本地源(如果windwos下载的rpm包需要上传到linux);然后yum install XXX.server那个程序,大概190MB.
  2. 启动和停止:service mysqld start/stop/restart
  3. 本地连接MySql:mysql -h -u -p ,主机名 用户 密码,初始密码在日志中,cat /var/log/mysqld.log;首次登录后可能要重新密码。
  4. 选择数据库:use 数据库名
  5. 远程连接:修改数据库的user表中Host值,将“localhost”为“%”,表示支持所有主机连接,查询语句为 select Host,User from user; 修改语句为 update user set Host='%' where Host='localhost' and User='root';
  6. 密码提示:如果提示重置密码,是由于密码过于简单,需要设置为大写、小写、数字、特殊字符组合的密码,或者通过set global validate_password_policy=0; set global validate_password_length=1;这两个语句取消密码约束,然后flush privileges; (不重启mysql的情况下刷新用户权限设置)
  7. 7
  8. 设置密码:SET PASSWORD = PASSWORD(‘123456’);
  9. 数据库连接:如果数据库连接不上可能是防火墙原因。
  10. 设置数据库远程连接:update user set Host='%' where User="root" and Host="localhost"; (%代表可以接受所有连接),然后flush privileges; 刷新权限。如果主机上已经登录mysql,则远程无法继续登录了。
  11. 修改密码(忘记密码):在/etc/my.conf中最后面输入skip-grant-tables ;   连接数据库,密码输入空;成功连接数据库后输入命令use mysql;      show talbles;      update user set authentication_string = password("123456") where user = 'root';(注意每个命令结束必须有冒号); 将/etc/my.conf中的skip-grant-tables行用#注释掉; 重启mysql后可以用新密码登录。
  12. genelog;记录本地所有数据库操作的sql语句
  13. 新建用户:create user 'imooc'@'%' identified by '123456';(默认创建的用户什么权限都没有),grant all privileges on *.* to '账户名'@'%' identified by '123456';
  14. windows下的mysql管理工具:heidisql mysqladmin(目前总是报语法错误)
  15. 权限的分配和收回:grant revoke

十五PHP安装和使用

  1. 下载:https://pan.baidu.com/s/1bpi4D9l 。文件为 php-7.2.0.tar.gz
  2. 解压:tar -zxvf php-7.2.0.tar.gz  
  3. 进入解压的目录:cd php7.2.0 
  4. 安装依赖:yum install libxml2 libxml2-devel openssl openssl-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libmcrypt libmcrypt-devel -y  
  5. 开始进行配置:./configure --prefix=/usr/local/php720 --with-mysqli --with-pdo-mysql --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-simplexml --enable-xml --disable-rpath --enable-bcmath --enable-soap --enable-zip --with-curl --enable-fpm --with-fpm-user=nobody --with-fpm-group=nobody --enable-mbstring --enable-sockets --with-gd --with-openssl --with-mhash --enable-opcache --disable-fileinfo 
  6. 编译安装:make && make install 
  7. 创建配置文件:cp php.ini-development /usr/local/php720/php.ini ;cp /usr/local/php720/etc/php-fpm.conf.default /usr/local/php720/etc/php-fpm.conf;(注意,这里的php720等路径会与安装的版本有关,具体看情况);cp sapi/fpm/php-fpm /usr/local/bin;
  8. php安全设置:如果文件不存在,则阻止 Nginx 将请求发送到后端的 PHP-FPM 模块, 以避免遭受恶意脚本注入的攻击,vim /usr/local/php/php.ini 中修改 cgi.fix_pathinfo=0
  9. 启动php-fpm:在启动服务之前,需要修改 php-fpm.conf 配置文件,确保 php-fpm 模块使用 www-data 用户和 www-data 用户组的身份运行。在/usr/local/php720/etc/目录或者 /php-fpm.d/下,首先把www.conf.default 修改为www.conf,然后修改其文件的内容,用户和用户组,用户不能是root(会报错); Unix user/group of processes; Note: The user is mandatory. If the group is not set, the default user's group; will be used.user = www-datagroup = www-data然后启动 php-fpm 服务:/usr/local/bin/php-fpm
  10. 配置Nginx:vim /usr/local/nginx/conf/nginx.conf修改默认的 location 块,使其支持 .php 文件:location / {    root   html;    index  index.php index.html index.htm;}下一步配置来保证对于 .php 文件的请求将被传送到后端的 PHP-FPM 模块, 取消默认的 PHP 配置块的注释,并修改为下面的内容:location ~* \.php$ {    fastcgi_index   index.php;    fastcgi_pass    127.0.0.1:9000;    include         fastcgi_params;    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;}然后重启nginx
  11. 建立测试页面:rm /usr/local/nginx/html/index.html(路径是nginx.conf配置文件中的配置路径)echo "<?php phpinfo(); ?>" >>index.php   创建一个测试页。(是shell编程语句吗?)


  • 8
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值