Linux学习笔记及常用运维命令
本篇笔记是很早之前在b站看尚硅谷视频学习Linux时做的笔记以及后续常用的一些命令总结,在这里进行记录方便后续随时查看
一、Linux介绍
开源、免费的操作系统
优势:稳定性、安全性、多并发已得到业界认可。
创始人:林纳斯 Linus Torvalds
Linux内核→centOS(发行版)
unix→linux
二、centorOS终端的使用
查询Linux网络信息(ip、出口ip)
查看Linux ip地址命令:
ifconfig
# eth0 (第一块网卡)
联网:
在centerOS中的Firefox可以联网,可以和外部的IP联通
动态分配

查询Linux出口ip
这里机器都需要可以访问到外网情况下,否则的话获取出口IP就没有什么意义了。
curl cip.cc
可以看到该请求方式获取到的信息非常详细,包括出口ip、包括运营商、地址等信息
IP : 111.xxx.xxx.89
地址 : 中国 北京
运营商 : 联通数据二 : 北京市 | 联通数据三 : 中国北京北京 | 联通URL : http://www.cip.cc/111.xxx.xxx.89
直接返回出口ip:
curl ifconfig.io
三、Linux文件系统目录结构
Liniux 只有一个根目录 “/”,然后在此目录下再创建其它文件
在Linux世界里,一切皆文件

- /bin:BInary缩写,这个目录存放着最经常使用的命令
- /sbin:s→super user,这里存放着系统管理员使用的系统管理程序
- /home:存放普通用户的主目录,在linux中每个用户都有一个自己的目录,一般该目录名儿是以用户的账号来命名的
- /root:该目录为系统管理员,也称作超级权限者的用户主目录
- /lib:系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都要用到这些共享库
- /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存了一些文件
- /etc:所有的系统管理所需要的配置文件和子目录
- /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于Windows下的program flies目录
- /boot:存放的是启动Linux时使用的一些核心文件,包括一些连接文件和镜像文件
- /proc:这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息
- /srv:serve缩写,该目录存放一些服务启动需要提取的数据
- /sys:这是linux2.6内核的一个很大变化,该目录下安装了2.6内核中新出现的一个文件系统
- /tmp:这个目录是用来存放一些临时文件的
- /dev:类似于Windows的设备管理器,把所有的硬件用文件的形式存储
- /media:linux系统会自动识别一些设备,例如U盘光驱等等,当识别后,linux会把这些识别的设备挂载到这个目录下
- /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储·挂载到/mnt/上,然后进入该目录就可以查看里面的内容了
- /opt: 这是给主机额外安装软件所摆放的目录,如安装Oracle数据库,就可以安装到该目录下。默认为空
- /usr/local:这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序
- /var:这个 目录中存放着不断扩充着的东西,习惯将经常被修改的目录,放在这个目录下。包括各种日志文件
- /selinux:security-enhanced linux SElinux是一种安全子系统,它能控制程序只能访问特定文件
- /www:存放服务器网站相关的资源,环境,网站的项目
- /proc /srv /sys 不要动,动了系统可能会出现问题
总结:
1、linux的目录中有且只有一个根目录
2、linux的各个目录存放的内容是规划好的,不要乱放
3、linux是以文件的形式管理我们的设备,因此linux系统,一切皆为文件
4、linux的各个文件目录下存放什么内容,必须要有所认识
5、学习后,脑海中要形成一颗linux目录树
四、远程登录

理论上可以有65535个端口,端口开的越多,安全性越差。
五、Vi和Vim 编辑器
所有的linux系统都会内建vi文本编辑器
vim具有程序编辑的能力,可以看作是vi的增强版本,可以自动的以字体颜色辨别语法的正确性,方便程序设计。
vi和vim的三种常见模式
正常模式、插入(编辑)模式、命令行模式
- 正常模式:
在正常模式下,我们可以使用快捷键。以vim打开一个文档就进入了正常模式(默认的模式),可以使用上下左右按键来移动光标,可以使用删除字符或删除整行来处理文件内容,也可以使用复制粘贴来处理文件数据。(vim打开文件→vim ok.java) - 插入\编辑模式:
按下i、o、a、r等任何一个大或小写字母都可以进入该模式,一般按i。 - 命令行模式:
在这个模式中可以提供你相关指令,完成读取、存盘、替换、离开vim、显示行号等的动作都是在此模式中完的。
(ll显示当前文件)
vi和vim的相互转换

- :wq 写入并退出
- :q 退出(打开看了一眼并未修改)
- :q !强制退出(打开做了修改但不想保存)
VIM基本使用:新建或者编辑文件,按i进入编辑模式,编写内容,编写完成后退出编辑模式,esc,退出之后进入底线命令模式:wq保存退出!
快捷键使用案例:
- 拷贝 当前行 yy, 拷贝当前行向下的五行 5yy 并粘贴 p
- 删除当前行dd 删除当前行向下的5行 5dd
- 在文件中查找某个单词,(先进入命令行) /hello 回车 → 查找文件中的hello,输入n就是查找下一个
- 设置文件的行号:set nu 取消文件的行号 :set nonu
- 使用快捷键到文档的最末行 G 或首行 gg。(在正常模式下执行)
- 在文件中输入hello 再撤销, 在正常模式下输入u撤销
- 编辑 /etc/profile文件,并将光标移动到第20行 shift+g
第一步::set nu 显示行号
第二步:输入 20 这个数
第三步:shift+g
六、关机&重启命令
基本介绍:
- shutdown
- shutdown -h now: 表示立即关机
- shutdown -h 1 :表示1分钟后关机
- shutdown -r now :立即重启
- halt
直接使用,效果等价于关机 - reboot
就是重启系统 - sync 把内存的数据同步到磁盘
注意:当我们关机或者重启时,都应该执行一下sync指令,把内存的数据写入磁盘,防止数据丢失。
七、用户管理
用户登录和注销
- 登录时尽量少用root账号登录,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用"su - 用户名" 命令来切换成系统管理员身份
- 在提示符下输入logout即可注销用户
使用细节:1、logout指令在图形运行级别无效,在运行级别3下有效
创建用户指定密码
基本介绍:
- Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
- Linux的用户需要至少要属于一个组
用户管理规则:

添加用户:
基本语法
- useradd [选项] 用户名 (中括号内容可以不写)
Ex: useradd xiaoming
细节说明:当创建用户成功后,会自动的创建和用户同名的home目录,也可以通过useradd -d指定目录。 - 新的用户名,给新创建的用户指定home目录。
Ex:useradd -d /home/dog xq - 指定/修改密码
passwd 用户名 - 删除用户
userdel 用户名
Ex:删除用户xm,但是要保留home目录 - userdel xm
删除用户xq以及用户主目录 - userdel -r xq
(删除用户时,一般都要保留home目录)
查询用户信息:
基本语法: id 用户名
- 切换用户
在操作Linux中,如果当前用户的权限不够,可以通过su-指令,切换到高权限用户,比如root
基本语法:su - 切换用户名
细节说明:
从权限高的用户切换到权限低的用户,不需要输入密码,反之需要
当需要返回到原来用户时,使用exit指令 - 查看当前用户/登录用户
基本语法:
whoami/who am i
- 用户组
- 介绍:类似于角色,系统可以对有共性的多个用户进行统一的管理
- 新增组:基本语法:groupadd 组名
- 删除组:基本语法:groupdel 组名
- 增加用户时直接加上组:useradd -g 用户组 用户名
- 修改用户组
基本语法: usermod -g 用户组 用户名 - 用户和组的相关文件
/etc/passwd 文件 - 用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell
/etc/shadow 文件 - 口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志 - /etc/group 文件
组(group)的配置文件,记录Linux包含的组的信息
每行含义:组名:口令:组标识号:组内用户列表
八、运行级别和找回root密码
运行级别说明:
0:关机
1:单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用运行级别是3和5,要修改默认的运行级别可改文件/etc/inittab的id:5:initdefault:这一行中的数字
命令:init[012356]

如何找回root密码
开机 -> 在引导时 按回车键 -> 看到一个界面输入e -> 看到一个新界面,选中第二行(编辑内核)再输入 e -> 在这行最后输入 1,再按 回车键 -> 再次输入b,这时就会进入到单用户模式。
这时,我们就进入到单用户模式,使用passwd指令来修改root密码
九、实用指令
帮助指令
- man 获得帮助信息
基本语法:man命令或配置文件 - help 指令
基本语法:help命令(功能描述:获得shell内置命令的帮助信息) - pwd ls cd
- pwd 功能描述:显示当前工作目录的绝对路径
- ls [选项] [目录或是文件]
常用选项
-a:显示当前目录所有的文件和目录,包括隐藏的
-l:以列表的方式显示信息
cd [参数] 切换到指定目录
常用参数
绝对路径和相对路径
cd~或者cd : 回到自己的home目录
cd… 回到当前目录的上一级目录
- mkdir rmdir
mkdir 用于创建目录
mkdir [选项] 要创建的目录
常用选项
-p : 创建多级目录
rmdir 删除空目录
rmdir -p 递归删除目录
rmdir [选项] 要删除的空目录
使用细节:rmdir 删除的是空目录,如果目录下有内容时无法删除
(如果需要删除非空目录,需要使用 rm-rf要删除的目录) - touch cp
- touch
touch 创建空文件
touch 文件名称 - cp
cp 拷贝文件到指定目录
cp [选项] source dest
常用选项
-r : 递归复制整个文件夹

- touch
细节:强制覆盖不提示的方法:\cp
- rm mv
- rm 删除文件或目录
rm [选项] 要删除的文件或目录
常用选项
-rf :递归删除整个文件夹
-f :强制删除不提示 - mv 移动文件与目录或重命名
mv oldNameFile newNameFile 重命名
mv /temp/moveFile/targetFolder 移动文件
- rm 删除文件或目录
- 重定向和追加
>和>>
> 输出重定向:会将原来的文件的内容覆盖
>> 不会覆盖原来文件的内容,而是追加到文件的尾部
ls -l > 文件 (列表的内容写入文件中(覆盖写))
ls -al >> 文件 (列表的内容追加到文件末尾)
cat 文件1 > 文件2 (将文件1的内容覆盖到文件2)
echo ”内容“>>文件 (将内容追加到文件末尾)
- echo head tail
- echo 输出内容到控制台
echo [选项] [输出内容] - head 用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容
head 文件 (查看文件头10行内容)
head -n 5 文件 (查看文件头5行内容,5可以是任意行数) - tail
tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容
tail 文件 (查看文件后10行内容)
tail -n 5 文件 (查看文件后5行内容,5可以是任意数)
tail - f 文件 (实时追踪该文档的所有更新,经常使用)
- echo 输出内容到控制台
- ln history
- ln 软链接也叫符号链接,类似于windows里的快捷方式,主要存放了链接其它文件的路径
ln -s [原文件或目录] [软链接名] (给原文件创建一个软链接)
细节:当我们使用pwd指令查看目录时,仍然看到的是软链接所在目录 - history 查看已经执行过的历史命令
history
- ln 软链接也叫符号链接,类似于windows里的快捷方式,主要存放了链接其它文件的路径
- date cal
- date 显示当前日期
date (显示当前时间)
date +%Y(显示当前年份)
date +%m (显示当前月份)
date +%d (显示当前是哪一天)
date ”+%Y-%m-%d %H:%M:%S“ (显示年月日时分秒) - cal 查看日历
cal [选项] (不加选项,显示本月日历)
- date 显示当前日期
- find locate grep 管道符|
-
find 将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端
find [搜索范围] [选项]
常用选项


-
locate 可以快速定位文件路径。
locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。
locate 搜索文件
特别说明:由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库 -
grep 管道符号|
grep 过滤查找,管道符 ”|“ 表示将前一个命令的处理结果输出传递给后面的命令处理
grep [选项] 查找内容 源文件
常用选项
选项功能-n显示匹配行及行号-i忽略字母大小写
-
- gzip gunzip
- gzip 用于压缩文件,gunzip用于解压
gzip 文件 (压缩文件,只能将文件压缩为*.gz文件) - gunzip 文件.gz (解压缩文件命令)
细节:当我们使用gzip对文件进行压缩后,不会保留原来的文件
- gzip 用于压缩文件,gunzip用于解压
- zip/unzip
- zip 用于压缩文件,unzip用于解压,这个在项目打包发布中很有用
zip [选项] XXX.zip 将要压缩的内容(压缩文件和目录的命令) - unzip [选项] XXX.zip (解压文件)
zip常用选项
-r 递归压缩,即压缩目录
unzip常用选项
-d<目录> 指定解压后文件的存放目录
- zip 用于压缩文件,unzip用于解压,这个在项目打包发布中很有用
- tar
tar指令 是打包指令,最后打包后的文件是.tar.gz的文件
tar [选项] XXX.tar.gz 打包的内容 (打包目录,压缩后的文件格式.tar.gz)
选项说明


- ifconfig 查看网络配置
- 文件内容查看命令总结
cat 由第一行开始显示文件内容,用来读文章,或者读取配置文件
tac 从最后一行开始显示,可以看出tac 是 cat 的倒着写
nl 显示的时候疏导输出行号
more 一页一页的显示文件内容,,带余下内容的(空格代表翻页,enter代表向下看一行,:f行号。
q 命令 退出。
查找字符串 /要查找的字符 n继续查找下一个,N向上查找)
less与more类似,但是比more更好的是,它可以往前翻页
head 只看头几行
tail 只看尾巴几行
十、组管理和权限管理
Linux组基本介绍
在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它1、组的概念
1)所有者
2)所在组
3)其它组
4)改变用户所在的组

2、组的创建
groupadd 组名
3、文件/目录所有者
一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者
4、查看文件的所有者
ls -ahl
5、修改文件所有者
chown 用户名 文件名
6、修改文件所在的组
chgrp 组名 文件名
7、其它组
除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组
8、改变用户所在组
在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的管理权限可以改变某个用户所在的组
改变用户所在组
usermod -g 组名 用户名
usermod -d 目录名 用户名 改变该用户登录的初始目录
权限(文件和目录)的基本介绍
ls -l 中显示的内容如下:
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
0-9位说明
1)第0位确定文件类型(d,-,l,c,b)
d:目录 -:普通文件 l:软链接 c:字符设备 键盘鼠标等 b:块文件 硬盘等
2)第1-3位确定所有者(该文件的所有者)拥有该文件的权限。–User
3)第4-6位确定所属组(同用户组的)拥有该文件的权限 --Group
4)第7-9位确定其他用户拥有该文件的权限 --Other
10个字符确定不同用户能对文件干什么
第一个字符代表文件类型
其余字符每3个一组
第一组rwx:文件拥有者的权限是读、写和执行
第二组rw-:与文件拥有者同一组的用户的权限是读、写但不能执行
第三组r–:不与文件拥有者同组的其他用户的权限是读 不能写和执行

rwx作用到文件
1)[r] 代表可读(read):可以读取,查看
2)[w] 代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件
3)[x] 代表可执行(execute):可以被执行
rwx作用到目录
1)[r] 代表可读(read):可以读取,ls查看目录内容
2)[w] 代表可写(write):可以修改,目录内创建+删除+重命名目录
3)[x] 代表可执行(execute):可以进入该目录
chmod修改文件9个属性
r:4 w:2 x:1
赋予study文件所有用户 所有权限
chmod 777 study
十一、定时任务调度
介绍
- crontab简介
crontab是Cron Table的缩写,是一个用于设置、维护或检查用户的定时任务的命令。通过编辑crontab文件,用户可以指定在特定时间或间隔内要执行的命令或脚本。 - crond简介
crond是Cron Daemon的缩写,是Linux下的一个守护进程,它负责周期性地检查并执行crontab中定义的定时任务。换句话说,crontab定义了任务,而crond则负责执行这些任务。
任务调度:是指系统在某个时间执行的特定的命令或程序
任务调度分类:
1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
2.个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份
crontab
crontab[选项]
常用选项

crond 任务调度
快速入门:
设置任务调度文件
/etc/crontab
设置个人任务调度
- 执行crontab -e命令
- 接着输入任务到调度文件
如:
*/1****ls -l/etc/>/tmp/to.txt
意思说每小时的每分钟执行ls -l/etc/>/tmp/to.txt命令
5个占位符的说明

特殊符号的说明

crond 相关指令
1)conrtab -r:终止任务调度
2)crontab -l:列出当前有哪些任务调度
3)service crond restart [重启任务调度]
十二、磁盘分区、挂载
分区
分区的方式
- mbr分区:
- 最多支持四个主分区
- 系统只能安装在主分区
- 扩展分区要占一个主分区
- 4.MBR最大只支持2TB,但拥有最好的兼容性
- gtp分区:
- 支持无限多个主分区(但操作系统可能限制,比如windows下最多128个分区)
- 最大支持18EB的大容量(EB=1024PB,PB=1024TB)
- windows7 64位以后支持gtp
- Linux分区:
1、Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分
2、Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得
硬盘说明:
1)linux硬盘分为IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘
2)对于IDE硬盘,驱动器标识符位“hdx~”,其中“hd”表明分区所在设备的类型,这里是指IDE硬盘。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区
3)对于SCSI硬盘则标识为“sdx~”,SCSI硬盘是用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样
十三、磁盘查询实用指令
-
df(列出文件系统整体的磁盘使用量) du(检查磁盘空间使用)
- 查询系统整体磁盘实用情况
df-h - 查询指定目录的磁盘占用情况
du-h /目录
- 查询系统整体磁盘实用情况
-
查询制动目录的磁盘占用情况,默认为当前目录
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件 -
–max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值
Ex:
1、统计/home文件夹下文件的个数
ls -l /home | grep "^-" | wc -l
- 统计/home文件夹下目录的个数
ls -l /home | grep "^d" | wc -l
Mac 或者Linux挂载我们的一些本地磁盘或者文件(比如u盘识别不出来的话)
使用 mount 命令
挂载 mount
卸载 umount
十四、网络配置原理和说明
Linux网络配置原理图(含虚拟机)
目前我们的网络配置采用的是NAT(Network Address Translation 网络地址转换协议)

十五、Linux进程管理
什么是进程?
1、在Linux中,每一个程序都是有自己的一个进程,每一个进程都有一个id号
2、每一个进程都会有一个父进程
3、进程可以有两种存在方式:前台!后台运行!
4、 一般的话服务都是后台运行的,基本的程序都是前台运行的
命令:
-
ps 查看当前系统中正在执行的各种进程的信息
-
ps-xx
-a 显示当前终端运行的所有进程信息
-u 以用户的信息显示进程
-x 显示后台运行进程的参数 -
ps -aux 查看所有的进程
ps -aux|grep mysql 查看mysql进程
grep 查找文件中符合条件的字符串 -
ps -ef :可以查看到父进程的信息
ps -ef|grep mysql -
进程树:
pstree -pu
-p 显示父id
-u 显示用户组
-
-
结束进程
kill -9 进程的id
十六、环境安装
jdk安装
- 下载JDK rpm。
- 安装java环境
检测当前系统是否存在java环境
java-version
如果有就需要卸载
# 检测jdk版本信息
rpm -qa|grep jdk
rpm -e --nodeps jdk_
卸载完毕后即可安装jdk
rpm -ivh rpm包
配置环境变量:
# 在文件最后面增加java的配置
vim /etc/profile JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
CLASSPATH=%JAVA_HOME%lib;%JAVA_HOME%/jre/lib
PATH=$JAVA_HOME/bin;$JAVA_HOME/jre/bin
export PATH CLASSPATH JAVA_HOME
让这个配置文件生效
source/etc/profile
alternatives命令——安装多个JDK并随意切换
使用alternatives --config java命令,这条命令本身是选择JDK版本,当然选择的时候,就能看到当前服务器可以使用的JDK版本,无论是系统自带还是人工安装的。每个JDK之前都有一个序号,选择不同的序号,就是选择对应的JDK。
alternatives --config java
# 若提示alternatives找不到则执行以下命令
update-alternatives --config java
# 将已安装的jdk装入alternatives列表中
alternatives --install /usr/bin/java java jdk路径/bin/java 编号
# 如:
alternatives --install /usr/bin/java java /home/software/jdk/jdk1.8.0_211/bin/java 3
Tomcat安装
ssm war 就需要放到tomcat中运行
- 下载tomcat
- 解压这个文件
tar -zxvf apache-tomcat-9.0.22.tar.gz
- 启动tomcat测试
./xxx.sh 脚本运行即可
#执行:
./startup.sh
#停止:
./shutdown.sh
防火墙开启端口
查看firewall服务状态
systemctl status firewalld
开启、重启、关闭、firewalld.service服务
# 开启
service firewalld start
# 重启
service firewalld restatr
# 关闭
service firewalld stop
查看防火墙规则
# 查看全部信息
firewall-cmd --list-all
# 只查看端口信息
firewall-cmd --list-ports
开启端口
# 开启端口命令
firewall-cmd --zone=public --add-port=8080/tcp --permanent
# 关闭端口命令
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
# 只允许指定ip访问该端口
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="172.12.7.80" port protocol="tcp" port="8081" accept' --permanent
# 重启防火墙
systemctl restart firewalld.service
命令含义:
–zone 作用域
–add-port=8080/tcp 添加端口,格式为:端口/通讯协议
– permanent 永久生效,没有此参数重启后失效
补充:rpm与yum的区别
区别:
rpm适用于所有环境,而yum要有本地yum源才可以使用。yum是上层管理工具,可以自动解决依赖性,而rpm是底层管理工具。
rpm
- 定义:
全称:Redhat Package Manager,是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装、查询、卸载升级等工作 - 缺点:
rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时,rpm无法解决软件包的依赖关系 - rpm包的命名规范:name-verison-release.os.arch.rpm
name:程序名称 version:程序版本号 release(发行号):用于标识rpm本身的发行号,与源程序的release号无关。
os:即说明rpm包支持的操作系统版本 arch:主机平台。如:i686、x86_64、noarch等
常用命令:
##安装
rpm -ivh name.rpm ##安装 ,-v显示详细信息,-h指定加密方式为hash,以"#"号显示安装进度-replacepkgs ##重新安装,替换原有的安装-ivh name.rpm --force ##强制安装,但不能忽略依赖性-ivh name.rpm --nodeps ##忽略依赖性并且强制安装
##卸载-e name ##卸载
##更新-U name ##升级软件,若未软件尚未安装,则安装软件-F name ##升级软件
##查找和显示-q name ##查看-qa ##查询系统中安装的全部软件名称-qa |grep name ##查询软件是否安装-qi name ##查看软件详细信息-qf filename ##查看filename属于哪个安装包-ql name ##查询软件包中所包含的文件-qp name.rpm ##查询软件包安装后的名字-qlp name.rpm ##查询软件安装后会生成什么文件
##检测 -Kv name.rpm ##检测软件包是否被篡改-qp name.rpm --scripts ##检测软件在安装或卸载过程中执行的动作
- rpm常用站点:
http://mirrors.sohu.com
http://rpmfind.net
http://rpm.pbone.net/
yum
- 定义:
Yum(Yellow dog Updater ,Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基于rpm包管理,
能够从指定的服务器自动下载rpm包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无需繁琐地一次次
下载、安装。 - yum客户端
yum的配置方式是基于分段配置的,主配置文件:/etc/yum.conf yum的片段配置:/etc/yum.repos.d/*.repo
主配置文件:配置了一个特殊的仓库,名称为main。main是为其他仓库提供默认的全局配置的。
配置文件说明:
[main] //main仓库。[ ]中括号表示一个仓库的定义。其中是仓库的名称。
cachedir=/var/cache/yum/$basearch/$releasever
//RPM包的缓存位置。
keepcache=0
//RPM包在本地是否需要长期保存。1表示yes,0表示no。
debuglevel=2
//日志级别。
logfile=/var/log/yum.log
//日志文件。
exactarch=1
//下载的RPM包是否需要与本地平台完全匹配。1表示yes,0表示no。
obsoletes=1 gpgcheck=1
//是否需要自动来源合法性检测。
plugins=1 installonly_limit=5 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bdistroverpkg=centos-release
CentOS-Base.repo配置文件:
[xxx]:仓库的名称,不能重复
name:对仓库的描述,该项必须有。
baseurl:配置仓库的路径。用于指定一个url。
mirrorlist:指向一个镜像列表,里面有多个url。
enabled:是否启用当前仓库。值为1或0,默认为1。
gpgcheck:是否需要gpg校验。值为1或0,默认为1。gpgkey:验证RPM包的密钥文件路径。该文件可以在远处服务器上,也可以在本地。
cost:代价,其本质是仓库优先级的配置。值越低,表示访问的代价越低,也即优先使用。注意:配置文件中的"="号的前后不能有空格。
[base]name=CentOS 6.4 x86_64baseurl=http://172.16.0.1/cobbler/ks_mirror/centos-6.4-x86_64/enabled=1gpgcheck=0
- 常用命令:
#1.安装
yum install 全部安装
yum install package1 仅安装指定的安装包package1
yum groupinsall group1 仅安装程序组group1#1.更新和升级
yum update 全部更新
yum update package1 仅更新指定程序包package1
yum check-update 检查可更新的程序
yum upgrade package1 仅升级指定程序包package1
yum groupupdate group1 升级程序组group1#3.查找和显示
yum info package1 显示安装包信息package1
yum list 显示所有已经安装和可以安装的程序包
yum list installed 显示已经安装的程序包
yum list package1 显示指定程序包安装情况package1
yum groupinfo group1 显示程序组group1信息yum search string 根据关键字string查找安装包#4.删除程序
yum remove package1 删除软件包page1
yum groupremove group1 删除程序组group1
yum deplist package1 查看程序package1依赖情况#5.清除缓存
yum clean packages 清除缓存目录下的软件包
yum clean headers 清除缓存目录下的 headers
yum clean oldheaders 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除缓存目录下的软件包及旧的headers
十七、jstat命令
jstat是JDK自带的一个轻量级小工具。全称 Java Machine statistics monitoring tool ,它位于java的bin目录下,主要利用JVM内的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对JVM的工具。
使用时,需加上查看进程的进程id
jstat -options pid
# 如:jstat -gc 709
十八、Linux运维常用命令总结
- 按文件大小排序
du -s ./* | sort -nr
- 查看目录下文件夹占用存储大小
du --max-depth=1 -h
- 根据jar名称查找jar位置
hello为jar包名
ll "/proc/$(jps -l |grep 'hello'|cut -d' ' -f1)/cwd"
- 根据端口号查pid/根据pid查端口号
netstat -tunlp | grep 端口号/pid
- 根据pid查应用名称
ps axu | grep pid
- 一行命令批量杀掉进程
ps -ef | grep flask | grep -v grep | awk '{print $2}' | xargs kill -9

- 批量删除文件
当目录下文件太多时,用rm删除文件会报错:
-bash: /bin/rm: Argument list too long 提示文件数目太多。
ls | xargs -n 10 rm -fr ls
输出所有的文件名(用空格分割) xargs就是将ls的输出,每10个为一组(以空格为分隔符),作为rm -rf的参数也就是说将所有文件名10个为一组,由rm -rf删除
- 查看ssh端口以及ssh白名单
cat /etc/ssh/sshd_config
cat /etc/hosts.allow
数据盘挂载实操
- lsblk 查看需要挂载的磁盘硬件名
- 查看 lsblk -f 是什么文件格式,如果是ext4直接走下一步,如果不是开始初始化
初始化
mkfs.ext4 /dev/vdb
执行完再执行 lsblk -f 查看
lsblk -f
- 创建需要挂载的目录 /data2
- 执行挂载命令 mount /dev/vdb /data2
- 永久挂载
如果希望系统重启后仍然保持挂载状态,需要将挂载信息写入 /etc/fstab 文件。编辑 /etc/fstab 文件并添加一行类似于以下内容的条目:
/dev/vdb /data2 ext4 defaults 0 0
