学习链接
本地VMware虚拟机使用
- 怎么创建linux虚拟机(超级详细!!!)
- centos 7镜像(iso)下载图文教程(超详细)
- XShell连接VMware上的虚拟机操作方法
黑马程序员新版Linux零基础快速入门到精通
Linux笔记
尚硅谷 3天搞定Linux,1天搞定Shell,清华学神带你通关
Linux - 笔记
尚硅谷2024最新Linux零基础教程(linux快速入门,上手开发)
【小白入门 通俗易懂】韩顺平 一周学会Linux
千锋云计算Linux教程650集
B站【千锋】Linux云计算基础视频教程_650集完全入门 课堂笔记
【尚硅谷】Shell脚本从入门到实战
10分钟让你掌握Linux常用命令(+3万+++收藏)
Linux命令大全(最新)
【系统运维-Linux】 - 小小工匠专栏
Linux - 江湖有缘专栏
Linux - 鹤冲天Pro专栏
【Linux】- ★★光亭★★专栏
Linux操作系统 - 李熠漾专栏
linux - 所得皆惊喜专栏
Linux:20个linux常用命令
文章目录
- 学习链接
- 1 Linux介绍
- 1.1 Linux是什么?
- 1.2 Linux主要的发行版本
- 2 Linux的安装:
- 2.1 下载软件
- 2.2 安装虚拟机:
- 2.3 安装CentOS:
- 3 Linux的目录结构
- 3.1 Linux目录结构概述
- 3.2 Linux具体目录结构
- 4 Linux的远程操作工具
- 4.1 Linux的远程操作
- 4.2 Xshell
- 4.3 Xftp
- 5 Linux系统管理
- 5.1 vi和vim的使用
- 5.1.1 vi和vim简介:
- 5.1.2 Vi和vim三种常见模式:
- 5.1.3 Vi和vim常用快捷键
- 5.2 Linux用户管理
- 5.2.1 Linux用户简介:
- 5.2.2 添加用户:
- 5.2.3 删除用户:
- 5.2.4 查询用户信息:
- 5.2.5 切换用户:
- 5.3 Linux组管理
- 5.3.1 Linux的组简介:
- 5.3.2 添加组:
- 5.3.3 删除组:
- 5.3.4 添加用户时指定组:
- 5.3.5 将用户添加到组/从组中移除:
- 5.4 Linux的系统操作
- shutdown now
- shudown -h 1
- shutdown –r now
- reboot
- sync
- 6 Linux实操指令
- 6.1 帮助指令
- 6.1.1 帮助指令man
- 6.1.1.1 基本语法:
- 6.1.1.2 实操案例:
- 6.1.2 帮助指令help
- 6.1.2.1 基本语法:
- 6.1.2.2 实操案例:
- 6.2 文件目录指令
- 6.2.1 pwd指令
- 6.2.1.1 基本语法:
- 6.2.1.2 实操案例:
- 6.2.2 ls指令
- 6.2.2.1 基本语法:
- 6.2.2.2 实操案例:
- 6.2.3 cd指令
- 6.2.3.1 基本语法:
- 6.2.3.2 实操案例:
- 6.2.4 mkdir命令
- 6.2.4.1 基本语法:
- 6.2.4.2 实操案例:
- 6.2.5 rmdir指令
- 6.2.5.1 基本语法:
- 6.2.5.2 实操案例:
- 6.2.6 touch指令
- 6.2.6.1 基本语法:
- 6.2.6.2 实操案例:
- 6.2.7 cp指令
- 6.2.7.1 基本语法:
- 6.2.7.2 实操案例:
- 6.2.8 rm指令
- 6.2.8.1 基本语法:
- 6.2.8.2 实操案例:
- 6.2.9 mv指令
- 6.2.9.1 基本语法:
- 6.2.9.2 实操案例:
- 6.2.10 cat指令
- 6.2.10.1 基本语法:
- 6.2.10.2 实操案例:
- 6.2.11 more指令
- 6.2.11.1 基本语法:
- 6.2.11.2 实操案例:
- 6.2.12 less指令
- 6.2.12.1 基本语法:
- 6.2.12.2 实操案例:
- 6.2.13 head指令
- 6.2.13.1 基本语法:
- 6.2.13.2 实操案例:
- 6.2.14 tail指令
- 6.2.14.1 基本语法:
- 6.2.14.2 实操案例:
- 6.2.15 echo指令
- 6.2.15.1 基本语法:
- 6.2.15.2 实操案例:
- 6.2.16 >指令
- 6.2.16.1 基本语法:
- 6.2.16.2 实操案例:
- 6.2.17 >>指令
- 6.2.17.1 基本语法:
- 6.2.17.2 实操案例:
- 6.2.18 history指令
- 6.2.18.1 基本语法
- 6.3 时间日期指令
- 6.3.1 date指令
- 6.3.1.1 基本语法:
- 6.3.1.2 实操案例:
- 6.3.2 cal指令
- 6.3.2.1 基本语法:
- 6.3.2.2 实操案例:
- 6.4 搜索查找指令
- 6.4.1 find指令
- 6.4.1.1 基本语法:
- 6.4.1.2 实操案例:
- 6.4.2 locate指令
- 6.4.2.1 基本语法:
- 6.4.2.2 实操案例:
- 6.4.3 grep指令
- 6.4.3.1 基本语法:
- 6.4.3.2 实操案例:
- 6.5 压缩和解压缩指令
- 6.5.1 gzip指令
- 6.5.1.1 基本语法:
- 6.5.1.2 实操案例:
- 6.5.2 gunzip指令
- 6.5.2.1 基本语法:
- 6.5.2.2 实操案例:
- 6.5.3 zip指令
- 6.5.3.1 基本语法:
- 6.5.3.2 实操案例:
- 6.5.4 unzip指令
- 6.5.4.1 基本语法:
- 6.5.4.2 实操案例:
- 6.5.5 tar指令
- 6.5.5.1 基本语法:
- 6.5.5.2 实操案例:
- 6.5.6 which指令
- 6.5.6.1 基本语法:
- 6.5.6.2 实操案例
- 6.5.7 df指令
- 6.5.7.1 基本语法:
- 6.5.7.2 实操案例
- 6.5.8 du指令
- 6.5.8.1 基本语法:
- 6.5.8.2 实操案例
- 6.6 组管理指令
- 6.6.1 Linux组的基本介绍:
- 6.6.2 文件/目录的所有者
- 6.6.2.1 查看文件所有者和所在组指令
- 6.6.2.1.1 基本语法:
- 6.6.2.1.2 实操案例:
- 6.6.2.2 修改文件所有者指令
- 6.6.2.2.1 基本语法:
- 6.6.2.2.2 实操案例:
- 6.6.2.3 修改文件所在组指令
- 6.6.2.3.1 基本语法:
- 6.6.2.3.2 实操案例:
- 6.7 权限管理指令
- 6.7.1 权限基本介绍
- 6.7.2 RWX权限详解
- 6.7.3 权限管理指令
- 6.7.3.1 修改文件/目录权限的指令chmod
- 6.7.3.2 实操案例:
- 7 网络配置
- 7.1 查看和配置网络
- 7.1.1 查看虚拟网络编辑器
- 7.1.2 查看IP和网关
- 7.1.3 查看windows下虚拟网卡VMnet8的IP地址:cmd下ipconfig
- 7.2 配置Linux网络
- 8 进程管理
- 8.1 进程介绍
- 8.2 查看系统运行的进程
- 8.2.1 基本语法:
- 8.2.2 实操案例:
- 8.3 终止进程
- 8.3.1 基本语法:
- 8.3.2 实操案例:
- 8.4 服务管理
- 8.4.1 服务介绍
- 8.4.2 服务管理指令
- 8.4.2.1 基本语法:
- 8.4.2.2 实操案例:
- 8.4.3 查看网路服务(了解)
- 8.4.3.1 netstat命令
- 8.4.3.1.1 基本语法:
- 8.4.3.1.2 实操案例:
- 8.4.3.2 ping命令
- 8.4.3.2.1 基本语法:
- 8.4.3.2.2 实操案例:
- 8.4.3.3 curl命令(了解)
- 8.4.3.3.1 基本语法:
- 8.4.3.3.2 实操案例
- 9 Linux软件包管理
- 9.1 RPM包的管理(了解)
- 9.1.1 RPM介绍
- 9.1.2 RPM包的查询指令
- 9.1.2.1 基本语法:
- 9.1.2.2 实操案例:
- 9.1.3 RPM包的卸载指令
- 9.1.3.1 基本语法:
- 9.1.3.2 实操案例:
- 9.1.4 RPM包的安装指令
- 9.1.4.1 基本语法:
- 9.1.4.2 实操案例:
- 9.2 YUM包的管理
- 9.2.1 YUM介绍
- 9.2.2 YUM包的查询指令
- 9.2.2.1 基本语法:
- 9.2.2.2 实操案例:
- 9.2.3 YUM包的安装指令:
- 9.2.3.1 基本语法:
- 9.2.3.2 实操案例:
- 10 搭建JAVAEE开发环境
- 10.1 安装JDK
- 10.2 安装tomcat
- 10.3 安装mysql
1 Linux介绍
1.1 Linux是什么?
linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发能力已经得到业界的认可,目前大多数企业级应用甚至是集群项目都部署运行在linux操作系统之上,很多软件公司考虑到开发成本都首选linux,在中国软件公司得到广泛的使用。
一种开源的、免费的操作系统,安装在计算机硬件上、用来管理计算机的硬件和软件资源的系统软件。 linux注重安全性、稳定性、高并发处理能力,没有优异的可视化界面 windows用于个人计算机上,linux用于企业服务器上。
1.2 Linux主要的发行版本
Ubuntu(乌班图)、RedHat(红帽)、CentOS、Debain[蝶变]、Fedora、SuSE、OpenSUSE、红旗Linux(国产)
2 Linux的安装:
2.1 下载软件
1、 虚拟机软件下载:
2、 CentOS下载:
Ø网易镜像:http://mirrors.163.com/centos/6/isos/
Ø搜狐镜像:http://mirrors.sohu.com/centos/6/isos
2.2 安装虚拟机:
参考:“虚拟机安装手册.docx”
2.3 安装CentOS:
参考:“CentOS安装手册.docx”
3 Linux的目录结构
3.1 Linux目录结构概述
Linux没有炫目的可视化操作界面,它的操作大部分都是直接执行命令,而可执行文件都是保存在相应的目录中的,所以我们对linux的操作大多数时候都是查找和执行这些可执行文件的。
linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。
在==Linux世界里,一切皆文件==。
3.2 Linux具体目录结构
linux只有一个根目录:/
层级式的目录结构
-
root : 该目录为系统管理员目录,root是具有超级权限的用户。
-
bin->usr/bin (这里是/bin目录链接到/usr/bin目录下): 存放系统预装的可执行程序,这里存放的可执行文件可以在系统的任何目录下执行。
-
usr是linux的系统资源目录,里边存放的都是一些系统可执行文件或者系统以来的一些文件库。
-
usr/local/bin:存放用户自己的可执行文件,同样这里存放的可执行文件可以在系统的任何目录下执行。
-
lib->usr/lib: 这个目录存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库。
-
boot : 这个目录存放启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
-
dev: dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,Linux中的设备也是以文件的形式存在。
-
etc: 这个目录存放所有的系统管理所需要的配置文件。配置环境变量(/etc/profile)
-
home:每一个普通用户的根目录都在该目录下。在Linux中,每个用户都有一个自己的目录,一般该目录名以用户的账号命名,叫作用户的根目录;用户登录以后,默认打开自己的根目录。
-
var : 这个目录存放着在不断扩充着的东西,我们习惯将那些经常被修改的文件存放在该目录下,比如运行的各种日志文件。
-
mnt : 系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容
-
opt: 这是给linux额外安装软件所存放的目录。比如你安装一个Oracle数据库则就可以放到这个目录下,默认为空。
-
tmp: 这个目录是用来存放一些临时文件的。
4 Linux的远程操作工具
4.1 Linux的远程操作
在软件公司中,无论是测试服务器还是正式服务器都是部署在公司Linux系统上的,而Linux系统通常是各开发小组共享的,因此程序员需要远程登录到centos进行项目管理或者开发。远程登录客户端有Xshell、Xftp等多种工具 , 我们学习使用Xshell和Xftp , 其它的远程工具大同小异。
4.2 Xshell
简介:
Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。它通过互联网到远程系统的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。
Xshell 是目前最好的远程登录到Linux操作系统的软件,流畅的速度并且完美解决了中文乱码的问题,是目前程序员首选的软件。
下载:https://www.netsarang.com
安装和使用:参考 “Xshell安装手册.docx”
xshell连接linux
查看linux系统ip:ifconfig
查看windows系统ip:ipconfig
4.3 Xftp
简介:
是一个基于windows平台的功能强大的SFTP、FTP文件传输软件。使用了Xftp 以后,windows 用户能安全地在UNIX/Linux和Windows PC 之间传输文件。
下载:https://www.netsarang.com
安装和使用:参考“Xftp安装手册.docx”
5 Linux系统管理
5.1 vi和vim的使用
5.1.1 vi和vim简介:
vi编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下。由于不需要图形界面,vi是效率很高的文本编辑器。尽管在Linux上也有很多图形界面的编辑器可用,但vi在系统和服务器管理中的功能是那些图形编辑器所无法比拟的。
vim是vi的增强版,比vi更容易使用。用来在linux中创建、查看或者编辑文本文件。vi的命令几乎全部都可以在vim上使用。
5.1.2 Vi和vim三种常见模式:
一般模式:
以vi/vim 命令打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』快捷键来处理档案内容,也可以使用『复制、贴上』快捷键来处理你的文件数据。
编辑模式:
按下i, I, o, O, a, A, r, R等任何一个字母之后才会进入编辑模式, 一般来说按i即可.
命令行模式:
在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开vim 、显示行号等的动作则是在此模式中达成的 !
5.1.3 Vi和vim常用快捷键
1.一般模式拷贝当前行(yy) , 拷贝当前行向下的5行(5yy),并粘贴§把剪切板中的内容粘贴到光标所在的下一行。
2.一般模式删除当前行(dd) , 删除当前行向下的5行(5dd)。
3.一般模式下,在文件中查找某个单词,[命令模式下:(/关键字),回车查找, 输入(n) 就是查找下一个,输入(b)就是查找下一个]。
4.一般模式下,使用快捷键到达文档的最首行[gg]和最末行[G]。
5.一般模式下,在一个文件中输入"xxxx" ,然后又撤销这个动作(u)。
6.一般模式下,输入10,再输入gg,即可跳到第10行
7.命令行模式下,设置文件的行号,取消文件的行号.[命令行下(: set nu) 和(:set nonu)]。
8.其它快捷键:
5.2 Linux用户管理
5.2.1 Linux用户简介:
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。root是linux系统安装时默认创建的系统管理员账号,由root创建普通账号。
5.2.2 添加用户:
useradd [选项] 用户名
useradd zhangsan
- 创建一个用户zhangsan
- 在/home目录下创建该用户的根目录,目录名称默认跟用户名相同
- 在linux中任何一个用户都至少属于一个组,新建用户时如果不指定组,则会新建一个组,组名跟用户名相同,并且把该用户添加到该组中。
useradd -d /home/ls lisi:创建一个账号叫lisi,并且给lisi指定家目录/ls。
passwd 用户名
passwd zhangsan:给zhangsan设置密码。
5.2.3 删除用户:
userdel [选项] 用户名
userdel zhangsan:删除用户zhangsan,保留zhangsan的主目录。
userdel –r lisi:删除用户lisi,并且把lisi的主目录也删除。
5.2.4 查询用户信息:
id 用户名
id zhangsan:查看用户zhangsan的信息(包括该用户所属的组信息)。
5.2.5 切换用户:
su 用户名
su zhangsan:切换到zhangsan用户。
-
注意:从高权限用户切换到低权限用户时,不需要输密码;否则,需要输密码。
-
另:exit命令可以回到原来的用户。
5.3 Linux组管理
5.3.1 Linux的组简介:
linux中的组相当于角色的概念,可以对有共性的用户进行统一管理;每一个用户至少属于一个组,不能独立于组存在,也可以属于多个组;新建用户时如果不指定组,则会新建一个组,组名跟用户名相同,并且把该用户添加到该组中。root用户默认属于root组。
5.3.2 添加组:
groupadd 组名
groupadd devgroup:创建一个组devgroup。
5.3.3 删除组:
groupdel 组名
groupdel devgroup:删除组devgroup。
5.3.4 添加用户时指定组:
useradd –g 组名 用户名
useradd –g devgroup zhangsan:添加用户zhangsan,并且指定zhangsan属于(主)组devgroup。
5.3.5 将用户添加到组/从组中移除:
gpasswd –a/-d 用户名 组名
gpasswd –a zhangsan test:把用户zhangsan 添加到test组
gpasswd –d zhangsan test:把用户zhangsan 从test组中移除
5.4 Linux的系统操作
shutdown now
shutdown now: 立刻进行关机
shudown -h 1
shudown -h 1: 1小时后会关机了
shutdown –r now
shutdown –r now: 现在重新启动计算机
reboot
reboot: 现在重新启动计算机
sync
sync: 把内存的数据同步到磁盘.
6 Linux实操指令
6.1 帮助指令
在使用Linux过程中,如果遇到不熟悉的指令,一个是可以到网络上去查找,另一个是可以使用帮助指令。
6.1.1 帮助指令man
6.1.1.1 基本语法:
man [命令或配置文件]
功能描述:用来查看linux系统手册上的帮助信息
分屏显示、按回车翻一行、按空格翻一页、按q退出查看
6.1.1.2 实操案例:
查看命令top的用法:
6.1.2 帮助指令help
6.1.2.1 基本语法:
help [命令] 或者 命令 --help
功能描述:用来查看命令的内置帮助信息
help cd
cd --help
6.1.2.2 实操案例:
查看命令cd的用法:
6.2 文件目录指令
6.2.1 pwd指令
6.2.1.1 基本语法:
pwd
查看当前所在目录
6.2.1.2 实操案例:
6.2.2 ls指令
6.2.2.1 基本语法:
ls [选项] [目录或是文件]
- 常用选项
- -a :显示当前目录所有的文件和目录,包括隐藏的。
- -l :以列表的方式显示信息,相当于ll
ls /home: 查看home目录下的文件
ls: 查看当前目录下所有的子目录和文件列表
ls -l /home : 以列表形式显示
ls -a /home:显示指定目录下所有的子目录和文件(包括虚拟的目录)
ls -al /home: 以列表形式显示指定目录下所有的子目录和文件(包括虚拟的目录)
6.2.2.2 实操案例:
列出当前目录下所有的文件和目录:
6.2.3 cd指令
6.2.3.1 基本语法:
cd [参数]
功能描述:切换到指定目录
- 常用参数
- 绝对路径(以/开头的目录)和相对路径(以目录名开头的目录,从当前目录下开始查找)
cd ~ 或者cd :回到自己的主目录
cd … :回到当前目录的上一级目录
cd - :返回到上次所在的目录
cd /home:切换到/home目录下
6.2.3.2 实操案例:
6.2.4 mkdir命令
6.2.4.1 基本语法:
mkdir [选项] 要创建的目录
- 常用选项
- -p :创建多级目录
mkdir /opt/testDir/test1:在/opt/testDir目录下创建一个目录test1(使用绝对目录)
mkdir test2 :在/opt/testDir目录下创建一个目录test2(使用相对目录)
mkdir -p /opt/testDir/test3/test4 :在/opt/testDir目录下创建目录test3,并且在test3下创建test4(一次创建多级目录)
6.2.4.2 实操案例:
6.2.5 rmdir指令
6.2.5.1 基本语法:
rmdir 目录
功能描述:删除一个空目录
6.2.5.2 实操案例:
6.2.6 touch指令
6.2.6.1 基本语法:
touch 文件名列表(文件名之间用空格隔开)
功能描述:创建一个或多个空文件
6.2.6.2 实操案例:
6.2.7 cp指令
6.2.7.1 基本语法:
cp [选项] source dest
功能描述:复制文件或者目录
- 常用选项:
- -r :递归复制整个文件夹
cp t1.txt test2:把t1.txt文件复制到test2目录中
cp -r test2 test5:把test2目录复制到test5目录中(递归地复制目录)
6.2.7.2 实操案例:
6.2.8 rm指令
6.2.8.1 基本语法:
rm [选项] 要删除的文件或目录
-
常用选项:
-
-r :递归删除整个文件夹
-
-f :强制删除不提示
-
rm t1.txt :提示删除文件
rm -f t2.txt :强制删除文件
rm -r test2 :提示递归删除目录
rm -rf test5 :强制递归删除目录
6.2.8.2 实操案例:
6.2.9 mv指令
6.2.9.1 基本语法:
mv source(源) dest(目标)
功能描述:移动目录或者文件,重命名
mv oldNameFile newNameFile (功能描述:重命名)
mv /temp/movefile /targetFolder (功能描述:移动文件)
mv test2/* test5:把当前目录下test2文件夹下的所有文件都移动到当前目录下的test5目录下
mv test2 test5:把当前目录下的test2文件夹直接移动到test5目录下
6.2.9.2 实操案例:
6.2.10 cat指令
6.2.10.1 基本语法:
cat [选项] 要查看的文件名
- 常用选项
- -n :显示行号
cat t4.txt :文件内容一次性显示出来
cat -n t4.txt :显示行号
6.2.10.2 实操案例:
6.2.11 more指令
6.2.11.1 基本语法:
more 要查看的文件名
功能说明:more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。
参数:
- -num 一次显示的行数
- -d 提示使用者,在画面下方显示 [Press space to continue, ‘q’ to quit.] ,如果使用者按错键,则会显示 [Press ‘h’ for instructions.] 而不是 ‘哔’ 声
- -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
- -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
- -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
- -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
- -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
- -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
- +/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
- +num 从第 num 行开始显示
- fileNames 欲显示内容的文档,可为复数个数
常用操作命令:
- Enter 向下n行,需要定义。默认为1行
- Ctrl+F 向下滚动一屏
- 空格键 向下滚动一屏
- Ctrl+B 返回上一屏
- = 输出当前行的行号
- :f 输出文件名和当前行的行号
- V 调用vi编辑器
- !命令 调用Shell,并执行命令
- q 退出more
more +20 testfile:从第 20 行开始显示 testfile 之文档内容。
more -s testfile:逐页显示 testfile 文档内容,如有连续两行以上空白行则以一行空白行显示。
6.2.11.2 实操案例:
6.2.12 less指令
6.2.12.1 基本语法:
less 要查看的文件名
功能说明:less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
参数说明:
- -b <缓冲区大小> 设置缓冲区的大小
- -e 当文件显示结束后,自动离开
- -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
- -g 只标志最后搜索的关键词
- -i 忽略搜索时的大小写
- -m 显示类似more命令的百分比
- -N 显示每行的行号
- -o <文件名> 将less 输出的内容在指定文件中保存起来
- -Q 不使用警告音
- -s 显示连续空行为一行
- -S 行过长时间将超出部分舍弃
- -x <数字> 将"tab"键显示为规定的数字空格
- /字符串:向下搜索"字符串"的功能
- ?字符串:向上搜索"字符串"的功能
- n:重复前一个搜索(与 / 或 ? 有关)
- N:反向重复前一个搜索(与 / 或 ? 有关)
- b 向上翻一页
- d 向后翻半页
- h 显示帮助界面
- Q 退出less 命令
- u 向前滚动半页
- y 向前滚动一行
- 空格键 滚动一页
- 回车键 滚动一行
- [pagedown]: 向下翻动一页
- [pageup]: 向上翻动一页
6.2.12.2 实操案例:
6.2.13 head指令
6.2.13.1 基本语法:
head 文件
功能描述:默认查看文件头10行内容
head -n 5 文件:查看文件头5行内容,5可以是任意行数
6.2.13.2 实操案例:
6.2.14 tail指令
6.2.14.1 基本语法:
tail 文件
功能描述:默认查看文件尾10行内容
参数:
- -f 循环读取
- -q 不显示处理信息
- -v 显示详细的处理信息
- -c<数目> 显示的字节数
- -n<行数> 显示文件的尾部 n 行内容
- –pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
- -q, --quiet, --silent 从不输出给出文件名的首部
- -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
tail notes.log:默认显示最后 10 行
tail -n 5 文件:查看文件尾5行内容,5可以是任意行数
tail -f filename :会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容
tail -n +20 notes.log:显示文件 notes.log 的内容,从第 20 行至文件末尾
6.2.14.2 实操案例:
6.2.15 echo指令
6.2.15.1 基本语法:
echo [选项] [输出内容]
功能介绍:输出变量或常量内容到控制台
6.2.15.2 实操案例:
6.2.16 >指令
6.2.16.1 基本语法:
查看指令 > 目标文件
功能说明:将前一个查看指令中的结果覆盖写入到目标文件中,如果目标文件不存在,则新建。
ls > ret.txt
ls -al > ret.txt
cat ret.txt > t3_new.txt 文件内容的复制
6.2.16.2 实操案例:
6.2.17 >>指令
6.2.17.1 基本语法:
查看指令 >> 目标文件
功能说明:将前一个查看指令中的结果追加写入到目标文件中,如果目标文件不存在,则新建。如果目标文件已存在,则在文件原来内容的基础上进行追加.
s > ret.txt
ls -al >> ret.txt
cat t4.txt >> ret.txt
6.2.17.2 实操案例:
6.2.18 history指令
6.2.18.1 基本语法
history
功能说明:查看执行过的命令
history | less:以分页的形式查看执行过的命令
6.3 时间日期指令
6.3.1 date指令
6.3.1.1 基本语法:
date
功能描述:显示当前时间
-
date(功能描述:显示当前时间)
-
date +%Y(功能描述:显示当前年份)
-
date +%m(功能描述:显示当前月份)
-
date +%d(功能描述:显示当前是哪一天)
-
date ‘+%Y-%m-%d %H:%M:%S’ (按yyyy-MM-dd HH:mm:ss格式显示)
-
date -s 字符串时间(功能描述:设置日期)
6.3.1.2 实操案例:
6.3.2 cal指令
6.3.2.1 基本语法:
cal [选项]
功能描述:不加选项,显示本月日历
cal:显示本月日历
cal 2021:显示2021年的日历
6.3.2.2 实操案例:
6.4 搜索查找指令
6.4.1 find指令
find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。
6.4.1.1 基本语法:
find [搜索范围] [搜索标准] 关键字
- 选项说明:
-
-name:默认按名称搜索(文件或者目录所在的路径也在搜索范围之内),支持通配符
-
-user:按用户名查找
-
-size:按文件大小查找
-
find *.txt: 搜索当前目录下,所有的.txt文件
find *e*
: 搜索当前目录下,所有名称中包含e的那些文件或者目录
find /etc *.txt : 搜索/etc目录下所有.txt文件
find /etc -size -5k : 搜索/etc目录下所有小于5k的文件
find /etc -size +5k : 搜索/etc目录下所有大于5k的文件
find /etc -user zhangsan: 搜索/etc目录下所有的所有者是zhangsan的文件和目录
6.4.1.2 实操案例:
6.4.2 locate指令
6.4.2.1 基本语法:
locate 要搜索的文件名
说明:locate指令可以快速在整个系统中定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。
6.4.2.2 实操案例:
6.4.3 grep指令
6.4.3.1 基本语法:
grep [选项]
功能描述:搜索过滤命令,在前一个搜索命令的结果中进行按名称进一步过滤。
搜索命令 |grep [选项] 过滤条件
搜索命令 |grep [选项] 过滤条件
-
说明:grep 过滤查找,管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。
-
常用选项:
-
-n:显示匹配行和行号
-
-i:忽略大小写
-
find *.txt|grep new 搜索当前目录下,所有名称包含new的.txt文件
find /etc -size -5k|grep firefox
cat t1.txt|grep beijing
cat t1.txt|grep -ni beijing
6.4.3.2 实操案例:
6.5 压缩和解压缩指令
6.5.1 gzip指令
6.5.1.1 基本语法:
gzip 文件
功能说明:压缩文件,将文件压缩为*.gz文件存放在原文件所在目录,压缩成功后会把原文件删除。用于压缩单个文件。
gzip log.txt:压缩当前目录下的log.txt
6.5.1.2 实操案例:
6.5.2 gunzip指令
6.5.2.1 基本语法:
gunzip 文件
功能说明:解压缩文件命令,解压成功后存放在原压缩文件所在目录,并且把原压缩文件删除。
gunzip log.txt.gz:解压当前目录留下的
6.5.2.2 实操案例:
6.5.3 zip指令
6.5.3.1 基本语法:
zip [选项] 目标压缩包名称(通常使用.zip压缩包) 文件或者目录列表
功能描述:将是指定文件或目录压缩成XXX.zip文件,用于压缩所有文件结构。
- 选项说明:
- -r:递归压缩,即压缩目录
zip test.zip ret.txt t1.txt test2
6.5.3.2 实操案例:
6.5.4 unzip指令
6.5.4.1 基本语法:
unzip [选项] 压缩包名(通常是.zip) -d 解压目录名
功能描述:将指定的.zip压缩包解压到当前目录(或者指定目录)
- 常用选项:
- -d 目录:指定解压后文件的存放目录
unzip test.zip -d test3
6.5.4.2 实操案例:
6.5.5 tar指令
6.5.5.1 基本语法:
压缩:tar [选项] 目标压缩包名称(xxx.tar.gz) 文件或者目录列表
解压:tar [选项] 压缩包名(xxx.tar.gz) -C 解压目录名
功能描述:压缩(打包)或者解压多个文件和目录
- 选项说明:
- -c:产生.tar.gz打包文件
- -v:显示详细信息
- -f:指定压缩后的文件名
- -z:打包同时压缩
- -x:解压.tar.gz文件
- -C: 指定解压到哪个目录
tar -zcvf mytar.tar.gz mytest.zip ret.txt t1.txt test2:压缩文件到mytar.tar.gz
tar -zxvf mytar.tar.gz -C /opt/testDir/test5:解压文件到/opt/testDir/test5
6.5.5.2 实操案例:
6.5.6 which指令
6.5.6.1 基本语法:
which 可执行文件名称
功能描述:which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
-
-n 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-
-p 与-n参数相同,但此处的包括了文件的路径。
-
-w 指定输出时栏位的宽度。
-
-V 显示版本信息
which 是根据使用者所配置的 PATH 变量内的目录去搜寻可运行的!所以,不同的 PATH 配置内容所找到的命令可能不一样的!
6.5.6.2 实操案例
6.5.7 df指令
6.5.7.1 基本语法:
df [选项] [文件名]
命令功能:
df
命令作用是列出文件系统的整体磁盘空间使用情况。可以用来查看磁盘已被使用多少空间和还剩余多少空间。
df
命令显示系统中包含每个文件名参数的磁盘使用情况,如果没有文件名参数,则显示所有当前已挂载文件系统的磁盘空间使用情况,
命令参数:
-a:--all,显示所有的文件系统,包括虚拟文件系统,参考示例2。
-B:--block-size,指定单位大小。比如1k,1m等,参考示例3。
-h:--human-readable,以人们易读的GB、MB、KB等格式显示,参考示例4。
-H:--si,和-h参数一样,但是不是以1024,而是1000,即1k=1000,而不是1k=1024。
-i:--inodes,不用硬盘容量,而是以inode的数量来显示,参考示例5。
-k:以KB的容量显示各文件系统,相当于--block-size=1k。
-m:以KB的容量显示各文件系统,相当于--block-size=1m。
-l:--local,只显示本地文件系统。
--no-sync:在统计使用信息之前不调用sync命令(默认)。
-sync:在统计使用信息之前调用sync命令。
-P:--portability,使用POSIX格式显示,参考示例6。
-t:--type=TYPE,只显示指定类型的文件系统,参考示例7。
-T:--print-type,显示文件系统类型,参考示例8。
-x:--exclude-type=TYPE,不显示指定类型的文件系统。
--help:显示帮助信息。
--version:显示版本信息。
6.5.7.2 实操案例
示例1:查看包含给定文件磁盘空间使用情况
[root@localhost ~]# df /home #指定一个文件夹,查看该文件夹所在磁盘的使用情况
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 16036224 2749160 12459316 19% /[root@localhost ~]# df /bin/ls #指定一个文件
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 16036224 2749160 12459316 19% /[root@localhost ~]# df /bin/ls /home #指定多个文件或文件夹
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 16036224 2749160 12459316 19% /
/dev/sda2 16036224 2749160 12459316 19% /[root@localhost ~]# df /bin/ls /home /usr/ #指定多个文件或文件夹
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 16036224 2749160 12459316 19% /
/dev/sda2 16036224 2749160 12459316 19% /
/dev/sda2 16036224 2749160 12459316 19% /[root@localhost ~]# df # 默认情况
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 16036224 2750464 12458012 19% /
/dev/sda1 295561 16911 263390 7% /boot
tmpfs 1028272 0 1028272 0% /dev/shmFilesystem:代表该文件系统时哪个分区,所以列出的是设备名称。
1K-blocks:说明下面的数字单位是1KB,可利用-h或-m来改变单位大小,也可以用-B来设置。
Used:已经使用的空间大小。
Available:剩余的空间大小。
Use%:磁盘使用率。如果使用率在90%以上时,就需要注意了,避免磁盘容量不足出现系统问题,尤其是对于文件内容增加较快的情况(如/home、/var/spool/mail等)。
Mounted on:磁盘挂载的目录,即该磁盘挂载到了哪个目录下面。
示例2:查看所有文件系统
[root@localhost ~]# df -a #包括虚拟文件系统
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 16036224 2749160 12459316 19% /
proc 0 0 0 - /proc
sysfs 0 0 0 - /sys
devpts 0 0 0 - /dev/pts
/dev/sda1 295561 16911 263390 7% /boot
tmpfs 1028272 0 1028272 0% /dev/shm
none 0 0 0 - /proc/sys/fs/binfmt_misc
none 0 0 0 - /proc/fs/vmblock/mountPoint
sunrpc 0 0 0 - /var/lib/nfs/rpc_pipefs[root@localhost ~]# df # 默认
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 16036224 2749160 12459316 19% /
/dev/sda1 295561 16911 263390 7% /boot
tmpfs 1028272 0 1028272 0% /dev/shm说明:系统里面存在很多特殊的文件系统,这些比较特殊的文件系统几乎都是在内存当中,(如/proc挂载点),所以,这些特殊文件系统都不会占据硬盘空间。
示例3:指定单位大小
[root@localhost ~]# df -B 1k #1k为单位
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 16036224 2749160 12459316 19% /
/dev/sda1 295561 16911 263390 7% /boot
tmpfs 1028272 0 1028272 0% /dev/shm[root@localhost ~]# df --block-size 1m #1M为单位
Filesystem 1M-blocks Used Available Use% Mounted on
/dev/sda2 15661 2685 12168 19% /
/dev/sda1 289 17 258 7% /boot
tmpfs 1005 0 1005 0% /dev/shm
示例4:以人们易读的方式显示
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 16G 2.7G 12G 19% /
/dev/sda1 289M 17M 258M 7% /boot
tmpfs 1005M 0 1005M 0% /dev/shm
示例7:只显示类型为ext3的文件系统
[root@localhost ~]# df -t ext3
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 16036224 2750464 12458012 19% /
/dev/sda1 295561 16911 263390 7% /boot
示例8:显示出每个文件系统的类型
[root@localhost ~]# df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/sda2 ext3 16036224 2750464 12458012 19% /
/dev/sda1 ext3 295561 16911 263390 7% /boot
tmpfs tmpfs 1028272 0 1028272 0% /dev/shm
6.5.8 du指令
6.5.8.1 基本语法:
du [选项] [文件]
功能描述:显示每个文件和目录的磁盘使用空间。
命令参数:
-a或-all 显示目录中个别文件的大小。 -b或-bytes 显示目录或文件大小时,以byte为单位。 -c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。 -k或--kilobytes 以KB(1024bytes)为单位输出。-m或--megabytes 以MB为单位输出。 -s或--summarize 仅显示总计,只列出最后加总的值。-h或--human-readable 以K,M,G为单位,提高信息的可读性。-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。 -L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。 -S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。 -X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。 --exclude=<目录或文件> 略过指定的目录或文件。 -D或--dereference-args 显示指定符号链接的源文件大小。 -H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。 -l或--count-links 重复计算硬件链接的文件。
6.5.8.2 实操案例
实例1:显示目录或者文件所占空间
[root@localhost test]# du
608 ./test6
308 ./test4
4 ./scf/lib
4 ./scf/service/deploy/product
4 ./scf/service/deploy/info
12 ./scf/service/deploy
16 ./scf/service
4 ./scf/doc
4 ./scf/bin
32 ./scf
8 ./test3
1288 .
[root@localhost test]#
说明:
只显示当前目录下面的子目录的目录大小和当前目录的总的大小,最下面的1288为当前目录的总大小
实例2:显示指定文件所占空间
[root@localhost test]# du log2012.log
300 log2012.log
[root@localhost test]#
实例3:查看指定目录的所占空间
[root@localhost test]# du scf
4 scf/lib
4 scf/service/deploy/product
4 scf/service/deploy/info
12 scf/service/deploy
16 scf/service
4 scf/doc
4 scf/bin
32 scf
[root@localhost test]#
实例4:显示多个文件所占空间
[root@localhost test]# du log30.tar.gz log31.tar.gz
4 log30.tar.gz
4 log31.tar.gz
[root@localhost test]#
实例5:只显示总和的大小
[root@localhost test]# du -s
1288 .
[root@localhost test]# du -s scf
32 scf
[root@localhost test]# cd ..
[root@localhost soft]# du -s test
1288 test
[root@localhost soft]#
实例6:方便阅读的格式显示
[root@localhost soft]# du -h test
608K test/test6
308K test/test4
4.0K test/scf/lib
4.0K test/scf/service/deploy/product
4.0K test/scf/service/deploy/info
12K test/scf/service/deploy
16K test/scf/service
4.0K test/scf/doc
4.0K test/scf/bin
32K test/scf
8.0K test/test3
1.3M test
[root@localhost soft]#
实例7:文件和目录都显示
[root@localhost soft]# du -ah test
4.0K test/log31.tar.gz
4.0K test/test13.tar.gz
0 test/linklog.log
0 test/test6/log2014.log
300K test/test6/linklog.log
0 test/test6/log2015.log
608K test/test6
实例8:显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和
[root@localhost test]# du -c log30.tar.gz log31.tar.gz
4 log30.tar.gz
4 log31.tar.gz
8 总计
[root@localhost test]#
实例9:按照空间大小排序
[root@localhost test]# du|sort -nr|more
1288 .
608 ./test6
308 ./test4
32 ./scf
16 ./scf/service
12 ./scf/service/deploy
8 ./test3
4 ./scf/service/deploy/product
4 ./scf/service/deploy/info
4 ./scf/lib
4 ./scf/doc
4 ./scf/bin
[root@localhost test]#
实例10:输出当前目录下各个子目录所使用的空间
[root@localhost test]# du -h --max-depth=1
608K ./test6
308K ./test4
32K ./scf
8.0K ./test3
1.3M .
[root@localhost test]#
6.6 组管理指令
6.6.1 Linux组的基本介绍:
在linux中,每一个用户都至少属于一个组,用户不能独立于组存在,一个用户可以属于多个组。
在linux中,每一个文件或者目录也必须属于一个组,而且只能属于一个组,默认情况下,文件所有者所属的主组就是文件所属的组。文件或者目录通过组来控制哪些用户可以对它进行哪些操作,即文件或者目录的访问权限。
在文件或者目录看来,linux系统中所有的用户分为三类:
- 所有者:默认情况下,文件或者目录的所有者都是创建者,可以修改
- 同组用户:跟文件或者目录属于同一个组的用户
- 其它组用户:既不是文件或者目录的所有者,也不是同组用户
6.6.2 文件/目录的所有者
一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者,默认情况下所有者所在的组也即使文件所在的组。
6.6.2.1 查看文件所有者和所在组指令
6.6.2.1.1 基本语法:
ls -l
功能描述:查看文件所有者和所在组指令
ls –ahl 文件名
- (a-all,h-human,l-list)
6.6.2.1.2 实操案例:
6.6.2.2 修改文件所有者指令
6.6.2.2.1 基本语法:
chown 新的所有者 文件名或者目录名
chown 新的所有者:新的组 文件名或者目录名
功能说明:把文件所有者修改为指定的用户。
- -R 如果是目录则使其下所有子文件或目录递归生效
chown newowner:newgroup file :同时修改用户的所有者和所有组
chown zhangsan:dev test2:只会修改test2文件夹的所有者和所在组,并不会修改test2文件夹下的文件的所有者和所在组
chown - R zhangsan:dev test2: 递归修改目录的所有者和所在的组,包括test2文件夹下的文件的所有者和所在组
6.6.2.2.2 实操案例:
6.6.2.3 修改文件所在组指令
6.6.2.3.1 基本语法:
chgrp 新的组 文件名或者目录名
功能描述:把文件所在组改为指定组
- -R 如果是目录则使其下所有子文件或目录递归生效
chgrp dev t2.txt:修改t2.txt文件所在的组为dev组
chgrp -R dev test3:修改test3文件夹所在的组为dev组,包括test3文件夹下的文件
6.6.2.3.2 实操案例:
6.7 权限管理指令
6.7.1 权限基本介绍
这里所说的权限都是文件和目录的权限。在Linux中,每一个文件和目录都有自己的访问权限,通过文件列表可以查看到。
准备工作:
-
一个用户至少属于一个组,也可以属于多个组;
-
一个文件或者目录也必须属于一个用户,并且只能属于一个组;
-
在一个文件或者目录看来,linux系统中所有的用户可以分为三类:
- 所有者
- 同组用户
- 其它组用户
文件或者目录的三种权限:
- 在linux中,任何文件或者目录都有三种权限:读(Read)、写(Write)、执行(Execute)
- 对于文件而言:
读:可以读取、查看文件的内容, 比如:cat、more、less、head、tail等。
写:可以修改文件的内容,比如:vi或者vim等
执行:如果该文件是可执行文件(.sh),可以直接运行,比如:./xxx.sh。 - 对于目录而言:
读:可以读取、查看目录下边的内容,比如:ls等
写:可以修改目录中的内容,创建子目录、删除子目录、创建文件、删除文件、重名文件或者目录
执行:可以进入该目录, 比如:cd等。
- 对于文件而言:
文件或者目录的权限控制:
在linux中,任何一个文件或者目录都有三部分权限:所有者权限、同组用户权限、其它组用户权限。
- 第一部分权限:所有者权限,文件或者目录的所有者对该文件所拥有的权限,使用r、w、x分表表示读、写、执行的权限。比- -
- 如:rwx:拥有读写执行的权限,r-x:拥有读和执行的权限,r–:只拥有读的权限,—:没有任何权限。
- 第二部分权限:同组用户权限,文件或者目录的同组用户对该文件所拥有的权限,使用r、w、x分表表示读、写、执行的权限。
- 第三部分权限:其它组用户权限,文件或者目录的其它组用户对该文件所拥有的权限,使用r、w、x分表表示读、写、执行的权限。
查看文件或者目录的权限
- ls -aul
6.7.2 RWX权限详解
rwx作用到文件
-
[ r ]代表可读(read):
- 可以读取,查看
-
[ w ]代表可写(write):
- 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
-
[ x ]代表可执行(execute):
- 可以被执行
rwx作用到目录
-
[ r ]代表可读(read): 可以读取,ls查看目录内容
-
[ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录
-
[ x ]代表可执行(execute):可以进入该目录
rwx用数字表示
r=4(即2²),w=2(即2¹),x=1(即2º)
6.7.3 权限管理指令
6.7.3.1 修改文件/目录权限的指令chmod
第一种方式:通过r、w、x变更变更权限
- 用r、w、x分辨表示读、写、执行的权限,
- 用u、g、o、a分别表示给所有者、同组用户、其它组用户、所有用户修改权限
- 用+、-、=分别表示给指定的用户增加、减少、设置对应的权限
chmod g-w,o+w t5.txt
chmod g=rwx t5.txt
chmod a-r t5.txt
第二种方式:通过数字变更权限
-
每一个权限可以用一个数字来表示:
- r、w、x
4、2、1
2^2 2^1 2^0
- r、w、x
-
每一个文件或者目录都有三部分权限,每一部分权限都可以用一组数据之和来表示,三部分权限就是一组三个数据序列:
-
rw- r-x r-x
6 5 5 rwx r-x -wx
7 5 3 rwx rwx rwx
7 7 7
chmod 777 t5.txt:同时设置所有者、同组用户,其它用户的权限均为rwx
-
6.7.3.2 实操案例:
7 网络配置
7.1 查看和配置网络
7.1.1 查看虚拟网络编辑器
7.1.2 查看IP和网关
7.1.3 查看windows下虚拟网卡VMnet8的IP地址:cmd下ipconfig
7.2 配置Linux网络
修改文件:/etc/sysconfig/network-scripts/ifcfg-eth33
重启网络服务(service network restart)或者重启linux(reboot)即可。
Linux终端查看配置后的IP地址:
Linux终端ping外网:
Linux终端ping windows:
windows ping Linux:
都是通的。至此,Linux静态IP设置完成。
8 进程管理
8.1 进程介绍
在Linux中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。每一个进程,都会对应一个父进程。
进程有两种运行方式:前台和后台。前台方式是目前用户可以在前台操作的,后台方式是实际在运行,但用户在前台看不见。
一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才结束。
8.2 查看系统运行的进程
8.2.1 基本语法:
ps [参数]
参数说明:
ps:只会显示应用进程
ps –a:显示当前终端下的所有进程信息
ps –u:以用户的格式显示进程信息
ps –x:显示后台进程运行的参数
ps –e:显示所有进程信息
ps –f:以全格式显示进程信息
ps -ef:以全格式的形式显示所有进程,如:ps -ef|grep mysql,用于查看linux系统中某一些软件或者应用是否处于启动状态
结果说明:
•USER:用户名称
•PID:进程号
•%CPU:进程占用CPU的百分比
•%MEM:进程占用物理内存的百分比
•VSZ:进程占用的虚拟内存大小(单位:KB)
•RSS:进程占用的物理内存大小(单位:KB)
•TT:终端名称,缩写.
•STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
•STARTED:进程的启动时间
•TIME:CPU时间,即进程使用CPU的总时间
•COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
•PPID 父进程的ID
•C CPU使用的资源百分比
•PRI指进程的执行优先权(Priority的简写),其值越小越早被执行
•SZ 使用掉的内存大小
8.2.2 实操案例:
根据进程id杀死指定进程:kill -9 进程id
8.3 终止进程
8.3.1 基本语法:
kill 选项 进程ID
killall 进程名称(支持通配符)
- 选项说明:
- -9:表示强迫进程立即停止。
8.3.2 实操案例:
8.4 服务管理
8.4.1 服务介绍
服务是支持Linux运行的一些必要程序,本质上也是进程,叫守护进程。守护进程通常默默地运行在后台,为应用程序提供必要支撑,比如sshd(支持远程连接的进程)、防火墙等。
8.4.2 服务管理指令
8.4.2.1 基本语法:
systemctl [start|stop|restart|reload|status|enable] 服务名称
CentOS7之前,使用命令:【service 服务名称 [start、stop、restart、reload、status、enable]】
功能描述:开启、关闭、重启、重新加载、查看服务状态、开机启动
8.4.2.2 实操案例:
8.4.3 查看网路服务(了解)
8.4.3.1 netstat命令
netstat命令查看系统网络服务情况
8.4.3.1.1 基本语法:
netstat 选项
- 选项说明:
- -an 按一定顺序排列输出
- -p 显示哪个进程在调用
8.4.3.1.2 实操案例:
8.4.3.2 ping命令
8.4.3.2.1 基本语法:
ping 选项 目标主机
功能描述:是一种网络检测工具,它主要是用检测远程主机是否正常,或是两部主机间的介质是否为断、网线是否脱落或网卡故障。
8.4.3.2.2 实操案例:
8.4.3.3 curl命令(了解)
8.4.3.3.1 基本语法:
curl 选项 url
功能描述:用来发送HTTP请求。
-
-X参数:指定请求方式
-
-v参数:显示响应结果
-
-u参数:携带用户名/密码
-
-H参数:携带请求消息头信息
8.4.3.3.2 实操案例
9 Linux软件包管理
9.1 RPM包的管理(了解)
9.1.1 RPM介绍
一种用于linux的软件包的打包及安装工具,它包含在某些Linux分发版中。它操作的软件包都是.rpm结尾。RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。Linux的分发版本都有采用(suse,redhat, centos等等),可以算是公认的行业标准了。
9.1.2 RPM包的查询指令
9.1.2.1 基本语法:
rpm –qa :查看当前系统中已经安装的rpm软件包(用rpm方式安装的软件)
rpm –qa|more:分页查询所安装的所有软件包
rmp –qa|grep firefox:过滤查询安装的指定软件包
9.1.2.2 实操案例:
9.1.3 RPM包的卸载指令
9.1.3.1 基本语法:
rpm –e [选项] 软件包名称
- 选项说明:
- –nodeps 表示强制删除,用于被删除的软件包有依赖的情况
9.1.3.2 实操案例:
9.1.4 RPM包的安装指令
9.1.4.1 基本语法:
rpm 选项 RPM包全路径名
- 选项说明:
-
-i=install 安装
-
-v=verbose 提示
-
-h=hash 进度条
-
rpm -ivh xxx.rpm :使用rpm安装xxx软件
9.1.4.2 实操案例:
第一步:在虚拟机上挂载centos的iso文件
第二步:在目录/run/media/root/CentOS 7 x86_64/Packages下找到firefox安装包:
第三步:拷贝安装包到/opt目录下
第三步:安装firefox
9.2 YUM包的管理
9.2.1 YUM介绍
Yum 是一个Shell前端软件包管理器。是一种基于RPM的软件包管理工具,能够从指定的服务器(在公网上)自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。(注:rpm安装包须要手动先安装被依赖的rpm包)
注意:使用YUM的前提是可以连接外网。
9.2.2 YUM包的查询指令
9.2.2.1 基本语法:
yum list [installed] | grep xx
功能描述:查询YUM服务器上的 [已经安装到本地的] 软件包
yum list installed:查询YUM服务器上的 [已经安装到本地的] 软件包
yum list|grep firefox:查询YUM服务器上的firefox软件包
9.2.2.2 实操案例:
9.2.3 YUM包的安装指令:
9.2.3.1 基本语法:
yum install 包名
9.2.3.2 实操案例:
YUM包的卸载:yum remove firefox.x86_64
10 搭建JAVAEE开发环境
10.1 安装JDK
第一步:先将软件通过xftp5 上传到/opt 下
第二步:解压缩到/opt目录下
第三步:配置环境变量的配置文件vim /etc/profile
JAVA_HOME=/opt/jdk1.8.0_121
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/lib:.
export JAVA_HOME PATH CLASSPATH
第四步:使配置文件生效
第五步:测试安装成功
第五步:在目录/home/zhangsan下编写HelloWorld.java编译并运行
10.2 安装tomcat
第一步:先将软件通过xftp5 上传到/opt 下
第二步:解压到/opt
第三步:启动tomcat
ps -ef|grep tomcat:查看Tomcat是否起来了
第四步:windows上访问tomcat
注意:从其它机器上访问需要关闭linux的防火墙。
10.3 安装mysql
第一步:查看是否已经安装了mariadb
检查linux是否安装了mariadb数据库,mariadb数据库是mysql的分支。是免费开源的。mariadb和msyql会有冲突。首先要检查安装了mariadb, 卸载掉。
检查命令:yum list installed | grep mariadb
- 卸载命令:yum –y remove xxxx
- *如果卸载不成功,需要去掉参数-y,手动确认卸载。
第二步:上传mysql安装包到/opt下
第三步:解压mysql安装包到目录/opt
第四步:修改解压后的根目录名
第五步:创建数据文件夹data
data文件夹是mysql用来存放数据库文件的,数据库的表数据都放在data目录。
默认没有data目录,可以手工创建data目录,在mysql-5.7.18文件夹目录下创建一个data文件夹。
第六步:创建用来执行mysqld命令的Linux用户
创建mysql用户,用来执行MySQL的命令mysqld ,此命令用来初始化msyql基础信息。可以使用其他用户,例如叫做 mydb.等,但不推荐。
第七步:初始化mysql
使用mysql的 mysqld 命令初始化数据库的基本信息。切换到mysql-5.7.18/bin目录下执行。
命令:./mysqld --initialize --user=mysql --datadir=/opt/mysql-5.7.18/data --basedir=/opt/mysql-5.7.18
参数说明:
–initialize 初始化mysql,创建mysql的root, 随机生成密码。记住密码,登录msyql使用。
–user执行msyqld 命令的linux用户名
–datadir : mysql数据文件的存放位置,目录位置参照本机的设置。
–basedir : msyql安装程序的目录,目录位置参照本机的设置。
该命令执行后,会生成一个临时的mysql数据库root用户的密码,请先拷贝出来记住,后续第一次登录mysql需要使用
密码:iGT#A:CfF7i(
第八步:启用安全功能
在服务器与客户机之间来回传输的所有数据进行加密。通过证书提供了身份验证机制,mysql命令程序mysql_ssl_rsa_setup提供了开启数据加密功能,生成数字证书。
在mysql-5.7.18/bin目录下执行命令:./mysql_ssl_rsa_setup --datadir=/opt/mysql-5.7.18/data
第九步:修改mysql安装目录权限
mysql安装后,需要更改mysql-5.7.18整个文件夹目录权限,更改所属的用户和组为之前创建的mysql用户及其所在组。在mysql安装目录的上级(/opt)位置,执行命令chown .
例如:chown -R mysql:mysql /opt/mysql-5.7.18/
chmod 777 /opt/mysql-5.7.18/
第十步:启动mysql
启动MySQL服务,mysql-5.7.18/bin目录下执行命令:./mysqld_safe &(其中&符号表示后台启动),输入命令后按Enter。
确认msyql是否启动,查看进程 ,使用ps -ef | grep mysql
第十一步:客户端登录mysql
登录进入mysql,mysql-5.7.18/bin目录下执行命令:./mysql -uroot -p
-
-u表示使用root用户登录系统,使用第7步生成的密码。
-
-p表示使用密码登录
第十步:修改root密码
第8步的root用户密码是临时密码,要修改才能使用。
执行sql语句 show databases; 第一次使用将会提示修改mysql的root用户密码:
修改mysql的密码,命令语法:alter user ‘用户名’@‘主机域名或ip’ identified by ‘新密码’
例如:alter user ‘root’@‘localhost’ identified by ‘yf123’
第十一步:授权远程访问
授权远程访问,在没有授权之前只能在本机访问msyql,远程授权就是让其他计算机通过网络访问mysql(这样远程客户端才能访问)。
授权命令:grant
-
语法:
-
grant all privileges on *.* to root@'%' identified by 'yf123'
- 参数:
- 其中
*.*
的第一个*
表示所有数据库名,第二个*
表示所有的数据库表; - root@‘%’ 中的root表示用户名,%表示ip地址,%也可以指定具体的ip地址,比如root@localhost,root@192.168.235.130等。
- 其中
- 参数:
-
更新权限信息,执行flush刷新权限: flush privileges
关闭防火墙:systemctl stop firewalld
远程连接数据库:
第十二步:关闭mysql服务
mysql-5.7.18/bin目录下执行:./mysqladmin -uroot -p shutdown 输入密码关闭
查看mysql进程,已经没有mysqld_safe
第十三步:修改数据库编码
查看数据库编码:show variables where Variable_name like ‘%char%’
修改mysql的字符集:在mysql客户端执行如下命令
set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_database=utf8;
set character_set_results=utf8;
set character_set_server=utf8;
set character_set_system=utf8;
set collation_connection=utf8;
set collation_database=utf8;
set collation_server=utf8;
第十四步:Linux 设置MySQL开启自动启动
- 将服务文件拷贝到init.d下,并重命名为mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
- 赋予可执行权限
chmod +x /etc/init.d/mysqld
- 添加服务
chkconfig --add mysqld #添加开机自动启动mysqld服务
chkconfig --del mysql #删除开机自动启动mysqld服务
- 显示服务列表
chkconfig --list #显示开机可以自动启动的服务
看到3、4、5状态为开或者为 on 则表示成功。如果是 关或者 off 则执行一下
chkconfig --level 345 mysqld on
- 重启电脑
reboot