LInux的概念
1.1.1 :什么是Unix?
* Unix是一个强大的多用户、多任务操作系统。于1969年在贝尔实验室开发。
* UNIX的商标权由国际开放组织(The open Group) 所拥有。
* UNIX操作系统是商业版,需要收费,价格比Microsoft Windows正版要贵一些。
1.1.2 :Linux的概述:
* Linux是基于Unix的
* Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本。它可安装在各种计算机设备中,比如手机、平板电脑、路由器、台式计算器
* LInux诞生于1991年10月5日。是由芬兰赫尔辛基大学大学生Linus Torvalds和后来加入的众多爱好者共同开发完成,后来发布于芬兰最大的ftp服务器上,用户可以免费下载,所以它的周边的程序越来越多,Linux本身也逐渐壮大起来,之后Linux在不到三年的时间里称为一个功能完善,稳定可靠的操作系统。
1.1.3 :Linux系统的应用:
* 服务器系统
* Web应用服务器,数据库服务器,接口服务器,DNS、FTP等待。
* 嵌入式系统
* 路由器、防火墙、手机、PDA、IP、分享器、交换器、家电用品的微电脑控制器等等。
* 高性能运算、计算密集型应用
* Linux有强大的运算能力。
* 桌面应用系统
* 移动手持系统。
1.1.4 :Linux的版本
* 内核版本是指在Linus领导下的内核开发小组开发维护的系统内核的版本号;
* 发行版本是一些组织和公司根据自己发行版的不同而定的;
1.1.5 :Linux的主流版本
* 桌面版 ubuntu(干净整洁) fedora(做的最好,有特效)
* 命令行 redhat CentOs(基于红帽系列的发行版,但红帽是收费的,CentOs是免费的。) CentOs是redHat的分支,redHat软件免费,服务收费。
* 国产 中标麒麟 红旗(已倒闭)
1.2.1 :虚拟机安装
* 虚拟机: 一台虚拟的电脑
* 虚拟机软件:
* VmWare:收费的
* VirtualBox: 免费的
* 安装VmWare --> 参考《虚拟软件vmware安装.doc》
* 安装CentOs --> 参考《CentOs6 详细安装文档.doc》
1.2.3 :Linux 的目录结构: / :斜杠代表根路径
* bin (binaries) 存放二进制可执行文件
* sbin(super user binaries) 存放二进制可执行文件,只有root才能访问
* etc (etcetera) 存放系统配置文件
* usr (unix shared resources) 用于存放共享的系统资源
* home 存放用户文件的根目录
* root 超级用户目录
* dev(devices) 用于存放设备文件
* lib(library)存放跟文件系统中的程序运行所需要的共享库及内核模块
* mnt (mount) 系统管理员安装临时文件系统的安装点
* boot 存放用于系统引导时使用的各种软件
* tmp (temporary) 用于存放各种临时文件
* var (variable) 用于存放运行时需要改变数据的文件
xshell
Linux的使用
2.Linux的常用命令: pwd:查询自己当前在哪个目录(查询自己所在路径)
1.切换目录命令
* 使用:
* cd app 切换到app目录
* cd.. 切换到上一层目录
* cd / 切换到系统根目录
* cd~ 切换到用户主目录 //直接回家
* cd- 切换到上一个所在目录
2.列出文件列表: ls ll dir(*****)
* ls(list)是一个非常有用的命令,用来显示当前目录下的内容。配合参数的使用,能以不同的方式显示目录内容。
* 格式:ls(参数)[路径或文件名]
* 常用:
在Linux中以.开头的都是隐藏的文件
* ls
* ls -a 显示所有文件或目录 (包含隐藏的文件) "-a"表示所有,所以带上这个表示所有,包括隐藏文件都要显示。
* ls -l 缩写成ll
3.创建目录和移除目录
1. mkdir(make directory)命令可用来创建子目录。
* mkdir app 在当前目录下创建app目录
* mkdir -p app2/test 级联创建aap2以及test目录
2.rmdir(vimremove directory)命令可用来删除"空"的子目录: ->只能删除空目录
* rmdir app 删除app目录 rmdir -p test1/test2 删除多级目录
4.浏览文件 只能查看文本文件
1.cat
* 用于显示文件的内容
* 格式: cat[参数]<文件名>
* cat yum.conf
2.more
* 一般用于要显示的内容会超过一个画面长度的情况。按空格键显示下一个画面。
* 回车显示下一行内容
* 按q键退出查看
* more yum.conf
* 空格显示下一页数据 回车显示下一行的数据。
3.less
* 用法和more类似,不同的是less可以通过Pgup、PgDn键来控制。
* less yum.conf
* Pgup和PgDn进行上下翻页。
4.tail
* tail命令是在实际使用过程中使用非常多的一个命令,它的功能是:用于显示文件后几行的内容。
* 用法:
* tail -10/etc/passwd 查看后10行数据
* tail -f catalina.log 动态查看日志 这个非常有用 tail -f 可以动态的查看日志
5.ctrl + c 结束
5.文件操作
1.rm
1.rm 删除文件
* 用法:rm[选项]...[文件]...
* rm a.txt 删除a.txt文件
2.rm 删除不询问
* rm -f a.txt 不询问,直接删除a.txt文件。
3.rm 删除目录
* rm -r a 递归删除
4.rm 不询问递归删除(慎用)
* rm -rf a 不询问递归删除
* rm -rf * 删除所有文件
* rm -rf /* 自杀
2.cp、mv
1.cp(copy)命令可以将文件从一处复制到另一处。一般在使用cp命令时将一个文件复制成另一个文件或复制到某目录时,需要指定源文件名与目标文件名或目录。
* cp a.txt b.txt 将a.txt复制为b.txt文件
* cp a.txt ../ 将a.txt复制到上一层目录中
2.mv 移动或者重命名
* mv a.txt ../ 将a.txt 文件移动到上一层目录中
* mv a.txt aaa/ 将a.txt文件移动到当前目录中aaa目录内。
* mv a.txt b.txt 将a.txt文件重命名为b.txt (所以重命名的命令也就是这个)
3.tar (*****打包或解压)
1.tar 命令位于/bin目录下,它能够将用户所指定的文件或目录打包成一个文件,但不做压缩。一般Linux上常用的压缩方式是选用tar将许多文件打包成一个文件,再以gzip压缩命令压缩成xxx.tar.gz(或称为xxx.tgz)的文件。
2.常用参数:
* -c 创建一个新tar文件
* -v 显示运行过程的信息
* -f 指定文件名
* -z 调用gzip压缩命令进行压缩
* -t 查看压缩文件的内容
* -x 解开tar文件
3.打包:
* tar -cvf xxx.tar ./*
4.打包并且压缩:
* tar -zcvf xxx.tar.gz ./* 只有gz带上了代表了压缩。
5.解压:
* tar -xvf xxx.tar
* tar -xvf xxx.tar.gz -C /usr/aaa
6.grep 命令 -- 后期可以配合精确查找,使用较多。
* 查看符合条件的字符串
* 用法:grep[选项]...PATTERN [FILE]...
* 示例:
* grep lang anaconda-ks.cfg 在文件中查找lang
* grep lang anaconda-ks.cfg -color 高亮显示
* A5 在含有关键字的前五行也显示 After
* B3 在含有关键字的后五行也显示 Before
* --color 高亮显示关键字
* 代码演示:
* grep debug yun.conf --color -A4 -B5 :查找高亮显示关键字"debug"并且包含它的前四行,后五行一并显示。
7.注意:工作中使用这种方式:
* tar -czvf xxxx.tar.gz 目录 压缩
* tar -xzvf xxxx.tar.gz 解压
6.其他常用命令:
1.pwd: 显示当前所在目录
2.touch: 创建一个空文件 * touch a.txt
3.ll-h: 友好显示文件大小
4.wget:下载资料:
* 代码演示:wget http://nginx.org/download/nginx-1.9.12.tar.gz
* wget 下载地址
Vi和Vim编辑器
* 在Linux下一般使用vi编辑器来编辑文件
* vi既可以查看文件也可以编辑文件
* 三种模式:命令行、插入、底行模式。
* 切换到命令行模式:按ESC键
* 切换到插入模式:按i、o、a键
* i 在当前位置生前插入
* I 在当前行首插入
* a 在当前位置后插入
* A 在当前行尾插入
* o 在当前行之后插入一行
* O 在当前行之前插入一行
* 切换到底行模式:按:(冒号)
* 更多详细方法,查询文档《Vim命令合集.docx》和《vi使用方法详细介绍.docx》
* 打开文件:vim file
* 退出: esc -> :q
* 修改文件:输入i 进入插入模式
* 保存并退出 esc -> :wq
* 不保存退出: esc -> :q!
* 3 进入插入模式
* i 在当前的光标所在处插入 insert
* o 在当前光标所在的行的下一行插入
* a 在光标所在的下一个字符插入 after
* 快捷键:
* dd - 快速删除一行
* R - 替换
* 在做命令的时候如果在插入模式需要按esc退出插入模式。
4.重定向和输出
* > 覆盖 ifconfig > a.txt 将a.txt 中的原有内容清除,将ifconfig的信息覆盖打印进a.txt;
* >> 追加 ifconfig >> a.txt 保留a.txt中的原有内容,将ifconfig的内容追加进去。
* cat /etc/passwd >> a.txt 输出并追加
4. 管道 |
* 管道是Linux命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入。
* 示例:
* ls --help | more 分页查询帮助信息
* ps -ef | grep java 查询名称中包含java的进程
* ifconfig | more
* cat index.html |more
* ps -ef | grep aio
5. && 命令执行控制
* 命令之间使用&&连接,实现逻辑与的功能
* 只有在&& 左边的命令返回true(真)(命令返回值$?==0),&& 右边的命令才会被执行。
* 只要有一个命令返回假(命令返回值$?==1),后边的命令就不会被执行。类似于java中的短路,&&
* mkdir test&& cd test
6. 网络通讯明明令:
* ifconfig:显示或设置网络设备
* ifconfig:显示网络设备
* ifconfig eth0 up 启用eth0网卡
* ifconfig eth0 down 停用eth0 网卡
* ping 探测网络是否通畅
* ping 192.168.0.1
* netstat 查看网络端口
* netstat -an | grep 3306 查询3306端口占用情况
7.系统管理命令
* date显示或设置系统时间
* date 显示当前系统时间
* date -s "2014-01-01 10:10:10" 设置系统时间
* df 显示磁盘信息
* df -h 友好显示大小
* free 显示内存状态
* free -m 以mb单位显示内存租昂头
* top 显示,管理执行中的程序
* clear 清屏幕
* ps 正在运行的某个进程的状态
* ps 查询正在运行的进程
* ps -ef 查看所有进程
* ps -ef | grep ssh 查找某一进程 ps -ef | grep 服务名称
* kill 杀掉某一进程
* kill 2868 杀掉2868编号的进程
* kill -9 2868 强制杀死进程
* du 显示目录或文件的大小。
* du 显示当前目录的大小
* du -h 友好显示当前目录的大小
* who 显示目前登入系统的用户信息
* hostname 查看当前主机名
* 修改:vi/etc/sysconfig/network
* uname 显示系统信息
* uname -a 显示本机详细信息 查看linux内核版本
* 依次为:内核名称(类别),主机名,内核版本号,内核版本,内核编译日期,硬件名,处理器类型,硬件平台类型,操作系统名称。
Linux的用户和组
1.用户的管理
* useradd 添加一个用户
* useradd test 添加test用户
* useradd test -d /home/t1 指定用户home目录
* 添加用户一定要设置密码
* passwd 设置、修改密码
* passwd test 为test用户设置密码
* 切换登录
* ssh -1 test -p 22 192.168.19.128
* su -用户名
* userdel 删除一个用户
* userdel test 删除test用户(不会删除home目录)
* userdel -r test 删除用户以及home目录
2.组管理
* 当在创建一个新用户user时,若没有指定他所属于的组,就建立一个和该用户同名的组。
* 创建用户时也可以指定所在组
* groupadd 创建组
* groupadd public 创建一个名为public的组
* useradd ul -g public创建用户指定组
* groupdel 删除组,如果该组有用户成员,必须先删除用户才能删除组。
* groupdel public
3.id 、su 命令
* id命令
* 功能:查看一个用户的UID和GID
* 用法:id[选项]...[用户名]
* 直接使用id
* 直接使用id用户名
* su命令
* 功能:切换用户
* 用户:su[选项]...[-] [用户[参数]...]
* 示例:
* su ul 切换到ul用户
* su - ul 切换到ul用户,并且将环境也切换到ul用户的环境(推荐使用)
* 账户文件
* /etc/passwd 用户文件
* /etc/shadow 密码文件
* /etc/group 组信息文件
* 用户文件
* root:x:0:0:root:/root:/bin/bash
* 账号名称:在系统中是唯一的
* 用户密码:此字段存放加密口令
* 用户标识码(User ID):系统内部用它来标识用户
* 组标识码(Group ID):系统内部用它来标识用户属性
* 用户相关信息: 例如用户全名等
* 用户目录:用户登录系统后所进入的目录
* 用户环境:用户的工作的环境
* 密码文件
* shadow 文件中每条记录用冒号间隔的9个字段组成。
* 用户名:用户登录到系统时使用的名字,而且是唯一的。
* 口令:存放加密的口令。
* 最后一次修改时间:标识从某一时刻起到用户最后一次修改时间
* 最大时间间隔:口令保持有效的最大天数,即多少天后必须修改口令
* 最小时间间隔:再次修改口令之间的最小间隔
* 警告时间:从系统开始警告道口令正式失效的天数
* 不活动时间:口令过期多少天后,该账号被禁用
* 失效时间:指示口令失效的绝对天数(从1970年1月1日开始计算)
* 标志:未使用
* 组文件
* root:x:0;
* 组名:用户所属组
* 组口令:一般不用
* GID:组ID
* 用户列表:属于该组的所有用户
Linux的权限命令
1.文件权限
* 读取权:r
* 写入权:w
* 执行权:x
* 文件类型: -
* 前三:属主权限
* 中间:属组权限
* 最后:其他用户权限
2.Linux的三种文件类型:
1. 普通文件:包括文本文件、数据文件、可执行的二进制程序文件等。
2. 目录文件:Linux系统把目录看成是一种特殊的文件,利用它构成文件系统的树型结构。
3. 设备文件:Linux系统把每一个设备都看成是一个文件
3.文件类型标识
* 普通文件: -
* 目录 d
* 符号链接 (1)
* 筋肉etc可以查看,相当于快捷方式
* 字符设备文件 (c)
* 块设备文件 (s)
* 套接字 (s)
* 命名管道 (p)
4.文件权限管理
* chmod 变更文件或目录的权限
* chmod 755 a.txt
* chmod u=rwx,g=rx,o=rx a.txt
* chmod 000 a.txt / chmod 777 a.txt
* chown 变更文件或目录改文件所属用户和组
* chown ul:public a.txt : 变更当前的目录或文件的所属用户和组
* chown -R ul:public dir: 变更目录中的所有的子目录及文件的所属用户和组
考认证:
* rchea
打包:
* java工程可以打包成jar包
* web工程可以打包成war包
* Linux中运行需要将tomcat内的文件删除再重新加入进去,有漏洞,安全问题。容易被黑。
* jstl的jar包需要重新换,sta...d.jar 和另外一个,不然在Linux中无法运行。