Linux----Linux搭建及常用指令【一】

时间:2024-05-23 15:44:07

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
    Linux----Linux搭建及常用指令【一】Linux----Linux搭建及常用指令【一】Linux----Linux搭建及常用指令【一】
  • 3 重启网络服务service network restart
    Linux----Linux搭建及常用指令【一】
  • 4 Linux查看IP地址的命令:ifconfig
    ifconfig | more :分行进行显示,用于显示内容较多时Linux----Linux搭建及常用指令【一】
  • 5 测试Linux网络配置是否成功:
    在我们windows操作系统中运行命令:ping xxx.xxx.xxx.xxx(Linux虚拟机的IP地址)Linux----Linux搭建及常用指令【一】

注意:Linux系统中是严格区分大小写的,写命令时不要写错

2.4 给虚拟机进行快照

快照其实就是还原点,我们设置了快照。以后如果被我们玩坏了,也可以快速的还原到以前状态!
Linux----Linux搭建及常用指令【一】 VMware快照
Linux----Linux搭建及常用指令【一】### 2.5 安装远程连接工具

直接操作Linux系统所在机器的问题:
A:虚拟机有鼠标独占问题,不好操作
B:真实开发中,虚拟机与我们不在一起。
使用远程连接工具:
A:操作方便快捷
B:随时随地都可以连接Linux系统,方便管理

2.5.1 远程终端命令工具

主要功能是向Linux系统远程发送命令

  • Xshell:目前最好用
  • Secure Shel* Client:老牌的连接工具,对中文支持较差
  • SecureCRT:收费
  • Putty:早就停止维护了,很多东西支持的很差。但因为习惯依旧很多人支持
  • 我们使用XShell5,安装时安装免费版
    Linux----Linux搭建及常用指令【一】使用步骤:
    Linux----Linux搭建及常用指令【一】
    Linux----Linux搭建及常用指令【一】
    Linux----Linux搭建及常用指令【一】
    Linux----Linux搭建及常用指令【一】
    Linux----Linux搭建及常用指令【一】
    Linux----Linux搭建及常用指令【一】

2.5.2 远程FTP工具

FTP工具的目的是:便捷的与Linux系统之间进行文件传输
有以下途径:

  • Xftp:配合XShell使用,支持简单在线编辑
  • Secure Shel* Client:自带FTP工具
  • SecureFX:配合SecureCRT使用
  • Lrzsz:可以安装在Linux系统中,通过在远程终端中使用命令来实现FTP功能
  • 我们使用Xftp或者Lrzsz都可以。
    Linux----Linux搭建及常用指令【一】
    如果要向Linux进行文件传输,可以在Xshell界面中,点击文件传输按钮,自动就会打开我们安装的Xftp了:Linux----Linux搭建及常用指令【一】
    Linux----Linux搭建及常用指令【一】

3 Linux的结构

3.1 Linux组成

Linux----Linux搭建及常用指令【一】
内核:是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。
Shell:是系统的用户界面,提供了用户和内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。但它不仅是命令解释器,而且还是高级编程语言,shell编程。
FILE SYSTEMS(文件系统):文件系统是文件存放在磁盘等存储设备上的组织方法,Linux支持多种文件系统,如ext3,ext2,NFS,SMB,iso9660等
应用程序:标准的Linux操作系统都会有一套应用程序例如X-Window,Open Office等

3.2 Linux目录结构

Linux----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 切换到 上一级 /usr cd ..
4 切换到 /usr/tmp (相对路径) cd tmp
5 切换会 /usr/local cd /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.txt touch aaa/bbb/ccc/2.txt
3 删除 1.txt rm 1.txt ==> y
4 强制删除 2.txt rm -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.txt
    • cp 1.txt tmp/ ==> 复制1.txt到/tmp目录下
    • 目的地是文件则复制后重名 , 目的地是目录 , 则直接复制.
  • mv : 剪切
    • mv 1.txt 2.txt ==> 把1.txt直接重命名为2.txt
    • mv 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.txt cp 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.gz tar -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*代表后面几行]
      注意 : tailgrep命令非常重要 , 一定要掌握!!!

需求 : (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文件, 内容: hello touch 1.txt echo hello > 1.txt && cat 1.txt
3 增加 2.txt文件, 内容: world touch 2.txt echo world > 2.txt && cat 2.txt
4 将2.txt内容 复制粘贴到 3.txt touch 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