linux 操作系统
一.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操作系统
1. 大部分服务端都采用linux ,JEE部署到服务器中
2. 一些企业和学校采用linux研发和教学
3. 很多嵌入式开发 用linux
4. 云计算、大数据 是集群网 linux : centos
- 特点
1. 开放、开源、多用户的网络操作系统
2. 基于unix(unix-->minix-->linux(linus :林纳斯 芬兰 )),可以定制内核
3. 假如了GNU组织(自由软件组织 ,copyLeft) ,通过GPL(通用公共许可) 许可对外发布
- linux组成
1. linux内核(linus 团队管理)
2. shell :用户与内核交互的接口
3. 文件系统 : ext3、ext4 等 windows 有 fat32 、ntfs
4. 第三方应用软件
- linux操作系统版本
1. 内核版本 (linus 团队管理) 3.8
2. 发行版本 :一些软件公司以内核为基础,再添加一些软件和文档形成发行版本
- red hat : rhel ,centos
- debian : debian,ubuntu(桌面)
- android
二.安装linux系统
1. vmware安装 : 创建虚拟机的软件
vitual box :oracle 公司提供
2. 虚拟机安装
- 直接安装
- 创建虚拟机
- 安装ubuntu镜像
- 打开虚拟机镜像: 虚拟机+操作系统(ubuntu)
1. 打开*.vmx 文件
2. 用户名 itcast 密码 123
三.linux系统环境
默认有6个命令交互通道和一个图形界面交互通道,默认进入到的是图形界面通道
命令交互模式切换:ctrl+alt+f1---f6
图形交互界面 ctrl+alt+f7
1.图形界面交互模式
- terminal: 图形界面的命令终端,它是图形界面交互通道的延伸,要依赖于图形界面
2.命令交互模式
命令提示符:
itcast@ubuntu:~$
- itcast:用户名
- ubuntu :主机名
- ~ :路径 ,假如当前的路径正好是 该用户存放数据的根目录 ,则显示~
- $ :用户的类型 $代表普通用户 # 代表 超级用户
3.linux文件系统
- 目录结构
-
/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:
sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。
这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
-
/tmp:
这个目录是用来存放一些临时文件的。 -
/usr:
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。 -
/usr/bin:
系统用户使用的应用程序。 -
/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。 -
/usr/src:内核源代码默认的放置目录。
-
/var:
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
- 文件权限分析
w :可写 r: 只读 x:可执行 - :无权限
文件权限
1. 字符表示法
drwxr-xr-x
第一个字符 :文件的类型 d :普通文件 - :文件夹 c :串口文件 l :连接文件
2-4 字符 : 该文件的属主用户的权限
5-7 字符 : 与属主用户同一组的其他用户的权限
8-10 字符 : 不同组的其他用户的权限
2. 数字表示法
-rw-r--r-- :文件的默认权限 644
drwxr-xr-x : 目录的默认权限 755
四、linux的常用命令
1.注销、关机、重启
- 注销 :logout :登出 、exit
- 关机 :
shutdown - h 时间
- h :关机
- 时间 :
1. now :马上
2. 12.30 :指定具体时间
3. 3 :几分钟以后
sudo : superuser do :由超级用户来执行该命令
要配置sudo 命令 : 授权 哪些用户能执行哪些命令
由超级用户配置 sudo
/etc/sudoers
sudo shutdown -h now 当前账号:itcast
- 重启 :
shutdown -r 时间
-r :restart
2.linux基本命令 :文件操作命令
1. ls : 查看目录内容
- l :查看详细信息
- a :查看所有文件(隐藏)
man :manual : 手工,帮助 ,帮助命令,好比windows help
命令: man ls
2. mkdir :创建目录
Desktop:
- java
- JEE : aa.txt bb.txt
- Android
3. cd 切换目录
- cd .. 记得要加空格
- cd ./java 进入当前目录的子目录
- cd ../xxx 进入上一级目录的子目录
tab :自动补全
4. touch :创建一个空白的普通文件
touch aa.txt mv m
5. echo :把内容重定向到指定的文件中 ,有则打开,无则创建
6. cat、more :查看文件内容
- cat :查看文件内容
- more :分页查看文件内容,按空格键换页
7. cp、mv、rm
- cp :复制
cp bj.txt ./java/jee
- mv :剪切、重命名
1. 剪切 :mv aa.txt ../android/
2. 重命名 :假如剪切的文件 存放在同一个目录中 ,则是重命名
mv bb.txt cc.txt
- rm :删除文件或者文件夹
-f : 假如要删除的文件不存在,也不提示
-i : 删除前提示 ,默认不删除,要删除,输入y
-d : 删除空白目录
-r :递归删除
8. wc :word count :统计字符数
154 233 3418
- 154 :行数
- 233 :单词数
- 3418 :字符数
命令: wc bj.txt
9. ln :创建连接文件
- 默认创建的是硬连接,好比复制 ,但是两个文件会同步
命令:ln ./java/android/aa.txt aaa
- s :创建的是软连接
10. pwd :查看当前目录的绝对路径
11. 管道命令 |
命令: ls -la | wc
12. 重定向
- > :覆盖模式
命令: echo "ww">aaa
- >>:追加模式
命令: echo "ww">>aaa
13. passwd :设置密码 ,ubuntu默认 root账号是没有开启 ,只要设置root密码即可开启
sudo passwd root
14. su 切换目录
su root
root用户切换到其他账号不需要密码
3.linux 系统命令
1.stat :查看文件的详细信息
stat bj.txt
2.who与whoami
who : 查看在线的用户
whoami :查看当前自己的用户
3.hostname : 显示主机名
hostname
4.uname :显示系统信息
-a :显示完整的系统信息
5.top :显示当前耗时的进行的信息 ,每3秒刷新一次
cltr+c 中断
6.ps :显示当前进程的快照
- axu
7.du :显示文件的大小信息
8.df :磁盘使用情况 disk free
9.ifconfig :查看或者配置网卡信息 ,好比windows 的ipconfig
ipv4:32位 2-32次方 ipv6 128位 是 ipv4 2-96次方倍数
设置虚拟机ip地址:
1. 设置vmware的连接方式
- 共享宿主机的ip地址,在网上邻居找不到
- 桥接方式,需要单独设置ip,可以在网上邻居查找
2. 图形界面设置ip地址
edit connection --》ipv4--》manual(手工设置)--》add (ip地址,子网掩码)
3.命令方式设置ip地址
静态设置ip:
sudo ifconfig eth0 192.168.15.122 netmask 255.255.255.0
10.ping 测试与目标主机连接情况
11.clear : 清除屏幕 windows: cls
12.man :帮助命令
man 命令
13.kill :杀死进程
kill pid
14.netstat :网络连接详细信息
15. 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解析方式
步骤:
1. 创建 /home/lijun 目录
2. 执行 useradd 命令
3. 用 passwd 设置密码
4. su 切换用户
五、打包、压缩文件
windows : zip、rar
linux :gz ,bzip,zip
1.tar :打包、拆包命令
tar - cxzjvf <打包后的文件> <欲打包的目录>
- c :创建的一个归档文件 ,即打包文件夹
- x :拆包
- z :以gzip 格式压缩,默认压缩倍数 6倍 (0-9)
- j :以bzip2格式压缩
- v :显示打包或者拆包的文件信息
- f : 后面紧接一个 归档文件
- 打包文件
tar -cvf news.tar ./java 摘要
- 拆包文件
tar -xvf news.tar
2.gzip 、bzip2 压缩与解压
1. 压缩文件
gzip news.tar
2. 解压文件
gzip -d news.tar.gz
-d :解压
3.打包及压缩
- 打包及压缩
tar -czvf news.tar.gz ./java
- 拆包及压解缩
tar -xzvf news.tar.gz
六、软件管理
windows : .exe 安装 、卸载
安装: mysql.exe cc.exe
卸载 : 该软件唯一的标识 ,包名 alibaba
android : *.apk 卸载 包名
red hat :*.rpm
ubuntu : 对debian的升级 *.deb 格式
1.安装软件
- 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 <包名>
2.vim 软件 :好比记事本 ,但是比记事本要强大
1. 安装vim
2. 使用vim
操作模式:
1. 一般模式 ,默认进入的一般模式,该模式不能编辑文档 ,只能查看
按 i(insert) 进入 插入模式
2. 编辑模式、插入模式
该模式可以编辑文档,按esc 退出插入模式,进入到一般模式
3. 命令模式 :在 一般模式中按:进入命令模式
- q: 安全退出,当没有操作该文档,则直接按q退出vim
- q!:当修改了内容,但是不想保存,则q!强制退出
- wq :保存退出
- set number 显示行号
- set nonumber 取消行号显示
七、搭建Java服务器,并且实现远程安全访问linux系统
1.通过ssh实现安全远程访问linux系统
ssh :secure shell
加密:
1. 对称加密 (加密密钥与解密密钥相同)
des 、aes
2. 非对称加密(加密密钥与解密密钥不同)
RSA :公钥、私钥
数字摘要:
md5 \sha1
1. 查看是否安装了ssh服务端与客户端
sudo apt-cache policy openssh-client openssh-server
2. 安装ssh 服务端与客户端软件
sudo dpkg -i ./ssh/*
3. 通过windows ssh客户端来访问linux服务端
- putty :远程登录
- winscp433setup.exe :文件传输
2. 安装jdk
进入 root用户
实现步骤:
1. jdk 存放在哪里 /opt
2. 把软件拷贝到/opt
3. 绿色软件,解压
4.设置环境变量
vim /etc/profile
export JAVA_HOME="/opt/practice-software/jdk1.6.0_39"
export PATH="$JAVA_HOME/bin:$PATH"
5. 刷新配置 ,让配置生效
source /etc/profile
6. 编写Demo.java,测试
-javac Demo.java
- java Demo
3. 安装tomcat
步骤:
1. 安装在哪里 /opt
2. 拷贝、解压
tar -xzvf apache-tomcat.tar.gz
3. 运行
- ./startup.sh
- ./shutdown.sh
4. 安装Eclipse
步骤:
1.安装在/opt
2. 拷贝、解压
cp eclipse.tar.gz /opt
tar -xzvf eclipse.tar.gz
重点:
1.linux系统环境
命令交互通道
命名提示符
2. linux 目录结构、文件权限
drwxr-xr-x
3. linux 命令
- 开关机
- 文件操作
- 系统命令
1. top 2. who 3. ifconfig 4. ping 5. kill 6. man 7.clear 8.netstat
4. 软件管理
- dpkg :离线 .deb .rpm .apk
- apt-get :在线
5. 压缩解压
tar -cxgzvf 打包后的文件 要打包的文件
6. vim 的使用
三种模式
7. ssh理解 secure shell
8. java开发环境搭建