<mark>linux学习</mark>:

第一部分:
1:linux基础简介
  1:操作系统(Operating System)
    1:操作系统是管理计算机硬件与软件资源的程序
    2:典型操作系统 UNIX、LINUX、Mac OS X、Windows、 iOS、Android、MS-DOS
    3:操作方式
      1:命令行界面(Command Line Interface CLI)
        1:用户通过键盘输入指令,计算机接收到指令后,予以执行。
        2:优点
          1:节约计算机系统的资源
          2:操作速度快(记住命令)
        3:常见 DOS、UNIX、LINUX
      2:图形用户界面(Graphical User Interface,简称 GUI)
        1:采用图形方式显示的计算机操作
        2:优点 操作简单 用户友好
        3:缺点  比图形命令界面消耗资源
        4:常见 WINDOWS、Mac OS
2:UNIX与MINIX
  1:UNIX
    1:1969年由贝尔实验室的肯.汤普逊、丹尼斯.里奇带领下开发出UNIX
      1:肯.汤普逊:UNIX之父
      2:丹尼斯.里奇:C语言之父
    2:之前使用汇编语言B语言,1973年用两人改用C语言(高级语言)重写
  2:MINIX
    1:贝尔实验室收回版权并且规定“不可对学生提供源码”。
    2:Andrew S. Tanenbaum(谭帮宁)教授为了授课,在不参考UNIX源码下写出了MINIX
  3:LINUX
    1:1991年,芬兰人林纳斯.托瓦兹在赫尔辛基大学自己动手写了操作系统,就是LINUX内核(Linux kernel)。
    2:吉祥物企鹅。
    3:Linux加入GNU并遵循公共版权许可证 (GPL)。   
    4:GNU(“GNU's Not Unix”)理查德.斯托曼博士1983年启动建立一个完全相容于UNIX的自由软件环境,自由软件环境即:赋予用户复制、研究、修改和散布该软件的权利,并提供源码供用户自由使用。 
    5:GPL(General Public License 通用公共许可证)
      1:为了避免GNU开发的软件被其他人利用成为专利软件
      2:Copyleft(专利软件是Copyright)
      3:目的要让GNU永远是免费和公开的
    6:Linux简介
      1:Linux是一种自由和开放源码的类UNIX操作系统
      2:LINUX特点:开放性,多用户,多任务,丰富的网络功能,可靠的系统安全,良好的可移植性,良好的用户界面(命令界面,图形界面等),出色的速度性能
  4:LINUX组成
    1:内核
    2:Shell
    3:文件系统
    4:应用程序
  5:LINUX版本
    1:LINUX内核(Linux kernel) 系统的心脏
    2:发行版本
      1:厂商将Linux系统内核与应用软件和文档包装起来,并提供一些安装界面和系统设定管理工具的一个软件包的集合
      2:常见 RedHat Linux,Debian,Ubuntu, Novell/SuSE Linux
  6:Ubuntu
    1:Ubuntu版本由发布的年份和月份组成
      查看Ubuntu版本cat /etc/issue 或者 sudo lsb_release -a
    2:Linux系统安装
      1:下载iso系统镜像文件刻录光盘,一步步安装。该步骤和安装windows系统一样,傻瓜式安装
      2:Vmware虚拟机安装
        1:虚拟机(Virtual Machine)是一个软件,可以模拟出具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
        2:注意:安装完虚拟机后,VMware Network Adapter VMnet1 和 VMware Network Adapter VMnet8
        3:使用Wmware安装Ubuntu(注意:设置用户名和密码,用户名不能设置为root)
3:Linux的命令行与图形界面切换
  1:命令行界面
    1:在图形化界面中打开命令行窗口  应用程序-》附件-》终端          
    2:切换到纯命令行是使用Ctrl+Alt+F1~F6:注意:使用ctrl+alt 和Vmware软件有冲突,需要修改VMware的快捷键(在VMware左上角edit->preferences->hot keys,将ctrl+alt 修改为ctrl+shift+alt)
      1.Ctrl+Alt+F1  切换到控制台1(tty1)
      2.Ctrl+Alt+F2  切换到控制台2(tty2)
      3.Ctrl+Alt+F3  切换到控制台3(tty3)
      4.Ctrl+Alt+F4  切换到控制台4(tty4)
      5.Ctrl+Alt+F5  切换到控制台5(tty5)
      6.Ctrl+Alt+F6  切换到控制台6(tty6)
    3: 使用who命令查看当前已经登录的用户
  2:图形用户界面(Graphical User Interface,简称 GUI)   ctrl+alt+f7切换到图形用户界面
  3: 普通用户与超级管理员
    1:显示“$”标识表示是普通用户 例如:进入linux系统,控制台出现:zhaojd@ubuntu:~$    ~ 用户的根目录
    2:显示“#”标识表示是超级管理员
    3:切换用户
      切换用户(使用su命令切换用户):
      当从普通用户切换到root用户(超级管理员)或其他用户时,需要输入目标用户的密码。当从root用户切换到普通用户时,不需要输入密码。
    4:Linux目录结构
      1:Linux所有内容是以文件形式进行管理
      2:/ 根目录
        1:bin  存放二进制可执行文件(ls,cat,mkdir等)
        2:boot 存放用于系统引导时使用的各种文件
        3:dev  用于存放设备文件(dev是device的简写,就是“设备”的意思。Linux把每个硬件也看作是一个文件)
        4:etc  存放系统配置文件(1:例如安装jdk配置环境变量)
        5:home 存放所有用户文件的根目录(1:用户登录系统后默认所在的目录)
        6:mnt  系统管理员安装临时文件系统的安装点(例如:挂载光驱)
        7:opt  额外安装的可选应用程序包所放置的位置(例如:我们可以安装自定义程序1:安装eclipse,安装tomcat)
        8:root 超级用户目录(1:管理员)
        9:sbin 存放二进制可执行文件,只有root才能访问
        10:usr  用于存放系统应用程序,有些类似windows的Program Files 例如:软件中心下载的软件默认安装在usr/bin中。我们也可以将jdk安装在此目录中。
第二部分:
Linux的常用命令:
  1.注销、关机、重启命令
    注销:logout或exit
    关机:shutdown -h now 或 halt(要是root用户或是有授权才可以)
    重启:shutdown -r now 或 reboot(要是root用户或是有授权才可以)
  2:Linux的基本命令
    1:ls 显示文件和目录列表  
      1: -l列出文件的详细信息
      2:-a列出当前目录所有文件,包含隐藏文件
    2:mkdir创建目录(删除?rmdir 非空)(-p 父目录不存在情况下先生成父目录)
    3:cd 切换目录
    4:touch 生成一个空文件 
    5:echo  生成一个带内容文件(1:echo abcd>a.txt)
    6:cat、tac 显示文本文件内容
    7:cp 复制文件或目录(1:cp a.txt /home/zhaojd/abc/ddd)
    8:rm 删除文件(1:rm a.txt 2:rm -rf abc)
    9:mv 移动文件或目录、文件
      1:mv  aaa bbb 将aaa改名为bbb  (其实就是对文件或文件夹的一个重命名)
      2:mv bbb /home/zhaojd/abc/ccc
    10:find 在文件系统中查找指定的文件(find -name 文件名)   
    11:wc 统计文本文档的行数,字数,字符数(wc a.txt)    
    12:grep 在指定的文本文件中查找指定的字符串(grep aa a.txt)
    13:pwd  显示当前工作目录 
    命令练习:
      创建一个目录 家庭A(目录)
      进入familyA
      家庭A中有一个父亲,母亲,女儿,儿子(4个空文件)
      家庭有房子(目录)
      房子有厨房,卫生间,3卧室(目录)
      男孩房有床(空文件),有书(带内容的文件)
      女孩房同样有床和书,女孩房有娃娃(空文件)。
      男孩房也要有娃娃(空文件),男孩把娃娃删掉。将房间的沙发移动到男孩房。
      删除厨房          
    14:ln 建立链接文件(***)
      1:ln -s /home/zhaojd/familyA/house/roomB/home/roomB 当访问一个目录较深的文件,可以建立链接文件。    
    15:more、less 分页显示文本文件内容 
      1:查看配置文件时,很长需要分页处理
      2:more(一页一页翻)
        1:空格键向下翻页
        2:Enter键向下滚动一行
        3::f 显示出文件名及当前的行数
        4:  q 离开more
        5: b 往回翻
      3:less(一页一页翻)
        1:空格 向下翻一页
        2:PageDown 向下翻一页
        3:PageUp 向上翻一页
        4:q 离开
    16:head,tail分别显示文件开头和结尾内容
      1.tail a.txt 显示文件a.txt的后十行内容
      2.tail -n 20 a.txt 显示文件a.txt的后20行内容
      3.tail -f a.txt 显示文件的后十行内容,并在文件内容增加后,自动显示新增的文件内容。
      4.tail -n 50 -f a.txt 显示后50行内容,并在文件内容增加后,自动显示新增的文件内容。
    17:man 命令帮助信息查询  例如:man ls
    18:管道(***)   例如: cat /etc/passwd | wc -l
      使用cat命令显示passwd文件中的内容,但是并没有显示在屏幕上,而是通过管道“|” 接受,wc命令从管道中取出内容进行统计,然后显示结果。这个输出时该文件有多少行(多少个用户)
    19:重定向
      1:>
        cat /etc/passwd>/home/zhaojd/a.txt
        echo "hello java">a.txt (覆盖上一个a.txt)
      2:>>
        1:追加,不会覆盖
          cat /etc/passwd>>/home/zhaojd/a.txt 
          echo "---------">>a.txt               
  3:Linux系统命令
    1:stat 显示指定文件的相关信息 
      1:stat familyA
        access 进入
        Modify 修改
        Change 改变
        access time是文档最后一次被读取的时间。因此阅读一个文档会更新它的access时间,但它的modify时间和change时间并没有变化。cat、more 、less、grep、tail、head这些命令都会修改文件的access时间。
        change time是文档的索引节点(inode)发生了改变(比如位置、用户属性、组属性等);
        modify time是文本本身的内容发生了变化。[文档的modify时间也叫时间戳(timestamp)
      2:who、显示在线登录用户 
        1:想要知道当前有多少用户登录系统。
        2:who  显示2个一个是命令行,一个是图形界面的只有一个zhaojd
      3:whoami 显示用户自己的身份 
      4:hostname 显示主机名称 
        hostname
        hostname -i 显示主机IP
      5:uname 显示系统信息 
        uname -a 显示全部信息
      6:top 显示当前系统中耗费资源最多的进程 动态显示过程,实时监控类似于windows的任务管理器、主要看 cpu mem command、ctrl+c 退出,或者q
      7:ps 显示瞬间进程状态   ps -aux  显示所有瞬间进程状态
      8:du 显示指定的文件(目录)已使用的磁盘空间的总量 
        1:du
        2:du familyA  (以K为单位)
        3:du -h familyA 
      9:df 显示文件系统磁盘空间的使用情况 
        1:df -h 
      10:free 显示当前内存和交换空间的使用情况  
      11:ifconfig 显示网络接口信息   windows 是ipconfig
      12:ping 测试网络的连通性 
      13:clear 清屏
      14:kill 杀死一个进程
      15:关机/重启命令 
        1:shutdown 命令可以安全的关闭Linux系统,shutdown命令必须有超级用户才能执行。shutdown命令执行后会以广播的形式通知正在系统中工作的所有用户
          1:shutdown -h now(关机不重启)
          2:shutdown -r now(关机重启)
          3:shutdown now(关机)
          4:shutdown 15:22
        2:halt 关机后关闭电源 
        3:reboot 重新启动
  4:备份压缩命令
    1:tar
      1:打包tar -cvf familyA.tar familyA (tar -cvf 保存路径/包名 打包目录)
      2:拆包tar -xvf /home/zhaojd/familyA.tar 
    2:gzip 命令    gzip 压缩(解压)文件,压缩文件后缀为gz 
      1:压缩 把/home/zhaojd目录下的familyA目录下所有文件压缩成.gz文件。gzip只能压缩文件,目录(文件夹不能处理),需要使用tar对文件夹打包  gzip familyA.tar 进行压缩
      2:查看压缩文件 gzip -l familyA.tar.gz 查看压缩包详细信息
          compressed 压缩后大小
          uncompressed 原始大小
          ratio  压缩比 
          uncompressed_name  原始文件名
      3:解压 gzip -d familyA.tar.gz   显示文件名和压缩比
      4:压缩比
        高压缩(速度稍慢)
          gzip -9 familyA.tar 高压缩比      
        低压缩比(速度快)
          gzip -1 familyA.tar 低压缩比
    3:bzip2 命令 bzip2 压缩(解压)文件或目录,压缩文件后缀为bz2 
      1:压缩 把/home/zhaojd目录下的familyA目录下所有文件压缩成.bz2文件   bzip2 -z familyA.tar 压缩需加上参数-z
      2:解压缩  bzip2 -d familyA.tar.bz2 
  4:tar命令压缩和解压
    将整个/home/zhaojd/familyA目录下的文件全部打包成为/home/zhaojd/familyA.tar
    1:仅打包,不压缩 tar -cvf familyA.tar familyA
    2:打包后,以gzip压缩
      tar -zcvf familyA.tar.gz familyA
      拆包
      sudo tar -zxvf familyA.tar.gz
    3:打包后,以bzip2压缩
      tar -jcvf familyA.tar.bz2 familyA
      拆包
      sudo tar -jxvf familyA.tar.bz2 
第三部分:软件管理
  1:直接安装.deb包 dpkg软件包
    1:安装以.deb结尾的软件包,需要使用root的权限 sudo dpkg -i 软件包名
    2:卸载 sudo dpkg -r 软件包名
    3:安装tree
      1:进入file文件 cd /home/zhaojd/Desktop/file
      2:sudo dpkg -i tree_1.5.3-1_i386.deb
    4:看Ubuntu系统已安装所有软件包列表 sudo dpkg -l
      很多情况软件安装:/usr/local之下
  2:使用apt-get管理软件(推荐使用)
    1:前提连接互联网,自动搜素,自动下载自动安装
    2:安装 sudo apt-get install eclipse
    3:卸载 sudo apt-get remove packagename   
    4:使用广泛,默认下载路径 /var/cache/apt
    5: 同时也可以可以更新和搜索软件
      1.执行“apt-get update”更源列表
      2.执行“apt-cache search 名称”搜索软件 
        ubuntu系统如何查看软件安装的位置?装到哪里去了,可以这样看:dpkg -L  软件名
      软件中心下载的软件默认保存路径:/var/cache/apt/archives.
  3:vim编辑器
    编辑模式:等待编辑命令输入
    插入模式:编辑模式下,输入 i 进入插入模式,插入文本信息
    命令模式:在编辑模式下,输入 “:” 进行命令模式   
    1:安装
      1:安装进入file文件 cd /home/zhaojd/Desktop/file
      2:sudo dpkg -i vim-runtime_7.2.330-1ubuntu4_all.deb
      3:sudo dpkg -i vim_7.2.330-1ubuntu4_i386.deb  
      4:检查安装成功 敲入vim即可 退出 :q。
    2:在/home/zhaojd/目录下建立一个bank.txt文件
      1:cd /home/zhaojd/familyA/
      2:touch bank.txt
      3:使用vim编辑
        1:  vim bank.txt
        2:数据命令i 进入插入模式
        3:输入内容
          ICBC
          RMB:10000000000
          USD:100000000000
          user:familyA.father
        4:ctrl+C 退出插入模式或者敲ESC切换至命令模式
        5::wq 回车 保存  :q! 回车 强制退出
        6:显示行号
          1:vim bank.txt        
          2::set number 回车
          3::q 回车 正常退出
        6:取消行号 :set nonumber
第四部分:搭建Java服务器并进行远程管理
  查看linux 是否开启SSH 服务(是否安装服务端)
  sudo apt-cache policy openssh-client openssh-server
  1:搭建SSH服务器            
    1:在Ubuntu Linux服务器上安装SSH软件
      执行“apt-get install openssh-server”            
    2:在Windows客户机上访问SSH服务器
      使用“putty.exe”登录服务器(命令行),可用于在服务器端执行命令。
      使用“winscp.exe”连接服务器,可用于上传下载文件。
  2:搭建Java环境(JDK6)
    方法一:执行“apt-get install openjdk-6-jdk”注意: 需要联网.              
    方法二:
      1.进入opt目录
            cd /opt
      2.在opt目录下建立java安装目录
        sudo mkdir java
      3.将jdk-6u24-linux-i586.bin拷贝到java目录下
        sudo cp /home/zhaojd/Desktop/file/jdk-6u39-linux-i586.bin /opt/java
      4.安装jdk
        cd /opt/java
        sudo ./jdk-6u39-linux-i586.bin  
    配置JAVA_HOME         
        编辑配置文件 sudo vim /etc/profile
        添加如下内容: 
          export JAVA_HOME="/opt/java/jdk1.6.0_39"
          export PATH="$JAVA_HOME/bin:$PATH"
    重启机器。或者(source /etc/profile)                
    验证环境
    验证JAVA_HOME是否配好:echo $JAVA_HOME    echo $PATH
    注意:     
        $是取环境变量的值
        JAVA_HOME是环境变量          
    验证PATH是否配好: java -version
  3: 搭建Tomcat服务器
    1,从tomcat官网上下载.tar.gz包,并放到服务器上。
    2,解压tomcat.tar.gz包:“tar -zxvf tomcat6.tar.gz”。
      sudo tar -zxvf 该命令字节进.gz的文件包解压。
    3,执行“/opt/tomcat6/bin/startup.sh”便可启动Tomcat。
      如果启动不了,请尝试
        sudo -i 切换到root用户再重新启动
        sudo ./startup.sh
        测试http:127.0.0.1:8080/
        sudo firefox (如果无法正常打开浏览器使用该命令) 
    4: 安装eclipse
      1,从eclipse官网下载eclipse-jee-helios-linux-gtk.tar.gz包,放到服务器上。
      2,解压eclips.tar.gz包:“tar -zxvf 解压eclips.tar.gz”。
      3,执行“/opt/eclipse/eclipse” 便可启动eclipse
        如果eclipse无法正常启动,可以经jre拷贝一份到eclipse目录下(cp -a 拷贝目录)

参考:https://blog.csdn.net/ZJDWHD/article/details/53005300