其他笔记 - Shell脚本相关(Linux)

最常见的shell脚本Bash(Bourne Again Shell)是sh(Bourne Shell)的增强版,shell是用于让用户与操作系统kernel沟通的一个界面软件。
查看系统上可用的shell程序:

cat shells

其他笔记 - Shell脚本相关(Linux)_第1张图片

命令 用法 示例
history 查询历史
alias 查询命令别名,设置命令别名 alias *name*
type 查询命令是否为bash的内置命令 type [-tpa] *name*
echo 打印变量 echo $var
unset 重置变量 unset var
$n 获取参数 n=1时就为第一个参数
$? 上一次的返回值
set 观察或定义环境变量 不含参数时打印当前环境变量和脚本,含有参数时定义某个环境变量
locale 查看语言
export export后的变量可以被当前shell进程的子进程所使用

双引号与单引号:双引号可以保留变量的含义,单引号会将变量名变成字符串失去变量含义
反单引号:在反单引号之内的命令会被先执行,其结果将作为外部的输入信息

命令 用法 示例
read 读取来自键盘输入的变量 read [-pt] *var*
declare 声明变量的类型(-a:array,-i:integer,-x:export为环境变量,-r:readonly) declare [-aixr] *var*
unlimit 限制文件系统或程序 unlimit [-SHacdfltu] [配额]
${变量#替换文字} 删除符合替换文字的最短环境变量
${变量##替换文字} 删除符合替换文字的最长环境变量
source 读入环境配置未见的命令 source ~/.bashrc
cut 管道选取命令,把一段信息中的部分给切出来 echo ${PATH} | cut -d ':' -f 3,5
grep 管道选取命令,分析并取出有我们想要的信息的所有内容 grep --color=auto ‘MANPATH’ /etc/man_db.conf
sort 排序命令 sort [-fbMnrtuk] [文件或输入]
wc 统计多少字 -w 多少行 -l 多少字符-m wc [-lwm]
uniq 排序后仅显示一个 uniq [-ic]
tee 双向重定向 tee [-a] file
通配符/特殊符号 意义
* 代表0到无穷多个任意字符
代表一个任意字符
[ ] 代表一定有一个在括号内的字符,但不是任意字符,例如[abc]代表有abc种任意一个
[^] 代表一定有个字符,但排除括号内字符
| 管道,分割两个管道命令
$ 使用变量前导符
& 把当前任务变成后台任务,bg可以切换回来
>,>> 数据流重定向,输出定向,分别是替换和累加
<,<< 数据流重定向,输入定向
( ) 括号内为子shell的开始与结束

字符转换命令

命令 用法 示例
tr 删除-d或替换-s一段文字 tr [-ds] SET1 ...
col 把tab替换为空格 col -x
join 若两个文件有相同数据行则加在一起 join [-ti12] *file1* *file2*
paste 两个文件每行用tab分隔直接贴在一起 paste -d *file1* *file2*
expand 把tab替换为空格 expand [-t] *file*
split 大文件划分为小文件 split [-bl] *file* PREFIX
xargs 参数代换

命令执行判断
cmd1 && cmd2:cmd1执行结束且返回0(正确)开始执行cmd2,返回非0(错误)不执行cmd2.
cmd1 || cmd2:cmd1执行结束,正确,不执行cmd2;错误,执行cmd2

多文件日志定位

find ./ -type f -name "*.log" |xargs grep "keyword" 

确定行数

cat -n 01.log |grep "Login"

获取日志内容

cat -n 01.log |tail -n +45100  |head -n 100     //tail一般为了日志完整会选择行号减小一定值

你可能感兴趣的:(linux,linux,其他,bash)