这里是本人学习linux中整理的一些笔记归档,写的比较粗略,可做为linux常用一些目录的快速入门教程。但如果像具体点学习一个命令的所有应用,这里可能不太适合你,当然,后面又参考部分你可以进入看看详细的一些教程。enjoy it!
前言:shell基础说明
shell的使用
shell脚本规范:
一个shell脚本的执行方法:
|
|
一、shell系统基础
1.1 环境变量和变量
bash中,每个变量的值都是字符串,无论你给变量赋值时是否使用引号,值都会以字符串的形式存储
环境变量
查看所有与此终端进程相关的环境变量: env
查看某个进程的环境变量: cat /proc/$PID/environ
变量赋值:
|
|
环境变量
未在当前进程中定义,而是从父进程中继承而来的变量, export 设置环境变量之后,从当前shell 执行的任何程序都会继承这个变量, 如:
export PYTHONPATH=$PYTHONPATH:/home/ken/workspace
我们linux中常用的环境变量如:
|
|
识别当前shell版本:
echo $SHELL
echo $0
1.2 命令状态
当命令成功完成, 返回0
发生错误并退回, 返回非0
可以从$?中获取 cmd; echo $?
文件描述符和重定向
文件描述符: 与文件输入/输出相关联的整数, 用来跟踪已打开的文件
|
|
重定向到文件:
输出分离或合并:
扔到垃圾桶:
同时输出到终端和文件:
将stdin作为命令参数: cmd1 | cmd2 | cmd3 -
将文件重定向到命令: cmd < file
自定义文件描述符:
二、字符串处理
2.1 sed简明教程
2.2 awk简明教程
2.3 输出和打印(echo & printf)
echo
基于标准输出打印一段文本
- 忽略结尾换行符:
echo -n 'test\n'
- 对字符串进行转义:
echo -e '1\t2\t3'
- 打印彩色输出:12345678910111213141516171819202122232425文字颜色码重置0黑色30红色31绿色32黄色33蓝色34洋红35青色36白色37echo -e "\e[1;31m This is red test \e[0m"背景颜色码重置0黑色40红色41绿色42黄色43蓝色44洋红45青色46白色47echo -e "\e[1;42m Green Background \e[0m"
printf
可以格式化字符串, 使用参数同c中printf一样
|
|
三、 进程管理
3.1 pgrep
获取某个进程名对应进程id 使用命令pgrep
, 例如:pgrep php
四、 运算
4.1 shell数学运算
let
expr
echo \
expr 1 + 7``result=$(expr $no1 + 5)
其他运算
|
|
浮点数: bc
|
|
五、数组:数组和关联数组
- 普通数组,整数作为数组索引, 借助索引将多个独立的数据存储为一个集合(list)
- 关联数组,可以使用字符串作为索引(map)
注意,在mac中的shell不能使用索引该笔记的关联数组
。
5.1 普通数组
|
|
5.2 关联数组
|
|
工具参考
crontab
crontab文件的含义:
用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:
minute hour day month week command
其中:
- minute: 表示分钟,可以是从0到59之间的任何整数。
- hour:表示小时,可以是从0到23之间的任何整数。
- day:表示日期,可以是从1到31之间的任何整数。
- month:表示月份,可以是从1到12之间的任何整数。
- week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
- command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
在以上各个字段中,还可以使用以下特殊字符:
- 星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
- 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
- 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
- 正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。