第一种:用rpm命令管理.rpm结尾的包
rpm包:依赖性强,不方便
示例:挂载光驱
# mount /dev/cdrom /media/
光驱是只读的,不可写
Linux中的软件针对的还是服务器领域比较多
1、源码包
2、二进制包(RPM包,系统默认包)
第二种:
通过yum命令进行管理
使用yum的前提,必须联接外网
rpm的包都来自于本地-Packages目录 ls | wc -l
yum命令特点:
自动解析依赖,更方便快捷
列出系统中所有已经安装好的rpm包 # yum list
列出筛选需要的包
# yum list | grep httpd-tools
其中末尾的仓库名前面如果有@符号,表示已经安装在系统上
1、安装命令: install
选项:-y 加上可以直接确认,不用手动确认
2、卸载命令:remove 也可以加上: -y选项
yum和rpm
安装和卸载包名后都不需要加.rpm
但是rpm命令安装卸载就需要加.rpm
yum包的来源都是来自互联网,所以需要连接外网
比如:mirror.163或者开源中国等镜像网站
了解yum仓库
首先下载来的包需要一个仓库(位置)
# ls /etc/yum.repos.d
在Linux中以.repo结尾的就是仓库配置文件,前面的名称可以必须.repo才能生效该文件,否则无法识别。
file://代表本地
gpgcheck代表是否开启校验
gpgkey代表是否开启公钥
1、ifconfig 查看网卡信息
2、top查看系统整体资源,包含内存,CPU
top命令是动态显示当前系统中的进程(CPU,内存),小写q退出
swap:交换分区,类似windows中的虚拟内存,当物理内存消耗殆尽时,就可以使用虚拟内存。
3、free 查看系统内存信息
# free -m 默认以M为单位
4、查看系统当前进程 # ps -ef | wc -l
其中 -ef 表示查看详细信息
1、概述
一方面,这是一个命令解释器
起到了用户与计算机之间的交互作用,将输入的命令转换成计算机能够识别的语言(010101.......),再将返回结果转换成能够识别的字符.
另一方面,是编程语言(解释执行的脚本语言,如PHP语言,简单理解,不需要再进行单独的编译,直接回车输出结果)
2、shell语法分为两大类
B shell
C shell
# cat /etc/shells,表示它们之间可以任意切换。
3、变量
shell中有四种变量
环境变量
位置变量
预定义变量
自定义变量
3.1环境变量
用户变量
.bash_profile这个是针对某个用户来配置的环境变量配置文件(私有,不共享)
/etc/profile是针对整个系统来说的
简单理解:一旦配置就是全局生效(公共的,共享的)
一般建议配置全局生效的环境变量
查看用户环境变量位置
# echo $PATH
3.2 位置变量
一般和脚本是联合使用的一种变量。将传递给脚本的参数保存在位置变量中。便于在脚本中引用这些参数。
系统设置了9个位置变量:$1,...$9
$0:代表脚本变量
3.3 编写脚本规范
#!bin/bash 这是所有脚本开头必须要写的一项。
作用:声明这是一个脚本
执行脚本方式:
# sh 1.sh sh加脚本名
示例
3.4 预定义变量
$0:脚本名称
$1:表示进程的PID号,每一个进程有一个ID号
$?:简单理解,表示一个判断
判断结果如果是0,则命令执行成功
如果是非0,是执行失败。
$*:整体显示出所有内容
$#:显示传递的参数的个数
$$:
$@:一般工作中,逐个读取
3.5 自定义变量
用户自己定义的变量,使用$来取值
语法格式:name=[value]
变量等号两边不能有空格。
变量名相同,值不同,取后一次定义的变量值会覆盖前一次的变量的值
4、逻辑符号
逻辑与:&&
示例: cmd1 && cmd2
# cat /etc/passwd && mkdir /tmp/hdfs
代表前面的命令执行成功了才会执行后面的命令
逻辑或:|
示例: cmd1 || cmd2
# cat /etc/passwddd || mkdir /tmp/hdfs1
只有当前面的命令执行失败的才会执行后面的命令
; :表示无逻辑关系,先后执行,没有任何的逻辑关系
注:/etc/init.d 存放系统脚本文件
Linux系统都是由脚本搭建起来的
在工作中可以命令连用,节省时间,提升效率
5、shell运算
$((....)) 表达式
$[....] 表达式
运算 expr 5 + 2
注意:运算符两边需要加上空格,否则相当于打印
自定义变量,运算时必须加上$符号,表示取值
6、内置测试判断
Test测试表达式
数值比较
-eq 等于则为zhen
-ne 不等于则为真
-gt 大于则为真
-ge 大于等于则为真
-lt 小于则为真
赋值字符串 加上双引号,否则报错 # a="I am"。其实加上单引号也可以。
示例:
# [ $a = $b];echo $?
a取出的是两个字符串,同样b也是两个字符串
涉及到字符串的就需要加上双引号
# [ "$a" = "$b"];echo $?
-o 或者,相当于 or
根据操作行为判断
示例: # ["$Yn"="Y" -o "$Yn"="y"];echo...
通过比较字符串,取变量,和真实字符进行比较,判断结果
-o 其中一个条件成立,则整个表达式成立
-a 所有条件都成立,则整个表达式才成立
文件测试判断
前提:文件必须存在,格式选项后必须跟上文件名b
-e 文件名 如果文件存在则为真 # [ -e /etc/passwd ];echo $?。目录也是类似的写法
-r 文件名 如果文件存在且可读则为真
-w 文件名 如果文件存在且可写则为真
-s 文件名 如果文件存在且至少有一个字符则为真
-d 文件名 如果文件存在且为目录则为真
-f 文件名 如果文件存在且为普通文件则为真
-c 文件名 如果文件存在且为字符型特殊文件则为真
-b 文件名 如果文件存在且为特殊文件则为真
权限测试 根据当前登录的用户进行判断
# [ -w test10 ];echo $?
如果不在当前目录下,需要加上绝对路径
# [ -r /home/senior02/test10 ];echo $?
and “和”判断
[ -e /etc/passwd -a 2 -eq 2 ];echo $?
or “或”判断
[ -e /etc/passwd -o 2 -eq -2 ];echo $?
7、时间命令
查看系统时间 date
修改时间命令 -s 示例:# date -s "2016-06-11 15:08:28"
获取时间格式 示例 # date "+%y%m%d%H%M%s"
年月日时分秒
时间回到7天前 # date -d '7 day ago' '+%y%m%d%H%M%s'
8、如果命令丢失,需要安装:
# which man 查找路径
# rpm -qf /usr/bin/man 查找安装
#!/bin/bash
其中的‘#!’是固定写法,
/bin/bash 声明的是它的环境
一般脚本的后缀不一定非要加上 .sh 但最好加上
脚本的核心内容其实就是一堆命令的集合
简单的脚本示例:
执行后:
注意: 执行脚本需要有x执行权限
4.1 for循环