• Linux学习


    1. 为什么要学习Linux

    1.1.  原因

    1、应用程序开发完成之后,一般都会部署到专门的服务器上.由于Linux长时间运行比较稳定,性能高。可以把linux作为服务器,并且作为服务器linux是王者.******

    2、会把Linux的个人版作为开发环境。很多开源项目(redis,ngnix等)都只提供C语言源码,需要我们在C语言编译环境进行编译、打包为软件包,需要在Linux上面就集成了编译环境。

    1.2.  服务器

    购买服务器:

          应用访问人数比较少:单台linux服务器:tomcat,mysql,jdk

          应用访问人数比较多:集群,负载均衡(后面阿里云课程)

    租用服务器:

          一般现在企业都是买云计算服务,阿里云,新浪云,华为云

    1.3.  目标

    了解linux系统,了解linux系统的安装,掌握linux的常用命令,掌握java项目部署。

    1.4.  重点

    掌握linux的常用命令,掌握java项目部署。

    1. Linux

    2.1.  Linux是什么

    Linux是一种类似于Windows的操作系统,与windows最大的区别:

    1、是一个完全免费、开源的操作系统。

    2、一般在服务器电脑上安装该操作系统。

    比如百度新浪,网易的服务器就安装Linux操作系统。

    而windows作为办公环境。

    2.2.  常用Linux版本

    目前流行的几种Linux

    1.红帽(RedHat)公司的:面向个人用户的Fedora和面向企业的RedHat。

    2.Ubuntu:目前用户量最大,社区最活跃,用户体验最好的,个人版本的Linux。

    3.OpenSUSE:大家都说好。

    4.CentOs:很多企业都在用,很稳定,完全免费,一般会把它作为服务器

    5.Debian:Ubuntu就是建立在Debian系统之上

    2.3.  企业现状

    巨头支持:IBM、甲骨文、CA、HP、Dell……

     2010 年1 月开始,《网络世界》发起“Linux 企业应用现状”调查

     64.5%已将或计划将Linux 用于企业中的Web 服务器,比例不断在上升

      39.7% 在邮件服务器上采用了Linux 服务器

      11.6%的受访者表示拟将Linux 用于其他用途

      89.3%看好Linux 的未来发展及在企业中的应用

      2.5%表示并不看好

    1. 虚拟机软件

    3.1.  说明

    Linux需要在一台电脑上进行安装,获得一台电脑的方式有很多,比如网上或者实体店购买。

    当然现在有了更加便宜的解决方案,那就是虚拟机软件,使用虚拟机软件可以模拟出一台或者多态计算机,从而可以在上面安装各种操作系统。

    虚拟机软件:虚拟计算机的软件

    3.2.  常见的虚拟机软件

    vmware workstation 虚拟机软件中的NO.1,特点,模拟完善,有商业授权,收费软件,内存大户

    virtualbox 原来的sun公司,现属于Oracle,免费开源,更新及时,体积小,内存优化

    virtual PC 微软的免费产品,仅支持windows系统(微软官方说只支持windows,其实别的系统也可以安装)现已停止更新

    Hyper-V 微软最新的虚拟机软件

    3.3.  安装virtualbox失败的原因

    操作系统:可能安装了精简版的操作系统,去掉了某些组件。

    电脑主机:主板,CPU不支持虚拟化技术

    建议安装顺序:先安装高版本的vbox,不行在低版本,在不行vm

    3.4.  安装虚拟机软件

    3.5.  添加虚拟网卡

    安装完成,会多一个虚拟网卡

    3.6.  VirtualBox简单使用

    3.6.1.   全局配置虚拟机存储位置

    3.7.  虚拟机操作

    3.7.1.   创建

    详见ubuntu安装之虚拟一台裸机

    3.7.2.   导入、导出

    3.7.3.   备份和还原虚拟机

    在启动的虚拟机窗口操作:

    在visualbox 管理界面操作

    1. Ubuntu安装

    4.1.  虚拟一台裸机

    4.1.1.   点击新建虚拟电脑

    4.1.2.   选择系统

    4.1.3.   选择内存:一般为电脑物理内存的1/3

    4.1.4.   新建虚拟磁盘

    4.1.5.   选择虚拟磁盘扩展名:默认

    4.1.6.   选择动态扩展磁盘还是固定

    一般选择固定磁盘,性能高些

    选择固定磁盘大小8G,修改存放位置,一般修改为非C盘,

    最好直接在位置什么添加盘符路径就可以了,如d:ubuntu9

    4.1.7.   创建虚拟磁盘过程中

    4.1.8.   直到创建完成

    4.2.  对虚拟裸机做一些配置

    4.2.1.   一个空的虚拟磁盘裸机

    4.2.2.   默认从硬盘,光驱启动,调整内存大小

    系统:设置启动顺序:硬盘->光驱

    硬盘不能启动就从光驱启动,此为安装模式

    4.2.3.   修改显存大小

    显示:显存30-40M

    4.2.4.   光驱(Storage)设置

    加载iso安装文件

    4.2.5.   网络(安装时候可以关闭网络,防止网络更新)

    4.3.  安装Ubuntu操作系统

    4.3.1.   点击开始出现,右边Ctrl键(操作快捷键)

    4.3.2.   选择安装系统的语言:简体中文

    4.3.3.   安装开始

    4.3.4.   安装过程

    4.3.5.   一般选择最近的更新点,看是否要更新

    4.3.6.   手动建立分区

    目的:类似功能的文件在一个分区,便于磁盘内部优化

    建立分区:

           新建分区表,点击继续

           空闲分区:添加

               主分区:3587MB,Ext4日志文件系统,挂载点:/

               逻辑分区:余500mb,Ext4日志文件系统,挂载点:/home(类似C:Usersadmin)

               逻辑分区:500mb,交换空间

    类似于

    4.3.7.   主分区,类似C盘

    windows下有多个根分区,比如C D E

    在linux下也有很多个分区,但是根分区只有一个,其他分区通过挂载的方式放在/下

    4.3.8.   创建用户home目录

    4.3.9.   创建交换空间,类似于windows系统的虚拟内存

    4.3.10.        创建用户名

    4.3.11.        最后的安装

    4.3.12.        安装完成页面,安装到98%会等待很久

    windows系统:administortra,itsource

    ubuntu:root,itsource

    4.4.  安装后操作备份&全屏

    4.4.1.   必须备份,完成之后更改iso文件

    4.4.2.   开启网络

    4.4.3.   处理全屏

    全屏快捷键:右边Ctrl+F(Host)

    安装增强功能能全屏、拷贝命令等高级功能

    加载安装目录C:Program FilesOracleVirtualBoxVBoxGuestAdditions.iso光盘

    进入系统,运行光盘跟目录的autorun.sh,需求输入登录用户密码

    Linux里面.sh类似于window系统的.bat

    一直等到显示close window

    4.4.4.   重启系统

    重新加载ubuntu-9.10-dvd-i386.iso,后面安装需要里面的软件

    1. Ubuntu图形界面操作

    5.1.  常规操作

    文件扩展名:linux deb结尾就是windows里面exe结尾

    查看端口:netstat -an | more

    (window cmd):应用程序->附件->终端:放置到桌面,面板

    gedit(window 记事本) 123.txt 如果当前目录存在此文件就显示,没有的创建

    在终端里面只有需要权限的地方,相应的命令前面加上sudo

    Linux图形桌面窗口没有标题栏,不能移动,关闭,最小化的解决方法

    在终端中输入命令sudo metacity

    sudo命令把当前登录的普通用户升级为root超级管理员

    5.2.  获取ip地址:

    window:ipcofig  ubuntu:ifconfig

    5.3.  配置软件源

    A.先挂载ubuntu9-dvd-iso

    B.sudo gedit /etc/apt/sources.list(|DVD光盘作为软件源)

    成都电子科大软件源:http://ubuntu.uestc.edu.cn/

    系统->系统管理->软件源:设置安装软件的源头:虚拟机加载的光盘

    5.4.  配置输入法(拼音、五笔)

    1. 在Linux进行pss项目部署

    6.1.  修改pss项目配置:提高部分性能

    6.1.1.   log4j.properties

    #log4j.logger.cn.itsource.pss=DEBUG

    6.1.2.   struts.xml

    <constant name="struts.devMode" value="false" />

    6.1.3.   jdbc.properties

    hibernate.show_sql=false

    hibernate.hbm2ddl.auto=validate

    6.1.4.    pom.xml:降低编译的jdk等级

    <configuration>

           <source>1.6</source>

           <target>1.6</target>

    </configuration>

    先删除targer目录,在重新编译

    6.1.5.   打包pss.war

    cd G:eclipseworkspacepss

    mvn package -Dmaven.test.skip=true

    6.2.  怎样拷贝文件

    1.通过终端服务客户端,本地资源->添加我的磁盘至远程计算机作为本地磁盘

    2.网络下载

    修改apache-tomcat-7.0.57confweb.xml  listings:true可以把目录已列表的形式显示

    把需要拷贝的文件放入webappROOT目录

    confserver.xml里面的HOST不要配置Context

    3.把文件打包ISO,加载光盘

    4.移动硬盘/U盘(需要驱动)

    5.linux系统安装好ssh服务,在win系统使用ftp软件(winscp),必须有dhcp动态ip获取

    6.3.  安装mysql

    重新加载ubuntu-9.10-dvd-i386.iso,后面安装需要里面的软件

    6.3.1.   安装命令

    sudo apt-get install mysql-server

    sudo apt-get install mysql-client 可以不安装客户端

                        

    登录mysql                 

    mysql -uroot -padmin 

    6.3.2.   查看MYSQL字符集:

    mysql>show variables like 'character%';

    退出mysql:exit,加入终端,修改编码格式:必须重启tomcat

    sudo gedit /etc/mysql/my.cnf

    查看MYSQL字符集:show variables like 'character%';

    6.3.3.   修改字符集

    找到[client] 添加:

           #默认字符集为utf8

           default-character-set=utf8

    找到[mysqld] 添加:(注意空格对你的影响)

           #默认字符集为utf8

           default-character-set=utf8

           #设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行 

           init_connect='SET NAMES utf8'                       

    6.3.4.   修改了mysql的编码格式,必须重启mysql

    重启mysql

    sudo /etc/init.d/mysql restart

    显示以下2行成功:

     * Stopping MySQL database server mysqld                                 [ OK ]

     * Starting MySQL database server mysqld                                 [ OK ]

    -------------------mysql-------------------end...

    6.3.5.   了解:其他mysql命令

    dvd中mysql位置/pool/main/m/mysql-dfsg-5.1

    停止mysql:sudo /etc/init.d/mysql stop

    启动mysql:sudo /etc/init.d/mysql start

    不输人就是参数会有相应提示:sudo /etc/init.d/mysql

    itsource@itsource-desktop:~$ sudo /etc/init.d/mysql

    Usage: /etc/init.d/mysql start|stop|restart|reload|force-reload|status

    itsource@itsource-desktop:~$ sudo update-rc.d

    usage: update-rc.d [-n] [-f] <basename> remove

           update-rc.d [-n] <basename> defaults [NN | SS KK]

           update-rc.d [-n] <basename> start|stop NN runlvl [runlvl] [...] .

           update-rc.d [-n] <basename> disable|enable [S|2|3|4|5]

    设置自启动:sudo update-rc.d mysql defaults

    不自动启动:sudo update-rc.d -f mysql remove

    6.4.  导入pss.sql数据到mysql

    登录mysql数据库:mysql -uroot -padmin

    以下命名都是在mysql>

    创建一个pss的数据库

    drop database if exists pss;

    create database pss default charset utf8;

    导入pss数据

    mysql -uroot -padmin  pss</home/itsource/下载/pss.sql

    进入pss数据库

    use pss;

    select * from employee limit 0,5;

    6.5.  重新安装JDK

    6.5.1.   卸载原来JDK1.6

    系统->系统管理->新力得软件包管理器

    快速搜索:jre  右键

    openjdk-6-jre 标记以便彻底删除

    openjdk-6-jre-lib 标记以便彻底删除

    6.5.2.   安装JDK1.8

    选中jdk-6u17-linux-i586.bin,右键,权限,执行(勾上)

    cd 到下载目录

    执行安装:   ./jdk-6u17-linux-i586.bin

    安装查看协议:空格一屏,q直接退出

    yes

    回车

    6.5.3.   配置java环境

    sudo gedit /etc/profile.d/java.sh

    配置自己安装的jdk的环境变量特别注意:

    不能额外添加多余的空格,路径有中文没有问题

    export JAVA_HOME=JDK安装路径

    export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar:$CLASSPATH

    export PATH=$JAVA_HOME/bin:$PATH

    6.5.4.   确认配置正常后,必须重启虚拟机

    6.6.  Eclipse Hello World

    确认jdk安装成功

    6.7.  安装Tomcat 并部署软件

    6.7.1.   安装运行tomcat

    启动  点击运行,不是终端运行

       startup.sh

    停止

       shutdown.sh

      查看日志

    测试

      http://localhost:8080

    6.7.2.   部署pss

    下载pss.war,解压缩到tomcat/webapps/ROOT里面

    去掉多余的javassist-3.11.0.GA.jar

    6.8.  启动tomcat 访问pss系统

    启动完成后,查看日志,如果有报错就解决

    1. Linux命令

    7.1.  root用户,设置root密码

    Linux 默认有一个超级管理员root,和windows的admnistrator一样

    可以以root登录,然后在创建用户(itsource/admin),同windows一样

    有时候普通用户操作权限是不够的,需要使用root用户来操作,但是Ubuntu默认密码是随机的,不能使用,但是我们进行设置。

    ubuntu root默认密码(初始密码)

    ubuntu安装好后,root初始密码(默认密码)不知道,需要设置。

    1、先用安装时候的用户登录进入系统

    2、输入:sudo passwd  按回车

    3、输入新密码,重复输入密码,最后提示passwd:password updated sucessfully

    此时已完成root密码的设置

    4、输入:su root

    切换用户到root试试.......

    7.2.  常用命令

    1.查看当前所在目录

    pwd

    2.切换目录

    cd 目录名

    3.查看目录文件信息

    ls //列出文件信息

    ls -l //以详细信息方式列出文件信息

    ls -al //以详细信息方式列出所有文件信息,包含隐藏文件

    ls 目录名  //查看该目录的文件信息

    4.查看当前用户

    whoami    //查看当前操作用户 可以看到其他操作用户,可能会有多个

    who am i  //查看当前登录用户的信息 只有一个就是我自己(我登录)

    5.切换用户

    Su

    su - //切换到root用户

    su - root //切换到root用户和su - 一样

    su - user //切换到user用户

    su user //切换到user用户,不切换用户权限

    exit  //注销当前用户,返回前一用户

    su命令和su -命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了

    7.3.  文件

    7.3.1.   文件系统结构

     linux系统的目录结构是一个以/(根目录)为根节点的树形结构

     

    Linux有个基本思想:一切都是文件。就是系统中的所有都可以归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。

    /bin 存放二进制可执行文件(命令),所有用户都可以使用

    /sbin 存放二进制可执行文件,只有root用户可以使用

    /boot 系统启动需要的核心文件

    /dev 设备文件

    /home 用户的主目录

      /home/itsource

      /home/zhangsan

    /lib 系统共享动态链接库

    /mnt 挂载目录,通常挂载到该目录下

    /etc 存放系统配置文件目录

    /etc/passswd 用户信息文件

        /etc/group 用户组信息文件

    /var 用来存放常态性变动的文件,经常发生变化的文件。比如缓存、登录文件,mysql数据库文件等

    /tmp  临时目录,用来存放临时文件

    /proc 虚拟目录,是内存的映射,可以访问到内存中的系统信息

    /sys 和proc类似,存放和内核相关的信息和数据

    /root root用户的主目录

    /usr 存放应用程序和文件(类似于windows的system32、program files目录)

    /usr/bin、/usr/sbin:这是对/bin、/sbin的一个补充

    7.4.  目录(文件夹)操作

    7.4.1.   创建目录

    mkdir 目录名  //创建一个目录

    mkdir -p 目录1/目录2/目录3  //递归创建目录

     

    7.4.2.   删除目录

       

    rmdir 目录名  //删除目录

    rmdir -p d1/d2/d3 //递归删除目录

       rmdir只能删除非空目录

    rm -r 目录名  //删除目录和目录的所有内容

    rm -rf 路径  //可以删除文件和目录

    rm file  //删除一个文件

     

    7.4.3.   修改目录

    mv dir1 dir2  //dir2不存在,将dir1目录名修改为dir2

    mv dir1 dir2  //dir2存在,将dir1目录移动到dir2中

    mv d1 d2/d3 //d2存在d3不存在,把d1移动到d2中并且改名为d3

    是移动还是改名,就看第二个参数路径是否存在。存在就移动,不存在就改名

     

    7.4.4.   复制目录

    cp file1 file2  //将文件file1复制一份为file2

    cp file1 dir1/file2  //将文件file1复制一份到dir1目录,名称为file2

    cp -r dir1 dir2 //将dir1复制一份到dir2目录(包含目录内容一起复制)s

    7.4.5.   相对路径和绝对路径

    绝对路径:以/(根目录)开头的路径(例如/home、/etc/passwd)

    相对路径:以./开头的路径,./可以省略(指相对于当前路径)

    ./    表示当前目录

    ../  表示上一级目录

    路径的最后一个斜杠可以省略

    特殊目录 ~ 表示用户主目录

    快速切换目录

    cd ~  //切换到用户主目录

    cd - //切换到上次目录

     

    创建:mkdir -p dir1 dir2/dir3

    移动:mv dir1 dir2

    删除:rm -rf dir

    拷贝:cp -r dir1 dir2

     

    7.5.  文件操作

    7.5.1.   创建文件

    touch 文件路径         //创建一个空白文件

    gedit

    7.5.2.   查看文件内容

    cat  //将文件内容直接显示出来

    more  //将文件内容分屏显示(按回车显示下一行,按空格显示下一屏)Ctrl+C退出

    less  //将文件内容分页显示(pageup上一页,pagedown或空格下一页,回车显示下一行)

    head //显示文件的前面几行内容

    head -n 3 1.txt  //显示文件前3行内容

    head -n -3 1.txt //显示文件内容,除了最后3行

     

    tail  //显示文件后几行内容 查看日志

    tail -n 3 1.txt  //显示文件后3行内容

    tail -n +3 1.txt //显示文件内容,除了最开始3行

    tail -f   //动态显示文件内容

    wc         //统计文件内容行、句、字符数

    7.5.3.   添加内容到文件

    > 和 >>  //输出重定向,> 覆盖写 , >> 追加写

    echo hello > 1.txt     //以覆盖写的方式将hello字符添加到文件1.txt

    echo world >> 1.txt    //以追加的方式将world字符添加到文件1.txt

    cat 2.txt >> 1.txt      //将2.txt文件的内容追加到1.txt

     

    7.5.4.   查找文件

    find

    直接从硬盘查找文件,搜索速度慢,但是能实时搜索

    参数

    –name //以文件名作为参数进行查找

    -mindepth //最小目录层次

    -maxdepth //最大目录层次

    其他参数通过man或者--help参数学习

    示例:find -maxdepth 3  -name passwd

    总结:

    Linux有很多命令,不用死记硬背。会使用一些常用的就ok,用到时查看命令文档。

    或者网上搜索

    1. 阿里云服务器操作流程

    先使用ftp软件winscp把pss.war文件上传阿里云服务器上面

    在解压缩命令,进行处理,百度 linux unzip 参数

    cp命令,上面pss目录复制到tomcat的webapps下面的ROOT目录

    cd 切换到tomcat的bin目录

    startup.sh

    通过http://221.111.14.5:8080

    申请域名,把上面的ip绑定域名上面

    1. Linux ssh

    Linux最开始是没有图形界面的,后面为了方便操作一些版本的操作系统把常用的操作作为图形操作,这样我们可以使用图形界面操作ubuntu,但并且不是所有的功能都有图形界面的。

    一般服务器都是不安装图形界面。所有要学习命令操作方式

    9.1.  本地终端

    终端:类似于windows下面的cmd,在应用程序->附件->终端打开,可以把它放置到桌面

     

    简单操作:

         获取ip地址:window:ipcofig  ubuntu:ifconfig

         查看端口:netstat -an | more

         gedit(window 记事本) 123.txt 如果当前目录存在此文件就显示,没有的创建

    注意:

        在终端里面只有需要权限的地方,相应的命令前面加上sudo,加上以后就是以管理员的方式执行。

        在ubuntu下标题栏消失,窗口不能移动

           在终端中输入命令sudo metacity --replace

    9.2.  通过网络远程访问Linux

    要能远程连接并上传、下载文件,需要能ping通和安装sshd服务

    9.3.  sshd服务安装

    安装sshd服务需要配置软件源,可以配置合适的网络路径(该版本不能访问)。也可以配置本地光盘(软件源)

    1. 首先在服务器上安装ssh的服务器端。

    $ sudo apt-get install openssh-server

    2. 启动ssh-server。

    $  sudo /etc/init.d/ssh restart

    3. 确认ssh-server已经正常工作。

    $ netstat -tlp

    tcp6    0    0 *:ssh                *:*                   LISTEN     -

    看到上面这一行输出说明ssh-server已经在运行了。

    4.关闭防火墙

    sudo ufw disable

    默认的ssh服务器的端口是22 sftp默认端口25

    在教室里面的学生不会自动分配IP,需要手动设置。DHCP自动分配,但是我们的环境没开。

    先ping通,在使用ssh的客户端来连接。

    9.4.  远程连接和上传文件到linux

    9.4.1.   远程终端软件

    Ssh: xshell,putty等(远程连接,类似windows远程桌面)

    Sftp:xftp,winscp等(上传文件)

    Putty+winscp 企业用的最多

    Xshell,xftp同时属于xmanager的组件

    9.4.2.   putty远程连接和winscp远程上传和下载

    和xshell和xftp大同小异(略)

    9.4.3.   xshell远程连接Linux

    启动xshell

    输入用户名和密码

    连接成功

     Xshell乱码:

    1.是不是Linux系统没有安装中文语言包呢?我们来检查一下吧,查看语言包。如下图

    2.设置Xshell工具,中文显示

    如果系统支持中文语言包,那么显示还是乱码应该是Xshell链接工具的问题。

        打开xshell终端服务,找到菜单--- 属性 如下图

    9.4.4.   Xftp 远程上传和下载

    1. 面试题

       1、有没有用过linux?ssh默认端口是多少?22

       2、你是怎么访问远程的Linux?

           Ssh的客户端软件putty来进行连接。目的执行命令。

           Sftp的客户端来上传和下载文件

       3、你简单说几个命令?

          cd ls unzip tar -zxvf cp

       4、你都使用Linux来做什么?

            开发环境:C语言的编译环境 make gcc

            作为服务器

  • 相关阅读:
    Lesson 3 Nehe
    Lesson 2 Nehe
    Lesson 1 Nehe
    Lesson 1 Nehe
    JavaScript 字符串与数组转换函数[不用split与join]
    华中科大校长:教授被称为“叫兽”是教育的悲哀
    /etc/profile、~/.bash_profile等几个文件的执行过程
    cygwin下遇到system没有执行的问题
    发短信 汉字编码 utf-8 UCS-2BE
    UTF-8与UNICODE的关系及代码转换
  • 原文地址:https://www.cnblogs.com/Src-z/p/11218877.html
Copyright © 2020-2023  润新知