1、使用工具: SSH 或 SecureCRT
目前问题:Linux主机还未设置Ip地址
复习:Linux环境和基本命令
1、简述Linux在虚拟机中安装步骤(不包括放入iso镜像文件后的步骤)。
处理器设置、内存、磁盘(分区)、网络等
2、查看Windows和Linux系统的IP地址命令?
Windows: ipconfig
Linux/Unix: ifconfig Unix: ifconfig -a a表示all 所有的
3、登录Linux/Unix有哪些方式?
1)本地登录 在主机面前,之间操作
A. 字符界面 特点:使用大量的命令来操作和管理OS
B. 图形界面 好处:直观 缺点:费资源
2)远程登录 通过网络,在其它机器远程登录 telnet
A. 字符界面 (最常用) 好处:省资源,随处可用
B. 图形界面 缺点:需要在客户端安装特殊的软件 更麻烦
结合小工具: SSH
4、命名的基本组成? Linux/Unix 区分大小写 -F -f
Windows中命令 不区分大小写
命令 [选项] [参数]
ls -l
ls -F
ls -al
javac -d . Hello.java JDK命令
cat Hello.java
5、写出一些Linux命令:
1)配置IP地址: netconfig
2)重启网络服务:service network restart
3)查看网络是否连通:ping id地址
4)停止当前进程组合键:ctrl + c (Windows中也支持)
前提:在控制台中使用
原理:在控制台中执行ping命令,会启动一个进程,占据当前终端,通过ctrl+c 即可结束当前进程,恢复终端。
5)挂起当前进程的组合键:ctrl + z 也能交出终端
6)关闭防火墙命令:iptables -F
重新启动Linux,还需要关闭
7)我是谁? 查看当前登录用户信息: who am i
(Linux/Unix是基于用户权限保证环境的安全,认清身份)
8)查看当前已登录的所有用户:who (Linux/Unix多用户系统)
9)我在哪儿?查看当前工作目录 pwd
10)查看目录下的资源(文件和目录):ls -l (linux简写 ll)
11)改变工作目录:cd
cd .. 退回上一次目录
cd 目录名 进入下一层目录
cd 决定路径 直接进入某个目录
一、软硬件体系结构
1、硬件体系:
(I/O进行交互)
输入设备 ------- 主机 ------输出设备
(鼠标、键盘等) (显示器、打印机等)
(CPU 内存 硬盘)
2、软件体系:以主流的B/S架构系统为例,三层架构
Client ----- Application Server ----- DB Server
客户端浏览器 应用服务器 数据库服务器
Windows Linux/Unix Linux/Unix
分开部署,减轻DB的负担,增加并发量
_____________________________
AUT 被测系统
二、Linux/Unix系统基本层次结构
从外到内:
应用程序 <-> Linux操作系统 <-> 硬件
(Shell <-> Kernel内核)
1、Shell (直译:外壳) 命令解释器 (翻译、解释命令)
介于 用户 和 内核之间,提供与系统的命令交互。
shell本身也是一个进程,表示形式:终端、命令行风格
常见的shell类型:bash csh sh (都是命令 可执行文件)
类似于Windows: cmd 命令行窗口
对应:C:/windows/system32/cmd.exe 就是一个可执行文件
查看当前是什么shll, 使用命令:ps (查看当前部分进程)
进程id 伪终端号 启动的命令
PID TTY TIME CMD
2648 pts/0 00:00:00 bash 当前shell进程
3089 pts/0 00:00:00 ps
可以在不同shell之间切换:
csh
sh
bash
不同的shell,理解命令的方式略有差异,比如csh偏向于C语言语法
推荐使用bash,比较方便
shell层层创建(原理:创建子进程,exit可返回上一层)
登录系统后,有默认shell: 登录shell (login shell) 目前bash
此时exit,则推出登录
PID TTY TIME CMD
3118 pts/0 00:00:00 bash
3153 pts/0 00:00:00 bash
3174 pts/0 00:00:00 csh
3194 pts/0 00:00:00 sh
3195 pts/0 00:00:00 ps
2、Kernel 内核,和硬件打交道,比较底层。
(把硬件管理起来,将硬件屏蔽掉)
管理内容:交换区 swap space、文件系统 File System等。
Linux内核实现了五大功能:
1)进程/处理器管理
2)内存管理
3)接口管理
4)文件管理
5)设备管理
查看当前版本:uname -r 2.4.20-8
内核版本的组成:主版本号.次版本号.修订次数
次版本号为奇数,版本相对不稳定 2.5.10
次版本号为偶数,版本相对稳定 2.6.10
3、File System 文件系统:对Linux/Unix中的文件进行管理。
文件:包括文件、目录,以及外部设备也当做文件来管理。
原因:以文件方式管理比较简便,一视同仁
三、Linux的通用特性
1、支持多用户
2、支持多任务
3、支持用户界面 (良好的交互)
4、硬件的支持
5、网络连接
6、可安装网络服务
7、应用程序的支持
四、Linux/Unix的基本命令
1、执行命令,就会执行一个可执行文件,会启动一个进程。
比如 ps ls
sleep 5 启动sleep进程,睡觉5秒 单位:秒
ctrl + c 结束当前进程,交回终端
ctrl + z 挂起当前进程
2、man 命令 (相当于帮助文档 手册)
Linux/Unix中针对各种命令提供手册,manual 帮助手册
查阅ls命令的功能:
man ls
控制方式: 空格 --- 翻页
回车 --- 跳行
q --- 退出 quit
3、ls命令 查看目录下的内容
1)ls -l 以长格式显示文件(use a long listing format)
linux中可简写为ll
文件类型 权限 属主 属组 文件大小 最后一次修改时间
-rw-r--r-- 1 root root 16012 9月 23 22:28 abc.txt
硬链接数 文件/目录名
(不要求)
文件类型:
- 普通文件
d 表示目录
除了文件名之外的所有信息:文件的属性
属主:由哪个用户user创建的文件 owner 拥有者
属组:属于哪个用户组 group
文件大小:单位 字节Byte
2)ls -a a就是all的意思
显示目录下所有内容,包括隐藏文件和目录。
隐藏文件:以 . 开头的文件
3)ls -al 选项可以组合搭配使用 (功能叠加)
4)ls -R 文件全部展开 (当前目录及子目录的资源分布)
5)ls -t 按照实际先后(文件/目录的最后一次修改时间)
6)ls -lt 结合长列表方式、按照时间排序
7)ls -F 可以查看文件类型
普通文件 无后缀显示
目录 /结尾
可执行文件 *结尾
cd到/usr/bin目录下,查看文件类型
4、clear 清屏 Windows: cls Sqlplus: clear screen
Linux/Unix发展和厂商的产品介绍:
1969 Unix
|
------------------------------------
| | | |
IBM AIX Sun Solaris HP UX BSD
Minix好比小型的Unix (Linux好比山寨版Unix)
Linus 1991 1994 Linux(Linux is not Unix) 吉祥物:企鹅
|
-------------------------------------
| | | |
Red Hat红帽 Red Flag 红旗 S.U.S.E Ubuntu 乌班图
开源 起源于德国
提供图形界面
提供大量服务来盈利
五、Unix和Linux操作系统的版本:
1、Unix: IBM-AIX、Oracle Sun-Solaris、HP-UX、Minix
2、Linux: Red Hat、Red Flag、SUSE、Ubuntu
六、Linux操作系统分区
1、Linux中,所有的设备、分区都以 系统文件 形式存在。
优点:文件可读、可写、可设定权限,高透明的管理
2、Swap分区: 交换分区、虚拟内存
作用:将磁盘空间当做内存使用,扩展内存空间,但速度明显下降
应用场合:当Linux的物理内存不够时,在磁盘中开辟一块空间,放置内存中的数据。(安装Linux时指定:2G左右,一般为物理内存的2倍,VM内存 1G)
1)如果适当使用,属于正常系统状态
2)如果大量使用swap空间,说明系统内存严重不足
3、磁盘文件命名规则:
hda1:
1) hd -- IDE硬盘
2) a -- 第一块硬盘
3) 1 -- 第一个分区
sdb3:
1) sd -- SCSI硬盘
2) b -- 第二块硬盘
3) 3 -- 第三个分区
4、挂载点:就是目录。系统中相应的设备文件要挂载到相应目录中,才能继续使用。
(比如:光盘、U盘、硬盘、都被看做文件,需要挂载)
mount命令 用来挂载
5、每一块硬盘最多4个主分区(包括扩展分区)
比如: 1 2 3 4
主分区 扩展 扩展 扩展
比如: 1 2 3 4
主分区 主分区 扩展 扩展
1)主分区:可以拿来直接使用
用途:计算机用于启动操作系统,系统启动程序、引导程序,放于主分区中。
细节:Linux规定主分区(扩展分区)占用1~16号码的前4个
SCSI硬盘: sda1 dsa2 sda3 sda4
剩下sda5~sda16 逻辑分区占用
2)扩展分区:不能直接使用,需要进行逻辑分区后再使用
6、文件:包括文件 和 目录(文件夹)
File Directory
目录也是一种特殊的文件:可以有子目录和其它文件
七、Linux/Unix常用命令
1、查看磁盘空间 fdisk -l
应用场合:当系统突然变慢或性能不佳,可以查看Linux服务器的磁盘空间,确定是否磁盘瓶颈(空间不足)。
练习:查看磁盘空间是否占满
Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 268 2048287+ 82 Linux swap
/dev/sda3 269 1044 6233220 83 Linux
Blocks: Data Block 数据块
Id: idle 表示空闲的磁盘 83%的空间可用
2、mount 挂载 显示有效磁盘分区的挂载情况
/dev/sda3 on / type ext3 (rw)
none on /proc type proc (rw)
usbdevfs on /proc/bus/usb type usbdevfs (rw)
/dev/sda1 on /boot type ext3 (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
none on /dev/shm type tmpfs (rw)
3、查看文件的内容: cat (适合查看小文件)
# cd /root
# ls
# cat install.log
# date 查看日期
# cal 查看本月日历
# cal 2014 本年日历
# cal 10 2014 某年某月
平时命令执行的结果默认向 终端 输出。(终端-标准输出)
> 输出重定向:将输出的结果重新导向到文件中,而不是终端
# date > 1.txt
将date的结果写入1.txt文件中
# ls -l
# cat 1.txt
# cal > 1.txt
# cat 1.txt
> 输出重定向,新的会覆盖旧的
>> 输出追加重定向,向原有文件追加内容
# date >> 1.txt
# cal 10 2014 >> 1.txt
# cat 1.txt
4、自动补全功能:Tab键
# cat 1 Tab 会补充完整的文件名
# cat 1.txt
5、目录常见概念
1)绝对路径:表示从/开始到具体的目录或文件的路径
/etc/passwd
2)当前路径:表示当前所在的目录的路径 pwd查看
/etc
3)相对路径:相对于当前路径下的简短路径
passwd
../root/1.txt (..回到 /下 root进入其中,找到1.txt)
比如目前在/root下 (当前路径)
需要表示/etc/passwd ?
1)绝对路径: /etc/passwd (特点:/ 开头)
2)相对路径: ../etc/passwd
4)主目录:用户登录到Linux/Unix系统后,默认所在的目录
Home Directory (家目录)
该目录下用户拥有大量的操作权限,出了此目录,则处处受挫
主目录:在创建用户时分配 目录名
一般每个用户在/home目录下,存在一个与用户名相同的目录名。
root:x:0:0:root:/root:/bin/bash
root用户 主目录 登录shell
技巧:想快速回到主目录
cd 回车 或 cd ~
说明:~ 代替主目录
echo ~ echo 回声
echo abc
5)当前目录: . cd . ./1.txt
6)上一层目录: .. cd .. 退回上一层目录
6、创建目录:mkdir 目录名
# cd 回到主目录
# mkdir test 创建一个test目录
# ls -l
# cd test
# ls 什么都没有
# ls -la 只有 . 和 ..
练习:在test目录中继续创建其它目录层次
# mkdir dir1/dir2
mkdir: 无法创建目录‘dir1/dir2’: 没有那个文件或目录
注意:Linux/Unix中,需要加 -p选项,才可创建一个目录层次
# mkdir -p dir1/dir2 一气呵成
# ls -R 查看目录层次
回到test下
# cd ~/test
# mkdir dir3 dir4 dir5 依次创建三个目录,空格分隔
在主目录下新建一个game目录
# mkdir ~/game
7、切换到图形界面: startx
# startx 在虚拟机中启动图形化界面,观察目录结构
切换回字符界面:点击红帽子 -> 注销
8、新建文件: touch 文件名
说明: 如果文件名不存在,创建一个新的、空的文件
如果文件名存在,只会修改文件的最后一次修改时间
# cd
# cd test
# date > 1.txt 通过重定向生成一个1.txt文件
# ls -l 1.txt
# touch 2.txt 创建一个空文件
# ls -l 2.txt
# touch 1.txt
# ls -l 1.txt 1.txt最后一次修改时间 更新了
# cat 1.txt 文件内容不变
9、Linux/Unix文件、目录的命名规则
1)区分大小写
2)除了/以外的的字符
3)包含空格,需要\ 转义 或 双引号 " "
4)以.开头的名称,具备隐藏属性 (隐藏文件、目录)
5)Windows用后缀来区分不同的文件类型 *.txt *.exe *.doc
Linux/Unix则不需要,后缀只属于文件名的一部分,主要用于提示文件类型(见名知意)
比如:文本文件 file1 file1.txt file1.abc
f1.sh (shell脚本文件 可执行)
10、新建文件 my file
在~/test目录下
# touch my file 会依次创建两个空文件
# touch my" "file 创建带有空格的文件
# touch my\ file1 使用转义符
11、查看包含空格的文件名 " " \
# cat my" "file
# cat my\ file1
# cat my file 依次显示my 和 file文件的内容
12、创建隐藏文件,文件名: .news
# touch .news
# ls -l
# ls -a
# ls -la
13、Linux系统的目录结构 (FHS标准)
/ 根目录 (必须存在)
/bin 大量可执行文件 (命令 ls pwd cd ...)
/sbin 系统管理员命令
/boot 启动目录
/root root用户 主目录 (特殊:root用户才具备操作权限)
root的家(皇帝的家)
/home 普通用户的主目录 (寻常百姓家)
/usr 用户应用程序的安装目录
/etc 存放配置文件
比如/etc/passwd 用户账户信息
/etc/shadow 保存账户密码 (加密MD5)
/dev 设备文件
/tmp 临时文件 (程序员使用较多)
/lib 库文件 library
/var 数据、日志、临时文件
/mnt 挂接其它文件系统 mount
目录或文件其它操作:
cp 拷贝文件或目录 (copy)
# cp 1.txt 11.txt 将1.txt备份为11.txt
mv 移动文件或目录 (move)
# mv 11.txt 22.txt 重命名
本质:改变文件的绝对路径名
源文件名:/root/test/d1/11.txt
改后: /root/test/d1/22.txt
练习:在~/test下,新建d1和d2目录
d1目录下新建1.txt 文本内容:hello echo hello > 1.txt
将1.txt文件拷贝到 d2目录中
# cd
# cd test 或 cd ~/test
# mkdir d1
# mkdir d2 或 mkdir d1 d2
# cd d1
# echo hello > 1.txt 会新建1.txt文件 写入hello
# cp 1.txt 11.txt 当前目录下拷贝一个11.txt
# ls -l
# cp 1.txt ../d2/1.txt 拷贝新文件由自己命名
# cp 1.txt ../d2 新文件继续使用原文件名
当前在test下:
# cd ~/test
# cp d1/1.txt d2/2.txt
如果当前在d2下:
# cd ~/test/d2
# cp ../d1/1.txt . 拷贝到当前目录
# cp ../d1/1.txt 3.txt 拷贝成当前路径下的3.txt
# cp ../d1/1.txt ./3.txt
如果使用绝对路径:
# cp /root/test/d1/1.txt /root/test/d2/3.txt
将d1下的1.txt移动到d3中
# mkdir d3
# cd ~/test/d1
# mv 1.txt ../d3
本质:就是改变文件的绝对路径名
/root/test/d1/1.txt --> /root/test/d3/1.txt
将d1下的11.txt 重命名 为22.txt
# cd ~/test/d1
# mv 11.txt 22.txt
本质: /root/test/d1/11.txt --> /root/test/d1/22.txt
14、拷贝命令cp 和 移动/改名命令mv 的区别:
1)1个文件 cp 之后变为 2个文件 (备份)
2)1个文件 mv 之后还是 1个文件 (本质:改变绝对路径名)
15、删除文件或目录
1)rm 文件名 删除文件
rm -f 关闭交互
# rm *.txt * 通配符,匹配所有字符
删除以.txt为结尾所有文件
2)rmdir 删除空目录
3)rm -r 目录名 删除一个非空目录
rm -rf 关闭交互,删除非空目录
作业:
1、使用一个命令将多个文件合并成一个大文件
2、练习:创建目录、创建文件、删除文件/目录、拷贝、移动文件
(文件系统中常用的命令--重点)
十四、为了使用SSH,还需要配置服务器
1、先查看IP地址(让Windows机器和Linux机器相连,需要两个IP)
查看Windows系统IP命令:ipconfig
(或者:网上邻居 -> 右键查看属性)
VMware Network Adapter VMnet1: 192.168.111.1
本地连接 4: 172.166.100.141
查看Linux/Unix系统IP命令:ifconfig
回顾:选择第3种 私有网络,本机和虚拟机在同一网段
2、注意:由于安装Linux时选中第3项,则当期需要查看VMnet1的IP地址:192.168.111.1
3、在Linux系统配置IP (和VMnet1的IP在同一网段)
192.168.111.1
192.168.111.2 就在同一网段中
原因:子网掩码 255.255.255.0
两个IP地址分别和子网掩码,进行按位与操作,如果结果一致,就在同一网段中。
192.168.111.1
255.255.255.0 按位与 (有0则0,全1则1)
----------------------
192.168.111.0
192.168.111.2
255.255.255.0 按位与
----------------------
192.168.111.0
说明:选择第3项,Linux需要和VMnet1连通
如果选第1项,需要查看本机IP
配置步骤:
1)查看Linux的IP地址: ifconfig 目前还未设置
2)设置Linux的IP地址:netconfig
(设置为192.168.111.2) 前3个数字和VMnet1 IP一样
在Linux中,输入 netconfig -> 出现配置窗口(字符界面)
-> Would you like to set up networking? 是否配置网络
-> Yes 回车 (用Tab键选择)
Use dynamic IP configuration (BOOTP/DHCP) 自动分配IP
不选择,需要自己设置 (用Tab键跳过)
IP address: 192.168.111.2 回车两下,自动出现后续结果
Netmask: 255.255.255.0 子网掩码
Default getway(IP): 192.168.111.254
Primary nameserver: 192.168.111.1
-> Tab 选择 OK -> 回车
3)重启网络服务:service network restart
# service network restart
# ifconfig 查看固定好的IP地址 192.168.111.2
4)使用SSH连接Linux
打开SSH Secure Shell -> Secure Shell Client
-> Quick Connect 快速连接
Host Name: 192.168.111.2 主机名
User Name: root 用户名
Port: 22 默认端口 -> 点击Connect
连接不上,原因:网络防火墙firewall 可能没关,需要关闭防火墙
同时排查网络是否连通:ping命令 (Windows/Unix/Linux通用)
从Windows连Linux: CMD中 ping 192.168.111.2 可以
从Linux连Windows: # ping 192.168.111.1
不可以,考虑关闭防火墙
提示:ctrl + c命令 用于接收当前进程
5)关闭Linux防火墙:iptables -F
# iptables -F
再使用SSH连接Linux ...
输入:192.168.111.2 root
输入密码:123456 即可
方法二:如果还有问题,改为桥接方式
选择第1种:Use bridged networking 桥接方式
(VM -> Settings -> Network Adatper 网络适配器)
Linux IP地址也需要和本机IP处于同一网段
本机IP: 172.166.100.141 (本地连接IP地址)
Linux IP: 172.166.100.101 重新设置 netconfig
再:service network restart 重启网络服务
再:iptables -F 关闭防火墙
SSH字体大小:
Edit -> Settings -> Global Settings -> Appearance
-> Font 比如:Consolas 字体 16或20
十五、Linux/Unix简单命令
命令的基本格式:命令 选项 参数
command 命令、选项、参数之间至少留一个空格
参数是操作的对象,选项是增加的功能
命令是主要功能,选项和参数 可能不止一个
比如: javac -d . Hello.java
iptables -F
ls -l
ls -al
使用Linux/Unix的命令行窗口(终端、Shell、Console、控制台)
先解决一个重要的哲学问题:我是谁?我在哪儿?我有什么?
1、我是谁?使用who am i 结果root
# who am i 显示当前用户登录信息
root pts/0 Sep 23 16:07 (192.168.111.1)
用户名 伪终端号 登录时间 从这个IP远程登录
root pts/1 Sep 23 16:55 (192.168.111.1)
区分不同的终端
伪终端号:目的,便于Linux区分不同的登录用户
pts/0 窗口 ls
pts/1 窗口 cal Linux分别将结果发给不同的用户
Linux/Unix特点:典型的多用户系统
# id 用户id信息
# whoami
# who 查看当前有哪些在线用户
root tty1 Sep 23 14:35
root pts/0 Sep 23 16:07 (192.168.111.1)
root pts/1 Sep 23 16:55 (192.168.111.1)
2、我在哪儿? 使用pwd命令
pwd 显示当前的工作目录(Print Working Directory)
# pwd /root /目录 (根目录)下的root目录
目前/root是root用户的主目录(Home Directory)
默认就是登录后所在的目录,具备较多的权限。
3、我有什么? 使用ls命令
ls 显示当前目录的内容(包括文件和目录)
工具显示规律:蓝色表示目录
ls -l 以长列表方式查看 (更详细)
4、去别处? cd命令 (Change Directory) 改变目录
特殊的目录名: . 表示当前目录
.. 表示上一层目录
比如:目前在/root目录下
想到/ 目录下:
# cd .. 相对路径,相对于当前/root的上一层
或者:
# cd / 绝对路径,直接定位到/下 (从/开始)
# cd . 还是在当前目录
# ls
# ls -l 查看到许多目录
bin目录 常用的系统命令 比如ls pwd ...
etc目录 常用的配置文件
home目录 用户主目录所在目录(每个用户对应一个子目录)
root目录 管理员用户主目录
boot目录 启动文件目录
...
想到/home下
# cd /
# cd home 相对路径
或者
# cd /home 绝对路径 (特点:一定从/开始)
目前问题:Linux主机还未设置Ip地址
复习:Linux环境和基本命令
1、简述Linux在虚拟机中安装步骤(不包括放入iso镜像文件后的步骤)。
处理器设置、内存、磁盘(分区)、网络等
2、查看Windows和Linux系统的IP地址命令?
Windows: ipconfig
Linux/Unix: ifconfig Unix: ifconfig -a a表示all 所有的
3、登录Linux/Unix有哪些方式?
1)本地登录 在主机面前,之间操作
A. 字符界面 特点:使用大量的命令来操作和管理OS
B. 图形界面 好处:直观 缺点:费资源
2)远程登录 通过网络,在其它机器远程登录 telnet
A. 字符界面 (最常用) 好处:省资源,随处可用
B. 图形界面 缺点:需要在客户端安装特殊的软件 更麻烦
结合小工具: SSH
4、命名的基本组成? Linux/Unix 区分大小写 -F -f
Windows中命令 不区分大小写
命令 [选项] [参数]
ls -l
ls -F
ls -al
javac -d . Hello.java JDK命令
cat Hello.java
5、写出一些Linux命令:
1)配置IP地址: netconfig
2)重启网络服务:service network restart
3)查看网络是否连通:ping id地址
4)停止当前进程组合键:ctrl + c (Windows中也支持)
前提:在控制台中使用
原理:在控制台中执行ping命令,会启动一个进程,占据当前终端,通过ctrl+c 即可结束当前进程,恢复终端。
5)挂起当前进程的组合键:ctrl + z 也能交出终端
6)关闭防火墙命令:iptables -F
重新启动Linux,还需要关闭
7)我是谁? 查看当前登录用户信息: who am i
(Linux/Unix是基于用户权限保证环境的安全,认清身份)
8)查看当前已登录的所有用户:who (Linux/Unix多用户系统)
9)我在哪儿?查看当前工作目录 pwd
10)查看目录下的资源(文件和目录):ls -l (linux简写 ll)
11)改变工作目录:cd
cd .. 退回上一次目录
cd 目录名 进入下一层目录
cd 决定路径 直接进入某个目录
一、软硬件体系结构
1、硬件体系:
(I/O进行交互)
输入设备 ------- 主机 ------输出设备
(鼠标、键盘等) (显示器、打印机等)
(CPU 内存 硬盘)
2、软件体系:以主流的B/S架构系统为例,三层架构
Client ----- Application Server ----- DB Server
客户端浏览器 应用服务器 数据库服务器
Windows Linux/Unix Linux/Unix
分开部署,减轻DB的负担,增加并发量
_____________________________
AUT 被测系统
二、Linux/Unix系统基本层次结构
从外到内:
应用程序 <-> Linux操作系统 <-> 硬件
(Shell <-> Kernel内核)
1、Shell (直译:外壳) 命令解释器 (翻译、解释命令)
介于 用户 和 内核之间,提供与系统的命令交互。
shell本身也是一个进程,表示形式:终端、命令行风格
常见的shell类型:bash csh sh (都是命令 可执行文件)
类似于Windows: cmd 命令行窗口
对应:C:/windows/system32/cmd.exe 就是一个可执行文件
查看当前是什么shll, 使用命令:ps (查看当前部分进程)
进程id 伪终端号 启动的命令
PID TTY TIME CMD
2648 pts/0 00:00:00 bash 当前shell进程
3089 pts/0 00:00:00 ps
可以在不同shell之间切换:
csh
sh
bash
不同的shell,理解命令的方式略有差异,比如csh偏向于C语言语法
推荐使用bash,比较方便
shell层层创建(原理:创建子进程,exit可返回上一层)
登录系统后,有默认shell: 登录shell (login shell) 目前bash
此时exit,则推出登录
PID TTY TIME CMD
3118 pts/0 00:00:00 bash
3153 pts/0 00:00:00 bash
3174 pts/0 00:00:00 csh
3194 pts/0 00:00:00 sh
3195 pts/0 00:00:00 ps
2、Kernel 内核,和硬件打交道,比较底层。
(把硬件管理起来,将硬件屏蔽掉)
管理内容:交换区 swap space、文件系统 File System等。
Linux内核实现了五大功能:
1)进程/处理器管理
2)内存管理
3)接口管理
4)文件管理
5)设备管理
查看当前版本:uname -r 2.4.20-8
内核版本的组成:主版本号.次版本号.修订次数
次版本号为奇数,版本相对不稳定 2.5.10
次版本号为偶数,版本相对稳定 2.6.10
3、File System 文件系统:对Linux/Unix中的文件进行管理。
文件:包括文件、目录,以及外部设备也当做文件来管理。
原因:以文件方式管理比较简便,一视同仁
三、Linux的通用特性
1、支持多用户
2、支持多任务
3、支持用户界面 (良好的交互)
4、硬件的支持
5、网络连接
6、可安装网络服务
7、应用程序的支持
四、Linux/Unix的基本命令
1、执行命令,就会执行一个可执行文件,会启动一个进程。
比如 ps ls
sleep 5 启动sleep进程,睡觉5秒 单位:秒
ctrl + c 结束当前进程,交回终端
ctrl + z 挂起当前进程
2、man 命令 (相当于帮助文档 手册)
Linux/Unix中针对各种命令提供手册,manual 帮助手册
查阅ls命令的功能:
man ls
控制方式: 空格 --- 翻页
回车 --- 跳行
q --- 退出 quit
3、ls命令 查看目录下的内容
1)ls -l 以长格式显示文件(use a long listing format)
linux中可简写为ll
文件类型 权限 属主 属组 文件大小 最后一次修改时间
-rw-r--r-- 1 root root 16012 9月 23 22:28 abc.txt
硬链接数 文件/目录名
(不要求)
文件类型:
- 普通文件
d 表示目录
除了文件名之外的所有信息:文件的属性
属主:由哪个用户user创建的文件 owner 拥有者
属组:属于哪个用户组 group
文件大小:单位 字节Byte
2)ls -a a就是all的意思
显示目录下所有内容,包括隐藏文件和目录。
隐藏文件:以 . 开头的文件
3)ls -al 选项可以组合搭配使用 (功能叠加)
4)ls -R 文件全部展开 (当前目录及子目录的资源分布)
5)ls -t 按照实际先后(文件/目录的最后一次修改时间)
6)ls -lt 结合长列表方式、按照时间排序
7)ls -F 可以查看文件类型
普通文件 无后缀显示
目录 /结尾
可执行文件 *结尾
cd到/usr/bin目录下,查看文件类型
4、clear 清屏 Windows: cls Sqlplus: clear screen
Linux/Unix发展和厂商的产品介绍:
1969 Unix
|
------------------------------------
| | | |
IBM AIX Sun Solaris HP UX BSD
Minix好比小型的Unix (Linux好比山寨版Unix)
Linus 1991 1994 Linux(Linux is not Unix) 吉祥物:企鹅
|
-------------------------------------
| | | |
Red Hat红帽 Red Flag 红旗 S.U.S.E Ubuntu 乌班图
开源 起源于德国
提供图形界面
提供大量服务来盈利
五、Unix和Linux操作系统的版本:
1、Unix: IBM-AIX、Oracle Sun-Solaris、HP-UX、Minix
2、Linux: Red Hat、Red Flag、SUSE、Ubuntu
六、Linux操作系统分区
1、Linux中,所有的设备、分区都以 系统文件 形式存在。
优点:文件可读、可写、可设定权限,高透明的管理
2、Swap分区: 交换分区、虚拟内存
作用:将磁盘空间当做内存使用,扩展内存空间,但速度明显下降
应用场合:当Linux的物理内存不够时,在磁盘中开辟一块空间,放置内存中的数据。(安装Linux时指定:2G左右,一般为物理内存的2倍,VM内存 1G)
1)如果适当使用,属于正常系统状态
2)如果大量使用swap空间,说明系统内存严重不足
3、磁盘文件命名规则:
hda1:
1) hd -- IDE硬盘
2) a -- 第一块硬盘
3) 1 -- 第一个分区
sdb3:
1) sd -- SCSI硬盘
2) b -- 第二块硬盘
3) 3 -- 第三个分区
4、挂载点:就是目录。系统中相应的设备文件要挂载到相应目录中,才能继续使用。
(比如:光盘、U盘、硬盘、都被看做文件,需要挂载)
mount命令 用来挂载
5、每一块硬盘最多4个主分区(包括扩展分区)
比如: 1 2 3 4
主分区 扩展 扩展 扩展
比如: 1 2 3 4
主分区 主分区 扩展 扩展
1)主分区:可以拿来直接使用
用途:计算机用于启动操作系统,系统启动程序、引导程序,放于主分区中。
细节:Linux规定主分区(扩展分区)占用1~16号码的前4个
SCSI硬盘: sda1 dsa2 sda3 sda4
剩下sda5~sda16 逻辑分区占用
2)扩展分区:不能直接使用,需要进行逻辑分区后再使用
6、文件:包括文件 和 目录(文件夹)
File Directory
目录也是一种特殊的文件:可以有子目录和其它文件
七、Linux/Unix常用命令
1、查看磁盘空间 fdisk -l
应用场合:当系统突然变慢或性能不佳,可以查看Linux服务器的磁盘空间,确定是否磁盘瓶颈(空间不足)。
练习:查看磁盘空间是否占满
Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 268 2048287+ 82 Linux swap
/dev/sda3 269 1044 6233220 83 Linux
Blocks: Data Block 数据块
Id: idle 表示空闲的磁盘 83%的空间可用
2、mount 挂载 显示有效磁盘分区的挂载情况
/dev/sda3 on / type ext3 (rw)
none on /proc type proc (rw)
usbdevfs on /proc/bus/usb type usbdevfs (rw)
/dev/sda1 on /boot type ext3 (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
none on /dev/shm type tmpfs (rw)
3、查看文件的内容: cat (适合查看小文件)
# cd /root
# ls
# cat install.log
# date 查看日期
# cal 查看本月日历
# cal 2014 本年日历
# cal 10 2014 某年某月
平时命令执行的结果默认向 终端 输出。(终端-标准输出)
> 输出重定向:将输出的结果重新导向到文件中,而不是终端
# date > 1.txt
将date的结果写入1.txt文件中
# ls -l
# cat 1.txt
# cal > 1.txt
# cat 1.txt
> 输出重定向,新的会覆盖旧的
>> 输出追加重定向,向原有文件追加内容
# date >> 1.txt
# cal 10 2014 >> 1.txt
# cat 1.txt
4、自动补全功能:Tab键
# cat 1 Tab 会补充完整的文件名
# cat 1.txt
5、目录常见概念
1)绝对路径:表示从/开始到具体的目录或文件的路径
/etc/passwd
2)当前路径:表示当前所在的目录的路径 pwd查看
/etc
3)相对路径:相对于当前路径下的简短路径
passwd
../root/1.txt (..回到 /下 root进入其中,找到1.txt)
比如目前在/root下 (当前路径)
需要表示/etc/passwd ?
1)绝对路径: /etc/passwd (特点:/ 开头)
2)相对路径: ../etc/passwd
4)主目录:用户登录到Linux/Unix系统后,默认所在的目录
Home Directory (家目录)
该目录下用户拥有大量的操作权限,出了此目录,则处处受挫
主目录:在创建用户时分配 目录名
一般每个用户在/home目录下,存在一个与用户名相同的目录名。
root:x:0:0:root:/root:/bin/bash
root用户 主目录 登录shell
技巧:想快速回到主目录
cd 回车 或 cd ~
说明:~ 代替主目录
echo ~ echo 回声
echo abc
5)当前目录: . cd . ./1.txt
6)上一层目录: .. cd .. 退回上一层目录
6、创建目录:mkdir 目录名
# cd 回到主目录
# mkdir test 创建一个test目录
# ls -l
# cd test
# ls 什么都没有
# ls -la 只有 . 和 ..
练习:在test目录中继续创建其它目录层次
# mkdir dir1/dir2
mkdir: 无法创建目录‘dir1/dir2’: 没有那个文件或目录
注意:Linux/Unix中,需要加 -p选项,才可创建一个目录层次
# mkdir -p dir1/dir2 一气呵成
# ls -R 查看目录层次
回到test下
# cd ~/test
# mkdir dir3 dir4 dir5 依次创建三个目录,空格分隔
在主目录下新建一个game目录
# mkdir ~/game
7、切换到图形界面: startx
# startx 在虚拟机中启动图形化界面,观察目录结构
切换回字符界面:点击红帽子 -> 注销
8、新建文件: touch 文件名
说明: 如果文件名不存在,创建一个新的、空的文件
如果文件名存在,只会修改文件的最后一次修改时间
# cd
# cd test
# date > 1.txt 通过重定向生成一个1.txt文件
# ls -l 1.txt
# touch 2.txt 创建一个空文件
# ls -l 2.txt
# touch 1.txt
# ls -l 1.txt 1.txt最后一次修改时间 更新了
# cat 1.txt 文件内容不变
9、Linux/Unix文件、目录的命名规则
1)区分大小写
2)除了/以外的的字符
3)包含空格,需要\ 转义 或 双引号 " "
4)以.开头的名称,具备隐藏属性 (隐藏文件、目录)
5)Windows用后缀来区分不同的文件类型 *.txt *.exe *.doc
Linux/Unix则不需要,后缀只属于文件名的一部分,主要用于提示文件类型(见名知意)
比如:文本文件 file1 file1.txt file1.abc
f1.sh (shell脚本文件 可执行)
10、新建文件 my file
在~/test目录下
# touch my file 会依次创建两个空文件
# touch my" "file 创建带有空格的文件
# touch my\ file1 使用转义符
11、查看包含空格的文件名 " " \
# cat my" "file
# cat my\ file1
# cat my file 依次显示my 和 file文件的内容
12、创建隐藏文件,文件名: .news
# touch .news
# ls -l
# ls -a
# ls -la
13、Linux系统的目录结构 (FHS标准)
/ 根目录 (必须存在)
/bin 大量可执行文件 (命令 ls pwd cd ...)
/sbin 系统管理员命令
/boot 启动目录
/root root用户 主目录 (特殊:root用户才具备操作权限)
root的家(皇帝的家)
/home 普通用户的主目录 (寻常百姓家)
/usr 用户应用程序的安装目录
/etc 存放配置文件
比如/etc/passwd 用户账户信息
/etc/shadow 保存账户密码 (加密MD5)
/dev 设备文件
/tmp 临时文件 (程序员使用较多)
/lib 库文件 library
/var 数据、日志、临时文件
/mnt 挂接其它文件系统 mount
目录或文件其它操作:
cp 拷贝文件或目录 (copy)
# cp 1.txt 11.txt 将1.txt备份为11.txt
mv 移动文件或目录 (move)
# mv 11.txt 22.txt 重命名
本质:改变文件的绝对路径名
源文件名:/root/test/d1/11.txt
改后: /root/test/d1/22.txt
练习:在~/test下,新建d1和d2目录
d1目录下新建1.txt 文本内容:hello echo hello > 1.txt
将1.txt文件拷贝到 d2目录中
# cd
# cd test 或 cd ~/test
# mkdir d1
# mkdir d2 或 mkdir d1 d2
# cd d1
# echo hello > 1.txt 会新建1.txt文件 写入hello
# cp 1.txt 11.txt 当前目录下拷贝一个11.txt
# ls -l
# cp 1.txt ../d2/1.txt 拷贝新文件由自己命名
# cp 1.txt ../d2 新文件继续使用原文件名
当前在test下:
# cd ~/test
# cp d1/1.txt d2/2.txt
如果当前在d2下:
# cd ~/test/d2
# cp ../d1/1.txt . 拷贝到当前目录
# cp ../d1/1.txt 3.txt 拷贝成当前路径下的3.txt
# cp ../d1/1.txt ./3.txt
如果使用绝对路径:
# cp /root/test/d1/1.txt /root/test/d2/3.txt
将d1下的1.txt移动到d3中
# mkdir d3
# cd ~/test/d1
# mv 1.txt ../d3
本质:就是改变文件的绝对路径名
/root/test/d1/1.txt --> /root/test/d3/1.txt
将d1下的11.txt 重命名 为22.txt
# cd ~/test/d1
# mv 11.txt 22.txt
本质: /root/test/d1/11.txt --> /root/test/d1/22.txt
14、拷贝命令cp 和 移动/改名命令mv 的区别:
1)1个文件 cp 之后变为 2个文件 (备份)
2)1个文件 mv 之后还是 1个文件 (本质:改变绝对路径名)
15、删除文件或目录
1)rm 文件名 删除文件
rm -f 关闭交互
# rm *.txt * 通配符,匹配所有字符
删除以.txt为结尾所有文件
2)rmdir 删除空目录
3)rm -r 目录名 删除一个非空目录
rm -rf 关闭交互,删除非空目录
作业:
1、使用一个命令将多个文件合并成一个大文件
2、练习:创建目录、创建文件、删除文件/目录、拷贝、移动文件
(文件系统中常用的命令--重点)
十四、为了使用SSH,还需要配置服务器
1、先查看IP地址(让Windows机器和Linux机器相连,需要两个IP)
查看Windows系统IP命令:ipconfig
(或者:网上邻居 -> 右键查看属性)
VMware Network Adapter VMnet1: 192.168.111.1
本地连接 4: 172.166.100.141
查看Linux/Unix系统IP命令:ifconfig
回顾:选择第3种 私有网络,本机和虚拟机在同一网段
2、注意:由于安装Linux时选中第3项,则当期需要查看VMnet1的IP地址:192.168.111.1
3、在Linux系统配置IP (和VMnet1的IP在同一网段)
192.168.111.1
192.168.111.2 就在同一网段中
原因:子网掩码 255.255.255.0
两个IP地址分别和子网掩码,进行按位与操作,如果结果一致,就在同一网段中。
192.168.111.1
255.255.255.0 按位与 (有0则0,全1则1)
----------------------
192.168.111.0
192.168.111.2
255.255.255.0 按位与
----------------------
192.168.111.0
说明:选择第3项,Linux需要和VMnet1连通
如果选第1项,需要查看本机IP
配置步骤:
1)查看Linux的IP地址: ifconfig 目前还未设置
2)设置Linux的IP地址:netconfig
(设置为192.168.111.2) 前3个数字和VMnet1 IP一样
在Linux中,输入 netconfig -> 出现配置窗口(字符界面)
-> Would you like to set up networking? 是否配置网络
-> Yes 回车 (用Tab键选择)
Use dynamic IP configuration (BOOTP/DHCP) 自动分配IP
不选择,需要自己设置 (用Tab键跳过)
IP address: 192.168.111.2 回车两下,自动出现后续结果
Netmask: 255.255.255.0 子网掩码
Default getway(IP): 192.168.111.254
Primary nameserver: 192.168.111.1
-> Tab 选择 OK -> 回车
3)重启网络服务:service network restart
# service network restart
# ifconfig 查看固定好的IP地址 192.168.111.2
4)使用SSH连接Linux
打开SSH Secure Shell -> Secure Shell Client
-> Quick Connect 快速连接
Host Name: 192.168.111.2 主机名
User Name: root 用户名
Port: 22 默认端口 -> 点击Connect
连接不上,原因:网络防火墙firewall 可能没关,需要关闭防火墙
同时排查网络是否连通:ping命令 (Windows/Unix/Linux通用)
从Windows连Linux: CMD中 ping 192.168.111.2 可以
从Linux连Windows: # ping 192.168.111.1
不可以,考虑关闭防火墙
提示:ctrl + c命令 用于接收当前进程
5)关闭Linux防火墙:iptables -F
# iptables -F
再使用SSH连接Linux ...
输入:192.168.111.2 root
输入密码:123456 即可
方法二:如果还有问题,改为桥接方式
选择第1种:Use bridged networking 桥接方式
(VM -> Settings -> Network Adatper 网络适配器)
Linux IP地址也需要和本机IP处于同一网段
本机IP: 172.166.100.141 (本地连接IP地址)
Linux IP: 172.166.100.101 重新设置 netconfig
再:service network restart 重启网络服务
再:iptables -F 关闭防火墙
SSH字体大小:
Edit -> Settings -> Global Settings -> Appearance
-> Font 比如:Consolas 字体 16或20
十五、Linux/Unix简单命令
命令的基本格式:命令 选项 参数
command 命令、选项、参数之间至少留一个空格
参数是操作的对象,选项是增加的功能
命令是主要功能,选项和参数 可能不止一个
比如: javac -d . Hello.java
iptables -F
ls -l
ls -al
使用Linux/Unix的命令行窗口(终端、Shell、Console、控制台)
先解决一个重要的哲学问题:我是谁?我在哪儿?我有什么?
1、我是谁?使用who am i 结果root
# who am i 显示当前用户登录信息
root pts/0 Sep 23 16:07 (192.168.111.1)
用户名 伪终端号 登录时间 从这个IP远程登录
root pts/1 Sep 23 16:55 (192.168.111.1)
区分不同的终端
伪终端号:目的,便于Linux区分不同的登录用户
pts/0 窗口 ls
pts/1 窗口 cal Linux分别将结果发给不同的用户
Linux/Unix特点:典型的多用户系统
# id 用户id信息
# whoami
# who 查看当前有哪些在线用户
root tty1 Sep 23 14:35
root pts/0 Sep 23 16:07 (192.168.111.1)
root pts/1 Sep 23 16:55 (192.168.111.1)
2、我在哪儿? 使用pwd命令
pwd 显示当前的工作目录(Print Working Directory)
# pwd /root /目录 (根目录)下的root目录
目前/root是root用户的主目录(Home Directory)
默认就是登录后所在的目录,具备较多的权限。
3、我有什么? 使用ls命令
ls 显示当前目录的内容(包括文件和目录)
工具显示规律:蓝色表示目录
ls -l 以长列表方式查看 (更详细)
4、去别处? cd命令 (Change Directory) 改变目录
特殊的目录名: . 表示当前目录
.. 表示上一层目录
比如:目前在/root目录下
想到/ 目录下:
# cd .. 相对路径,相对于当前/root的上一层
或者:
# cd / 绝对路径,直接定位到/下 (从/开始)
# cd . 还是在当前目录
# ls
# ls -l 查看到许多目录
bin目录 常用的系统命令 比如ls pwd ...
etc目录 常用的配置文件
home目录 用户主目录所在目录(每个用户对应一个子目录)
root目录 管理员用户主目录
boot目录 启动文件目录
...
想到/home下
# cd /
# cd home 相对路径
或者
# cd /home 绝对路径 (特点:一定从/开始)