一、管道符
- 符号: |
- 作用:是用于实现将两个或者多个命令链接起来,然后将前面命令的执行结果传递给后面的命令 【将前面命令的执行结果传递给后面的命令进行二次处理】
案例1
# 查看etc下的所有的文件
[root@localhost ~]# ls-al / etc /
# 统计etc下一共有多少个文件
[root@localhost ~]# ls-al /etc/ |wc-l
# 查看/etc/passwd中的全部的内容
[root@localhost ~]# cat /etc/passwd/
# 统计/etc/passwd中一共有多少行
[root@localhost ~]#cat /etc/passwd/ |wc- l 或 [root@localhost ~]#wc-l /etc/passwd
# 查看当前登录系统的用户数
[root@localhost ~]# who | wc-l
案例2:结合grep
#1 获取ip地址的行
[root@localhost ~]# ifconfig ens33 |grep "netmask"
#2 显示passwd中以root为开头的行
方法一:[root@localhost ~]#grep "^root" /etc/passwd
方法二:[root@localhost ~]#cat /etc/passwd/ |grep"^root"
free命令
作用:显示当前系统的内存使用和剩余情况
案例3:获取内存信息的行
[root@localhost ~]#free -m |grep "Mem"
ps命令
作用:显示当前系统的进程信息
案例4:显示ssh进程的信息
[root@localhost ~]# ps aux |grep "ssh"
案例5:显示文件的第3-5行的内容
#准备测试文件
[root@localhost ~]# vim t.txt
a1
a2
a3
a4
a5
a6
a7
答案1:[root@localhost ~]#cat t.txt | head - n5|tail - n3
答案2:[root@localhost ~]#cat t.txt | tail-n5 |head-n3
二、重定向
输出的结果有两种情况
- 正确结果输出
- 错误结果输出
标准输出
- 针对正确的结果的输出 执行命令的时候,输出结果是在屏幕
- 标准输出是默认的输出方式
- 标准错误输出 针对错误的结果的输出 默认也是输出到屏幕
什么是输出重定向?
- 将命令的输出结果不再显示到屏幕,而是到一个文件中或者直接屏蔽掉
重定向符号:
> 将命令的输出结果保存到一个文件中【如果文件中原来有内容,此时会将原有的内容覆盖】
>> 将命令的输出结果保存到一个文件中【如果文件中原来有内容,此时会在原有的内容后追加】
屏蔽命令的输出
特殊的文件:黑洞文件 /dev/null
屏蔽所有的正确和错误信息:&>/dev/null
#案例:
查看tmq和home下的文件,将正确和错误信息都屏蔽掉【故意写错一个文件名tmq】
[root@localhost ~]# ls /tmq/ /home/ & > / dev / null
三、awk命令
1、背景
从命令的执行结果中截取需要的字段部分
2、命令格式
awk-F "分隔符" '{print $段号}'
3、案例
#1 获取ens33的IP地址
[root@localhost ~]# ifconfig ens33 | grep netmask | awk -F " " '{print $2}'
#2 获取/etc/passwd中第5个用户的ID号
[root@localhost ~]# cat /etc/passwd | head -n5 | tail -n1 | awk -F ":" '{print $3}'
#3 获取系统剩余内存大小
[root@localhost ~]# free -m | grep Mem | awk -F " " '{print $4}'
/etc/passwd文件的含义:
这个文件中记录了系统中的用户的用户名和用户id等信息
这个文件中的内容是由:进行分割的,其中第三段是id
四、linux安装软件
1、软件源
- Linux的系统的软件安装包,通常都是统一存放
- 存放软件包的位置软件源
软件源有两类
第一类:光盘中的软件源
第二类:网络原件源:
阿里云的源
清华大学的源
华为的源
中科大源
网易源
2、配置使用光盘源
1)在虚拟机加载光盘
2)修改配置文件
配置文件的在哪里?
/etc/yum.repos.d
配置文件叫什么?
配置文件的后缀是固定的,是rep
3、安装软件命令
1)安装软件
yum install 软件名
2)卸载软件
yum remove 软件名
3)检查软件是否安装了
rpm -q 软件名
案例:安装软件httpd
#1:检查httpd是否安装了
[root@localhost ~]# rpm -q httpd
未安装软件包 httpd
#2 安装httpd
[root@localhost ~]# yum install httpd
#3:检查httpd是否安装了
[root@localhost ~]# rpm -q httpd httpd-2.4.6-95.el7.centos.x86_64
#4:卸载httpd
[root@localhost ~]# yum remove httpd
五、shell脚本编程
1、简介
什么是脚本
- 将要执行的Linux命令保存到一个文件中,然后通过执行这个文件来批量自动执行命令
作用
- 批量执行操作
- 重复执行操作
编写shell脚本的基本流程
#第一步:用vi创建一个后缀是.sh的文件
[root@localhost ~]# vi demo1.sh#第二步:在sh文件中写入内容
内容格式
脚本的第一行是固定的 #!/bin/bash
从脚本的第二行开始才是脚本的正文#!/bin/bash
#创建用户tom3
useradd tom3#安装软件zsh
yum install zsh -y#检查httpd是否安装
rpm -q httpd#在home下创建文件abc.def
touch /home/abc.def#删除tmp下的所有的文件
rm -rf /tmp/*#第三步:保存退出
#第四步:为脚本设置执行权限
[root@localhost ~]# chmod +x demo1.sh#第五步:执行脚本
方法1:bash 脚本名
[root@localhost ~]# bash demo1.sh
方法2:./脚本名
[root@localhost ~]# ./demo1.sh
2、变量
定义变量:变量名 = 变量值
获取变量:$变量名
echo命令
作用:用于打印输出一个信息到屏蔽
格式:echo "输入的信息"
命令替换
将命令替换成命令的执行结果
案例:
创建文件,文件名是当前系统时间
[root@localhost ~]# touch `date +%T`.txt
案例:
# 定义变量保存当前系统的IP
[root@localhost ~]# ip=`ifconfig ens33 | grep netmask | awk -F " " '{print $2}'`
[root@localhost ~]# echo $ip
192.168.31.101# 定义变量保存当前系统的剩余内存大小
[root@localhost ~]# freeMen=`free -m | grep Mem | awk -F " " '{print $4}'`ab:c: d::e::: f :g
-F ":" '{print $5}'
-F " " '{print $3}'