1、搜索含有某个指令的脚本:find /etc 2>/dev/null | xargs
grep 'awk ' 2>/dev/null
- 说明:
- find /etc 查找/etc 目录下的所有文件,并显示文件名
- 2>/dev/null 把所有的错误信息,如权限错误,不能访问等等 重定向倒看不到的虚拟设备,只显示有用信息。(1代表“标准输出”,2代表“标准错误输出”)
- | 把前一个命令的输出以管道的方式传给后面的命令
- xargs
对输入的每一个参数,循环执行后面的命令
- grep 'awk' 在指定文件中查找字符串,这里的输入文件时xargs命令传过来的,每次去一个find输出的文件名
2、正则替换sed:
- sed -i 's/regExp1/replaceExp/g'
file -i 代表直接替换文件中的内容
前面的s代表搜索替换,后面的g代表替换所有,三个 / 可以用任意字符替换,比如 sed 's@regExp1@replaceExp@g'
file 或 sed 's#regExp1#replaceExp#g' file ,即使不要后面的g(只替换第一个找到的内容),最后一个特殊符号也不能省掉。
- 在替换表达式中可以使用 \1 这样的特殊参数来替代前面正则表达式中匹配的部分内容,例如:sed -n
's/.*\(movie_Play.asp?Id=[0-9]\+\).*/http:\/\/www.kankan.com\/\1/p'
这里最后一个p把内容显示到屏幕上
- 进行多次处理,以简化表达式:grep "Id=[0-9]\+.*img" movie_list.htm | sed -n
's/.*\(movie_Play.asp?Id=[0-9]\+\).*/http:\/\/www.kankan.com\/\1/p'
- 还有awk cut 等命令可以完成相似的功能,参见/etc 下的相应代码 以及 info awk , info cut
3、查看命令的位置,察看文件的类型
4、在您的家目录里的.bash_history里记录前一次登入以前所执行的命令。
而这一次登入所执行的指令都被放在内存中。注销后该指令记忆才会记录到.bash_history当中。
假如登录到别人的机子想看看他用过的指令.........
5、history配合"!"使用。
history
!HISTORY_NUMBER
6、mkdir -p /dir1/dir2/dir3
Make the parent dirs if necessary.
7、echo -n "info"
Do not output the trailing newline
8、比较语句可能是我在BASH脚本中用得最频繁的语句了,在进行分支判断,结果分析的时候往往都要借助于它。今天趁着空闲,对它作一个总结,以备忘。
比较语句其实就是判断表达式的真假。在BASH脚本中以0表示真,非0表示假,有一个有用的变量$?可以获取上次命令的返回结果。比如执行命令echo
"test",再执行echo $?会返回0,因为echo语句的返回值总是正确的。
比较有多种方式,如简单的字符串比较,算术比较,文件是否为空比较等。所有这些比较都可以用test命令来完成,如test 2 -gt
1,就是判断2是否大于1。另外还可以用[...],[[...]],((...))。其中((...))仅用于算术比较。
需要注意的是在括号与判断内容之间需要加空格,即[a]这样的判断语句是会报错的。而算术判断如果是在[...]和[[...]]中也不能简单地
用>,<,=等来进行,而需要用-gt,-lt等,具体可以man test。比如要判断a是否大于b,[ a>b ]和[ a
> b ]都是错误的,它们其实是执行了将a命令重定向到b文件的操作,要执行该判断,应该使用[ a -t b ]或者[[ a -t b
]]。
而如果是采用((...))的形式,则可以直接使用判断,即(( a>b ))来进行。
通常我们的判断往往跟随着后续操作,即判断为真,为假时的后续处理。这里可以用if...else语句,也可以采用简便的&&..||形
式。比如我们判断a是否大于b,是则打印"a>b",否则打印"a<=b"。可以如下写相关脚本:
if [ a -gt b ]; then
echo "a>b"
else
echo "a<=b"
fi
或者简单地写为:
[ a -gt b ] && echo "a>b" || echo "a<=b"
其效果是一样的。
有时候我们不是进行简单的比较,而是要判断内容是否符合某正则表达式,通常可以采用echo...grep的方式来实现。比如我们要判断字符串a是否以“test"开头,可以写为:
if echo $a | grep "^test"; then
echo "matched"
else
echo “not matched"
fi
9、有两种形式的命令替换
- 例如:将当前工作目录的全路径名存放到变量
dir
中,输入以下命令行:
- $
dir
=`
pwd
`
- 另一种形式是:$
(
命令表
)
。上面的命令行也可以改写为:
- $
dir
=$
(
pwd
)
10、How to kill all of the processes of an executable?
ps -A | grep evince | cut -d " " -f2 | xargs kill -9 2> /dev/null
分享到:
相关推荐
### LVM 学习笔记详解 #### 一、LVM与RAID基础知识 **LVM (Logical Volume Manager)** 是一种用于Linux系统中的存储管理技术,它提供了比传统分区方案更灵活的数据存储方式。通过LVM,用户可以创建逻辑卷(Logical ...
### Linux学习笔记精要 #### 一、Linux目录架构概览 在Linux系统中,文件系统的组织遵循一种标准的层次结构。以下是一些常见的顶级目录及其功能概述: 1. **/bin**: 存储基本可执行文件(二进制文件),用户通常...
### Bash Shell 学习笔记知识点概览 #### 1. 引言 - **Shell**:作为用户与操作系统之间的桥梁,Shell提供了一种与系统进行交互的方式,支持用户执行命令和编写脚本来自动化任务。 - **Bash**:是Bourne-Again ...
### Linux学习笔记(主要是命令) #### 一、Linux目录架构概览 Linux 是一个高度定制化和灵活性极强的操作系统,其目录结构清晰且逻辑性强。掌握这些基本目录及其功能对于学习 Linux 至关重要。 - **/ (根目录)**...
### Linux学习笔记-初学者 #### 一、Linux分区命名规则及理解 Linux系统中的分区命名规则对于初学者来说非常重要,因为这直接影响到如何管理和识别不同的存储设备。下面详细介绍几个关键概念: - **MBR(Master ...
Linux是开源的操作系统,它的设计思想是自由、开放和可定制。对于初学者来说,了解Linux的基本知识,尤其是文件系统结构...通过实践和学习,你可以进一步掌握更高级的Linux技能,如脚本编程、系统管理以及网络配置等。
在提供的压缩包文件中,有一个名为“bash编程学习笔记(1).doc”的文档,这可能是关于bash编程的详细教程或笔记,涵盖了上述部分或全部知识点。通过阅读这份文档,你可以深入理解bash Shell的用法,学习编写高效的...
### Nutch全文搜索学习笔记 #### 一、Nutch安装与配置 **1. Linux环境下的JDK安装** 为了能够顺利地安装并运行Nutch,首先确保系统中已安装Java Development Kit (JDK) 并且正确配置了`JAVA_HOME`环境变量。如果...
根据给定的"Bash shell学习笔记"文件信息,我们可以从中提炼出多个重要的IT知识点,具体如下: ### 1. 引言 - **Shell的角色**:Shell作为一个命令解释器和编程语言,在用户与UNIX/Linux系统内核之间提供了一个桥梁...
这份“Linux学习笔记-很不错适合linux入门者”文档恰好为初学者提供了一个很好的起点。 首先,笔记可能会从Linux的起源和发展讲起,包括Linux之父Linus Torvalds创建Linux内核的故事,以及GNU项目与自由软件运动...
### Linux学习笔记知识点详解 #### 一、启动与引导配置 - **`which`命令**:用于查找系统中可执行文件的位置。例如,`which entry`可以用来找到名为`entry`的可执行文件所在路径。 - **GRUB引导加载器**:在Linux...
### Linux学习笔记——初学者必备知识点 #### 一、源列表配置 在Linux系统中,尤其是Ubuntu这样的发行版,为了确保软件包的更新与安装,我们需要正确地配置系统的软件源。给定的内容显示了几个不同的软件源地址: ...
### OpenWRT与LEDE深入学习笔记v2.0概览 #### 一、基础知识介绍 根据提供的部分内容,本文档主要介绍了如何安装OpenWRT与LEDE系统的编译环境,并详细记录了从GitHub下载源码的过程及后续的操作步骤。下面我们将...
Spark MLlib是Apache Spark提供的机器学习库,它提供了丰富的算法,支持分类、回归、聚类、协同过滤等多种任务,同时也包括数据预处理和模型评估工具。本实验旨在利用Spark MLlib进行开源软件项目的流行度预测,以下...
### 超详细的Redis学习笔记知识点汇总 #### 1. Redis 的启动与停止 ##### 1.1 直接启动 Redis 服务 - **默认端口启动**:使用 `$ redis-server` 命令,默认监听端口为 `6379`。 - **指定端口启动**:使用 `$ ...
### Linux学习笔记精要 #### 一、Linux操作系统概述与常用命令 - **Shell与GUI**: Linux系统提供了两种主要的用户交互方式,图形用户界面(GUI)如Gnome和命令行界面(CLI)如Bash。GUI适合初学者,而CLI对于高效地...
### QT学习笔记_经验篇 #### 一、初识QT及环境配置 ##### 环境检查与安装 - **检查RedHat自带QT库** - **路径**: `/usr/lib/qt-3.1` - **操作**: 查看`qt3-1`目录下是否有13个文件,如果没有,需通过以下步骤...
### 学习笔记-基础Shell编程 #### 一、Shell编程概述 Shell编程是指利用Shell命令语言编写脚本来实现特定功能的过程。Shell不仅是Linux操作系统下的命令行解释器,还是一种强大的脚本语言,广泛应用于自动化任务...