精华内容
下载资源
问答
  • 系统操作-linux常用命令大全[功能分类] (系统信息、关机注销) 权限管理-linux常用命令大全[功能分类] (用户群组、文件权限、特殊属性) 文件系统-linux常用命令大全[功能分类] (文件系统挂载、文件系统空间、文件...

    (还在更新跟进哦,欢迎指点、收藏、引用哟~)


    目录总览


    系统操作-linux常用命令大全[功能分类]
    (系统信息、关机注销)
    权限管理-linux常用命令大全[功能分类]
    (用户群组、文件权限、特殊属性)
    文件系统-linux常用命令大全[功能分类]
    (文件系统挂载、文件系统空间、文件系统分析、
    文件系统初始化、swap文件系统、光盘操作)
    软件安装-linux常用命令大全[功能分类]
    (RPM包、YUM包、DEB 包 、APT 软件工具)
    打包压缩-linux常用命令大全[功能分类]
    (打包压缩)
    文件文档-linux常用命令大全[功能分类]
    (文件目录、文件搜索)
    网络管理-linux常用命令大全[功能大全]
    (网络基础、Microsoft Windows networks (SAMBA))
    花里胡哨-linux常用命令大全[功能大全]
    (猜猜~)


    本段大纲

    -网络基础
    -Microsoft Windows networks (SAMBA)


    网络 - (以太网和WIFI无线)


    命令 功能 知识点
    ifconfig eth0 显示一个以太网卡的配置 链接
    ifup eth0 启用一个 ‘eth0’ 网络设备 链接
    ifdown eth0 禁用一个 ‘eth0’ 网络设备 链接
    ifconfig eth0 192.168.1.1 netmask 255.255.255.0 控制IP地址 链接
    ifconfig eth0 promisc 设置 ‘eth0’ 成混杂模式以嗅探数据包 (sniffing) 链接
    dhclient eth0 以dhcp模式启用 ‘eth0’ 链接
    route -n show routing table 链接
    route add -net 0/0 gw IP_Gateway configura default gateway 链接
    route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 configure static route to reach network ‘192.168.0.0/16’ 链接
    route del 0/0 gw IP_gateway remove static route 链接
    echo “1” > /proc/sys/net/ipv4/ip_ forward activate ip routing 链接
    hostname show hostname of system 链接
    host www.example.com lookup hostname to resolve name to ip address and viceversa(1) 链接
    nslookup www.example.com lookup hostname to resolve name to ip address and viceversa(2) 链接
    ip link show show link status of all interfaces 链接
    mii-tool eth0 show link status of ‘eth0’ 链接
    ethtool eth0 show statistics of network card ‘eth0’ 链接
    netstat -tup show all active network connections and their PID 链接
    netstat -tupl show all network services listening on the system and their PID 链接
    tcpdump tcp port 80 show all HTTP traffic 链接
    iwlist scan show wireless networks 链接
    iwconfig eth1 show configuration of a wireless network card 链接
    hostname show hostname 链接
    host www.example.com lookup hostname to resolve name to ip address and viceversa 链接
    nslookup www.example.com lookup hostname to resolve name to ip address and viceversa 链接
    whois www.example.com lookup on Whois database 链接

    Microsoft Windows networks (SAMBA)


    命令 功能 知识点
    nbtscan ip_addr netbios name resolution 链接
    nmblookup -A ip_addr netbios name resolution 链接
    smbclient -L ip_addr/hostname show remote shares of a windows host 链接
    smbget -Rr smb://ip_addr/share like wget can download files from a host windows via smb 链接
    mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share mount a windows network share 链接
    展开全文
  • Linux常用命令

    万次阅读 多人点赞 2018-11-08 11:49:23
     基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下: 1) 命令行模式command mode)  控制屏幕光标的移动,字符、字或行...

    目录

     

    一、基本命令

    1.1 关机和重启

    1.2 帮助命令

    二、目录操作命令

    2.1 目录切换 cd

    2.2 目录查看 ls [-al]

    2.3 目录操作【增,删,改,查】

    2.3.1 创建目录【增】 mkdir

    2.3.2 删除目录或文件【删】rm

    2.3.3 目录修改【改】mv 和 cp

    2.3.4 搜索目录【查】find

    三、文件操作命令

    3.1 文件操作【增,删,改,查】

    3.1.1 新建文件【增】touch

    3.1.2 删除文件 【删】 rm

    3.1.3 修改文件【改】 vi或vim

    3.1.4 文件的查看【查】

    3.2 权限修改

    四、压缩文件操作

    4.1 打包和压缩

    4.2 解压

    五、查找命令

    5.1 grep

    5.2 find

    5.3 locate

    5.4 whereis

    5.5 which

    六、su、sudo

    6.1 su

    6.2 sudo

    七、系统服务

    八、网络管理

    8.1 主机名配置

    8.2 IP 地址配置

    8.3 域名映射

    九、定时任务指令crontab 配置

    9.1 命令格式

    9.2 配置说明、实例

    十、其他命令

    10.1 查看当前目录:pwd

    10.2 查看进程:ps -ef

    10.3 结束进程:kill

    10.4 网络通信命令:

    10.5 配置网络

    10.6 重启网络

    10.7 切换用户

    10.8 关闭防火墙

    10.9 修改文件权限

    10.10 清屏

    10.11 vi模式下快捷键

    十一、Linux项目部署

    11.1 安装jdk1.8

    11.2 安装MySQL5.6

    11.2.1 上传MySQL5.6的tar包

    11.2.2 安装

    11.2.3 开机自动启动设置

    11.2.4 开启远程访问

    11.3 安装tomcat部署项目

    11.3.1 创建ucenter用户

    11.3.2 安装Tomcat

    11.3.3 部署用户管理项目

    11.4 Linux下使用FastDFS

    11.4.1 安装gcc

    11.4.2 安装libevent

    11.4.3 安装libfastcommon-master

    11.4.4 安装fastdfs

    11.4.5 配置并启动tracker服务

    11.4.6 配置并启动storage服务

    11.5 安装fastdfs-nginx-module

    11.5.1 解压

    11.5.2 修改config

    11.5.3 配置nginx与FastDFS关联配置文件

    11.6 安装Nginx的插件

    11.6.1 如果没有安装过nginx

    11.6.2 如果已经安装过nginx

    11.6.3 启动nginx

    11.6.4 设置nginx开机启动

    11.7 安装Elasticsearch

    11.7.1 新建一个用户leyou

    11.7.2 上传安装包,并解压

    11.7.3 修改配置

    11.7.4 运行

    11.7.5 错误1:内核过低

    11.7.6 错误2:文件权限不足

    11.7.7 错误3:线程数不够

    11.7.8 错误4:进程虚拟内存

    11.7.9 重启终端窗口

    11.8 安装RabbitMQ

    11.8.1 安装Erlang

    11.8.2 安装RabbitMQ

    11.8.3 设置配置文件

    11.8.4 启动、停止

    11.8.5 开启web界面管理工具

    11.8.6 设置开机启动

    11.8.7 防火墙开放15672端口

    11.9 redis安装和配置

    11.9.1 安装

    11.9.2 配置

    11.9.3 启动或停止

    11.9.4 设置开机启动


    一、基本命令

    1.1 关机和重启

    关机
        shutdown -h now        立刻关机
        shutdown -h 5        5分钟后关机
        poweroff            立刻关机
    重启
        shutdown -r now        立刻重启
        shutdown -r 5        5分钟后重启
        reboot                立刻重启

    1.2 帮助命令

    --help命令
      shutdown --help:
      ifconfig  --help:查看网卡信息
     
    man命令(命令说明书) 
      man shutdown
      注意:man shutdown打开命令说明书之后,使用按键q退出

    二、目录操作命令

    2.1 目录切换 cd

    命令:cd 目录

    cd /        切换到根目录
    cd /usr        切换到根目录下的usr目录
    cd ../        切换到上一级目录 或者  cd ..
    cd ~        切换到home目录
    cd -        切换到上次访问的目录

    2.2 目录查看 ls [-al]

    命令:ls [-al]

    ls                查看当前目录下的所有目录和文件
    ls -a            查看当前目录下的所有目录和文件(包括隐藏的文件)
    ls -l 或 ll       列表查看当前目录下的所有目录和文件(列表查看,显示更多信息)
    ls /dir            查看指定目录下的所有目录和文件   如:ls /usr

    2.3 目录操作【增,删,改,查】

    2.3.1 创建目录【增】 mkdir

    命令:mkdir 目录

    mkdir    aaa            在当前目录下创建一个名为aaa的目录
    mkdir    /usr/aaa    在指定目录下创建一个名为aaa的目录

    2.3.2 删除目录或文件【删】rm

    命令:rm [-rf] 目录

    删除文件:
    rm 文件        删除当前目录下的文件
    rm -f 文件    删除当前目录的的文件(不询问)

    删除目录:
    rm -r aaa    递归删除当前目录下的aaa目录
    rm -rf aaa    递归删除当前目录下的aaa目录(不询问)

    全部删除:
    rm -rf *    将当前目录下的所有目录和文件全部删除
    rm -rf /*    【自杀命令!慎用!慎用!慎用!】将根目录下的所有文件全部删除

    注意:rm不仅可以删除目录,也可以删除其他文件或压缩包,为了方便大家的记忆,无论删除任何目录或文件,都直接使用 rm -rf 目录/文件/压缩包

    2.3.3 目录修改【改】mv 和 cp

    一、重命名目录
        命令:mv 当前目录  新目录
        例如:mv aaa bbb    将目录aaa改为bbb
        注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行    重命名的操作

    二、剪切目录
        命令:mv 目录名称 目录的新位置
        示例:将/usr/tmp目录下的aaa目录剪切到 /usr目录下面     mv /usr/tmp/aaa /usr
        注意:mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作

    三、拷贝目录
        命令:cp -r 目录名称 目录拷贝的目标位置   -r代表递归
        示例:将/usr/tmp目录下的aaa目录复制到 /usr目录下面     cp /usr/tmp/aaa  /usr
        注意:cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不    用写-r递归

    2.3.4 搜索目录【查】find

    命令:find 目录 参数 文件名称
    示例:find /usr/tmp -name 'a*'    查找/usr/tmp目录下的所有以a开头的目录或文件

    三、文件操作命令

    3.1 文件操作【增,删,改,查】

    3.1.1 新建文件【增】touch

    命令:touch 文件名
    示例:在当前目录创建一个名为aa.txt的文件        touch  aa.txt

    3.1.2 删除文件 【删】 rm

    命令:rm -rf 文件名

    3.1.3 修改文件【改】 vi或vim

    【vi编辑器的3种模式】
        基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:
    1) 命令行模式command mode)
          控制屏幕光标的移动,字符、字或行的删除,查找,移动复制某区段及进入Insert mode下,或者到 last line mode。
          命令行模式下的常用命令:
          【1】控制光标移动:↑,↓,j
          【2】删除当前行:dd 
          【3】查找:/字符
          【4】进入编辑模式:i o a
          【5】进入底行模式::
          
    2) 编辑模式(Insert mode)
          只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
          编辑模式下常用命令:
          【1】ESC 退出编辑模式到命令行模式;
          
    3) 底行模式(last line mode)
         将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
         底行模式下常用命令:
         【1】退出编辑:   :q
         【2】强制退出:   :q!
         【3】保存并退出:  :wq

    打开文件

    命令:vi 文件名
    示例:打开当前目录下的aa.txt文件     vi aa.txt 或者 vim aa.txt

    注意:使用vi编辑器打开文件后,并不能编辑,因为此时处于命令模式,点击键盘i/a/o进入编辑模式。

    编辑文件

    使用vi编辑器打开文件后点击按键:i ,a或者o即可进入编辑模式。

    i:在光标所在字符前开始插入
    a:在光标所在字符后开始插入
    o:在光标所在行的下面另起一新行插入

    保存或者取消编辑

    保存文件:

    第一步:ESC  进入命令行模式
    第二步::     进入底行模式
    第三步:wq     保存并退出编辑

    取消编辑:

    第一步:ESC  进入命令行模式
    第二步::     进入底行模式
    第三步:q!     撤销本次修改并退出编辑

    3.1.4 文件的查看【查】

    文件的查看命令:cat/more/less/tail

    cat:看最后一屏

    示例:使用cat查看/etc/sudo.conf文件,只能显示最后一屏内容
    cat sudo.conf

    more:百分比显示

    示例:使用more查看/etc/sudo.conf文件,可以显示百分比,回车可以向下一行,空格可以向下一页,q可以退出查看
    more sudo.conf

    less:翻页查看

    示例:使用less查看/etc/sudo.conf文件,可以使用键盘上的PgUp和PgDn向上    和向下翻页,q结束查看
    less sudo.conf

    tail:指定行数或者动态查看

    示例:使用tail -10 查看/etc/sudo.conf文件的后10行,Ctrl+C结束  
    tail -10 sudo.conf

    3.2 权限修改

    rwx:r代表可读,w代表可写,x代表该文件是一个可执行文件,如果rwx任意位置变为-则代表不可读或不可写或不可执行文件。

    示例:给aaa.txt文件权限改为可执行文件权限,aaa.txt文件的权限是-rw-------

    第一位:-就代表是文件,d代表是文件夹
    第一段(3位):代表拥有者的权限
    第二段(3位):代表拥有者所在的组,组员的权限
    第三段(最后3位):代表的是其他用户的权限

       421  421  421
    -  rw-   ---     ---

    命令:chmod +x aaa.txt
    或者采用8421法
    命令:chmod 100 aaa.txt

    四、压缩文件操作

    4.1 打包和压缩

    Windows的压缩文件的扩展名  .zip/.rar
    linux中的打包文件:aa.tar      
    linux中的压缩文件:bb.gz    
    linux中打包并压缩的文件:.tar.gz

    Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。
    而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。

    命令:tar -zcvf 打包压缩后的文件名 要打包的文件
    其中:z:调用gzip压缩命令进行压缩
      c:打包文件
      v:显示运行过程
      f:指定文件名
      
    示例:打包并压缩/usr/tmp 下的所有文件 压缩后的压缩包指定名称为xxx.tar
    tar -zcvf ab.tar aa.txt bb.txt 
    或:tar -zcvf ab.tar  *

    4.2 解压

    命令:tar [-zxvf] 压缩文件    
    其中:x:代表解压
    示例:将/usr/tmp 下的ab.tar解压到当前目录下

    示例:将/usr/tmp 下的ab.tar解压到根目录/usr下
    tar -xvf ab.tar -C /usr------C代表指定解压的位置

    五、查找命令

    5.1 grep

    grep命令是一种强大的文本搜索工具

    使用实例:

    ps -ef | grep sshd  查找指定ssh服务进程 
    ps -ef | grep sshd | grep -v grep 查找指定服务进程,排除gerp身 
    ps -ef | grep sshd -c 查找指定进程个数 

    5.2 find

    find命令在目录结构中搜索文件,并对搜索结果执行指定的操作。 

    find 默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。

    使用实例:

    find . -name "*.log" -ls  在当前目录查找以.log结尾的文件,并显示详细信息。 
    find /root/ -perm 600   查找/root/目录下权限为600的文件 
    find . -type f -name "*.log"  查找当目录,以.log结尾的普通文件 
    find . -type d | sort   查找当前所有目录并排序 
    find . -size +100M  查找当前目录大于100M的文件

    5.3 locate

    locate 让使用者可以很快速的搜寻某个路径。默认每天自动更新一次,所以使用locate 命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。如果数据库中没有查询的数据,则会报出locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory该错误!updatedb即可!

    yum -y install mlocate 如果是精简版CentOS系统需要安装locate命令

    使用实例:

    updatedb
    locate /etc/sh 搜索etc目录下所有以sh开头的文件 
    locate pwd 查找和pwd相关的所有文件

    5.4 whereis

    whereis命令是定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或是帮助文件。

    使用实例:

    whereis ls    将和ls文件相关的文件都查找出来

    5.5 which

    which命令的作用是在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

    使用实例:

    which pwd  查找pwd命令所在路径 
    which java  查找path中java的路径 

    六、su、sudo

    6.1 su

    su用于用户之间的切换。但是切换前的用户依然保持登录状态。如果是root 向普通或虚拟用户切换不需要密码,反之普通用户切换到其它任何用户都需要密码验证。

    su test:切换到test用户,但是路径还是/root目录
    su - test : 切换到test用户,路径变成了/home/test
    su : 切换到root用户,但是路径还是原来的路径
    su - : 切换到root用户,并且路径是/root

    su不足:如果某个用户需要使用root权限、则必须要把root密码告诉此用户。

    退出返回之前的用户:exit

    6.2 sudo

    sudo是为所有想使用root权限的普通用户设计的。可以让普通用户具有临时使用root权限的权利。只需输入自己账户的密码即可。

    进入sudo配置文件命令:

    vi /etc/sudoer或者visudo
    案例:
    允许hadoop用户以root身份执行各种应用命令,需要输入hadoop用户的密码。
    hadoop  ALL=(ALL)   ALL 
    
    案例:
    只允许hadoop用户以root身份执行ls 、cat命令,并且执行时候免输入密码。 
    配置文件中: 
    hadoop  ALL=NOPASSWD:  /bin/ls, /bin/cat 

    七、系统服务

    service iptables status  --查看iptables服务的状态
    service iptables start  --开启iptables服务
    service iptables stop  --停止iptables服务
    service iptables restart  --重启iptables服务
    
    chkconfig iptables off  --关闭iptables服务的开机自启动
    chkconfig iptables on  --开启iptables服务的开机自启动

    八、网络管理

    8.1 主机名配置

    [root@node1 ~]# vi /etc/sysconfig/network
    NETWORKING=yes
    HOSTNAME=node1

    8.2 IP 地址配置

    [root@node1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

    8.3 域名映射

    /etc/hosts文件用于在通过主机名进行访问时做ip地址解析之用。所以,你想访问一个什么样的主机名,就需要把这个主机名和它对应的ip地址。

    [root@node1 ~]# vi /etc/hosts
    #### 在最后加上
    192.168.52.201  node1
    192.168.52.202  node2
    192.168.52.203  node3

    九、定时任务指令crontab 配置

    crontab是Unix和Linux用于设置定时任务的指令。通过crontab命令,可以在固定间隔时间,执行指定的系统指令或shell脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。

    crontab安装:

    yum install crontabs

    服务操作说明:

    service crond start   ## 启动服务 
    service crond stop    ## 关闭服务 
    service crond restart ## 重启服务

    9.1 命令格式

    crontab [-u user] file

    crontab [-u user] [ -e | -l | -r ]

    参数说明:

    -u user:用来设定某个用户的crontab服务  

    file:file是命令文件的名字,表示将file做为crontab的任务列表文件

    并载入crontab。

    -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前

    用户的crontab文件。

    -l:显示某个用户的crontab文件内容。如果不指定用户,则表示显示当前

    用户的crontab文件内容。

    -r:删除定时任务配置,从/var/spool/cron目录中删除某个用户的crontab

    文件,如果不指定用户,则默认删除当前用户的crontab文件。

    命令示例:

    crontab file [-u user] ## 用指定的文件替代目前的crontab
    crontab -l [-u user]  ## 列出用户目前的crontab
    crontab -e [-u user]  ## 编辑用户目前的crontab

    9.2 配置说明、实例

    命令:*   *    *   *   *   command  

    解释:分  时  日  月  周  命令

    第1列表示分钟1~59 每分钟用*或者 */1表示    

    第2列表示小时0~23(0表示0点)

    第3列表示日期1~31  

    第4列表示月份1~12  

    第5列标识号星期0~6(0表示星期天)  

    第6列要运行的命令

    配置实例:

    先打开定时任务所在的文件:
    crontab -e
    
    每分钟执行一次date命令 
    */1 * * * * date >> /root/date.txt
    
    每晚的21:30重启apache。 
    30 21 * * * service httpd restart
    
    每月1、10、22日的4 : 45重启apache。  
    45 4 1,10,22 * * service httpd restart
    
    每周六、周日的1 : 10重启apache。 
    10 1 * * 6,0 service httpd restart
    
    每天18 : 00至23 : 00之间每隔30分钟重启apache。
    0,30   18-23    *   *   *   service httpd restart
    晚上11点到早上7点之间,每隔一小时重启apache
    *  23-7/1    *   *   *   service httpd restart

    十、其他命令

    10.1 查看当前目录:pwd

    命令:pwd     查看当前目录路径

    10.2 查看进程:ps -ef

    命令:ps -ef    查看所有正在运行的进程

    10.3 结束进程:kill

    命令:kill pid 或者 kill -9 pid(强制杀死进程)           pid:进程号

    10.4 网络通信命令:

    ifconfig:查看网卡信息

    命令:ifconfig 或 ifconfig | more

    ping:查看与某台机器的连接情况

    命令:ping ip

    netstat -an:查看当前系统端口

    命令:netstat -an

    搜索指定端口
    命令:netstat -an | grep 8080

    10.5 配置网络

    命令:setup

    10.6 重启网络

    命令:service network restart

    10.7 切换用户

    命令:su - 用户名

    10.8 关闭防火墙

    命令:chkconfig iptables off

    或者:

     iptables -L;
     iptables -F;
     service iptables stop

    10.9 修改文件权限

    命令:chmod 777

    10.10 清屏

    命令:ctrl + l

    10.11 vi模式下快捷键

    esc后:

    保存并退出快捷键:shift+z+z

    光标跳到最后一行快捷键:shift+g

    删除一行:dd

    复制一行内容:y+y

    粘贴复制的内容:p

    十一、Linux项目部署

    11.1 安装jdk1.8

    先卸载open-jdk

    java -version
    rpm -qa | grep java

    rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
    rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64

    开始安装:
    mkdir /usr/local/src/java
    rz 上传jdk tar包
    tar -zxvf jdk-8u181-linux-x64.tar.gz

    yum install glibc.i686

    配置环境变量:
     vi /etc/profile

     在末尾行添加
      #set java environment
      JAVA_HOME=/usr/local/src/jdk8/jdk1.8.0_181
      CLASSPATH=.:$JAVA_HOME/lib.tools.jar
      PATH=$JAVA_HOME/bin:$PATH
      export JAVA_HOME CLASSPATH PATH
      
    保存退出
    source /etc/profile  使更改的配置立即生效
    java -version  查看JDK版本信息,如果显示出1.8证明成功

    11.2 安装MySQL5.6

    11.2.1 上传MySQL5.6的tar包

    创建目录:mkdir /usr/local/src/mysql5.6

    上传:MySQL-5.6.34-1.rhel5.x86_64.rpm-bundle.tar 到上面的目录中

    11.2.2 安装

    第一步:解压

         命令:tar -xvf MySQL-5.6.34-1.rhel5.x86_64.rpm-bundle.tar

    第二步:检测是否已经安装了mysql

         命令:rpm -qa | grep mysql   

         如果已经安装了,将其卸载,如:

         rpm -e --nodeps  mysql-libs-5.1.71-1.el6.x86_64

    第三步:安装MySQL的服务端

         命令:rpm -ivh MySQL-server-5.6.34-1.rhel5.x86_64.rpm

    第四步:安装MySQL的客户端

         命令:rpm -ivh MySQL-client-5.6.34-1.rhel5.x86_64.rpm

    第五步:查看MySQL服务运行状态

         命令:service mysql status

    第六步:启动MySQL服务

         命令:service mysql start

    第七步:使用root账号登录mysql

    在安装mysql server时有句提示:

    注意:这个密码是不安全的,所有需要修改初始密码。

    1. 使用密码登录mysql账号:mysql -uroot -p
    2. 修改root密码:SET PASSWORD = PASSWORD('root');

    11.2.3 开机自动启动设置

    加入到系统服务:

    chkconfig --add mysql

    自动启动:

    chkconfig mysql on

    查询列表:

    chkconfig

    说明:都没关闭(off)时是没有自动启动。

    11.2.4 开启远程访问

    登录:

    mysql -uroot –proot

    设置远程访问(使用root密码):

    grant all privileges on *.* to 'root' @'%' identified by 'root';

    flush privileges;

    退出mysql,在centos环境下打开3306防火墙

    /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

    /etc/rc.d/init.d/iptables save

    /etc/init.d/iptables status

    11.3 安装tomcat部署项目

    准备工作:将web项目打成war包,改名为ROOT.war

    11.3.1 创建ucenter用户

    一般情况下,发布应用程序都不是使用root用户的,需要创建一个普通用户来发布程序;

    创建ucenter用户:

    useradd -d /ucenter ucenter

    设置密码:

    passwd ucenter (密码 ucenter)

    切换用户:

    su - ucenter

    11.3.2 安装Tomcat

    tomcat只要解压就可以使用。

    1、创建web目录
    mkdir /ucenter/web

    2、上传apache-tomcat-7.0.57.tar.gz

    3、解压:tar -xvf apache-tomcat-7.0.57.tar.gz

    4、重命名:mv apache-tomcat-7.0.57 itcast-usermanage

    5、启动tomcat:
         cd itcast-usermanage/bin/
         ./startup.sh 或者 sh startup.sh

    6、查看日志:
         tail -f ../logs/catalina.out

    7、查看效果 http://192.168.0.160:8080/

    发现无法访问:

    8、防火墙打开 8080 端口
         /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

         /etc/rc.d/init.d/iptables save

    9、安装成功

    11.3.3 部署用户管理项目

    1、上传usermanage.sql和ROOT.war到/ucenter/web

    2、执行数据库脚本

         cat user_manager.sql | mysql -uroot -p123456

    3、部署web程序

    3.1 删除webapps下的所有文件

         cd /ucenter/web/usermanage/webapps

         rm -rf *

    3.2 拷贝ROOT.war到webapps

         cp /ucenter/web/ROOT.war .

    3.3 重新启动tomcat

         cd ../bin/

         sh startup.sh && tail -f ../logs/catalina.out

    3.4 启动浏览器测试

    注意事项:Centos环境下部署项目中文乱码问题解决方案

        今天在一台新的CentOS机器上使用c3p0连接池操作mysql数据库出现中文乱码问题,具体表现为:查询时无中文乱码问题,写数据时中文乱码,查看了机器上数据库字符集也是UTF8,应该不会出现中文乱码才对,最后在c3p0配置文件中 jdbcUrl后加上:?useUnicode=true&characterEncoding=UTF8 中文就不会乱码了。

    【C3P0配置文件】

    <?xml version="1.0" encoding="UTF-8"?>
    <c3p0-config>
      <default-config>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
    	<property name="jdbcUrl">jdbc:mysql://localhost:3306/user_manager_yun6?useUnicode=true&amp;characterEncoding=UTF8 </property>
    	<property name="user">root</property>
    	<property name="password">root</property>
    	<property name="acquireIncrement">2</property>
    	<property name="initialPoolSize">5</property>
    	<property name="minPoolSize">1</property>
    	<property name="maxPoolSize">5</property>
      </default-config>
    </c3p0-config>

    11.4 Linux下使用FastDFS

    相关的安装包我打包到云盘上了,链接:https://pan.baidu.com/s/13NDYYil4mgLhkb5CYsc2Ww  提取码:66tn

    单节点FastDFS

    整个安装过程非常复杂,很容易出错,建议进行多次备份。

    我们这里不打算安装多台虚拟机,因此会把tracker和storage都安装在一起。

    11.4.1 安装gcc

    GCC用来对C语言代码进行编译运行,使用yum命令安装:

    yum -y install gcc

    后面会用到解压命令(unzip),所以这里可以用yum把unzip 也装一下

    yum install -y unzip zip

    11.4.2 安装libevent

    yum -y install libevent

    11.4.3 安装libfastcommon-master

    解压刚刚上传的libfastcommon-master.zip
    unzip libfastcommon-master.zip

    进入解压完成的目录
    cd libfastcommon-master

    编译并且安装:
    ./make.sh 
    ./make.sh install

    11.4.4 安装fastdfs

    tar -zxvf FastDFS_v5.08.tar.gz
    cd FastDFS
    ./make.sh
    ./make.sh install

    如果安装成功,会看到/etc/init.d/下看到提供的脚本文件:

    ll /etc/init.d/ | grep fdfs

    • fdfs_trackerd 是tracker启动脚本

    • fdfs_storaged 是storage启动脚本

    能够在 /etc/fdfs/ 目录下看到默认的配置文件模板:

    ll /etc/fdfs/

    • tarcker.conf.sample 是tracker的配置文件模板

    • storage.conf.sample 是storage的配置文件模板

    • client.conf.sample 是客户端的配置文件模板

    11.4.5 配置并启动tracker服务

    1)首先将模板文件复制

    cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf

    2)修改复制后的配置文件:

    vim /etc/fdfs/tracker.conf 

    # 修改的内容如下:

    base_path=/项目名/tracker                 # 存储日志和数据的根目录

    3)新建目录:

    mkdir -p /项目名/tracker

    注意:关闭防火墙:

    chkconfig iptables off

    4)启动和停止

    service fdfs_trackerd start # 启动fdfs_trackerd服务,停止用stop

    检查FastDFS Tracker Server是否启动成功:

    ps -ef | grep fdfs_trackerd

    设置tracker服务开机启动:

    chkconfig fdfs_trackerd on

    11.4.6 配置并启动storage服务

    1)首先将模板文件复制

    cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf

    2)修改复制后的配置文件:

    vim /etc/fdfs/storage.conf

    # 修改的内容如下:

    base_path=/项目名/storage                 # 数据和日志文件存储根目录 
    
    store_path0=/项目名/storage           # 第一个存储目录 
    
    tracker_server=192.168.56.101:22122       #  tracker服务器IP和端口 

    3)新建目录:

    mkdir -p /项目名/storage

    注意关闭防火墙: chkconfig iptables off

    4)启动和停止

    service fdfs_storaged start  # 启动fdfs_storaged服务,停止用stop

    设置storage服务开机启动:

    chkconfig fdfs_storaged on

    ps -ef | grep fdfs

    11.5 安装fastdfs-nginx-module

    11.5.1 解压

    tar -zxvf fastdfs-nginx-module_v1.16.tar.gz

    11.5.2 修改config

    1)进入src目录

    cd fastdfs-nginx-module/src/

    2)编辑config

    vim config

    使用以下底行命令:

    :%s+/usr/local/+/usr/+g

    将所有的/usr/local替换为 /usr,这个才是正确的目录:

    11.5.3 配置nginx与FastDFS关联配置文件

    复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录, 并修改

    cp /usr/local/项目名/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
    
    vi /etc/fdfs/mod_fastdfs.conf

    修改以下配置:

    connect_timeout=10                       # 客户端访问文件连接超时时长(单位:秒)
    
    tracker_server=192.168.56.101:22122    # tracker服务IP和端口
    
    url_have_group_name=true                # 访问链接前缀加上组名
    
    store_path0=/leyou/storage            # 文件存储路径

    复制 FastDFS 的部分配置文件到/etc/fdfs 目录

    cd /usr/local/项目名/FastDFS/conf/
    cp http.conf mime.types /etc/fdfs/

    11.6 安装Nginx的插件

    11.6.1 如果没有安装过nginx

    1、安装nginx的依赖库

    yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

    2、解压安装包

    tar -zxvf nginx-1.10.0.tar.gz

    3、配置nginx安装包,并指定fastdfs-nginx-model

    cd nginx-1.10.0
    
    ./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=/usr/local/leyou/fastdfs-nginx-module/src

    注意:在执行./configure配置nginx参数的时候,需要将fastdfs-nginx-moudle源码作为模块编译进去。

    4、编译并安装

    make && make install

    11.6.2 如果已经安装过nginx

    1、 进入nginx目录:

    cd /usr/local/项目名/nginx-1.10.0/

    2、 配置FastDFS 模块

    ./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=/usr/local/项目名/fastdfs-nginx-module/src

    注意:这次配置时,要添加fastdfs-nginx-moudle模块

    3、编译,注意,这次不要安装(install)

    make

    4、替换nginx二进制文件:

    备份:

    mv /usr/bin/nginx /usr/bin/nginx-bak

    用新编译的nginx启动文件替代原来的:

    cp objs/nginx /usr/bin/

    11.6.3 启动nginx

    配置nginx整合fastdfs-module模块

    我们需要修改nginx配置文件,在/opt/nginx/config/nginx.conf文件中:

    vim  /opt/nginx/conf/nginx.conf

    将文件中,原来的server 80{ ...} 部分代码替换为如下代码:

    server {
        listen       80;
        server_name  image.项目名.com;
    	# 监听域名中带有group的,交给FastDFS模块处理
        location ~/group([0-9])/ {
            ngx_fastdfs_module;
        }
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    启动nginx:

    nginx	# 启动nginx
    
    nginx -s stop	# 停止nginx
    
    nginx -s reload	# 重新载入配置文件

    # 可通过ps -ef | grep nginx查看nginx是否已启动成功

    11.6.4 设置nginx开机启动

    创建一个开机启动的脚本:

    vim /etc/init.d/nginx

    添加以下内容:

    #!/bin/sh
    #
    # nginx - this script starts and stops the nginx daemon
    #
    # chkconfig:   - 85 15
    # description:  NGINX is an HTTP(S) server, HTTP(S) reverse \
    #               proxy and IMAP/POP3 proxy server
    # processname: nginx
    # config:      /etc/nginx/nginx.conf
    # config:      /etc/sysconfig/nginx
    # pidfile:     /var/run/nginx.pid
    
    # Source function library.
    . /etc/rc.d/init.d/functions
    
    # Source networking configuration.
    . /etc/sysconfig/network
    
    # Check that networking is up.
    [ "$NETWORKING" = "no" ] && exit 0
    
    nginx="/usr/bin/nginx"
    prog=$(basename $nginx)
    
    NGINX_CONF_FILE="/opt/nginx/conf/nginx.conf"
    
    [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
    
    lockfile=/var/lock/subsys/nginx
    
    make_dirs() {
       # make required directories
       user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
       if [ -n "$user" ]; then
          if [ -z "`grep $user /etc/passwd`" ]; then
             useradd -M -s /bin/nologin $user
          fi
          options=`$nginx -V 2>&1 | grep 'configure arguments:'`
          for opt in $options; do
              if [ `echo $opt | grep '.*-temp-path'` ]; then
                  value=`echo $opt | cut -d "=" -f 2`
                  if [ ! -d "$value" ]; then
                      # echo "creating" $value
                      mkdir -p $value && chown -R $user $value
                  fi
              fi
           done
        fi
    }
    
    start() {
        [ -x $nginx ] || exit 5
        [ -f $NGINX_CONF_FILE ] || exit 6
        make_dirs
        echo -n $"Starting $prog: "
        daemon $nginx -c $NGINX_CONF_FILE
        retval=$?
        echo
        [ $retval -eq 0 ] && touch $lockfile
        return $retval
    }
    
    stop() {
        echo -n $"Stopping $prog: "
        killproc $prog -QUIT
        retval=$?
        echo
        [ $retval -eq 0 ] && rm -f $lockfile
        return $retval
    }
    
    restart() {
        configtest || return $?
        stop
        sleep 1
        start
    }
    
    reload() {
        configtest || return $?
        echo -n $"Reloading $prog: "
        killproc $nginx -HUP
        RETVAL=$?
        echo
    }
    
    force_reload() {
        restart
    }
    
    configtest() {
      $nginx -t -c $NGINX_CONF_FILE
    }
    
    rh_status() {
        status $prog
    }
    
    rh_status_q() {
        rh_status >/dev/null 2>&1
    }
    
    case "$1" in
        start)
            rh_status_q && exit 0
            $1
            ;;
        stop)
            rh_status_q || exit 0
            $1
            ;;
        restart|configtest)
            $1
            ;;
        reload)
            rh_status_q || exit 7
            $1
            ;;
        force-reload)
            force_reload
            ;;
        status)
            rh_status
            ;;
        condrestart|try-restart)
            rh_status_q || exit 0
                ;;
        *)
            echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
            exit 2
    esac

    修改文件权限,并加入服务列表

    # 修改权限
    chmod 777 /etc/init.d/nginx 
    # 添加到服务列表
    chkconfig --add /etc/init.d/nginx 

    设置开机启动

    chkconfig nginx on

    11.7 安装Elasticsearch

    需要虚拟机JDK1.8及以上

    11.7.1 新建一个用户leyou

    出于安全考虑,elasticsearch默认不允许以root账号运行。

    创建用户:

    useradd leyou

    设置密码:

    passwd leyou

    切换用户:

    su - leyou

    11.7.2 上传安装包,并解压

    我们将安装包上传到:/home/leyou目录

    解压缩:

    tar -zxvf elasticsearch-6.2.4.tar.gz

    我们把目录重命名:

    mv elasticsearch-6.3.0/ elasticsearch

    进入,查看目录结构:

    11.7.3 修改配置

    我们进入config目录:cd config

    需要修改的配置文件有两个:

    1、jvm.options

    Elasticsearch基于Lucene的,而Lucene底层是java实现,因此我们需要配置jvm参数。

    编辑jvm.options:

    vim jvm.options

    默认配置如下:

    -Xms1g
    -Xmx1g

    内存占用太多了,我们调小一些:

    -Xms512m
    -Xmx512m

    2、elasticsearch.yml

    vim elasticsearch.yml

    修改数据和日志目录:

    path.data: /home/leyou/elasticsearch/data # 数据目录位置
    path.logs: /home/leyou/elasticsearch/logs # 日志目录位置

    我们把data和logs目录修改指向了elasticsearch的安装目录。但是这两个目录并不存在,因此我们需要创建出来。

    进入elasticsearch的根目录,然后创建:

    mkdir data
    mkdir logs

    修改绑定的ip:

    network.host: 0.0.0.0 # 绑定到0.0.0.0,允许任何ip来访问

    默认只允许本机访问,修改为0.0.0.0后则可以远程访问

    11.7.4 运行

    进入elasticsearch/bin目录,可以看到下面的执行文件:

    然后输入命令:

    ./elasticsearch

    或者后台运行:

    ./elasticsearch -d

    11.7.5 错误1:内核过低

    修改elasticsearch.yml文件,在最下面添加如下配置: 然后重启

    bootstrap.system_call_filter: false

    11.7.6 错误2:文件权限不足

    我们用的是leyou用户,而不是root,所以文件权限不足。

    首先用root用户登录。直接输入exit命令

    然后修改配置文件:

    vim /etc/security/limits.conf

    添加下面的内容:

    * soft nofile 65536
    
    * hard nofile 131072
    
    * soft nproc 4096
    
    * hard nproc 4096

    11.7.7 错误3:线程数不够

    [1]: max number of threads [1024] for user [leyou] is too low, increase to at least [4096]

    继续修改配置:

    vim /etc/security/limits.d/90-nproc.conf 

    修改下面的内容:

    * soft nproc 1024

    改为

    * soft nproc 4096

    11.7.8 错误4:进程虚拟内存

    [3]: max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

    vm.max_map_count:限制一个进程可以拥有的VMA(虚拟内存区域)的数量,继续修改配置文件, :

    vim /etc/sysctl.conf 

    添加下面内容:

    vm.max_map_count=655360

    然后执行命令:

    sysctl -p

    11.7.9 重启终端窗口

    所有错误修改完毕,一定要重启你的 Xshell终端,否则配置无效。

    11.8 安装RabbitMQ

    cd /usr/local/myapp
    
    mkdir rabbitmq
    
    cd rabbitmq
    

    11.8.1 安装Erlang

    1、在线安装

    yum install esl-erlang_17.3-1~centos~6_amd64.rpm
    
    yum install esl-erlang-compat-R14B-1.el6.noarch.rpm

    2、离线安装

    依次执行命令:

    1)rpm -ivh esl-erlang-17.3-1.x86_64.rpm --force --nodeps

    2)rpm -ivh esl-erlang_17.3-1~centos~6_amd64.rpm --force --nodeps

    3)rpm -ivh esl-erlang-compat-R14B-1.el6.noarch.rpm --force --nodeps

    11.8.2 安装RabbitMQ

    安装:

    rpm -ivh rabbitmq-server-3.4.1-1.noarch.rpm

    11.8.3 设置配置文件

    cp /usr/share/doc/rabbitmq-server-3.4.1/rabbitmq.config.example
    /etc/rabbitmq/rabbitmq.config

    开启用户远程访问

    vi /etc/rabbitmq/rabbitmq.config

    注意要去掉后面的逗号。

    11.8.4 启动、停止

    service rabbitmq-server start
    
    service rabbitmq-server stop
    
    service rabbitmq-server restart

    11.8.5 开启web界面管理工具

    rabbitmq-plugins enable rabbitmq_management
    
    service rabbitmq-server restart

    11.8.6 设置开机启动

    chkconfig rabbitmq-server on

    11.8.7 防火墙开放15672端口

    /sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT
    
    /etc/rc.d/init.d/iptables save

    11.9 redis安装和配置

    11.9.1 安装

    解压

    tar -xvf redis-4.0.9.tar.gz

    编译安装

     mv redis-4.0.9 redis
     cd redis
     make && make install

    11.9.2 配置

    修改安装目录下的redis.conf文件

    vim redis.conf

    修改以下配置:

    #bind 127.0.0.1 # 将这行代码注释,监听所有的ip地址,外网可以访问
    protected-mode no # 把yes改成no,允许外网访问
    daemonize yes # 把no改成yes,后台运行

    11.9.3 启动或停止

    redis提供了服务端命令和客户端命令:

    • redis-server 服务端命令,可以包含以下参数: start 启动 stop 停止

    • redis-cli 客户端控制台,包含参数: -h xxx 指定服务端地址,缺省值是127.0.0.1 -p xxx 指定服务端端口,缺省值是6379

    11.9.4 设置开机启动

    1) 输入命令,新建文件

    vim /etc/init.d/redis

    输入下面内容:

    #!/bin/sh
    # chkconfig:   2345 90 10
    # description:  Redis is a persistent key-value database
    PATH=/usr/local/bin:/sbin:/usr/bin:/bin
    
    REDISPORT=6379
    EXEC=/usr/local/bin/redis-server
    REDIS_CLI=/usr/local/bin/redis-cli
    
    PIDFILE=/var/run/redis.pid
    
    CONF="/usr/local/leyou/redis/redis.conf"
    
    case "$1" in  
        start)  
            if [ -f $PIDFILE ]  
            then  
                    echo "$PIDFILE exists, process is already running or crashed"  
            else  
                    echo "Starting Redis server..."  
                    $EXEC $CONF  
            fi  
            if [ "$?"="0" ]   
            then  
                  echo "Redis is running..."  
            fi  
            ;;  
        stop)  
            if [ ! -f $PIDFILE ]  
            then  
                    echo "$PIDFILE does not exist, process is not running"  
            else  
                    PID=$(cat $PIDFILE)  
                    echo "Stopping ..."  
                    $REDIS_CLI -p $REDISPORT SHUTDOWN  
                    while [ -x ${PIDFILE} ]  
                   do  
                        echo "Waiting for Redis to shutdown ..."  
                        sleep 1  
                    done  
                    echo "Redis stopped"  
            fi  
            ;;  
       restart|force-reload)  
            ${0} stop  
            ${0} start  
            ;;  
      *)  
        echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2  
            exit 1  
    esac

    然后保存退出

    注意:以下信息需要根据安装目录进行调整:

    EXEC=/usr/local/bin/redis-server # 执行脚本的地址

    REDIS_CLI=/usr/local/bin/redis-cli # 客户端执行脚本的地址

    PIDFILE=/var/run/redis.pid # 进程id文件地址

    CONF="/usr/local/src/redis-3.0.2/redis.conf" #配置文件地址

    2)设置权限

    chmod 755 /etc/init.d/redis

    3)启动测试

    /etc/init.d/redis start

    启动成功会提示如下信息:

    Starting Redis server...
    Redis is running...

    4)设置开机自启动

    chkconfig --add /etc/init.d/redis
    chkconfig redis on

     

    展开全文
  • linux网络服务器学习总结

    千次阅读 2018-04-16 10:48:33
    留给以后的自己和有需要的朋友主要内容如下:一为什么学linux商业服务器j基本都是linux时下最热门的大数据机器学期首选linux整个互联网地基是linux撑起来开源软件首先支持linux嵌入式开发二学习目的 掌握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编程语句吗?)


    展开全文
  • 服务器除了我们最常见的建设网站功能外,还能发挥很多作用。对于刚接触的朋友,在Linux网络服务中新概念众多,一个概念的解释往往又牵扯到了好几个概念,晦涩的专业词汇众多很容易打击人进一步了解的欲望。在这篇...

    前言

      由于Linux系统的自由、安全可靠和强大性能,无论是需要长时间在线的网络服务器,还是本地连接的科学计算用服务器,Linux系统在服务器领域操作系统是绝对的霸主。服务器除了我们最常见的建设网站功能外,还能发挥很多作用。对于刚接触的朋友,在Linux与网络服务中新概念众多,一个概念的解释往往又牵扯到了好几个概念,晦涩的专业词汇众多很容易打击人进一步了解的欲望。在这篇文章,作者想用自己的理解把这些概念通俗地解释一下,希望能够让初学者初步认识一些Linux与网络服务的相关概念,水平有限,如果有表达不妥之处请大家指出,我会认真纠正。

    专业名词及概念的通俗解释

    云服务器

      云服务器是一个“虚拟”的服务器,和它相对的就是实体服务器。实体服务器例如华为云提供的“裸金属服务器”,如果购买的话会给你一个真正的服务器主机,而云服务器在云服务提供商(如华为云,腾讯云,阿里云等)购买后,不会给你一个实体的主机,在提供商的控制台里能看到自己有了一个云服务器资源,可以查看云服务器信息或者远程登录它。综上所述,什么是云服务器?它是一个服务器,但是是摸不着的,你可以远程登录来控制它。对于提供商来说,你的云服务器可能就对应他们的一台实体主机,或者他们通过软件在一台实体主机上分割出多个系统跑着你和别人的云服务器,对于用户来说这是不可见的。当然它怎么实现对我们使用来说就无所谓了,我们就把购买的云服务器当作真正服务器使用就好。

    云/云服务

      最近几年,“云”这个概念越来越多地被提到,到底什么是云?如果翻阅各种专业文献,在对“云”有一个大概印象之前,一个接一个的新名词绝对会看的人眼晕。其实对于应用来说,“云”的概念没有那么高深莫测。你使用百度网盘存取文件就是使用了百度云,使用WPS存储个人文档就是使用了WPS云,其实你的数据早早就已经“上云”了(个人的数据存在云服务器上就可以称得上是“上云”了,当然这里是狭义的说法)。我的理解是,从实际组成来说,“云”是一群服务器构成的网络,你把一堆服务器连到一起,然后统一提供一个对外面的连接,这就是“云”(一般来说,“云”默认指的是公网上的,可以在整个互联网上访问到,自己搭建的自己用叫“私有云”。这个比较模糊,也有不少地方公有私有都称作“云”的)。它是几台服务器主机?每台是什么系统?硬盘多大?对于普通使用者,“云”是怎么实现的你不必知道。百度、网易这些公司已经把“云”——服务器网络搭建好了,你只需要使用“云”的接口就可以(接口上有你的用户名和密码,让每个人使用不同的硬盘空间),你可以给“云”上面放文件,或者下载文件,能够满足你这么使用就足够了。
      当然,上面只是“云”的一个应用例子——作为“云盘”。云可以提供不同的网络服务,这些就叫做“云服务”,有的云服务供应商提供的是云服务软件,比如前面的云盘,有的云服务供应商提供的是虚拟的服务器,比如前面的云服务器。经过这么通俗解释你应该明白了,只要你搭几个服务器给别人一个连接的接口,你就把一个“云”搭建好了,你就能自称云服务供应商。
      从“云”上面衍生出很多概念,说白了并不是新发明——把“云”应用在游戏里就叫“游戏云”(有一堆远程电脑专门让用户连接来玩游戏),应用到工业就叫“工业云”(把一堆连接网络的电脑存储工业生产的数据,你可以在集控室远程连接来查看数据),应用到医疗上就叫“医疗云”(一堆连接网络的电脑存储了患者数据,或者可以远程传递图像和声音,从而让医生可以远程诊疗)。相信经过这些举例,你也可以在各行各业用“云”创造新名词了哈哈,这些新概念乍一看是不是很唬人呢。

    云计算

      这个其实也可以算一个引申概念,用“云”来执行计算任务就是云计算,比如人脸识别,本地拍摄的人脸上传到云服务器上,通过强大的云服务器计算能力非常快速地得到神经网络的计算结果。这样的引申概念还有很多,其实看名字就知道是干什么的,用“云”提供存储服务——云硬盘,用“云”提供域名解析——云解析等等。

    弹性伸缩

      这个概念其实很好理解,就是说某些资源是动态的/可调整的,云服务器能够根据设置的策略自动调整云服务器资源。比如弹性带宽,这个指的是你的带宽是可以动态调整的,传统的方式你买了1M的带宽那固定就是1M,就算你一段时间没怎么使用带宽还是按1M计费,弹性带宽可以实现用多少带宽计多少使用费。或者你在云服务器隔一段时间跑一个程序,通过弹性伸缩需要大量CPU资源的时候申请,不需要就不申请那么多,你只需要购买这种服务就可以,云服务器提供商自己就实现了弹性伸缩,不需要你动手。

    负载均衡

      如果你购买了多个云服务器,通过配置将它们组成了一个服务器群给用户提供网络服务,如何把服务器要完成的任务(负载)分摊到各个服务器上,大家都干一样多的活,不会出现一个服务器累死累活的工作其他服务器在看戏的情况,这就是服务器集群需要考虑的负载均衡问题。假如你用多个服务器搭建了一个网站,用户通过浏览器访问,他肯定是直接输入域名访问,不会考虑到你哪一台服务器处理的访问任务少点用那台访问,所以负载均衡只能也是必须由服务器管理者解决的问题。要实现负载均衡,有硬件和软件的方式,一些网络服务的软件自带了负载均衡的功能,但是当然比不上硬件实现,硬件需要专门配置或者购买执行负载均衡工作的服务器或硬件。

    公网IP

      提供网络服务的服务器如果想在整个互联网上都可以被访问到,那么就需要一个公网IP,之所以带了“公网”,就是说在整个互联网,也就是整个地球上这个IP地址都是唯一的。如何拥有自己的公网IP?最好的办法还是购买一个云服务器,一般云服务器供应商都会在购买云服务器后给你提供一个固定的公网IP。如果你仅仅想要一个公网IP,这些供应商以及专门的代理商都可以提供。

    域名/域名备案

      如果你想用服务器做一个网站,在安装完必要的服务软件后,就可以通过输入你服务器配置好的IP地址来访问了。但是一串IP地址没有任何规律,一个网站一个IP地址谁也不想一个一个记住,于是就有了域名,例如www.baidu.com 这样的名字显然比一个IP地址好记。很遗憾,对于网络访问来说,域名并不能够被直接识别,网络访问直接识别的只能是IP地址,为此就有一种DNS服务器来专门负责把域名转换成IP地址。DNS服务器就是专门做解析/映射工作的,它具体是怎么工作的得花大量笔墨深入解释,这里就不深究了,知道它的作用就可以。总而言之,域名是为了我们人记忆方便诞生的,它对于网络本身没有益处,需要专门的DNS服务器负责转换,甚至对于网络安全带来额外问题,如黑客针对域名进行劫持,导致域名指向别的IP的情况。
      还有一件事,在国内进行域名解析想让别人通过域名访问网站,还需要在工信部进行备案,如果仅在云服务器提供商网站上设置了域名解析,你直接点开会提示你这个网站没有在工信部备案不能访问。个人网站备案只需要在申请时明确说明这个网站不用来盈利过审还是比较容易的,商业网站就需要额外的不少材料了。当然你可以让用户用IP访问,这个工信部不管,但是谁也懒得记那么一串无意义的数字串不是么,而且通过IP访问说明你直接暴露了IP,相当于你告诉了陌生人你家的详细住址,就算你天天锁门防止一般人偷偷溜进你家,惦记着你的小偷肯定会想办法撬锁进去(类比黑客通过各种方式对你的IP发起攻击),而且虽然域名有额外问题,但也有一些域名才能做到的安全性设置,这个稍后再说。

    端口

      提到IP地址,往往还要提到端口,端口可以理解为服务器提供网络服务的接口。用一个不实际的例子解释,饭店每道菜都有一个不同编号的窗口(不同编号的端口),店家(服务器)给每个食客(网络服务用户)做好的饭菜通过不同窗口送给食客,有个人到22号窗口点餐(请求服务器的相应服务),店家一看是22号窗口有人点餐,根据国际标准,就知道他要的菜是SSH,把做好的SSH放到22号端口(提供服务)等食客来拿。虽然这个只是个规定,你可以修改这个规定,但这就会带来很多麻烦,陌生人来到这个餐馆,根据国际惯例他在22号窗口点餐了,他想要吃的是SSH这道菜,结果从窗口拿出来的菜是HTTP,钱都付了(花费了流量),给人家送错了菜(获取到错误的网络服务),谁还想来你这个饭店(网站)?一定要记住,互联网是给全世界服务的,面向的都是按照国际惯例(常用的网络服务都有对应的端口号)交流的陌生人,你不遵守国际惯例,别人按照惯例设计的软件都没办法在你的网站上使用。

    SSH(安全外壳协议)/远程连接

      远程协助大家应该都使用过吧,可以远程操控别的电脑。在Linux系统中,标准的远程连接方式是通过SSH协议实现的,用到的端口号是22。在windows系统中,远程桌面协议(RDP)通过3389号端口实现标准的远程连接。远程登录自己的服务器,或者购买云服务器后远程连接,都是使用这两个协议和端口进行连接来管理的。

    CPU架构

      Linux系统之所以受欢迎,有一方面是因为它比windows支持的CPU架构要丰富,CPU架构详细讲的话又是一大块内容,作者水平也没有那么深,下面提到的名词咱就姑且记住它的名字吧。
      目前常见的CPU架构有32位的x86(又叫IA32,是Intel开发的32位架构)及64位的x86-64(又叫x64,或AMD64,是AMD在 IA32 的基础上扩展出来的一套 64位 CPU 架构),这都是基于CISC的架构,在个人电脑和笔记本上使用的非常广泛。
      而在服务器上使用的芯片架构,有很多是基于RISC的。基于RISC的芯片架构就很多了,POWER/PowerPC架构、 MIPS架构、ARM架构等等等等。特别提一下32位的ARM及64位的ARM64,因为作者购买的华为云服务器是基于鲲鹏处理器的,鲲鹏处理器又是基于ARM架构的O(∩_∩)O。
      我们常听说的Intel和AMD两个芯片厂商目前在家用电脑上开发的芯片都是x86/x64架构的,windows供个人使用的系统都运行于这个架构芯片上(比如win xp,win 7,win 8,win 10),所以你想在ARM架构的芯片组装的电脑上装个win10应该是不可能的(从最底层的原理上就不支持)。基于RISC的架构主要是用在服务器上,服务器上不需要也没办法使用个人windows系统。Linux内核对于各种架构都进行了适配(据说windows有的服务器版系统可以运行在某些RISC架构上)。
      为什么要特别解释一下CPU架构呢?因为个人使用电脑装的系统都默认是适配x86/x64架构的,我们在各种镜像网站下载操作系统镜像,最显眼的肯定也是基于x86/x64操作系统的镜像文件。但是在服务器上,很可能使用的CPU是别的架构,这时候就要注意了,记得安装对应架构的操作系统!

    HTTP/HTTPS/WWW服务/Web服务

      HTTP(超文本传输协议)是互联网普遍使用的一种协议,它其实有很多应用,但其中最重要的应用之一就是WWW服务。HTTP设计最初的目的就是用一种约定好的语言编写网页和解析语言生成网页,在服务器上用遵循HTTP协议的这种语言写一堆代码,遵循协议的客户端浏览器从服务器上获取到代码后,就自动解析出来在浏览器的多少到多少像素内生成一个什么图片,也就是说,服务器告诉客户端浏览器网页上每一个图片每一段文字在什么位置放着,浏览器从服务器下载到这些文字图片后在指定位置生成,就形成了我们看到的网页。
      HTTP最流行的就是用于Web浏览器(我们用的Edge、谷歌、火狐等)与Web服务器(运行着网站服务程序的服务器)的通信,这个应用方式就叫WWW应用或者Web应用(我们浏览网页,输入网站名时候输入的www就是WWW服务)。
      WWW也被叫做Web,就是我们常说的万维网,HTTP协议的WWW服务默认使用80端口,加密的WWW服务使用的是更安全的HTTPS(S代表Safe)默认使用443端口。
      是不是觉得上面几个概念互相关联很绕呢?其实大可不必较真,这几个概念早就已经混淆了,HTTP服务、WWW服务、Web服务可以都视为一个东西,就是我们用浏览器访问服务器的时候进行网页浏览需要的服务。

    LNMP/LAMP环境

      如果想用linux系统提供Web服务,做一个网站,LNMP或者LAMP环境是一个避不开的话题,这个缩写其实指的是四个东西,L是Linux,就是说你的服务器使用的操作系统是Linux。第二个字母是N指的是Nginx,是A指的是Apache,这两个都是提供Web服务的软件,其实还有一些软件也可以提供Web服务,但是市场份额比这两个小太多,一般都是用这两个。M一般指的是MySQL,也有的指的是MariaDB,默认大家都认为是MySQL,这两个都是数据库软件,你的网站要存储一些文章、图片、用户信息或图片等一定会用到的软件。P一般指PHP,也可以指Perl或Python,默认大家都指的是PHP,这个是一种开发语言,也是一个语言环境(安装了python,你就可以写python代码,运行代码会调用python环境,PHP也一样,你安装了PHP,就可以写完PHP代码后运行,运行代码会调用PHP环境),C语言写出的程序可能弹出一个窗口或控制台,用PHP写的程序可以显示一个网页,可以用它来写动态网页,后面会详细说明什么是“动态网页”。LNMP配置好,系统有了,提供web服务的软件有了,数据库有了,网页语言的运行环境有了,你的网站就可以正式进行设计了。
      LNMP是怎么工作的?请看下图:
    在这里插入图片描述

      可以看到,这一套软件紧密配合,最终呈现出了我们访问网站时看到的网页!

    静态网页/动态网页

      使用纯粹HTML格式的网页通常称作静态网页。什么是HTML格式?当你用浏览器打开任何一个网页后,右键有一个选项“查看网页源代码”,这里你看到的源代码就是HTML格式的,你可以看到其中就规定了多少到多少像素放什么东西,浏览器会按照这种格式安排好每一块网页内容放置的位置。
      最早期的网站开发就是用静态网页方式的,每一个网页服务器里都真正存放着对应HTML格式的文件,浏览器要读取baidu这个网页,那么服务器就把baidu.html这个文件和相关的图片视频提供给它,浏览器再进行前面提到的解析。HTML文件里写了什么,浏览器就显示什么,所以网页每一次修改,都需要服务器管理员实实在在地把任何修改的内容写入HTML文件。所以静态网页要做一个论坛简直是个灾难,每个人都需要有修改HTML的权限不说,发一篇帖子你就要更改源代码一次。。。静态网页就是适合那种界面固定长期不变的网页。
      动态网页顾名思义,它是服务器使用相关软件动态生成的,浏览器访问的每一个网页,服务器上没有对应的html文件,而是使用动态服务的软件用动态服务软件使用的编程语言生成网页,如果涉及到用户注册等数据库操作,动态服务软件还会调用数据库。
      静态页面虽然修改起来麻烦,但在效率上两者相差巨大。想象一下,静态页面的访问就相当于你来到了一个火锅店,服务员给你端菜就可以,你自己来涮(服务器只提供资源,客户端浏览器自己解析),而动态页面相当于你去了一个炒菜馆,你点菜以后,服务员要叫后台厨师花几分钟把菜做出来端给你(服务器承担了一定解析工作)。动态页面额外使用了服务器的计算资源,服务效率会低不少。

    Q&A部分

    为什么要使用Linux系统做服务器?

      文章的开头也大概提到了,首先是可靠性,Linux是仿照UNIX系统来设计的,后者据说只要硬件不坏系统就能够稳定运行,Linux也是有着类似的性能,受到了各大公司的青睐。还有就是成本低,Linux系统是自由软件(并不等同于免费,但是对于我们的使用来说和免费的没区别),不用像windows系统那样买一份正版花一份钱。在安全性上,Linux的用户管理机制比Windows要复杂得多,可以防止普通用户对服务器核心内容动手动脚,而且Windows是闭源的,你想下载一个服务器优化插件,一旦它包含病毒你的服务器就完蛋了,而你又看不到插件有没有病毒,Linux这边,一般的软件源代码都是公开的,只要你懂代码,它不可能在代码上做手脚。

    搭建自己的网站,完整的流程是什么?

      如果你真正想做一个任何人都能访问,而不是在某一内网访问的网站,建议你选择购买云服务器提供商的云服务器,在购买时都会给你分配一个公网IP,输入公网IP就可以访问了。具体环节上,购买云服务器后,远程登录它,安装前面提到的Nginx,PHP和MySQL,到此就可以访问服务器了。
      但是做网站有一个响当当的域名很重要,这一步流程挺多,你需要购买域名并添加与服务器IP对应的解析,这还不够,无论你购买的域名有没有真正解析,就算是一个空域名,按照国家规定也需要实名认证,认证完毕后,想要添加解析进行国内访问,还需要准备材料报备工信部进行网站备案。备案完成,你就可以用http://你的域名进行网站访问啦!
      这时你会注意到,浏览器地址栏左侧会提醒你连接不安全,因为HTTP协议的访问是不加密的,使用更安全的HTTPS加密访问的网页浏览器地址栏左侧会有一个加锁的图标,如何让自己网站的访问更安全?在自己服务器上配置HTTPS服务后你会发现访问网页仍然提示不安全,因为HTTPS协议需要配合SSL证书,你需要通过云服务器提供商或者其他代理申请SSL证书安装到服务器上,然后就可以用HTTPS://你的域名来访问。这里说的就是前面提到的域名才能进行的安全设置之一,申请SSL证书只能针对一个域名进行申请,而无法针对一个IP进行申请使用HTTPS协议!

    上述流程全部进行完后,我就可以设计自己的网站了吗?

      当然,前提是你需要懂PHP编程语言来进行网页编写,哈哈,是不是被惊到了?其实对于普通人来说这也完全不需要,推荐一款软件Wordpress,安装它后你可以访问网页后台,然后进行傻瓜式的网站设计!就像你使用Word一样简单,不必再花时间学一种编程语言!

      这篇文章和大家一起了解了linux与网络服务相关的一些知识,为以后的搭建网站教程做铺垫,敬请期待!

    展开全文
  • Linux网络服务参数配置说明实战

    万次阅读 2011-02-07 22:37:00
    “掌控”这些参数,能使您在Linux网络服务问题解决、调优方面功力大增。此乃“系统高手”之必备知识。 临时改动某个系统参数的值,可用两种方法来实现,例如,想启用IP路由转发功能: echo 1 > /proc/sys/...
  • 网络参数设定命令 • ifconfig:查询、设定网络卡与 IP 网域等相关参数 ...• ip:复合式的指令,可以直接修改上述提到的功能 ifconfig ifconfig 主要是可以手动的启动、观察与修改网络接口的相关参数,
  • Linux常用网络命令

    千次阅读 2016-03-14 19:17:15
    Linux网络相关的文件(1)/etc/sysconfig/network功能在于设置主机名称和是否可以启动整个网络(2)/etc/sysconfig/network-scripts/ifcfg-eth0设置网卡(eth0)的参数,包括Network、IP、NetMask、Broadcast、Gateway、...
  • Linux常用命令及其功能常用命令关于帮助关于查找压缩与解压关机与重启配置OtherPS: 常用命令 ls:list,所在路径:/bin/ls,显示目录下所有内容,“ll"等同于"ls -l” man + [命令],可以显示命令的详细用法 cd...
  • Linux常用网络工具总结

    万次阅读 2017-04-20 12:02:58
    本文整理了在实践过程中使用的Linux网络工具,这些工具提供的功能非常强大,我们平时使用的只是冰山一角,比如lsof、ip、tcpdump、iptables等。本文不会深入研究这些命令的强大用法,因为每个命令都足以写一篇文章,...
  • 1.采用最小安装完Linux系统后暂时无法上网,需要对网络适配器进行配置。如下图所示,该虚拟机选择的是NAT模式。 点击VMware选项“编辑”——>“虚拟网络编辑器”,查看NAT模式所用网段,如下图所示为20.0.0.0...
  • Linux中的网络管理——网络配置命令

    万次阅读 多人点赞 2017-11-01 23:25:13
    Linux网络配置 ifconfig命令 Linux网络配置文件 网卡信息文件 主机名文件 DNS配置文件 VMWare中Linux网络参数配置 VMWare桥接模式下配置静态IP Linux网络命令 网络环境操作 网络测试命令Linux网络配置 在Linux中...
  • linux系列之常用运维命令整理笔录

    万次阅读 多人点赞 2019-10-28 17:33:21
    本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些...
  • linux常见服务

    千次阅读 2017-03-31 09:05:05
    常用系统服务  acpi-support 高级电源管理支持  acpid acpi守护程序.这两个用于电源管理,非常重要  alsa 声音子系统  alsa-utils anacron cron的子系统,将系统关闭期间的计划任务,在下一次系统...
  • Linux常用命令-网络命令

    千次阅读 2016-11-23 20:20:17
    功能描述:给同台Linux服务器的在线用户发送消息,以Ctrl+D保存结束 基本语法:write 用户名常见用法:write kongzi 给指定用户kongzi发送消息,回车后输入消息内容。 Hello World ! This is a test ! 回车后,用...
  • 如果有人问你Linux最强大的功能是什么,你大概会回答“是网络功能”。Lmux操作系统的优势之一就是网络功能了,这包含比较稳定的系统资源分配,以及较为安全的网络防护能力,所以许多人都喜欢用它来进行网络服务器的...
  • Linux网络常见故障排除步骤目前Linux的擅长应用领域是:单一应用的基础服务器应用,譬如DNS、Web服务器、NFS服务器、防火墙、文件服务器、代理服务器、中小型数据库。Linux网络故障大多与服务器配置有关。下面我们...
  • 常见linux服务器简述

    2019-07-03 20:13:05
    Samba:Linux与Windows交互的文件共享 vsftpd:文件传输 iSCSI网络存储:专门做存储管理,IP-SAN技术,客机可以获得共享的网络磁盘 Rsync+Intify:差异备份+文件系统事件通告机制,两个服务器联合功能,实现文件系统...
  • Linux服务器上监控网络带宽的18个常用命令 本文介绍了一些可以用来监控网络使用情况的Linux命令行工具。这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度。入站流量和出站流量分开来显示...
  • Linux系统与网络服务管理技术

    千次阅读 2010-05-18 17:51:00
    本文选自《Linux系统与网络服务管理技术大全(第2版)》一书 第2版 前言 Linux是一个优秀的、日益成熟的操作系统,经过十几年的发展,已经拥有了大量的用户。为了满足众多Linux初学者、爱好者专业人员的使用需要,...
  • Linux从青铜到王者】第一篇:Linux常见指令

    万次阅读 多人点赞 2021-05-24 16:24:09
    文章目录系列文章目录前言一、Linux是什么二、Linux下基本指令1.ls指令2.pwd指令3.cd指令4.touch指令5.mkdir指令6.rmdir指令7.rm指令8.man指令9.echo指令10.cp指令2.读入数据总结 前言 一、Linux是什么 Linux是...
  • Linux常用网络配置文件详解

    千次阅读 2018-03-01 16:53:26
    虽然使用这些工具来配置网络会很方便,但是由于各个发行版本的 Linux 所提供的网络配置工具很可能完全不同,并且通过命令行界面的远程登录也无法使用这些图形界面的工具,所以我们并不打算使用工具来...
  • Linux常用命令大全(非常全!!!)

    万次阅读 多人点赞 2019-07-25 16:40:12
    Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解...
  • linux常用网络命令大全

    千次阅读 2018-08-02 15:32:06
    与windows下的ipconfig命令类似,linux下使用ifconfig命令查看 #格式 ifconfig [网络设备][down up -allmulti -arp -promisc][add&lt;地址&gt;][del&lt;地址&gt;][&lt;hw&lt;网络设备类型&...
  • linux常用网络命令

    万次阅读 2015-10-06 10:53:02
    功能描述:给用户发信息,以Ctrl + D保存结束 例如:write stark_summerwall命令名称:wall 命令所在路径:/usr/bin/wall 执行权限:所有用户 语法:wall [message] 功能描述:发广播信息 例如:wall
  • linux之访问网络文件共享服务

    千次阅读 2017-05-02 20:23:05
    网络文件系统是由网络附加存储服务器通过网络向多个主机提供的一种文件系统 , 而不是由块设备 ( 例如硬盘驱动器 )... NFS ( Network File System ) 可看作是 Linux 、UNIX 其它类似操作系统的标准文件系统。 CIFS
  • LinuxLinux常用命令

    万次阅读 2018-05-29 09:55:03
    Linux是一个可靠的、高性能的系统,而所有的这些优越性只有在直接使用Linux命令行时才能充分地体现出来。Linux系统安装成功后,就可以进入到与Windows类似的图形化界面了。这个界面就是Linux图形化界面X窗口系统的一...
  • Linux网络服务(一)

    千次阅读 2016-10-28 19:58:12
    Linux网络地址配置文件 OSI七层模型功能 第七层:应用层 数据 用户接口,提供用户程序“接口”。 第六层:表示层 数据 数据的表现形式,特定功能的实现,如数据加密。 第五层:会话层 数据 允许不同机器上...
  • linux 网络配置

    千次阅读 2006-10-09 16:56:00
    服务器类 从linux诞生的那一天起,就注定了它的网络功能空前地强大.所以在linux系统中如何配置网络,使其高效,安全的工作就显得十分重要.下面我们就从网络设备的安装,网络服务的设置和网络安全性三个方面来介绍一下...
  • 这些工具使用不同的机制来制作流量报告。nload等一些工具可以读取"...文件,以获得流量统计信息;...下面是按功能划分的命令名称。 监控总体带宽使用――nload、bmon、slurm、bwm-ng、cbm、spe...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 278,795
精华内容 111,518
关键字:

常用网络服务及功能linux

linux 订阅