Shell学习笔记
2015-10-15 16:02
429 查看
单引号告诉shell忽略所有特殊字符,而双引号忽略大多数,但不包括$、\、`。
$(( ))整数运算
$( ) 命令替换,类似``
${ } 变量替换
$# 参数个数
$@,$* 都表示全部参数($0除外)
find
-perm:按照文件权限来查找文件。
-mtime -n +n : -n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。
-newer file1 ! file2:查找更改时间比文件file1新但比文件file2旧的文件
-type 查找某一类型的文件
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
xargs
作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。
cron和crontab
c r o n是系统主要的调度进程,可以在无需人工干预的情况下运行作业。c r o n t a b命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个c r o n t a b文件来保存调度信息。可以使用它运行任意一个s h e l l脚本或某个命令,每小时运行一次,或一周三次,这完全取决于你。每一个用户都可以有自己的c r o n t a b文件,但在一个较大的系统中,系统管理员一般会禁止这些文件,而只在整个系统保留一个这样的文件。系统管理员是通过c r o n . d e n y和c r o n
. a l l o w这两个文件来禁止或允许用户拥有自己的c r o n t a b文件。
c r o n t a b的格式:
分< >时< >日< >月< >星期< >要运行的命令
30 21 * * * /apps/bin/cleanup.sh
表示每晚的2 1 : 3 0运行/ a p p s / b i n目录下的c l e a n u p . s h
&命令
在后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。
不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。如果放在后台运行的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中:
command >out.file 2>&1 &
2>&1表示所有的标准输出和错误输出都将被重定向到一个叫做out.file 的文件中。
nohup
如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用n o h u p命令。该命令可以在你退出帐户之后继续运行相应的进程。N o h u p就是不挂起的意思( no hang up)。
awk [-F fild-separator] 'commands' input-file(s)
AWK一次处理是一行, 而一次中处理的最小单位是一个区域
另外还有3个变量, NF: 每一行处理的字段数, NR 目前处理到第几行, FS 目前的分隔符
$ awk 'BEGIN {print "Name\n--------"}{print $1} END {print "end-of-report"}' grade.txt
${#var[@]}
返回数组元素的个数
mv $i ${i%sh}shell
${i%sh} —— 拿掉$i最后的“sh”
awk内建变量示例详解之NR、FNR、NF
NR表示从awk开始执行后,按照记录分隔符读取的数据次数,默认的记录分隔符为换行符,因此默认的就是读取的数据行数,NR可以理解为Number of Record的缩写。
在awk处理多个输入文件的时候,在处理完第一个文件后,NR并不会从1开始,而是继续累加,因此就出现了FNR,每当处理一个新文件的时候,FNR就从1开始计数,FNR可以理解为File Number of Record。
NF表示目前的记录被分割的字段的数目,NF可以理解为Number of Field。
vi复制一行:yy
粘贴:p
删除一行:dd
$(( ))整数运算
$( ) 命令替换,类似``
${ } 变量替换
$# 参数个数
$@,$* 都表示全部参数($0除外)
find
-perm:按照文件权限来查找文件。
-mtime -n +n : -n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。
-newer file1 ! file2:查找更改时间比文件file1新但比文件file2旧的文件
-type 查找某一类型的文件
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
xargs
作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。
cron和crontab
c r o n是系统主要的调度进程,可以在无需人工干预的情况下运行作业。c r o n t a b命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个c r o n t a b文件来保存调度信息。可以使用它运行任意一个s h e l l脚本或某个命令,每小时运行一次,或一周三次,这完全取决于你。每一个用户都可以有自己的c r o n t a b文件,但在一个较大的系统中,系统管理员一般会禁止这些文件,而只在整个系统保留一个这样的文件。系统管理员是通过c r o n . d e n y和c r o n
. a l l o w这两个文件来禁止或允许用户拥有自己的c r o n t a b文件。
c r o n t a b的格式:
分< >时< >日< >月< >星期< >要运行的命令
30 21 * * * /apps/bin/cleanup.sh
表示每晚的2 1 : 3 0运行/ a p p s / b i n目录下的c l e a n u p . s h
&命令
在后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。
不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。如果放在后台运行的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中:
command >out.file 2>&1 &
2>&1表示所有的标准输出和错误输出都将被重定向到一个叫做out.file 的文件中。
nohup
如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用n o h u p命令。该命令可以在你退出帐户之后继续运行相应的进程。N o h u p就是不挂起的意思( no hang up)。
awk [-F fild-separator] 'commands' input-file(s)
AWK一次处理是一行, 而一次中处理的最小单位是一个区域
另外还有3个变量, NF: 每一行处理的字段数, NR 目前处理到第几行, FS 目前的分隔符
$ awk 'BEGIN {print "Name\n--------"}{print $1} END {print "end-of-report"}' grade.txt
${#var[@]}
返回数组元素的个数
mv $i ${i%sh}shell
${i%sh} —— 拿掉$i最后的“sh”
awk内建变量示例详解之NR、FNR、NF
NR表示从awk开始执行后,按照记录分隔符读取的数据次数,默认的记录分隔符为换行符,因此默认的就是读取的数据行数,NR可以理解为Number of Record的缩写。
在awk处理多个输入文件的时候,在处理完第一个文件后,NR并不会从1开始,而是继续累加,因此就出现了FNR,每当处理一个新文件的时候,FNR就从1开始计数,FNR可以理解为File Number of Record。
NF表示目前的记录被分割的字段的数目,NF可以理解为Number of Field。
vi复制一行:yy
粘贴:p
删除一行:dd
相关文章推荐
- 第 三 十 一 天:shell 脚 本(二)
- PowerShell图形化编程1-原理
- 使用 Secure Shell Client工具操作linux常用命令打包到测试命令
- Mac 设置环境变量 查看和添加PATH环境变量
- shell编程之给变量赋值的五种方法
- Mac OS X EL Capitan MAC OX 10.11 安装cocoapods后还是提示-bash :pod command not found 解决办法
- 如何获取shell命令输出的错误信息?
- xshell自动登录脚本
- 第 三 十 一 天:shell 脚 本 (一)
- linux,shell输入反斜杠显示'W'。
- shell编程之——cat /dev/null作用
- Android开发工具—adb shell命令—dumpsys
- shell三剑客之sed(一)
- c语言执行shell命令
- xshell 自动登录与自动跳转
- 【powershell】在powershell脚本里归档zip文件
- 0day-简单动态获取API(shellcode)分析NO.1
- 常用的bash shell脚本 一些常用的运维管理方法
- Shell脚本小技巧
- shell脚本编程-例子_服务器存活监控