shell中需要了解的一点小东西

shell脚本调用的两种方式

一种是赋予权限,使用绝对路径

另一种只需要拥有读权限,使用bash 调用脚本

history命令

-c  清空历史命令

-w  把缓存中的历史命令写入历史命令保存文件当中,如果不手工指定历史命令保存文件,则放入默认历史命令保存文件~/.bash_history

历史命令默认会保存1000条,这是通过环境变量HISTSIZE来进行设置的,我们可以再环境变量配置文件/etc/profile中进行修改

因为历史命令是保存在~/.bash_history中的,而不是内存中,所以如果有需要可以将历史命令条数改大

每个用户的历史命令是单独保存的,每个用户的家目录,都有./bash_history这个历史命令文件

使用history命令查看的历史命令和~/.bash_history文件中保存的历史命令是不同的。那是因为当前登陆操作的命令并没有直接写入~/.bash_history文件中

而是保存在缓存中,需要等当前用户注销之后,缓存中的命令才会写入~/.bash_history文件中。

如果需要把内存中的命令直接写入到~/.bash_history文件中,而不等用户注销时再写入,就需要使用-w选项

历史命令的调用

1.使用上下箭头

2.使用  !n  重复执行第n条命令

3.使用  !!  重复执行上一条命令

4.使用  !$  重复上一条命令的最后一个参数

多命令顺序执行

;  命令1;命令2  多条命令顺序执行,命令之间没有任何逻辑关系

&&  命令1&&命令2  如果命令1正确执行($?=0),则命令2才会执行,如果命令1执行不正确,命令2不会执行

||  命令1||命令2  如果命令1执行不正确($?)则命令2会执行,如果命令1执行则命令2不会执行

行提取命令grep

grep  选项  搜索内容  文件名

-A  列出符合条件的行,并列出后续的n行

-B  列出符合条件的行,并列出前面的n行

-c  统计找到的符合条件的字符串的次数  

-i  忽略大小写

-n  输出行号

-v  反向查找

总用的命令实例忽略

通配符

?  匹配一个任意字符,不能为空

*  匹配0个或多个任意字符,也就是可以匹配任何内容

[]  匹配中括号中任意一个字符,例如,[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c

[-]  匹配括号中任意一个字符,-代表一个范围。例如,[a-z]代表匹配一个小写字母

[^]  逻辑非,表示匹配不是中括号内的一个字符。例如,[^0-9]代表匹配不是一个数字的字符

例子就略了

原文地址:https://www.cnblogs.com/yzandy/p/12178831.html

时间: 2024-10-08 02:49:40

shell中需要了解的一点小东西的相关文章

Javascript中window.opener的一点小总结

以前一直认为window.opener只有在window.open方法打开下的窗口才可以访问,没想到即使是a链接打开的页面的照样可以访问.window.opener指向父窗口,也就是来源窗口.可以利用window.opener获取来源页面location.href信息等,也可以操作来源 页面的DOM,十分强大 但下面的情况,window.opener的值为null 1,跨域的情况如果是www.a.com/1.html链接到www.b.com/2.html,这种情况会丢失2,利用的javascri

关于zip包的一点小东西 暴力 字典 明文

暴力破解.这是最花时间的一种破解方式,暴力破解就是不断的去尝试所有可能的密码.如果密码比较短,比较容易的找到破解密码. 字典攻击.优化过的暴力破解,它使用了一个字典文件,然后一一尝试文件中的每个密码.现在在网上有很多共享的字典文件,这使得字典攻击比暴力破解有效率得多.尤其是当目标文件是用一个弱密码进行保护的时候,字典攻击效率较高.但是,由于字典攻击没有囊括所有可能的密码,所以对于强密码保护的zip文件,字典攻击毫无办法. ps:中国大多数家庭的密码都是很简单的密码,字典攻击是一种很有效率的方法

关于html页面中<a>标签的一点小问题

今天无聊在电脑上写一个网页的音乐播放器,在点击播放列表中的歌名时,页面突然就调到顶部了.我的a标签是这样写的:<a href="#"></a>.按理说是不该有跳转的,但是发生了,虽然可以再拖下来,但是用户体验真心不好.很久没有写html,记得以前没有碰到这种情况,所以就去网上搜了一下,看到了各种说法.只好自己去想了.当我无意间在标签中的“#”之后加了个a之后,突然发现页面就不跳转了,所以可能是浏览器对于“#”自动识别为跳转,加了东西后就会忽略了.所以以后可以写成

UITableView中关于viewForHeaderInSection的一点小坑

新手入门,在保持兴趣的前提下,最直接的办法就是照着例子手动敲一遍代码,然后将示例跑起来,这样能最直观的看到效果. 但是,一般的面向初学者的教程或实例,技术面都相对于浅显,实现的效果也比较Low,就像开发商刚盖出的房子一样,也叫房子,但那是毛坯房.相对于有其他语言开发经验或项目经验的初学者(Ps:例如我~)来说,往往会以点带面,会主动去挖掘与教程相关的“姿势点”,想尽办法用已掌握的新技能去将这些实例完善.扩展,想一次就做出精装修的房子.又因为对于一门刚接触的新语言,了解的不够深入,所以也会难免陷入

【Android界面实现】关于Android中9patch图的一点小解释

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 关于为什么使用.9图,我就不长篇大论了,就是为了减少图片资源体积,我们这篇文章重点解决.9图的制作的一些小问题. .9的制作,实际上就是在原图片上添加1px的边界,然后按照我们的需求,把对应的位置设置成黑色线,系统就会根据我们的实际需求进行拉伸. 下图是对.9图的四边的含义的解释,左上边代表拉伸区域,右下边代表padding box,就是间隔区域,在下面,我们给出一个例子,方便大家理解. 先看下面两张图,

angular js jquery中post请求的一点小区别

这也是最近遇到的坑,还是之前那个项目,现在要实现登录功能. 背景:注册功能之前已经跑通了.前端用的是jquery后台是springMVC.鉴于注册和登录有些接口功能是类似的(比如注册确保邮箱是没有注册过,而登录是确保注册过),于是后台还准备用注册的那套接口. 登录的接口get请求是没问题的,但是post却出了问题:后台收不到请求体里的内容. 后来发现是jquery和angular的post行为有些区别,于是我做了个实验. <!DOCTYPE html> <html lang="

关于学习python的一点小建议

Python是最容易入门的编程语言,没有之一.如果初学者接触的第一门语言是C或者C++,对他们来说最难的不是语法,而是容易出现内存泄漏.指针等问题.有时候排查这些问题对初学者的打击很大,尤其是没掌握排查BUG技巧时. 如果初学者接触的第一门语言是Python,学习曲线则会平滑得多,掌握一些基本语法和Python内置的数据结构,已经可以上手写一些小工具或者小型应用.这对初学者来说,非常重要.因为学习的过程是一个突破舒适区的过程,会面临很多痛苦,如果学习过程得不到激励,很容易半途而废,类似我们开玩笑

shell中的大括号和小括号

一.小括号,园括号() 1.单小括号 () ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格. ②命令替换.等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令.有些shell不支持,如tcsh. ③用于初始化数组.如:array=(a b c d) 2.双小括号 (( ))

对于shell脚本参数获取时的一点小技巧

问题如下: 根据脚本参数的个数$#进行一个循环,在依次输出每个参数$1 $2 $3...... 我有一个循环变量i $i 取到这时的i为1,我想使用这个1再去调用$1,也是就是打印出第一个参数 就是$($i)的意思来取到第几个参数,当然$($i)是不好用的 当时纠结了好久,最后上百度提问,两位高手给出了答案: 1) #!/bin/sh NUMBER=$# echo $NUMBER i=1 while [ $i -le $NUMBER ] do a[$i]=$1 #将数组a[i]赋值为$1,即取得