一、Linux操作系统概述
1、常见操作系统
① 服务端操作系统:linux、unix、windows server
② 单机操作系统:windows(dos 、ucdos、win95、win98、win2000、xp、vista、win7、win8)、MAC 、linux(ubuntu)
③ 移动操作系统:Android、IOS 、Windows phone
2、linux操作系统介绍
① 为什么要学习linux操作系统
◇ 大部分服务端都采用linux ,JEE部署到服务器中
◇ 一些企业和学校采用linux研发和教学
◇ 很多嵌入式开发用linux
◇ 云计算、大数据是集群网用linux的centos
② 特点
◇ 开放、开源、多用户的网络操作系统
◇ 基于unix(unix >minix >linux),可以定制内核
◇ 加入了GNU组织(自由软件组织 ,copyLeft),通过GPL(通用公共许可)许可对外发布
③ linux组成
◇ linux内核
◇ shell(外壳):用户与内核交互的接口
◇ 文件系统:ext3、ext4等(windows有fat32、ntfs)
◇ 第三方应用软件
④ linux操作系统版本
◇ 内核版本(由linus团队管理)
◇ 发行版本:一些软件公司以内核为基础,再添加一些软件和文档形成发行版本(red hat 包含rhel、centos;debian包含debian、ubuntu;android)
二、安装Linux系统
1、 虚拟机的软件
① vmware
② vitual box:oracle 公司提供
2、虚拟机安装
① 直接安装
◇ 创建虚拟机
◇ 安装ubuntu镜像
② 打开虚拟机镜像:虚拟机+操作系统(ubuntu)
◇ 打开*.vmx
文件
◇ 用户名:itcast;密码:123
三、Linux系统环境
1、Linux默认有6个命令交互通道和一个图形界面交互通道,默认进入到的是图形界面通道
① 切换到命令交互模式:ctrl+alt+f1……f6
② 切换到图形交互界面:ctrl+alt+f7
2、图形界面交互模式
terminal:图形界面的命令终端,它是图形界面交互通道的延伸,要依赖于图形界面
3、命令交互模式
命令提示符:itcast@ubuntu:~$
itcast:用户名
ubuntu:主机名
~:路径,假如当前的路径正好是该用户存放数据的根目录则显示~
$:用户的类型,$代表普通用户,# 代表超级用户
4、Linux文件系统
① 目录结构
bin:存放的可执行的二进制文件,包括cd、ls、su、passwd命令
boot:存放系统的引导文件的目录
dev:存放设备文件的目录,linux把设置当做文件来处理
etc:存放系统的配置文件的目录
home:存放所有用户文件的根目录,root用户除外
lib:共享库
usr:好比program files,存放应用的安装的路径
opt:自定义存放应用程序位置
mnt:临时文件系统的挂靠点
② 文件权限分析
w :可写
r: 只读
x:可执行
- :无权限
文件权限表示方法:
◇ 字符表示法
drwxr-xr-x
第一个字符:文件的类型(d
表示普通文件,-
表示文件夹,c
表示串口文件,l
表示连接文件)
2-4 字符:该文件的属主用户的权限
5-7 字符:与属主用户同一组的其他用户的权限
8-10 字符:不同组的其他用户的权限
◇ 数字表示法
-rw-r–r--:文件的默认权限,644
drwxr-xr-x:目录的默认权限,755
四、Linux的常用命令
1、注销、关机、重启
① 注销(在命令交互模式中):logout(登出)、exit (退出)
② 关机:shutdown - h 时间
-h:表示关机
时间 :now指的是马上,12.30是指定具体时间,3指的是几分钟以后
如果当前账号是itcast ,则先要超级管理员赋予权限:sudo shutdown -h now
sudo即superuser do,表示由超级用户来执行该命令,要配置sudo命令就是授权哪些用户能执行哪些命令
执行cat /etc/sudoers
,可以在在/etc/sudoers 里面查看账号的配置
③ 重启:shutdown -r 时间
-r:restart,重启
2、Linux基本命令 :文件操作命令
① ls
:查看目录内容
ls - l
:查看详细信息
ls - a
:查看所有文件(+隐藏)
ls - la
:查看所有文件的详细信息
【man (即manual,帮助命令,好比windows help ):man ls
】
② mkdir:创建目录
③ cd:切换目录
cd ..
:进入上一级目录,记得要加空格
cd ./java
:进入当前目录的子目录
cd ../xxx
:进入上一级目录的子目录
【tab :自动补全】
④ touch:创建一个空白的普通文件
touch a.txt
⑤ echo:把内容重定向到指定的文件中,有则打开,无则创建
echo "content">b.txt
⑥ cat、more:查看文件内容
◇ cat:查看文件内容 cat c.txt
◇ more:分页查看文件内容,按空格键换页 more c.txt
⑦ cp、mv、rm
◇ cp:复制 cp d.txt ./java/jee
◇ mv:剪切、重命名
剪切 :mv d.txt ../android/
重命名 :假如剪切的文件存放在同一个目录中,则是重命名 mv d.txt c.txt
◇ rm:删除文件或者文件夹
-f:假如要删除的文件不存在,也不提示(rm -f e.txt)
-i:删除前提示,默认不删除,要删除就要输入y(rm -i e.txt)
-d:删除空白目录 (rm -d jee)
-r:递归删除(rm -r jee)
⑧ wc:表示word count,统计字符数
命令:wc f.txt
显示结果:154 233 3418
154是行数,233是单词数,3418是字符数
⑨ ln:创建连接文件
默认创建的是硬连接,就像复制,但是两个文件会同步
命令:ln ./java/android/a.txt ggg
带-s
创建的是软连接(创建的是链接):ln -s ./java/android/a.txt ggg.link
⑩ pwd:查看当前目录的绝对路径,命令:pwd
⑪ |:管道命令(前面输出作为后面的输入)
命令: ls -la | wc
⑫ 重定向
>:覆盖模式
命令: echo "info">aaa
>>:追加模式
命令: echo "infoinfoinfo">>aaa
⑬ passwd:设置密码,ubuntu默认root账号是没有开启 ,只要设置root密码即可开启
sudo passwd root
⑭ su:切换用户,root用户切换到其他账号不需要密码
su root
3、Linux 系统命令
① stat:查看文件的详细信息,命令:stat a.txt
② who与whoami
who
: 查看在线的用户
whoami
:查看当前自己的用户
③ hostname : 显示主机名,命令:hostname
④ uname
:显示系统信息
uname -a
:显示完整的系统信息
⑤ top
:显示当前耗时的进程的信息 ,每3秒刷新一次【cltr+c中断】
⑥ ps :显示当前进程的快照 ,命令:ps - axu
⑦ du :显示文件的大小(块)信息 ,命令:du a.txt
⑧ df :磁盘使用情况,命令:df
⑨ ifconfig:查看或者配置网卡信息 ,好比windows 的ipconfig
设置虚拟机ip地址:
◇ 设置vmware的连接方式(共享宿主机的ip地址,在网上邻居找不到;桥接方式,需要单独设置ip,可以在网上邻居查找)
◇ 图形界面设置ip地址 :edit connection > ipv4 > manual(手工设置) > add(ip地址,子网掩码)
◇ 命令方式设置静态ip:sudo ifconfig eth0 192.168.15.122 netmask 255.255.255.0
⑩ ping:测试与目标主机连接情况,命令:ping [IP地址]
⑪ clear:清除屏幕,命令:clear
,好比windows 的cls
⑫ man:帮助命令,命令:man [命令]
⑬ kill:杀死进程,命令:kill [pid]
⑭ netstat
:网络连接详细信息
⑮ useradd
◇ 查看用户信息:sudo cat /etc/passwd
itcast:x:1000:1000:UbuntuA,,,:/home/itcast:/bin/bash
- itcast:用户名
- x:密码,已经加密,密码存放在 /etc/shadow
- 1000:账号id,userId
- 1000:组id,group id
- UbuntuA,,, :账号描述
- /home/itcast:该账号存放文件的默认位置,只要进到这个目录就会转换成~
- /bin/bash:该用户的shell脚本的解析方式(sh 、bash、rbash)
◇ 创建用户 :sudo useradd lijun -d /home/lijun -s /bin/bash
-d:指定该用户的home 路径
- s:该用户的shell解析方式
步骤:创建 /home/lijun 目录 > 执行 useradd 命令 > 用 passwd 设置密码 > su 切换用户
五、打包、压缩文件
1、windows支持的压缩格式:zip、rar
Linux支持的压缩格式:gz、bzip、zip
2、tar:打包、拆包命令:tar - cxzjvf [打包后的文件] [欲打包的目录]
- c :创建的一个归档文件 ,即打包文件夹
- x :拆包
- z :以gzip 格式压缩,默认压缩倍数6倍,范围在0-9
- j :以bzip2格式压缩
- v :显示打包或者拆包的文件信息
- f :后面紧接一个归档文件
打包文件:tar -cvf news.tar ./java
拆包文件:tar -xvf news.tar
3、gzip 、bzip2 压缩与解压
压缩文件:gzip news.tar
解压文件:gzip -d news.tar.gz
4、打包及压缩
打包及压缩:tar -czvf news.tar.gz ./java
拆包及压解缩:tar -xzvf news.tar.gz
六、软件管理
1、安装和卸载
windows:安装: *.exe
格式,卸载:该软件唯一的标识,即包名
android:安装:*.apk
格式,卸载:包名
red hat:安装:*.rpm
格式
ubuntu:安装:对debian的升级*.deb
格式
2、安装软件
① dpkg :debian package
◇ 离线安装: sudo dpkg - i [文件名]
-i :install
命令:sudo dpkg -i ./tree_1.6.0-1_i386.deb
◇ 卸载 : sudo dpkg - r [包名]
-r :remove
命令:sudo dpkg -r tree
② apt-get:advance package tools ,对dpkg命令的升级,可以在线安装
◇ 安装 : sudo apt-get -install [包名]
◇ 卸载 : sudo apt-get -remove [包名]
3、vim 软件:好比记事本,但是比记事本要强大
① 安装vim:sudo dpkg - i ./vim/*
② 使用vim:vim a.txt
操作模式:
◇ 一般模式 ,默认进入的一般模式,该模式不能编辑文档 ,只能查看
◇ 编辑模式、插入模式 【 在一般模式中按 i(insert)进入插入模式 】
该模式可以编辑文档,按esc 退出插入模式,进入到一般模式
◇ 命令模式 :在一般模式中按:进入命令模式
- q: 安全退出,当没有操作该文档,则直接按q退出vim
- q!:当修改了内容,但是不想保存,则q!强制退出
- wq :保存退出
- set number:显示行号
- set nonumber:取消行号显示
七、远程访问Linux和Java开发环境搭建
1、通过ssh(secure shell)实现安全远程访问Linux系统
① 加密:
◇ 对称加密 (加密密钥与解密密钥相同):des、aes
◇ 非对称加密(加密密钥与解密密钥不同):RSA (里面包含公钥+私钥)
② 数字摘要:md5、sha1
③ 查看是否安装了ssh服务端与客户端
sudo apt-cache policy openssh-client openssh-server
④ 安装ssh 服务端与客户端软件:sudo dpkg -i ./ssh/*
⑤ 通过windows ssh客户端来访问Linux服务端
windows ssh客户端分为两种
putty :远程登录
winscp433setup.exe :文件传输
2、安装jdk
① 进入root用户:su root
② 把jdk软件拷贝到/opt:cp ./practice-software/jdk-6u39-linux-i586.bin /opt
③ 绿色软件(可执行文件)解压:./jdk-6u39-linux-i586.bin
④ 设置环境变量
vim /etc/profile
然后进入插入模式:
export JAVA_HOME="/opt/jdk1.6.0_39"
export PATH="$JAVA_HOME/bin:$PATH"
⑤ 刷新配置,让配置生效:source /etc/profile
⑥ 编写Demo.java并测试
touch Demo.java
vim Demo.java
……
javac Demo.java
java Demo
3、安装tomcat
① 安装在 /opt:cp ./practice-software/apache-tomcat-6.0.29.tar.gz /opt
② 拷贝、解压:tar -xzvf apache-tomcat-6.0.29.tar.gz
③ 进入到目录下:cd ./apache-tomcat-6.0.29/bin
④ 运行
开启:./startup.sh
停止:./shutdown.sh
4、安装Eclipse
① 安装在/opt:cp eclipse-jee-helios-liunx-gtk.tar.gz /opt
② 拷贝、解压:tar -xzvf eclipse-jee-helios-liunx-gtk.tar.gz