常用命令
获取命令解析
# 以head命令做例子
head -help
man head
两个命令分别执行
echo "$name"; echo "$school"
head
默认获取文件前十行
head test.txt
获取指定前*行数内容
# 获取前两行
head -2 test.txt
head -n2 test.txt
head --line=2 test.txt
tail
默认获取文件后十行
tail test.txt
获取指定后*行数内容
# 获取后两行
tail -2 test.txt
tail -n2 test.txt
动态展示
tail -f test.txt
head和tail结合打印中间
| 管道符会将前面的结果当做后面的筛选目标
#先将前五行筛选出来,再从前五行的结果筛选出后两行,得到3行4行5行的数据
head -5 test.txt | tail -3
cut
取出指定文本列,默认以空格或tab进行分割
# 获取第一列内容
cut -f1 test.txt
# 获取第一列,第二列内容
cut -f1,2 test.txt
cut -f1-2 test.txt
# 两种组合获取124列
cut -f1-2,4 test.txt
使用指定分隔符提取
# 获取:前第一列内容
cut -d:":" -f1 test.txt
sort
对文本内容进行排序,默认以字符的ASCII码数值从小到大排序
# 第一列的第一个字符数值排序
sort test.txt
按照字符数字大小排序
sort -n test.txt
用某种符号切成多块区域,将某列按照数字大小排序
sort -t":" -k3 -n test.txt
uniq
去重 ,先有顺序才能够去重
sort -t":" -k3 -n test.txt | uniq
wc
计算文本数量
打印行数
wc -l test.txt
打印单词数
wc -w test.txt
echo
-e识别换行符
echo -e "$name \n111"
上一条命令的结果
echo $?
变量
定义变量
# 下方定义的都是本地变量
name=yue
# 看到什么,输出什么
name='yue'
# 调用变量时使用双引号
name_list="$name lixiaoming"
# 将linux命令结果赋值给变量$()
time=$(date)
echo $time
# 将linux命令结果赋值给变量``键盘esc下边那个
time=`date`
echo $time
全局变量(跨控制台则无法调用)
本地变量转换为全局变量
export $name
创建全局变量
export name
查看变量
echo $name
echo “$name”
数值运算
支持
+ - * / %
> = < >= <= !=
a=1
b=2
# 第一种
echo $((a+b))
echo $(($a+$b))
# 第二种
result=`expr $a + $b`
条件表达式
返回值
- 条件成立,返回0
- 条件不成立,返回1
文件表达式
一般后面会接 ;echo $? 输出结果
# 判断是否是文件
test -f test.txt
# 判断是否是目录
test -d test.txt
# 判断是否可执行
test -x test.txt
# 判断是否存在
test -e test.txt
数值操作符
一般后面会接 ;echo $? 输出结果
a=1
b=2
# 判断数值是否相等
test $a -eq $b
# 判断数值是否大于
test $a -gt $b
# 判断数值是否小于
test $a -lt $b
# 判断数值是否不等于
test $a -ne $b
字符串比较
a=你好
b=你不能好
# 判断字符串是否相等
test $a == $b
# 判断字符串是否不等于
test $a != $b
与或非&& ||
a=1
b=2
test $a -ne $b &不等于判断成功" || echo "或关系执行成功"
shell脚本
格式要求
demo
#!/bin/bash
# Author: xxx <xxx@qq.com>
# Date: xxxx-xxxx-xx
# Description: 这个一个演示程序
# xxxx这里是单行注释
:<<!
这里写多行注释
!
echo 520
执行shell脚本
bash demo.sh
sh demo.sh
source demo.sh
脚本中提示用户输入
默认赋值给REPLY变量
read -p "请输入主机名称:"
echo $REPLY
赋值给指定变量host_name
read -p "请输入主机名称:" host_name
echo $host_name
-n*可输入*个字符
read -n1 -p "请输入Y/N:" result
$echo result
加密输入
read -s -n1 -p "请输入Y/N:" result
$echo result
函数
第一种写法
function get_host
{
}
第二种写法
get_name()
{
}