炼数成金---shell实例编程笔记(1)

第一课 14-08-09

shell脚本适合:

1.封装已有的程序  2.系统管理    3.自动化脚本,提高效率 --经常从系统已有的shell里面提取出有用的代码,复用

把同一性的脚本总结,收藏,复用!

 

#!开头,shell会把后面的命令 还有 本文件(hwc)作为参数传给命令行执行

eg: #! /bin/tail -1

 

hello world

./hwc ---> 实际上执行了  /bin/tail -1   ./hwc

1. ls -l -r --sort=time --time-style=+%Y%m%d%H%s ~   (-r 升序排序, --sort 排序

 

在命令行执行的:

2,tab补全

3. ctrl +r  --敲出命令行一部分,可以在history中找到匹配的最近的命令t

4. ctrl-a(光标到命令行首), ctrl-e(到命令行尾), ctrl-u(删除当前到命令行首),ctrl-k(删除当前到命令行尾), ctrl -<---   ,ctrl- --> 

5. 获得上个命令的参数  ESC-., ALT-.  

 

基本命令:datetar,

tail file---显示文件末尾10行,默认的       tail -n 4 显示末尾4行  tail -f file 这样可以动态地查看file里面追加的内容

head file ---显示文件前10行

more [option] file 分屏显示  more -num file 一次显示多少行

less [option] file 分屏显示   

cut -d: -f1,5 /etc/passwd   ----以:为分隔符,显示第1个和第5个字段

grep keys file---找出匹配的行   pgrep keys---找出keys进程的pid

wc-l   [-w -c] file 统计文件中的行数,单词数,字符数 ,主要与其他命令同时用

sort --排序

uniq--去除重复行。

diff file1 file2 比较两个文件是否相同  diff -r dir1 dir2

patch file < 1.patch  ---打补丁。 

 

 

课后作业:备份/etc ,如果今天的备份与前天的一样,则删除昨天的,否则保存(date, diff or md5sum,如果定时处理,需要crond)

额外的学习内容:---基础小白命令

lsblk  -l  --列出块设备

md5sum filename  ---生成校验值,即签名信息 ,以此来检测文件是否改变

dd--转换和复制文件。可以用来转换和复制文件,大多数时间是用来复制iso文件(或任何其它文件)到一个usb设备(或任何其它地方)中去,所以可以用来制作USB启动器。

1
root@tecmint:~ # dd if=/home/user/Downloads/debian.iso of=/dev/sdb1 bs=512M; sync

注意:在上面的例子中,usb设备就是sdb1(你应该使用lsblk命令验证它,否则你会重写你的磁盘或者系统),请慎重使用磁盘的名,切忌。

dd 命令在执行中会根据文件的大小和类型 以及 usb设备的读写速度,消耗几秒到几分钟不等。

uname -a 显示内核信息  uname -r

history --历史记录   ctrl+r可以搜索已经执行过的命令,可自动补全

sudo command --允许用户借用超级用户的权限,su 命令允许用户以超级用户登录。

touch filename --更新文件的访问和修改时间为当前时间,如果文件不存在,则创建他。

chown root:root file  , chmod u+x filename

apt--advanced package tool  APT是一个为Debian系列系统(Ubuntu,Kubuntu等等)开发的高级包管理器,在Gnu/Linux系统上,它会为包自动地,智能地搜索,安装,升级以及解决依赖。

apt-get install python , apt-get update,apt-cache用来搜索包中是否包含子包mplayer,apt-get用来安装,升级所有的已安装的包到最新版。

同时,yum install python (yum 用在redhat, fadero系统)

cal”(Calender),它用来显示当前月份或者未来或者过去任何年份中的月份。cal 02 1983 ---显示1983年2月

date”命令使用标准的输出打印当前的日期和时间,也可以深入设置。

1
2
3
root@tecmint:~ # date
Fri May 17 14:13:29 IST 2013
1
2
3
root@tecmint:~ # date --set='14 may 2013 13:57'
Mon May 13 13:57:00 IST 2013

注意:这个命令在脚本中十分有用,以及基于时间和日期的脚本更完美。而且在终端中改变日期和时间,让你更专业!!!(当然你需要root权限才能操作这个,因为它是系统整体改变)

mv file1  /dir/file2  ---如果在当前目录,则是改名。。mv需谨慎使用,因为移动系统的或者未授权的文件不但会导致安全性问题,而且可能系统崩溃。

pwd--显示当前路径

cat ---连接两个或者多个文本文件,或者以标准输出形式打印文件的内容

cat a.txt b.txt c.txt

cat ab.txt

cat -n ab.txt -----打印行号显示

cat << aaa

>b

>c

>hello

>aaa

从《aaa开始是here-document, 接着输入的内容,直到再次输入aaa才结束

常用通配符列表:

1
2
3
4
5
6
7
8
Wildcard Matches
   *            零个或者更多字符
   ?            恰好一个字符
[abcde]             恰好列举中的一个字符
[a-e]          恰好在所给范围中的一个字符
[!abcde]        任何字符都不在列举中
[!a-e]          任何字符都不在所给的范围中
{debian,linux}      恰好在所给选项中的一整个单词

! 叫做非,带'!'的反向字符串为真

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值