shell命令(持续更新)

命令

  • head

    • 默认返回前10行
    • head -15 test.txt 返回前15行
  • tail

    • 默认返回后10行
    • head 和 tail 经常一起用,返回中间的行
    • head -15 test.txt | tail -5 返回第11到15行,|是管道符
  • cut

    • 截取指定数据
    • 默认按照TAB分隔
    • cut -d" " -f1,3 test.txt 按照空格分隔,并返回第1列和第3列
    • cut -d" " -f1-3 test.txt 按照空格分隔,并返回第1至3列
    • cut -d" " -f1-3,5 test.txt 按照空格分隔,并返回第1至3列,以及第5列
    • cut -d" " -f2- test.txt 按照空格分隔,并返回第2列及以后
    • cut -d" " -f-2 test.txt 按照空格分隔,并返回前2列
  • cat

    • 返回所有数据
  • sort

    • 排序,默认按ASCII
    • sort -r 反序
    • sort -n 按照数值排序
  • uniq

    • 去重,但只能去除连续的重复数据
    • 通常需要先sort排序后,再uniq去重
    • sort test.txt | uniq 返回去重后的数据
    • uniq -d 返回重复的数据
    • uniq -c 返回去重后的数据及对应重复的个数
  • wc

    • word count
    • wc -l 行数统计
    • wc -w 单次统计

输入输出

  • read -p "请输入:" name1
    • 不指定参数名,默认参数名为REPLY
  • echo

引用

  • 变量名
    • "${变量名}"
  • 命令$()
    • $(cat test.txt)
  • 数值计算$(())
    • $(( 1 + 2 ))
    • $(( 2 * 2 ))
    • 支持: + - * / % **
    • ++ --
    • < <= > >= == !=
    • ~ | & ^ << >>
    • ! && ||
  • 表达式$[]
    • 条件成立返回0,不成立返回非0
    • 数值表达式: -gt -lt -eq -ne
    • $[ 1 -gt 2 ]
    • 逻辑表达式:&& ||
    • $[ 1 -eq 2 ] && echo "Yes" || echo "No"
    • 文件表达式-f是否为文件 -d是否为目录 -x是否可执行 -e是否存在
      -:$[ -e test.txt ] && echo "Yes" || echo "No"
    • 字符串比较: == !=

脚本格式

#!/bin/bash

# 单行注释

<<某字符
多行注释
相同字符

函数及传参

parameter='123'

function test()
{
	echo "这是一个function, ${parameter}"
	echo -e "参数1:$1 \n参数2:$2"
}


# 参数从命令行传入 bash function.sh a1 a2
test $1 $2


# 参数直接传入
test2 1 2

流程控制

  • if
read -p "请输出一个整数:" num

if (( "${num}" > 10 ))
then
	echo "数大于10"
elif (( "${num}" > 5 ))
then
	echo "数大于5且小于等于10"
else
	echo "数小于5"
fi
  • for
i=0
for file in $(dir)
do
	i=$(( ${i} + 1 ))
	echo "第${i}个文件为:${file}"
done

max=7
for (( i=1;i<=max;i++))
do
	echo "第${i}次循环"
done
  • while
read -p "请输入一个数字:" a

while [ "${a}" -lt 10 ]
do
	echo "${a}"
	a=$(( a + 1 ))
done

  • until
    • 条件不满足则执行
  • case

read -p "请输入一个数字:" a

case "${a}" in 

	3)
		echo "条件1: ${a}";;
	5)
		echo "条件2: ${a}";;
	7)
		echo "条件3: ${a}";;
	*)
		echo "条件4: ${a}";;
esac
posted @ 2022-10-19 09:19  daxiacet  阅读(32)  评论(0编辑  收藏  举报