第一天
--------------------------------------------
shutdown -h now 立刻关机
shutdown -r now 现在重新启动计算机
reboot 现在重新启动计算机
su - 切换成系统管理员身份
logout 注销用户
vi编辑器
示例:使用vi开发一个简单的java程序Hello.java,
并在linux下运行成功。
开发步骤:
1、输入 vi Hello.java
2、输入 i 进入到插入模式,输入以下代码:
public class Hello{
public static void main(String []args){
System.out.printIn("hello,word");
}
}
3、输入Esc键 进入到命令模式
4、输入 :wq 保存并退出
:q! 不保存并退出
ls 显示目录和文件
ls -l 显示文件的详细列表
5、输入javac Hello.java 编译Hello.java
6、输入java Hello 运行它
开发一个C程序:
vi Hello.cpp
include <stdio.h>
int main(){
printf("hello!");
return 0;
}
gcc Hello.ccp 编译Hello.cpp
ls 发现生成了一个a.out,如果下次编译另一个C程序的话,
它还是会生成a.out,这样就覆盖了之前的。解决:
在编译时加参数-o后面跟文件名:
gcc -o my1 Hello.cpp
./a.out 运行a.out
目录结构
root 存放root用户相关文件
home 存放普通用户的相关文件
bin 存放常用命令的目录
sbin 要具有一定权限才可以使用的命令
mnt 默认挂载光驱和软驱目录
boot 存放引导相关的文件
etc 存放配置相关文件
var 存放经常变化的文件
usr 安装软件等的默认文件夹
显示当前在哪个路径下: pwd
用户管理
添加用户xiaoming:
useradd xiaoming
设置密码:
passwd xiaoming 注意:要指明是对哪个用户修改密码(本例为xiaoming)
根据提示输入密码
删除用户:
userdel xiaoming 删除用户xiaoming
userdel -r xiaoming 删除用户以及用户主目录
指定运行级别
命令:init [0123456]
运行级别:0:关机
1:单用户
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用,保留给用户
5:图形界面
6:系统重启
常用运行级别是3和5。要修改默认的运行级别可改文件
/etc/inittab 的id:5:initdefault:这一行中的数字
解决错误配置的方法:
在出现GRUB引导界面时,按e,选择第二行(高亮的),输入e,再输入1 (1代表单用户级别)
最后在按b.这样系统就进入到了单用户级别。然后修复错误。
常用命令
pwd 显示当前工作目录
cd 改变目录
ls 列出文件和目录
ls -a 显示隐藏文件
ls -l 显示长列表格式
mkdir 建立目录
rmdir 删除空目录
touch 建立空文件
cp 复制
cp a.out /home/xiaoming/ 将当前目录下的a.out复制到/home/xiaoming/下
cp -r dir1 dir2 递归复制命令(复制子目录信息)
mv 移动文件和改文件名
rm 删除文件和目录
rm a.out 删除a.out
rm -rf * 删除所有内容(包括目录和文件) r递归 f强制
ln 建立符号连接 ----(相当于快捷方式)
ln -s 源 目标
ln -s /etc/inittab inittab inittab指向实际文件/etc/inittab
more 显示文件内容,带分页
more install.log 分页显示install.log 按空格翻页
less 显示文件内容带分页
grep 在文本中查询内容
grep "shunping" aaa.java 查找aaa.java中有没有shunping。还可以加参数-n 显示行号
| 管道命令(理解管道:把上一个命令的结果交给|的后面的命令处理)
ls -l /etc/ | more 分页显示/etc/目录下的内容
find 搜索文件及目录
find / -name aaa.java 从根目录开始按文件名查找aaa.java文件
find /root/ -name aaa.java 从root目录下按文件名查找aaa.java文件
find /home -size +10K 查找/home目录下大小为10K的文件
重定向命令:
ls -l > a.txt 将列表的内容写入文件a.txt中(覆盖写)
ls -al >> aa.txt 将列表的内容追加到文件aa.txt的末尾
grep "shunping" aaa.java > kkk.bak 将查找到的内容写入文件kkk.bak中
文件权限、用户组
文件的所有者:一般为文件的创建者
文件的所在组:当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组
文件的其他组:除开了文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组
groupadd policeman 添加组policeman
cat /etc/group | more 查看所有组的信息
groupadd tufei 添加组tufei
创建用户并同时指定将该用户分配到哪个组:
useradd -g 组名 用户名
useradd -g policeman along
useradd -g policeman panpan
useradd -g tufei ashuai
查看所有用户信息:
cat /etc/passwd
passwd along
passwd panpan
passwd ashuai 分别设置密码
用along用户登陆,并创建文件mytest1.java (略)
ls -l
显示:
-rw-r--r-- 1 along policeman 11 Dec 9 09:32 mytest1.java
//说明:along前面的1代表后面mytest1.java是文件,如果后面是文件夹,它
在这里将显示这个文件夹中文件的个数。
-rw-r--r-- 表示是各类用户对这个文件的操作权限,下面讲解:
它可以分为四部分:- rw- r-- r--
第一部分 - 代表文件类型,- 代表普通文件 l代表链接文件
第二部分 rw- 代表文件的所有者对该文件的权限
权限分为三种:
r 可读 也可用4表示
w 可写 也可用2表示
x 可执行 也可用1表示
本例表示文件的所有者along对这个文件具有可读可写的权限
第三部分 r-- 代表文件所在组的用户对该文件的权限
本例中比如panpan对这个文件只有读权限
第四部分 r-- 代表其他组的用户对该文件的权限
这时如果用panpan登陆,panpan是进不了along文件夹的。
cd ..
ls -l
drwx------ 3 along policeman 4096 Dec 9 09:42 along
//说明:d代表是文件夹。along具有可读可写可执行的权限,其他用户不具有
任何权限。所以panpan是进不了along文件夹
修改文件的访问权限:(登陆为along用户修改即可)
chmod 770 along (第一个7代表对所有者访问权限进行修改 4+2+1=7,第二个7代表对文件所在
组访问权限进行修改)
ls -l
drwxrwx--- 3 along policeman 4096 Dec 9 09:42 along
(用root的权限)改变某个用户所在的组:
usermod -g 组名 用户名
usermod -g policeman ashuai 将ashuai由tufei组变为policeman组
修改文件所有者:
chown 用户名 文件名
修改文件所在的组:
chgrp 组名 文件名
第二天
----------------------------------------------------------------
linux下搭建javaee开发环境
jdk的安装:
1、将安装的ISO(本例中为mypackage.iso)挂载到linux操作系统上
mount /mnt/cdrom/ 挂载光驱
cd /mnt/cdrom/
ls 这样可以查看光驱上的内容
cd /
umount /mnt/cdrom/ 卸载光驱
2、安装时建议把要安装的程序拷贝到/home目录下
cp j2sdk-1_4_2_07-linux-i586.bin /home (这个文件名很长,可用TAB键补全,不用一个个输入)
cd /home/
ls 可以看到已经拷贝成功。
3、cd /home
4、安装
./j2sdk-1_4_2_07-linux-i586.bin
输入yes后开始安装
安装好后,ls,可以看到多了个j2sdk1.4.2_07的目录
cd j2sdk1.4.2_07
ls 可以看到有个bin目录
cd /bin
ls
5、/etc/profile (环境配置文件)
vi /etc/profile
用#来注释掉原来的java的配置文件
#JAVA_HOME=...........(省略)
#PATH=...........(省略)
#CLASSPATH=...........(省略)
#CATALINA_HOME=...........(省略)
#export JAVA_HOME PATH CLASSPATH CATALINA_HOME
然后重新登陆一下,就发现原来的java没有用了
6、配置刚才自己安装的jdk
vi /etc/profile
#JAVA_HOME=...........(省略)
#PATH=...........(省略)
#CLASSPATH=...........(省略)
#CATALINA_HOME=...........(省略)
#export JAVA_HOME PATH CLASSPATH CATALINA_HOME
JAVA_HOME=/home/J2sdk1.4.2_07
PATH=$PATH:/home/J2sdk1.4.2_07/bin
CLASSPATH=. :/home/J2sdk1.4.2_07/jre/rt.jar
export JAVA_HOME PATH CLASSPATH
保存,然后重新登陆一下,生效。
安装集成开发环境Eclipse(略)
tar -zxvf xxxxxx.tar.gz 安装以.tar.gz结尾的文件
./eclipse 运行eclipse
安装myEclipse(略)
java ee的服务器用的较多是的tomcat
安装tomcat
tar -zxvf xxxxxx.tar.gz
& 代表要以后台方式运行
realplay的安装
1、把安装文件拷贝到/home
2、安装:
./RealPlayer10GOLD.bin
3、运行realplay
cd RealPlayer
./realplay
Linux分区
一块硬盘上主分区+扩展分区不能超过4个
查看linux系统分区具体情况:
fdisk -l
hdx~ 其中hd代表IDE硬盘,X为盘号(a为第一块,b为第二块,c为第三块等),
~代表分区,主分区或扩展分区用1-4表示,从5开始是逻辑分区
hda3表示第一块IDE硬盘上的第三个主分区或扩展分区
sd代表SCSI硬盘
sda1代表第一块SCSI硬盘的第一个分区
查看某个目录是在哪个分区:
df [目录全路径]
df /boot/
可以看到sda1分区是挂载到/boot目录下的
可以卸载:
cd /
umount /boot/
我们可以将sda1分区挂载到/test目录下
mount /dev/sda1 /test/
挂载命令格式:
mount [-参数] [设备名称] [挂载点]
查看磁盘使用情况
df [-参数]
df -h -h:以可读性较高的方式显示文件系统当前的使用情形
linux安装
linux手动分区:
/boot分区,100M
swap交换分区,一般是物理内存的2倍,但不要大于256
/ 根分区,尽可能的大
第三天
----------------------------------------------------------------
linux下的shell
常用的shell:
/bin/sh即/bin/bash
/bin/csh
/bin/ksh
ls -l /bin/*sh 可查到系统中的shell
env 查看目前使用的是哪种shell,该命令可以显示当前操作系统的环境变量
修改shell:
chsh -s 新的shell
chsh -s /bin/csh
history 查询历史记录命令
history 10 查询最近使用的10个命令
linux下查看IP情况的命令:
ifconfig
linux网络环境配置
第一种方法:
(以root用户登陆)
setup→Network configuration
配置好后,这时网卡的配置没有生效的,要运行
/etc/rc.d/init.d/network restart 命令才生效
第二种方法:
ifconfig eth0 x.x.x.x 设置IP
ifconfig eth0 network x.x.x.x 设置子网掩码
注:这样配置网络将立即临时生效。当重启或关机后,将还原设置前的配置。
第三种方法:
修改/etc/sysconfig/network-scripts/ifcfg-eth0 这个文件里的各个属性
配置好后,这时网卡的配置没有生效的,要运行
/etc/rc.d/init.d/network restart 命令才生效
在linux中,所有的设备都是文件
RPM包的管理
RPM包的名称格式:
apache-1.3.23-11.i386.rpm
apache 是软件名称
1.3.23-11是软件的版本号,主版本号,和次版本
i386是软件所运行的硬件平台
rpm是文件扩展名,代表RPM包
查询安装了哪些rpm软件
rpm -qa
查询软件包是否安装
rpm -q 软件包名
rpm -q mysql 查询mysql是否安装
安装RPM包:
rpm -i RPM包全路径名称
rpm -ivh RPM包全路径名称 (有提示信息)
参数说明:
i=install 安装
v=verbose 提示
h=hash 进度条
卸载RPM软件包:
rpm -e RPM包的名称
升级RPM软件包:
rpm -U RPM包全路径名称
samba服务器的安装与配置
1、看看是否已经安装了samba
rpm -q samba
2、如果有,就卸载
rpm -e samba
但提示,有一个包要依赖这个,删除不了,
rpm -e --nodeps samba (--nodeps可以连同依赖的包一起删除)
3、开始安装
rpm -ivh samba-common-2.2.7a-7.9.0.i386.rpm
rpm -ivh samba-client-2.2.7a-7.9.0.i386.rpm
rpm -ivh samba-2.2.7a-7.9.0.i386.rpm
4、创建一个用户youyou
useradd youyou
passwd youyou
5、给youyou设置samba密码
先将/etc/passwd中的用户都加到smbpasswd中:
cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
再设置密码:
smbpasswd youyou
6、启动samba服务器,测试
service smb start
在windows的运行中,输入\\192.168.222.88 (这个是samba的服务器地址)
然后传个文件到samba中,在linux下查看
cd /youyou/
ls
第四天
--------------------------------------------------------------------
任务调度命令crontab
任务调度:是指系统在某个时间执行的特定命令或程序。
例:每天凌晨2:00去执行date >> /home/mydate2
1、设置任务
crontab -e
2、输入:
0 2 * * * date >> /home/mydate2
说明:
第一个代表是分钟,每小时中的第几分钟执行,这里是0
第二个代表是小时,每日的第几个小时执行,这里是2
第三个代表是日期,每月的第几天执行,*代表每天
第四个代表是月,每年的第几月执行,*代表月
第五个代表是星期,每周的第几天执行 *代表每星期
3、退出,保存
esc
:wq
怎样去调度多个任务?
(1)在crontab -e 中直接写 这种方法是比较传统的。不推荐。
(2)可以把所有的任务写入到一个可执行文件(shell编程)
例:
vi mytask.sh (一般以.sh结尾)
date >> /home/mydate3
cp /home/mydate3 /root
这个可执行文件保存成功,。但它只有rw的权限,没有可执行X的权限
所以,要修改权限:
chmod 744 mytask.sh
下面就可以把mytask.sh文件交给crontab去执行了:
crontab -e
* * * * * /root/mytask.sh
终止任务调度:
crontab -r
列出当前有哪些任务调度:
crontab -l
进程的概念和管理
进程:就是正在执行的程序
线程:(1)是轻量级的进程;(2)进程有独立的地址空间,线程没有
(3)线程不能独立存在,它是由进程创建的。
ps 显示系统正在执行的进程信息
ps -a 显示当前的所有进程信息
ps -u 以用户格式显示进程信息
ps -x 显示后台进程运行的参数
终止进程:
kill 进程号
kill -9 进程号 (如果不能结束进程,加参-9
动态监控进程top
top 直接输入top,按q退出
14:06:22 up 4min (系统启动了4分钟),1 user(当前有1个用户正在使用),
load average:0.02,0.12,0.07(当前系统负载情况,这三个相加除以3,如果大于0.6时,说明负载很大)
37 processes(进程数):36 sleeping 1 running ,0 zombic(这个是僵尸进程数),0 stopped
cpu states(cpu状态):0.0% user 0.1% system 0.0% nice 0.0% iowait 99.8% idle(99.8% idle说明
有99.8%的cpu处于空闲状态)
Mem: 255264K av,(内存总数) 39428k used(正在使用的内存) ,215836k free(空闲内存),0k shrd,5528k buff
30632k actv, 140k in_d ,292k in_c
Swap:257032K av,0k used,257032 free 19376k cached
监视特定用户
top ,按回车然后输入u,回车,输入用户名
date 显示系统的时间
date MMDDHHMMyyyy.ss 月月日日时时分分年年年年.秒秒
cal 3 2002 查看2002年3月的月历
cal 2008 查看2008年的年历
监控网络状态
netstat -an 显示整个系统目前的网络情况
netstat -anp -P参数可以显示进程号
traceroute 追踪路由。检测数据包在网络上传输的过程
route 查看本机路由的情况
Mysql数据库在linux下的使用
安装mysql
1)把安装文件拷贝到/home
cp mysql-* /home/ (因为有两个文件,这样用通配符,两个文件就一同拷贝过去了)
mysql-connector-java-3.1.10-bin.jar (这个是驱动文件)
mysql-standard-4.0.26-pc-linux-gnu-i686.tar.gz
2)把安装文件解压缩
cd /home/
tar -zxvf mysql-standard-4.0.26-pc-linux-gnu-i686.tar.gz
这时会生成一个mysql-standard-4.0.26-pc-linux-gnu-i686的文件夹,我们对它重命名:
mv mysql-standard-4.0.26-pc-linux-gnu-i686 mysql
3)继续安装
group add mysql (创建一个mysql组)
useradd -g mysql mysql (创建一个名叫mysql的用户并放入到mysql组)
cd mysql (进入mysql的文件夹,这样下面初始化数据库命令可以运行)
scripts/mysql_install_db --user=mysql ( 初始化数据库)
chown -R root . (修改文件的所有者, . 代表当前目录,把当前目录及子目录下的文件(-R参数)的所有者改为root用户)
chown -R mysql data (修改data文件夹的所有者为mysql)
chgrp -R mysql . (改变用户所在组为mysql组)
bin/mysqld_safe --user=mysql & (启动mysql,用mysql用户来启动它)
ctrl+c退出
运行mysql:
cd bin/ 要先进入/bin目录下,才能运行
./mysql -u root -p
输入密码,当前为空
show databases
quit退出
修改环境变量,在任意路径下,输入./mysql -u root -p 都能运行mysql:
env | more 查看环境变量
cd /root/
在root目录下,存放有root的用户变量:.bash_profile
vi .bash_profile
在PATH=$PATH:$HOME/bin后面添加mysql程序的路径:
:/home/mysql/bin/
logout注销用户,重新登陆root,生效
mysql数据库的使用
1)运行mysql
2)建立数据库
creat database spdb1;
show databases; 可以看到刚才建立的数据库spdb1
3)建表
use spdb1; 在数据库spdb1中建表
create table users(userId varchar(8),userName varchar(8)); 建一张名为users的表
添加数据:
insert into users values('0001','shunping');
insert into users values('0002','xiaoming');
查询:
select * form users
如果进行java开发,要注意mysql驱动的位置:
放在jdk的主目录下/jre/lib/ext/
备份和恢复mysql数据库
备份:./mysqldump -u root -p密码 数据库名>data.bak
恢复:./mysql -u root -p密码 数据库名<data.bak
例:
cd /home/mysql 进入到mysql的安装目录
cd /bin
./mysqldump -u root -p123456 spdb1 > /home/myspdb1 备份到/home/下,备份的文件名为myspdb1
注:在恢复时如果报错:ERROR 1049:Unknown database 'spdb1'
新建成一个空的数据库spdb1即可:
create database spdb1;
第五天
------------------------------------------------------------------------
ssh
1、windows下安装ssh客户端
SSHSecureShellClient-3.2.9.exe
linux默认安装sshd服务,默认是启动的。监听的端口是22
2.在windows下使用ssh客户端登录到linux
可以上传下载文件
补讲linux重要内容
linux目录结构
/bin 普通用户的可执行命令,系统的任何用户都可以执行该目录中的命令
/boot 存放linux操作系统启动时所需使用的文件
/dev 系统中的所有设备文件
/etc 系统中的配置文件
/home 普通用户的宿主目录,每个用户在该目录下都有一个与用户名同名的目录
/mnt中的子目录用于系统中可移动设备的挂载点
/root 超级用户root的宿主目录
/sbin 系统的管理命令,普通用户不能执行他们
/tmp 系统的临时目录
/usr 系统应用程序和相关文件
/var 系统中经常变化的文件如日志文件和用户邮件
从当前目录去访问某个文件(夹), 就是相对路径
从根目录(/)去访问某个文件(夹),就是绝对路径
cd 后面什么都不写,进入当前用户的主目录
复制文件夹的问题:
cp /workspace /home 这样是复制不成功的,提示这是个文件夹不能复制
cp -rf /workspace /home -r复制子目录,-f强制。这样就成功复制了。
shell使用
配置.bashrc文件可以指定某些应用程序在用户登陆的时候就自动启动:
vi /root/.bashrc
在最后添加:
/home/tomcat/bin/startup.sh start 当root用户登陆后,自动启动tomcat
注:要进入用户主目录下,修改。每个用户目录下都有这个文件
/etc/profile 配置系统的环境变量
/home/用户名/.bash_profile 配置用户的环境变量
当你希望临时加入一个路径时,使用export
export PATH=$PATH:/root 临时加入/root路径 $PATH引用原来的值 :是路径分隔符
runlevel 查看当前的运行级别
使用zip和unzip压缩和解压
zip aa.zip 要压缩的文件名
zip aa.zip 要压缩的文件名1 要压缩的文件名2
zip -r aa.zip 要压缩的文件夹路径 ,-r子目录
例:
zip bb.zip kkk.bak 把kkk.bak压缩为bb.zip
zip -r aa2.zip ./workspace/ 压缩当前目录下的workspace文件夹 .代表当前目录
unzip aa.zip 直接解压缩aa.zip