Linux
day01
1 Linux概述
1.1 Linux的应用领域
- 服务器系统
- Web应用服务器、数据库服务器、游戏服务器、接口服务器、DNS、FTP等等;
- 嵌入式系统
- 路由器、防火墙、手机、PDA、IP 分享器、交换器、家电用品的微电脑控制器等等
- 高性能运算、计算密集型应用
- Linux有强大的运算能力。IBM的Watson超级计算机就是使用了Linux系统
- 桌面应用系统
- 很多桌面操作系统的底层也是Linux
- 移动手持系统
- 安卓系统就是基于Linux
1.2 Linux版本
- Linux的版本分为两种 : 内核版本和发行版本;
- 内核版本是指在Linux领导下的内核小组开发维护的系统内核的版本号;
- 发行版本是一些组织和公司根据自己发行版的不同而自定的;
发行版: - redhat:目前,全球最大的linux发行厂商,功能全面、稳定。遵循GPL协议
- ubuntu:目前,是linux桌面操作系统做的最好的。
- centos:免费版的redhat,centos基于redhat发行版基础之上,再重新编译发布的版本。
目前centos已经被Redhat公司收购,但是依然免费
2 安装Linux
2.1 安装虚拟机软件
2.2 安装centos6.5系统 x64
2.3 配置静态IP
配置网络的目的主要是为了固定虚拟机的内网IP,方便我们在真实的操作系统中使用Linux连接工具软件进行远程连接
- 1 执行命令
ifconfig
记住自己的ip的前三段 - 2 执行命令
setup
开启DHCP可以让Linux虚拟机自动分配IP
关闭DHCP需要指定IP
- 3 重启网络服务
service network restart
- 4 Linux查看IP地址的命令:
ifconfig
ifconfig | more
:分行进行显示,用于显示内容较多时 - 5 测试Linux网络配置是否成功:
在我们windows操作系统中运行命令:ping xxx.xxx.xxx.xxx(Linux虚拟机的IP地址)
注意:Linux系统中是
严格区分大小写
的,写命令时不要写错
2.4 给虚拟机进行快照
快照
其实就是还原点
,我们设置了快照。以后如果被我们玩坏了,也可以快速的还原到以前状态!
VMware快照
### 2.5 安装远程连接工具
直接操作Linux系统所在机器的问题:
A:虚拟机有鼠标独占问题,不好操作
B:真实开发中,虚拟机与我们不在一起。
使用远程连接工具:
A:操作方便快捷
B:随时随地都可以连接Linux系统,方便管理
2.5.1 远程终端命令工具
主要功能是向Linux系统远程发送命令
Xshell
:目前最好用- Secure Shel* Client:老牌的连接工具,对中文支持较差
- SecureCRT:收费
- Putty:早就停止维护了,很多东西支持的很差。但因为习惯依旧很多人支持
- 我们使用XShell5,安装时安装免费版
使用步骤:
2.5.2 远程FTP工具
FTP工具的目的是:便捷的与Linux系统之间进行文件传输
有以下途径:
Xftp
:配合XShell使用,支持简单在线编辑- Secure Shel* Client:自带FTP工具
- SecureFX:配合SecureCRT使用
Lrzsz
:可以安装在Linux系统中,通过在远程终端中使用命令来实现FTP功能- 我们使用Xftp或者Lrzsz都可以。
如果要向Linux进行文件传输,可以在Xshell界面中,点击文件传输按钮,自动就会打开我们安装的Xftp了:
3 Linux的结构
3.1 Linux组成
内核:是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。
Shell:是系统的用户界面,提供了用户和内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。但它不仅是命令解释器,而且还是高级编程语言,shell编程。
FILE SYSTEMS(文件系统):文件系统是文件存放在磁盘等存储设备上的组织方法,Linux支持多种文件系统,如ext3,ext2,NFS,SMB,iso9660等
应用程序:标准的Linux操作系统都会有一套应用程序例如X-Window,Open Office等
3.2 Linux目录结构
注意:
A:Linux中的
根目录就是/
,没有windows中的盘符
B:Linux中如果有新的用户创建,默认会在/home/下创建一个与用户名一样的文件夹,作为该用户的home文件夹
C:root用户的HOME在/root文件夹下。比较特殊
D:一般我们按照文件都放在 /usr/local这个文件夹下
E:/etc
下有很多系统的配置文件
F:/bin
目录下可以设置一些自启动脚本
4 Linux基本命令!!!
4.1 Linux命令的格式
Linux命令,其实就是Shell命令,是我们学好Linux的关键。
注意:
A:通过上下方向键
来调取过往执行过的命令。
B:命令或参数仅需输入前几位就可以用tab键
补全。
格式:
命令名称 \[命令参数][命令对象]
**[]**表示可选可不选
命令名称:有很多,我们会学习其中重要的一些
命令参数:可选,有两种格式:
长格式:--help
短格式:-h
命令对象:可选,就是命令作用的目标,可以是文件、目录、URL等等
注意:Linux中的命令严格区分大小写的!
4.2 目录操作命令
Linux中并没有文件夹的概念,应该叫目录。
4.2.1 切换目录
目录操作命令:
pwd
: 查看当前所在路径cd
: 切换目录
cd ..
: 切换到上级目录cd -
: 后退到上一次所在目录cd /
: 去往根目录- 绝对路径 : /开始的目录 , 从根目录开始
- 相对路径 : 直接目录 , 从当前目录开始
需求 :
1 查看当前所在目录
pwd
2 切换到 /usr/local(绝对路径)cd /usr/local
3 切换到 上一级 /usrcd ..
4 切换到 /usr/tmp (相对路径)cd tmp
5 切换会 /usr/localcd /usr/local
6 后退到上一次所在目录cd -
4.2.2 查看目录内容
ls
: 查看目录下内容
ls -a
: 查看全部内容 , 包含隐藏文件ls -l
: 查看内容的详细信息 , 效果等同于ll
命令ls -lh
: 以人能读懂的方式显示文件大小
需求:
查看某个文件的内容需要先进入访问文件的目录!
1 查看 /usr内容ls
2 查看所有 /usr内容(既包含隐藏,也包含非隐藏)ls -a
3 查看 /usr详细内容ls -l
4 简化 查看 /usr详细内容ll
5 易懂简化版 查看 /usr详细内容ls -lh
4.2.3 操作目录
mkdir
: 创建目录
mkdir -p [多级目录]
: 创建多级目录- rmdir : 删除目录
- 注意 : 不能删除有内容的目录
需求:
1 切换到 /usr/tmp
cd /usr/tmp
2 创建 cba目录mkdir cba
3 创建 aaa/bbb/ccc目录mkdir -p aaa/bbb/ccc
4 删除 cba目录rmdir cba
5 删除 aaa/bbb/ccc目录 rmdir aaa/bbb/ccc是不能删除的 , 只能一级一级的删!!!
6 再次创建 aaa/bbb/ccc 目录mkdir -p aaa/bbb/ccc
4.3 文件操作命令
文件操作命令
touch 文件名
: 创建文件rm
: 删除文件或目录
rm 文件名
: 删除一个文件rm -f 文件名
: 不经确认就删除文件rm -r 目录
: 递归删除一个目录及目录中的内容rm -rf 目录
: 递归删除一个目录 , 并且不经确认rm -rf *
: 清空当前文件夹rm -rf /*
:自杀行为 ,不要尝试!!!!
需求 :
1 在/usr/tmp目录下 创建 1.txt
touch 1.txt
2 在/usr/tmp/aaa/bbb/ccc目录下 创建 2.txttouch aaa/bbb/ccc/2.txt
3 删除 1.txtrm 1.txt
==> y
4 强制删除 2.txtrm -f aaa/bbb/ccc/2.txt
5 删除 /usr/tmp/aaa 目录 rm aaa是行不通的 需要用递归rm -r aaa
也需要一步步确认 , 比较麻烦
6 再次创建 /usr/tmp/aaa/bbb/ccc目录, 强制递归删除 /usr/tmp/aaa 目录rm -rf aaa
7 创建3.txt 和 4.txt, 删除所有的 txt 文件rm -rf *.txt
8 创建目录ddd 和 文件5.xt, 删除当前目录的所有内容mkdir ddd && touch 5.txt
rm -rf *
(删除当前目录所有内容)
4.4 复制和剪切命令
复制和剪切
cp
: 复制文件或目录
cp 1.txt 2.txt
==> 复制1.txt到当前目录下的2.txtcp 1.txt tmp/
==> 复制1.txt到/tmp目录下- 目的地是文件则复制后重名 , 目的地是目录 , 则直接复制.
mv
: 剪切
mv 1.txt 2.txt
==> 把1.txt直接重命名为2.txtmv 1.txt tmp/
==> 把1.txt移动到 /tmp下- 目的地是文件则剪切后重命名 , 目的地是目录 , 则直接剪切
mv是剪切 . 而cp是复制
cp
复制目录的时候需要加-r
参数
mv
移动目录的时候不需要参数
需求 :
1 创建1.txt文件 和 aaa目录
touch 1.txt && mkdir aaa
2 复制1.txt文件 到 aaa目录cp 1.txt aaa/
3 复制1.txt文件 到 aaa目录, 且 更改文件名为 2.txtcp 1.txt aaa/2.txt
4 将aaa目录复制到 新建的bbb目录cp -r aaa bbb
5 将1.txt 剪切到 新建的ccc目录mv 1.txt ccc/
6 新建2.txt文件, 剪切到当前目录 且 改名为 3.txt(重命名)mv 2.txt 3.txt
7 将ccc目录 移动到 新建的ddd目录mv ccc ddd/
4.5 打包和解包命令(重点重点重点-- 解包)!!!
打包和解压
tar
: 打包或解压- 参数 :
-z
: 使用gzip压缩进行文档处理-v
: 显示运行过程的信息-f
: 指定操作的文件或目录名-c
: 创建新的tar文件-x
: 解开tar文件
注意 : tar命令仅仅实现对数据打包。不进行压缩。我们一般处理文件,都是同时进行打包和压缩。因此要加上参数。
tar -zcvf 压缩后文件名.tar.gz 目标文件 :打包并压缩目标文件
tar -zxvf 要解压的文件名 :解压缩到当前目录
tar -zxvf 要解压的文件名 -C 目标目录 :解压到目标目录
注意,一般Linux中的压缩文件都是 .tar.gz
需求 :
1 对ddd目录进行打包成 ddd.tar
tar -cvf ddd.tar ddd
2 对ddd目录进行压缩打包 ddd.tar.gztar -zcvf ddd.tar.gz ddd
3 对ddd.tar 进行解包到当前目录tar -xvf ddd.tar
4 对ddd.tar.gz 进行解压缩包到当前目录tar -zxvf ddd.tar.gz
5 对ddd.tar 进行解包到指定目录tar -xvf ddd.tar -C eee
6 对ddd.tar.gz 进行解压缩包到指定目录tar -zxvf ddd.tar.gz -C eee
4.6 查看文件内容命令(重点)
查看文件内容命令
cat[参数] 文件名
: 将文件信息输出到控制台more
:
- 一般用于要显示的内容过多 , 会超过1屏时使用
- 按空格键显示下一屏数据 , 按回车显示下一行 , 按q退出
less
: 与more类似 , 只不过可以用PgUp和PgDn来翻页
需求 :
1 查询日志文件内容(cat 比较适合查看小文件)
cat 日志文件名
2 查询日志文件内容(more和less 适合大文件)more 日志文件名
3 查看下一行内容, 查看下一页内容, 退出less 日志文件名
更加实用:
tail
- 用于查看文件的最后部分 , 非常实用!
tail -10 文件名
==> 显示最后10行内容tail -f 文件名
==> 动态显示文件最后内容 , 一般用来查看日志tail -100f 文件名
==> 动态显示文件中最后100行内容grep
- 查找命令 , 可以在文档中查找指定内容
grep error catalina.log
在catalina.log日志中查找包含error的内容grep error catalina.log --color
查找内容并且高亮显示grep error catalina.log --color -B5 -A5
查找内容并且高亮显示 , 并且显示内容前后各5行信息 [B*代表前面几行 , A*代表后面几行
]
注意 :tail
和grep
命令非常重要 , 一定要掌握!!!
需求 : (tail)
1 查看文件后10行内容
tail -10 文件名
2 动态追踪文件内容tail -f 文件名
3 动态追踪 最后10行内容 且 退出tail -10f 文件名 (ctrl+c是退出)
需求 : (grep)
1 搜索文件中的Exception字符串
grep Exception 文件名
2 搜索文件中的Exception字符串 且 高亮显示grep Exception 文件名 --color
3 搜索文件中的Exception字符串 且 高亮显示, 且 前五行内容grep Exception 文件名 --color -B5
4 搜索文件中的Exception字符串 且 高亮显示, 且 前五行内容, 且 后五行内容grep Exception 文件名 --color -B5 -A5
4.7 编辑文件内容:vi编辑器(重点重点重点)
- 在Linux下一般使用vi编辑器来编辑文件。
- vi既可以查看文件也可以编辑文件。
- 而vim是vi的升级版本,具备更多的功能.
- vi如果目标文件不存在,会创建新的文件。但是如果新文件没做编辑,退出后还会消失。
vi的三种模式介绍- 三种模式(状态): 编辑、底行、命令模式
- 切换到编辑模式 : 按
i、o、a
键- 切换到底行模式 : 按
:
(冒号)- 切换到命令行模式 : 按ESC键
编辑模式:对文本进行输入和修改
底行模式:退出vim或者查找、替换功能
命令模式:通过快捷命令操作数据,打开vi默认就是命令模式
4.7.1 编辑模式
命令模式按下 : i 、o、a进入编辑模式
i : 光标不动
o : 另起一行
a : 光标到下一个字符
按ESC退出编辑模式 , 进入命令模式
4.7.2 底行模式
命令模式下,按
:
或者/
进入底行模式,可以输入命令
- 1
退出vim
: (重点重点重点)
:q
未编辑时退出vim:q!
编辑后 , 推出并且不保存:wq
编辑后 , 退出且保存- 2 撤销上次操作(扩展)
u
撤销上一次操作(类似于ctrl+z window操作)ctrl+r
恢复上一次被撤销的操作- 3 设置行号(了解)
:set nu
显示行号:set nonu
不显示行号- 4 替换文本(了解)
:s/old/new/
用new替换old,替换当前行的第一个匹配:s/old/new/g
用new替换old,替换当前行的所有匹配:%s/old/new/
用new替换old,替换所有行的第一个匹配:%s/old/new/g
用new替换old,替换整个文件的所有匹配- 5 查找
/文本
搜索指定文本,高亮显示,按n显示下一个,按N显示前一个
:整数
快捷跳转到指定行
4.7.3 命令模式
dd
剪切当前行
5dd
剪切光标及下面共5行
yy
复制光标所在行
5yy
复制光标及下面共5行
p
将之前dd或yy的数据粘贴到光标位置
R
进入替换模式,输入的任何数据都直接替换光标所在位置数据
4.8 组合命令
4.8.1 重定向输出>
和>>
>
重定向输出
>>
重定向输出, 又追加功能
cat/etc/password > a.txt
将输出定向到a.txt中
cat/etc/password >> a.txt
a.txt输出并且追加
echo 控制台输出的内容 (类似sout)
需求 :
1 删除 /usr/tmp/目录下的所有内容
rm -rf *
2 增加 1.txt文件, 内容: hellotouch 1.txt
echo hello > 1.txt && cat 1.txt
3 增加 2.txt文件, 内容: worldtouch 2.txt
echo world > 2.txt && cat 2.txt
4 将2.txt内容 复制粘贴到 3.txttouch 3.txt
cat 2.txt > 3.txt && cat 3.txt
5 将1.txt内容 复制粘贴到 3.txt(缺点: 产生替换效果)cat 1.txt > 3.txt && cat 3.txt
6 将2.txt内容 复制追加粘贴到 3.txt中cat 2.txt >> 3.txt && cat 3.txt
7 将ifconfig指令内容 追加到 3.txt中ifconfig >> 3.txt
4.8.2 管道 |
ps
(Process Status) 进程状态
grep
(Global Regular Expression Print) 全局正则表达式版本(搜索)
- 管道是Linux命令中重要的一个概念 , 其作用是
将一个命令的输出用作另一个命令的输入
- 示例
ls --help | more
分页查询帮助信息ps -ef | grep java
查询名称中包含java的进程
需求 :
1 分页查询 ls的帮助信息(回车键 下一行, 空格键 下一页)
ls --help | more
2 查询ls帮助信息中包含’递归’的指令ls --help | grep '递归'
4.8.3 逻辑控制&&
- 命令之间使用
&&
连接 , 实现类似逻辑与的功能.- 只有在&&左边的命令运行成功时 , &&右边的命令才会被执行
- 只要做便命令执行失败 , 后面的命令就不会被执行 .
启动tomcat后,再用tail命令查看日志 . 如果启动失败 , 则不查看
./startup.sh && tail -50f ../logs/catalina.out
需求
1 打印1.txt内容 且 打印2.txt内容
cat 1.txt && cat 2.txt
2 打印100.txt内容 且 打印2.txt内容(没有)cat 100.txt && cat 2.txt
不会成功
3 启动tomcat 且 打印日志信息./startup.sh && tail -50f ../logs/catalina.out