Linux入门
参考资料:http://www.92csz.com/study/linux/
【Linux系统目录结构】
登录系统后,在当前命令窗口下输入 ls / 你会看到
以下是对这些目录的解释:
/bin bin是Binary的缩写。这个目录存放着最经常使用的命令。
/boot这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev dev是Device(设备)的缩写。该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
/mnt系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
/opt 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all。
/root该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/selinux 这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
/srv 该目录存放一些服务启动之后需要提取的数据。
/sys 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs ,sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统种被创建。
/tmp这个目录是用来存放一些临时文件的。
/usr 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
/usr/bin:系统用户使用的应用程序。
/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src:内核源代码默认的放置目录。
/var这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
在linux系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。 /var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。
【Linux远程终端登录】
Linux大多应用于服务器,而服务器不可能像PC一样放在办公室,它们是放在IDC机房的,所以我平时登录linux系统都是通过远程登录的。如果你是windows的操作系统,则Linux远程登录需要在我们的机器上额外安装一个终端软件。目前比较常见的终端登录软件有SecureCRT, Putty, SSH Secure Shell等。
这里,我使用的是Xshell,下载安装完成之后需要输入用户名和密码进行登录,如果需要进行文件的上传等操作,则需要在Xshell中安装lrzsz这个软件,直接在Xshell中使用命令yum -y install lrzsz进行安装,安装完成之后可以直接通过拖拽的方式来上传文件都指定的服务器目录下。
【War包部署至服务器】
CP到tomcat/webapps目录下,tomcat会自动解压War包,浏览器访问的根路径以“/项目名称”开头;
如果把解压之后文件全部移动到tomcat/webapps/ROOT目录下,浏览器访问的路径以“/”开头。
【Vim文本编辑器】
vim的三种模式:一般模式、编辑模式、命令模式。
* 一般模式: 当你vim filename 编辑一个文件时,一进入该文件就是一般模式了。在这个模式下,你可以做的操作有,上下移动光标;删除某个字符;删除某行;复制、粘贴一行或者多行。
* 编辑模式:一般模式下,是不可以修改某一个字符的,只能到编辑模式了。从一般模式进入编辑模式,只需你按一个键即可(i,I,a,A,o,O,r,R)。当进入编辑模式时,会在屏幕的最下一行出现“INSERT或REPLACE”的字样。从编辑模式回到一般模式只需要按一下键盘左上方的ESC键即可。
* 命令模式:在一般模式下,输入”:”或者”/”即可进入命令模式。在该模式下,你可以搜索某个字符或者字符串,也可以保存、替换、退出、显示行号等等。
下面教你如何在一个空白文档中写入一段文字,然后保存。
输入vim test.txt直接回车进入一般模式。然后按"i" 字母进入编辑模式
会看到窗口的左下方出现”INSERT”字样,说明已经进入了编辑模式,此时就可以写入内容了。
等编辑完内容后,按ESC退出编辑模式,进入一般模式。此时在左下方的”INSERT”字样消失,然后按”:”进入命令模式,最后输入wq保存并退出vim。
这时,看一下test.txt文档的内容吧。
其实vim为全键盘操作的编辑器,所以在各个模式下都有很多功能键盘的。下面列举一下,其中常用的会用红色标出。
一般模式下移动光标
|
h或向左方向键
|
光标向左移动一个字符
|
j或者向下方向键
|
光标向下移动一个字符
|
K或者向上方向键
|
光标向上移动一个字符
|
l或者向右方向键
|
光标向右移动一个字符
|
Ctrl + f 或者pageUP键
|
屏幕向前移动一页
|
Ctrl + b 或者pageDOWN键
|
屏幕向后移动一页
|
Ctrl + d
|
屏幕向前移动半页
|
Ctrl + u
|
屏幕向后移动半页
|
+
|
光标移动到非空格符的下一列
|
-
|
光标移动到非空格符的上一列
|
n空格(n是数字)
|
按下数字n然后按空格,则光标向右移动n个字符,如果该行字符数小于n,则光标继续从下行开始向右移动,一直到n
|
0(数字0)或者Shift+6
|
移动到本行行首
|
Shift+4
|
即’$’移动到本行行尾
|
H
|
光标移动到当前屏幕的最顶行
|
M
|
光标移动到当前屏幕的中央那一行
|
L
|
光标移动到当前屏幕的最底行
|
G
|
光标移动到文本的最末行
|
nG(n是数字)
|
移动到该文本的第n行
|
gg
|
移动带该文本的首行
|
n回车(n是数字)
|
光标向下移动n行
|
一般模式下查找与替换
|
/word
|
向光标之后寻找一个字符串名为word的字符串,当找到第一个word后,按”n”继续搜后一个
|
?word
|
想光标之前寻找一个字符串名为word的字符串,当找到第一个word后,按”n”继续搜前一个
|
:n1,n2s/word1/word2/g
|
在n1和n2行间查找word1这个字符串并替换为word2,你也可以把”/”换成”#”
|
:1,$s/word1/word2/g
|
从第一行到最末行,查找word1并替换成word2
|
:1,$s/word1/word2/gc
|
加上c的作用是,在替换前需要用户确认
|
一般模式下删除、复制粘贴
|
x,X
|
x为向后删除一个字符,X为向前删除一个字符
|
nx(n为数字)
|
向后删除n个字符
|
dd
|
删除光标所在的那一行
|
ndd(n为数字)
|
删除光标所在的向下n行
|
d1G
|
删除光标所在行到第一行的所有数据
|
dG
|
删除光标所在行到末行的所有数据
|
yy
|
复制光标所在的那行
|
nyy
|
复制从光标所在行起向下n行
|
p,P
|
p复制的数据从光标下一行粘贴,P则从光标上一行粘贴
|
y1G
|
复制光标所在行到第一行的所有数据
|
yG
|
复制光标所在行到末行的所有数据
|
J
|
讲光标所在行与下一行的数据结合成同一行
|
u
|
还原过去的操作
|
进入编辑模式
|
i
|
在当前字符前插入字符
|
I
|
在当前行行首插入字符
|
a
|
在当前字符后插入字符
|
A
|
在当前行行末插入字符
|
o
|
在当前行下插入新的一行
|
O
|
在当前行上插入新的一行
|
r
|
替换光标所在的字符,只替换一次
|
R
|
一直替换光标所在的字符,一直到按下ESC
|
命令模式
|
:w
|
将编辑过的文本保存
|
:w!
|
若文本属性为只读时,强制保存
|
:q
|
退出vim
|
:q!
|
不管编辑或未编辑都不保存退出
|
:wq
|
保存,退出
|
:e!
|
将文档还原成最原始状态
|
ZZ
|
若文档没有改动,则不储存离开,若文档改动过,则储存后离开,等同于:wq
|
:w [filename]
|
编辑后的文档另存为filename
|
:r [filename]
|
在当前光标所在行的下面读入filename文档的内容
|
:set nu
|
在每行的行首显示行号
|
:set nonu
|
取消行号
|
n1,n2 w [filename]
|
将n1到n2的内容另存为filename这个文档
|
:! command
|
暂时离开vim运行某个linux命令,例如 :! ls /home 暂时列出/home目录下的文件,然后会提示按回车回到vim
|
【压缩与打包】
在windows下我们接触最多的压缩文件就是.rar格式的了。但在linux下这样的格式是不能识别的,它有自己所特有的压缩工具。但有一种文件在windows和linux下都能使用那就是.zip格式的文件了。
在linux下最常见的压缩文件通常都是以.tar.gz 为结尾的,除此之外还有.tar, .gz, .bz2, .zip等等。以前也介绍过linux系统中的后缀名其实要不要无所谓,但是对于压缩文件来讲必须要带上。这是为了判断压缩文件是由哪种压缩工具所压缩,而后才能去正确的解压缩这个文件。以下介绍常见的后缀名所对应的压缩工具。
.gz gzip 压缩工具压缩的文件
.bz2 bzip2 压缩工具压缩的文件
.tar tar 打包程序打包的文件(tar并没有压缩功能,只是把一个目录合并成一个文件)
.tar.gz 可以理解为先用tar打包,然后再gzip压缩
.tar.bz2 同上,先用tar打包,然后再bzip2压缩
【gzip】
语法: gzip [-d#] filename 其中#为1-9的数字
-d :解压缩时使用
-# :压缩等级,1压缩最差,9压缩最好,6为默认
压缩test.txt后,则变成了test.txt.gz
用-d解压缩
要注意的是,gzip不可以压缩目录
【bzip2】
语法:bzip2 [-dz] filename
-d :解压缩
-z :压缩
其实-z参数是可以省略掉的,你不妨试试
跟gzip的解压类似,也是用-d解压。
【tar】
语法:tar [-zjxcvfpP] filename
-z :是否同时用gzip压缩
-j :是否同时用bzip2压缩
-x :解包或者解压缩
-t :查看tar包里面的文件
-c :建立一个tar包或者压缩文件包
-v :可视化
-f :后面跟文件名,压缩时跟-f文件名,意思是压缩后的文件名为filename,解压时跟-f文件名,意思是解压filename。请注意,如果是多个参数组合的情况下带有-f,请把f写到最后面。
-p :使用原文件的属性,压缩前什么属性压缩后还什么属性。(不常用)
-P :可以使用绝对路径。(不常用)
--exclude filename :在打包或者压缩时,不要将filename文件包括在内。(不常用)
首先在test目录下建立test111目录,然后在test111目录下建立test2.txt,并写入”nihao”到test2.txt中,接着是用tar把test111打包成test111.tar。请记住-f参数后跟的是打包后的文件名。
删除原来的test111目录,然后解包test111.tar,不管是打包还是解包,原来的文件是不会删除的。
打包的同时使用gzip压缩
用-tf 跟包名来查看包或者压缩包内的文件都有哪些
先删除test111,然后用tar -zxvf 来解压.tar.gz的压缩包。
-jcvf 打包的同时用bzip2压缩,-tf同样可以查看.tar.bz2的压缩包
-jxvf解压缩.tar.bz2的压缩包
--exclude参数的作用就是打包的时候过滤掉某些文件,如果想过滤多个文件怎么办
只能是继续跟 --exclude filename了。
【配置tomcat】
Tomcat的安装分为两个步骤:安装JDK;安装Tomcat。
JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。所以要想运行jsp的程序必须要有JDK的支持,理所当然安装Tomcat的前提是安装好JDK。
1. 安装JDK
下载jdk-6u23-linux-i586.bin
cd /usr/local/src/
wget http://dl.dropbox.com/u/182853/jdk-6u23-linux-i586.bin
(如果该版本不合适请到下面的官方网站下载适合你的版本):
https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=jdk-6u23-oth-JPR@CDS-CDS_Develope
chmod a+x jdk-6u23-linux-i586.bin
sh jdk-6u23-linux-i586.bin
此时会出现JDK 安装授权协议。可以一路按Enter浏览,当出现Do you agree to the above license terms? [yes or no] 的字样,输入yes即可。
mv jdk1.6.0_23 /usr/local/
2. 设置环境变量
vim /etc/profile
在末尾输入以下内容
#set java environment
JAVA_HOME=/usr/local/jdk1.6.0_23/
JAVA_BIN=/usr/local/jdk1.6.0_23/bin
JRE_HOME=/usr/local/jdk1.6.0_23/jre
PATH=$PATH:/usr/local/jdk1.6.0_23/bin:/usr/local/jdk1.6.0_23/jre/bin
CLASSPATH=/usr/local/jdk1.6.0_23/jre/lib:/usr/local/jdk1.6.0_23/lib:/usr/local/jdk1.6.0_23/jre/lib/charsets.jar
export JAVA_HOME JAVA_BIN JRE_HOME PATH CLASSPATH
执行命令source /etc/profile,使配置立即生效
source /etc/profile
检测是否设置正确:
java –version
如果显示如下内容,则配置正确。
java version "1.4.2"
gij (GNU libgcj) version 4.1.2 20080704 (Red Hat 4.1.2-46)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
3.安装Tomcat
cd /usr/local/src/
wget http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.14/bin/apache-tomcat-7.0.14.tar.gz
如果觉得这个版本不适合你,请到tomcat官方网站下载适合你的版本。
tar zxvf apache-tomcat-7.0.14.tar.gz
mv apache-tomcat-7.0.14 /usr/local/tomcat
cp -p /usr/local/tomcat/bin/catalina.sh /etc/init.d/tomcat
vim /etc/init.d/tomcat
在第二行加入以下内容:
# chkconfig: 2345 63 37
# description: tomcat server init script
JAVA_HOME=/usr/local/jdk1.6.0_23/
CATALINA_HOME=/usr/local/tomcat
chmod 755 /etc/init.d/tomcat
chkconfig --add tomcat
chkconfig tomcat on
启动tomcat:
service tomcat start
查看是否启动成功:
ps aux |grep tomcat
如果有进程的话,请在浏览器中输入http://IP:8080/ 你会看到tomcat的主界面。
在配置tomcat前,先来看看tomcat的几个目录:
find /usr/local/tomcat/ -maxdepth 1 -type d (-maxdepth的作用指定目录级数,后边跟1代表只查找1级目录)
/usr/local/tomcat/
/usr/local/tomcat/lib # tomcat的库文件目录
/usr/local/tomcat/temp # 临时文件存放目录
/usr/local/tomcat/webapps # web应用目录,也就是我们访问的web程序文件所在目录
/usr/local/tomcat/conf # 配置文件目录
/usr/local/tomcat/logs # 日志文件所在目录
/usr/local/tomcat/work # 存放JSP编译后产生的class文件
/usr/local/tomcat/bin # tomcat的脚本文件
Tomcat的主配置文件为/usr/local/tomcat/conf/server.xml
1. 配置tomcat服务的访问端口。
默认是8080,如果你想修改为80,则需要修改server.xml文件。
找到 <Connector port="8080" protocol="HTTP/1.1"
修改为:<Connector port="80" protocol="HTTP/1.1"
2. 配置新的虚拟主机
cd /usr/local/tomcat/conf/
vim server.xml
找到</Host>,下一行插入新的<Host>,内容如下:
<Host name="www.example.cn" appBase="/data/tomcatweb"
unpackWARs="false" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="./" debug="0" reloadable="true" crossContext="true"/>
</Host>
完成后,重启tomcat
service tomcat stop; service tomcat start
测试新建的虚拟主机,首先需要修改你电脑的hosts文件
vim /data/tomcatweb/test.jsp 加入以下内容:
<html><body><center>
Now time is: <%=new java.util.Date()%>
</center></body></html>
保存后,在你的浏览器里输入 http://www.example.cn/test.jsp 看是否访问到如下内容:
Now time is: Thu Jun 02 14:32:34 CST 2011
上面的test.jsp就是要显示当前系统的时间。