Linux学习笔记(java环境配置included)

来源:互联网 发布:java进入文件夹 编辑:程序博客网 时间:2024/05/16 21:54

Linux意思:Linux is not Unix

Java-related Software Management in Linux

Java Development and Deployment in Linux

 

Kernel’s Basic Functions

l         Hardware management

l         Memory management

l         I/O

l         VFSvirtual File System

l         Process management

 

Version number’s format, r.x.y

r:   release version

x:  偶数:稳定版本;奇数:开发中版本

y 错误修补次数

eg 2.0.382.2.16

 

所有的设备,任何东西在linux看来都是文件,分字符形式和二进制形式

字符设备:键盘 打印机

块设备: 硬盘 U 光驱

 

Linux分区的命名--/dev/xxyN

l         /dev/   这个字串是所有设备文件所在的目录名。因为分区在硬盘上,而硬盘是设备,所以这些文件代表了在/dev/上所有可能的分区。

l         Xx 分区名的前两个字母表明分区所在的设备的类型。通常是hdIDE磁盘)或sdSCSI磁盘)。

l         y 这个字母标明分区所在的设备。例如,/dev/had(第一个IDE磁盘)或/dev/sdb(第二个SCSI磁盘)

l         N 最后的数字代表分区。前四个分区(主分区或扩展分区)使用数字从1排列到4.逻辑分区从5开始。例如,/dev/hda3是在第一个IDE硬盘上的第三个主分区或扩展分区;/dev/sdb6是在第二个SCSI磁盘上的第二个逻辑分区

 

磁盘分区和mont point(挂载点)

Linux中的每一个分区都是构成支持一组文件和目录所必需的贮存区的一部分。它是通过挂载(mounting)来实现的,挂载是将分区关联到某一个目录的过程。挂载分区使起始于这个指定目录(通称为挂载点)的贮存区能够被使用。

 

LinuxWindows分区对比

 

 

 

分一个区挂载到/usr,分一个区挂载到根目录;

其中/usr这些都是挂载点,不是分区名

 

磁盘分区方案

至少两个分区

 1/分区

 2SWAP分区  (当内存使,相当于虚拟内存)

个人桌面分区

  1/分区  2/boot分区 3/usr分区   4SWAP分区

光盘刻录再加一个/temp分区

 

 

Linux的目录结构:

l         / linux文件系统的入口,也是处于最高一级的目录;

l         /bin 基础系统所需要的那些命令,也是最小系统所需要的命令:比如lscpmkdir等命令;功能和/usr/bin类似,这个目录中文件都是可执行的,普通用户都可以使用的命令。作为基础系统所需要的最基础的命令就是放在这里

l         /boot linux的内核及引导系统程序所需要的文件,比如vmlinuz initrd.img文件。在一般情况下,GRUBLILO系统引导管理器也位于这个目录

l         /dev 设备文件存储目录,比如声卡、磁盘

l         /etc 设备配置文件所在地,一些服务器的配置文件也在这里:比如用户账号及密码配置文件;

l         /home 普通用户目录默认存放目录;

l         /lib 库文件存放目录;

l         /lost +foundext2ext3文件系统中,当系统以外崩溃或机器以外关机,而长生一些文件碎片放在,当系统启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。有时系统发生问题,很多文件被移到这个目录中,可能会用手工的方式来修复,或移动文件到原来位置上;

l         /media 即插即用型存储设备的挂载点自动在这个目录下创建,比如USB盘系统自动挂载后,会在这个目录下产生一个目录:VDROM/DVD自动挂载后,也会在这个目录中创建一个目录,类似cdrom的目录;

l         /mnt 一般用于存放挂载存储设备的挂载目录,比如有cdrom等目录

l         /opt 表示可选择的意思有些软件包也会被安装在这里也就是自定义软件包比如在Fedora Core5中,OpenOffice就安装在这里.对于大多数UNIX版本,商用软件都安装在/opt目录中

/usr: 包含的是二进制文件,二进制文件对系统管理来说并不特别重要

l         /proc 操作系统运行时,进程信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录伪装的文件系统proc的挂载目录,proc并不是真正的文件系统

l         /root Linu超级权限用户root的家目录

l         /sbin 涉及系统管理的命令的存放,是超级权限root的可执行命令存放地,普通用户无权限执行这个目录下的命令;

l         /tmp 临时文件目录,有时用户运行程序时,会产生临时文件

/va/tmp目录和这个目录相似

 

Boot sequence

1.         load bios (hardware information)

2.         read MBR’s config to find out the OS

3.         load the Kernel of the OS

4.         init process starts

5.         execute /etc/tc. d/sysinit

6.         start other modules(etc/modules.conf)

7.         execute the run level scripts

8.         execute /etc/rc.d/rc.local  (应用程序自启动修改rc.local)

9.         execute /bin/login

10.     shell started

 

Login_Logout_Shutdown_Reboot

l         Login

       Terminal or Gui

l         Exit

l         Shutdown

l         Reboot

l         Init(run level -/etc/inittab)

Init n

   0 – 系统停机状态

   1---单用户工作状态

   2 – 多用户状态(没有NFS

   3—多用户状态(没有NFS

   4—系统未使用,留给用户

   5—图形界面

   6—系统正常关闭并重新启动

linux_07_basic_commands_1.avi

寻求帮助

xxx--hellp   man –xxx

ls  cd  mkdir  rmdir  touch  cp  mv  vi  cat  tac  find  whereis  ln more

wc 统计指定文本文件的行数、字数、字符数

touch 生成一个空文件或更改文件的时间

rm –r 目录名 (递归删除目录)

rm –rf 目录名 (强制删除目录,不询问)

find / -name  test*//从根目录下开始找以test开头的文件

echo $PATH  查看path环境变量

ln 3.txt 4 //3.txt的链接4,硬链接,相当于copy一份再做链接

ln –s 3.txt 5 软链接相当于快捷方式

more 3.txt 将文件显示在终端上,每次一屏,在左下部显示

 

Shell是用来解析命令和内核打交道,有多种shell bash csh ksh

 

users and groups

useradd  passwd  userdel  groupadd  groupdel

useradd ezai

添加一个用户但不指定组,系统默认添加一个和用户名相同的组,添加完用户后,会在/home下新建ezai目录;用户登陆时,默认的是自己的主目录

useradd ezai –g testgroup  建用户并指定组

usermod –g testgroup ezai  修改用户组

 

改变文件权限 chmod 改变文件所有者 choown

grep asdf  3.txt查找3.txt中包含asdf的行

管道(重要):将一个命令的输出传送给另一个命令,作为另一个命令的输入

 

命令替换:

`date`$(cmd) 如:wall `date`

 

重定向输出:

ls > test.txt ls的结果输出到test.txt

 

rpm –qa 查看linux下安装的软件

rpm –e 包名 卸载软件

rpm –ivh   xxx.rpm安装rpm文件

 

搭建ftp服务:

1.       启动: service vsftpd start

2.       关闭防火墙:service  iptables stop

3.       ##查看服务在每个级别的运行状态
chkconfig –list         

# chkconfig --list | grep vsftpd

4.       查看httpd服务的运行状态

service  httpd  statu

5.  设置root用户能上传,

Linux 下更改 root 上传权限
# vi /etc/vsftpd.user_list 
注释掉
root
# vi /etc/vsftpd.ftpusers  
注释掉root

6.       IE下地址栏,键入ftp://用户名@url,系统会自动弹出密码框让你输入密码登陆的

  ftp://用户名:密码@url

7.  开机默认VSFTP服务自动启动:

      方法一:(常用/方便)

    [root@localhost etc]# chkconfig --list|grep vsftpd ( 查看情况)

    vsftpd          0:off   1:off   2:off   3:off   4:off   5:off   6:off

    [root@localhost etc]# chkconfig vsftpd on  (执行ON设置)

或者:方法二:

修改文件 /etc/rc.local , 把行/usr/local/sbin/vsftpd & 插入文件中,以实现开机自动启动。

8.  vsFTP服务器限制链接数,以及每个IP最大的链接数
# vi /etc/vsftpd/vsftpd.conf
加入下面两行:

max_clients=
数字

max_per_ip=
数字

 

 

ps –ef 查看进程

 

安装JDK

安装

 

sun网站上直接下载JDK6,我这里下载的是jdk-6-linux-i586-rpm.bin。将解压包复制到/usr/local/src目录下(这是我的个人爱好,将所有的安装包都放在此目录下解压安装)。

 

打开终端,输入cd /usr/local/src

    [root@localhost src]#chmod  u+x  ./jdk-6-linux-i586-rpm.bin

 

    [root@localhost src]#./jdk-6-linux-i586-rpm.bin

 

出现版本说明之后,系统提示:Do you agree to the above license terms? [yes or no]

 

输入yes回车,jdk自动解压。

 

[root@localhost src]#ls

 

将出现jdk-6-linux-i586.rpm安装包,执行安装命令

 

[root@localhost src]#rpm -ivh jdk-6-linux-i586.rpm

 

至此jdk6安装完毕。安装目录为 /usr/java/jdk1.6

 

配置环境变量

 

 仅设置某个用户而不是所有用户可以修改~/.cshrc,~/.bash_profile文件,

追加下面一段,如果为所有用户以及以后添加的用户都加上环境变量的话,

追加/etc/profie文件. 放入profile就可   

***主意不要在profile~/.cshrc~/.bash_profile中重复追加**

这里:

# vi /etc/profile    

//java    

//如果你安装的j2sdk的路径不一样,请自行修改

    

JAVA_HOME=/usr/java/jdk1.6.0_01  

export JAVA_HOME   

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

export CLASSPATH  

PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin   

export PATH   

JRE=/usr/java/jdk1.6.0_01/jre   

export JRE

 

注意:

l         Linux下是用冒号“:”来分隔路径

l         $PATH/$CLASSPATH/$JAVA_HOME是用来引用原来环境变量的值

l         CLASSPATH中当前目录“.”不能丢

l         export是把JAVA_HOME,PATH,CLASSPATH导出为全局变量

 

.使更改生效

 

//如果你修改的是/etc/profile    

# source /etc/profile    

//如果你修改的是~/.cshrc    

# source ~/.cshrc    

//如果你修改的是~/.bash_profile    

# source ~/.bash_profile

 

.改变软连接

 

# cd /usr/java/

# ls -l

看看defaultlatest这俩个文件夹是不是jdk1.6.0_01的软连接

如果是就不用修改了,否则删除defaultlatest

# rm -rf default

# rm -ff latest

然后

# ln -s jdk1.6.0_01 default

# ln -s jdk1.6.0_01 latest

删除/usr/bin/目录中的

javajavacjavaws

# cd /usr/bin

# rm -f java

# rm -f javac

# rm -f javaws

然后:

# ln -s /usr/java/default/bin/java /usr/bin/java

# ln -s /usr/java/default/bin/javac /usr/bin/javac

# ln -s /usr/java/default/bin/javaws /usr/bin/javaws

最好再

//如果你修改的是/etc/profile     

# source /etc/profile    

//如果你修改的是~/.cshrc    

# source ~/.cshrc    

//如果你修改的是~/.bash_profile    

# source ~/.bash_profile    

**********************************************************

再执行

# java -version    //这回正常了

java version "1.6.0_01"

Java(TM) SE Runtime Environment (build 1.6.0_01-b06)

Java HotSpot(TM) Client VM (build 1.6.0_01-b06, mixed mode, sharing)

 

Tomcat 安装

源文件apache-tomcat-6.0.14.tar.gz

1.       gzip -d apache-tomcat-6.0.14.tar.gz, 解压后出现gzip –d apache-tomcat-6.0.14.tar

2.       tar - xvf apache-tomcat-6.0.14.tar

 

线程

简单的方法:   ps   -ef   ,看到所有的进程,然后找到要结束的进程的PID(进程编号),用   kill   ###   ###为该PID)的命令结束进程,再用   ps   -ef   看一下,如果进程忽略了你的结束信号,仍然在运行,则可以使用   kill   -9   ###来强行结束。