shell学习随笔

来源:互联网 发布:必佳软件下载 编辑:程序博客网 时间:2024/05/18 03:42
cat /dev/null > 文件名   清空文件信息
垃圾桶,传送到次文件的数据都会被删除掉。
who  | wc -l  计算用户的个数
| (管道)可以再两个程序之间建立管道pipe:who的输出成了wc的输入。。wc列出的结果就是一登陆的用户个数。。、
printf命令  echo输出  echo $?  echo $SHELL

ptintf输出不像echo那样自动提供换行符,需自己添加。

简单的执行跟踪。 shell脚本跟踪功能,set -x 命令将执行跟踪的功能打开。然后再用set +x命令关闭它   
set -x不会被跟踪,因为跟踪功能是在这条命令执行后才打开的。同理,set +x    会被跟踪,他之后的就不会被跟踪了。

grep 查找文本  


&在替换文本里意思是:从此点开始替代成匹配与正则表达式的整个文本。。

在s命令里以G结尾标示:全局性,即替代文本取代正则表达式中的每一个匹配值。如果没有设置g,sed只会取代第一个匹配的

sed中-n参数。-n选项参数修改了sed的默认行为。当提供此选项时,sed将不会在操作完成后打印模式空间的最后内容。反之,如果在脚本中使用p,则会显示出来。
3.匹配特定行

cut命令是用来剪下文本文件里的数据


使用join连接字段。
  删除注释并排序:
awk命令:pattern或是action

 如需字段值,则需要搭配$字符。通常$之后接着一个数值常数,也可能接着一个表达式不过多半是使用变量名称。

awk起始与清除。。
   
全局变量和局部变量:
全局变量一边改变临时生效,如果让他永久生效需要把它添加到.profile文件中。局部变量只在该脚本执行时生效。
export  变量名=value;
变量名=value;export 变量名

(centos写入profile文件可以生效,但是ubuntu写入profile有点问题。echo不显示)。


$?  退出状态变量。$?保存一个命令或者一个函数或者脚本本身的退出状态。。
()  命令组   注意:在()中的命令列表,将作为一个子shell来运行。在()中的变量,由于是在子shell中所以对于脚本剩下部分是不可用的。  
例子:  a=123  (a=321) echo "a=$a" #a=123  圆括号中a变量更像是一个局部变量。

cat {file1,file2,file3} >combine_file  #把文件123连接在一起,并重定向到combined_file中
cp  file22.{txt,backup} #拷贝file22.txt到file22.backup

{}   代码块:又被称为内部组,事实上,这个结构创建了一个匿名函数,但是与函数不同的是在其中声明的变量,对于脚本其他部分的代码来说还是可见。(不同于上面的())

sort排序  未研究。。。。。


计算数字,字节:
显示:
变量,判断,算数:
export命令紧将变量加到环境中,如果你要从程序的环境中删除变量,则用env命令也可临时的改变环境变量值。unset命令从执行的shell中删除变量和函数。。


Linux中使用crontab命令定时执行shell脚本或其他Linux命令


使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令。例如系统管理员安排一个备份任务使其每天都运行

如何往 cron 中添加一个作业?

# crontab –e
0 5 * * * /root/bin/backup.sh

这将会在每天早上5点运行 /root/bin/backup.sh

Cron 各项的描述

以下是 crontab 文件的格式:

{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script} 
o minute: 区间为 0 – 59 
o hour: 区间为0 – 23 
o day-of-month: 区间为0 – 31 
o month: 区间为1 – 12. 1 是1月. 12是12月. 
o Day-of-week: 区间为0 – 7. 周日可以是0或7.

Crontab 示例

1. 在 12:01 a.m 运行,即每天凌晨过一分钟。这是一个恰当的进行备份的时间,因为此时系统负载不大。

1 0 * * * /root/bin/backup.sh

2. 每个工作日(Mon – Fri) 11:59 p.m 都进行备份作业。

59 11 * * 1,2,3,4,5 /root/bin/backup.sh

下面例子与上面的例子效果一样:

59 11 * * 1-5 /root/bin/backup.sh

3. 每5分钟运行一次命令

*/5 * * * * /root/bin/check-status.sh

4. 每个月的第一天 1:10 p.m 运行

10 13 1 * * /root/bin/full-backup.sh

5. 每个工作日 11 p.m 运行。

0 23 * * 1-5 /root/bin/incremental-backup.sh

Crontab 选项

以下是 crontab 的有效选项:

o crontab –e : 修改 crontab 文件. 如果文件不存在会自动创建。 
o crontab –l : 显示 crontab 文件。 
o crontab -r : 删除 crontab 文件。
o crontab -ir : 删除 crontab 文件前提醒用户

http://blog.csdn.net/ithomer/article/details/6817019

注意:在完成编辑以后,要重新启动cron进程:

~# /etc/init.d/cron restart


脚本执行方法:

1.bash或者sh+脚本
2.bash或者sh的觉得执行路径+脚本
以上两种是:现行的shell会开启一个子shell环境,去执行shell脚本并不加载现行环境中
3.source+脚本
4. . /+脚本
以上两种执行脚本的方式,不创建子进程,直接在现行环境下加载环境变量脚本。

awk命令:抓取输出的第几行,awk  'print $n'

0 0
原创粉丝点击