** 多用户多任务操作系统_Linux [web基础day25] *

Linux

LInux的概念

1.什么是Linux?
	* 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中无法运行。

你可能感兴趣的:(WEB核心)