Linux shell脚本 基础

时间:2022-07-01 17:28:49

一、shell中三个引号的用法

1、单引号:所见即所得
例如:var=123
var2='${var}123'
echo var2 var2结果为${var}123

2、双引号:输出引号中的内容,若存在命令、变量等,会先执行命令解析出结果再输出
例如:var=123
var2="${var}123"
echo var2 var2结果为123123

3、反引号(键盘tab键上面一个键):命令替换
例如:root用户登录系统
var=`whoami`
echo $var var结果为执行whoami命令的结果 显示root

二、重定向
1、重定向 >
先清空文件内容,再输出
例如:seq 1 10 > test
将结果 1 到 10 的数字打印在test文件中,若文件存在直接打印,若文件不存在新建文件再打印

备注:可用重定向清空文件 > test

2、追加重定向 >>
将本次结果,追加到原文件内容后面
例如:test文件中,文件内容为123
seq 1 10 >> test
test文件内容变为:12312345678910

三、管道 |
把前一个命令的结果当成后一个命令的输入
例如1:cat test|grep 10
cat test:显示test文件内容
grep 10:查找文件为10的内容
结果则会输出:test文件中,包含10的行进行输出

例如2:seq 1 10|head -3 结果为1 2 3

例如3:取出用的最多的10条命令
history > history.txt|cat history.txt|awk '{print $2}'|sort|uniq -c|sort -nr|head -10

例如4:cat /etc/sysconfig/network-scripts/ifcfg-eth0|grep TYPE

备注:awk把文本逐行读入,以空格为默认分隔符进行每行切片,然后再做处理
awk默认打印格式:awk '{print $2}' test 结果为:打印出以空格为分隔符的第二列
sort 排序
sort -n 从小到大排序
sort -nr 从大到小排序
uniq 去重
uniq -c 去重 并统计
head -10 前10行
tail -10 后10行

四、别名 alias
1、alias:查看所有别名

2、unalias -a:取消所有别名

3、设置别名
例如: alias ll='ls -l'

五、linux录屏
1、开启录屏:scritp -a action.log -t 2> time.log
2、退出录屏:Ctrl+D
3、回放视频:scriptreplay time.log action.log

备注:设置永久生效
1、/etc/profile --这个为全局生效
2、cd 到家目录 ls -a 显示隐藏文件 vi .bashrc 仅对当前用户生效

切记:修改配置文件后不生效,请source一下修改的配置文件
soruce .bashrc 和 . .bashrc 相等

echo 显示的意思 $var var为变量 var='123' 单引号中的东西为不转义的
{}大括号用于字符拼接 例如:var2=${var}123 则ver2 为 123123

seq 小工具:
seq 10 :打印一到十的数字
seq 1 2 10:一到十的数字 以2为分隔符 结果为:1 3 5 7 9