- 浏览: 397085 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (131)
- 云计算-基础概念 (1)
- 云计算-常见问题探讨 (1)
- 云计算-业界动态 (0)
- 云计算-技术探讨 (0)
- 云计算-技术人生存状态 (0)
- Linux学习 (30)
- javascript学习 (2)
- Maven 2学习 (4)
- Junit 4学习 (5)
- Hibernate学习 (3)
- 生活随想 (12)
- html相关 (4)
- Spring学习 (2)
- 数据库 (18)
- Flex学习 (1)
- Apache common 学习 (2)
- freemarker (1)
- Eclipse技巧 (6)
- Windows知识 (4)
- 励志 (2)
- 日志管理 (3)
- MyBatis (3)
- JDK学习 (3)
- Python学习 (4)
- ruby学习 (1)
- 排序算法 (1)
- 开源软件 (1)
- Git 版本管理 (2)
最新评论
-
dongwei_6688:
cooler1217 写道最近迷失了,所以来看看你和月哥的博客 ...
怀念对我影响很大的一位领导 -
cooler1217:
最近迷失了,所以来看看你和月哥的博客~~ 收获颇丰,你们都是我 ...
怀念对我影响很大的一位领导 -
javatozhang:
不错!很是受用!
集合操作的利器:CollectionUtils -
dongwei_6688:
gudupiao 写道如果比较的不是String 是 ob ...
集合操作的利器:CollectionUtils -
gudupiao:
如果比较的不是String 是 object 怎么办? ...
集合操作的利器:CollectionUtils
特殊的shell变量
变量 |
含义 |
$0 |
脚本名字 |
$1 |
位置参数 #1 |
$2 - $9 |
位置参数 #2 - #9 |
${10} |
位置参数 #10 |
$# |
位置参数的个数 |
"$*" |
所有的位置参数(作为单个字符串) * |
"$@" |
所有的位置参数(每个都作为独立的字符串) |
${#*} |
传递到脚本中的命令行参数的个数 |
${#@} |
传递到脚本中的命令行参数的个数 |
$? |
返回值 |
$$ |
脚本的进程ID(PID) |
$- |
传递到脚本中的标志(使用set) |
$_ |
之前命令的最后一个参数 |
$! |
运行在后台的最后一个作业的进程ID(PID) |
测试操作: 二元比较
操作 |
描述 |
----- |
操作 |
描述 |
算术比较 |
字符串比较 |
|||
-eq |
等于 |
= |
等于 |
|
-ne |
不等于 |
== |
等于 |
|
-lt |
小于 |
!= |
不等于 |
|
-le |
小于等于 |
\< |
小于 (ASCII) * |
|
-gt |
大于 |
\> |
大于 (ASCII) * |
|
-ge |
大于等于 |
-z |
字符串为空 |
|
算术比较 |
双括号(( ... ))结构 |
-n |
字符串不为空 |
|
> |
大于 |
|||
>= |
大于等于 |
|||
< |
小于 |
|||
<= |
小于等于 |
|
|
文件类型的测试操作
操作 |
测试条件 |
----- |
操作 |
测试条件 |
-e |
文件是否存在 |
-s |
文件大小不为0 |
|
-f |
是一个标准文件 |
-r |
文件具有读权限 |
|
-d |
是一个目录 |
-w |
文件具有写权限 |
|
-h |
文件是一个符号链接 |
-x |
文件具有执行权限 |
|
-L |
文件是一个符号链接 |
|||
-b |
文件是一个块设备 |
-g |
设置了sgid标记 |
|
-c |
文件是一个字符设备 |
-u |
设置了suid标记 |
|
-p |
文件是一个管道 |
-k |
设置了"粘贴位" |
|
-S |
文件是一个socket |
F1 -nt F2 |
文件F1比文件F2新 * |
|
-t |
文件与一个终端相关联 |
F1 -ot F2 |
文件F1比文件F2旧 * |
|
-N |
从这个文件最后一次被读取之后, 它被修改过 |
F1 -ef F2 |
文件F1和文件F2都是同一个文件的硬链接 * |
|
-O |
这个文件的宿主是你 |
|
|
|
-G |
文件的组id与你所属的组相同 |
|
|
|
! |
"非" (反转上边的测试结果) |
|
|
参数替换和扩展
表达式 |
含义 |
${var} |
变量var的值, 与$var相同 |
${var-DEFAULT} |
如果var没有被声明, 那么就以$DEFAULT作为其值 * |
${var:-DEFAULT} |
如果var没有被声明, 或者其值为空, 那么就以$DEFAULT作为其值 * |
${var=DEFAULT} |
如果var没有被声明, 那么就以$DEFAULT作为其值 * |
${var:=DEFAULT} |
如果var没有被声明, 或者其值为空, 那么就以$DEFAULT作为其值 * |
${var+OTHER} |
如果var声明了, 那么其值就是$OTHER, 否则就为null字符串 |
${var:+OTHER} |
如果var被设置了, 那么其值就是$OTHER, 否则就为null字符串 |
${var?ERR_MSG} |
如果var没被声明, 那么就打印$ERR_MSG * |
${var:?ERR_MSG} |
如果var没被设置, 那么就打印$ERR_MSG * |
${!varprefix*} |
匹配之前所有以varprefix开头进行声明的变量 |
${!varprefix@} |
匹配之前所有以varprefix开头进行声明的变量 |
* 当然, 如果变量var已经被设置的话, 那么其值就是$var.
字符串操作
表达式 |
含义 |
${#string} |
$string的长度 |
${string:position} |
在$string中, 从位置$position开始提取子串 |
${string:position:length} |
在$string中, 从位置$position开始提取长度为$length的子串 |
${string#substring} |
从变量$string的开头, 删除最短匹配$substring的子串 |
${string##substring} |
从变量$string的开头, 删除最长匹配$substring的子串 |
${string%substring} |
从变量$string的结尾, 删除最短匹配$substring的子串 |
${string%%substring} |
从变量$string的结尾, 删除最长匹配$substring的子串 |
${string/substring/replacement} |
使用$replacement, 来代替第一个匹配的$substring |
${string//substring/replacement} |
使用$replacement, 代替所有匹配的$substring |
${string/#substring/replacement} |
如果$string的前缀匹配$substring, 那么就用$replacement来代替匹配到的$substring |
${string/%substring/replacement} |
如果$string的后缀匹配$substring, 那么就用$replacement来代替匹配到的$substring |
expr match "$string" '$substring' |
匹配$string开头的$substring*的长度 |
expr "$string" : '$substring' |
匹配$string开头的$substring*的长度 |
expr index "$string" $substring |
在$string中匹配到的$substring的第一个字符出现的位置 |
expr substr $string $position $length |
在$string中从位置$position开始提取长度为$length的子串 |
expr match "$string" '\($substring\)' |
从$string的开头位置提取$substring* |
expr "$string" : '\($substring\)' |
从$string的开头位置提取$substring* |
expr match "$string" '.*\($substring\)' |
从$string的结尾提取$substring* |
expr "$string" : '.*\($substring\)' |
从$string的结尾提取$substring* |
* $substring是一个正则表达式.
一些结构的汇总
表达式 |
解释 |
中括号 |
|
if [ CONDITION ] |
测试结构 |
if [[ CONDITION ]] |
扩展的测试结构 |
Array[1]=element1 |
数组初始化 |
[a-z] |
正则表达式的字符范围 |
大括号 |
|
${variable} |
参数替换 |
${!variable} |
|
{ command1; command2; . . . commandN; } |
代码块 |
{string1,string2,string3,...} |
大括号扩展 |
圆括号 |
|
( command1; command2 ) |
子shell中执行的命令组 |
Array=(element1 element2 element3) |
数组初始化 |
result=$(COMMAND) |
在子shell中执行命令, 并将结果赋值给变量 |
>(COMMAND) |
|
<(COMMAND) |
进程替换 |
双圆括号 |
|
(( var = 78 )) |
整型运算 |
var=$(( 20 + 5 )) |
整型运算, 并将结果赋值给变量 |
引号 |
|
"$variable" |
"弱"引用 |
'string' |
"强"引用 |
后置引用 |
|
result=`COMMAND` |
在子shell中运行命令, 并将结果赋值给变量 |
发表评论
-
使用 tcpdump 抓包
2015-09-06 19:31 809sudo tcpdump -A -vvvv -i lo0 p ... -
命令行获取本机公网 IP 地址
2014-07-28 15:37 1141在命令行里运行如下命令: $ curl ifconfig. ... -
grep 目录级联查找
2014-03-12 10:08 3235在Mac或者Linux下使用grep进行文件 ... -
如何确认当前使用的Shell类型
2014-03-09 11:01 1322方法一: ps |grep $$|awk '{print ... -
linux 踢出在线用户
2012-12-28 18:16 2101两个步骤: 1.用w命令找到要踢出的用户,比如下面: ... -
管理用户分组的命令gpasswd
2012-10-26 11:40 1306NAME: gpasswd - administe ... -
shell脚本运行时报错误:/bin/bash^M: bad interpreter 的解决办法
2012-10-24 19:13 2935出现原因:windows上写的脚本,直接拷贝到linux系统上 ... -
Linux 软链接和硬链接
2012-10-22 13:57 14981.Linux链接概念Linux链接分两种,一种被称为硬链接( ... -
非常好的介绍:Linux定时执行工具cron
2012-07-17 19:26 1867Linux经过十多年的发展,很多用户都很了解Linux了,这里 ... -
Linux下使用rsync最快速删除海量文件的方法
2012-06-28 11:25 14901、先安装rsync:yum install rsync 2 ... -
vim 如何取消高亮 或取消选中状态
2012-03-23 15:22 5822命令:nohls -
shell数组小结
2012-02-28 13:51 2380数组的声明: 1)array[key]=value ... -
linux 限制或允许root通过ssh登录
2012-02-23 10:59 1454两步: 第一步,vim /etc/ssh/sshd_conf ... -
/etc/sysconfig/iptables 详解
2012-01-11 14:13 1063#头两行是注释说明 # Firewall configura ... -
关于用snmpwalk时报"Permission denied"错误的解决办法
2011-09-28 18:17 1433当运行snmpwalk命令时,如果出现类似提示信息 ... -
关于Tomcat的SSL操作
2011-08-18 19:59 1008在线JKS合成工具: https://www.myssl.cn ... -
Apache2.2+mysql5+php5.3配置[转载]
2011-07-13 18:32 1539上次配了一次这样的环境,今天又配了一次,我靠,又浪费我几个小时 ... -
linux 忘记root密码的解决办法
2011-06-13 11:05 1189第一步:开机启动的时候按下'e'键.出现菜单'Red Hat ... -
Linux文件和目录的粘滞位(sticky bit)带来的困惑
2011-02-24 13:20 5887今天维护系统时 ... -
Linux下获取本机公网/外网IP
2010-09-16 15:24 1968运行该命令:curl http://members.3322. ...
相关推荐
Linux Shell 编程课程设计知识点总结 本课程设计旨在帮助学生理解 Shell 程序的执行环境和执行过程,掌握 Shell 语言的一般语法规则,并能用 bash 编写简单的 shell 程序。 课程设计概述 本实验的目的是使学生...
知识点: * Linux 操作系统的基本概念 * Shell 命令的使用 * 文件处理和 C 编程的基本操作 * 进程控制的基本概念 * Shell 语言的基本语法规则 * Linux 应用水平的提高 问题: 1. 如何使用 Shell 命令进行文件处理...
【Bash shell编程备忘单】 Bash是Unix/Linux系统中的命令行解释器,用于执行shell脚本。关键概念有: 1. 命令行参数:$0表示脚本名,$1到$9表示传递的前9个参数。 2. 变量:使用等号赋值,如`VAR=value`。export...
以上只是部分知识点,实际的“Linux 备忘手册”可能会更详尽,包括更多高级主题,如文件系统类型、软硬件设备管理、系统性能调优、内核配置以及故障排查等。熟练掌握这些命令和概念,将极大地提升你在Linux环境中的...
下面将详细阐述其中涉及的主要知识点: 1. **编程语言**: - **JavaScript**: 一种广泛用于网页和应用开发的脚本语言,尤其在客户端编程中不可或缺。备忘单可能包含变量声明、函数、对象、DOM操作、事件处理等内容...
这个压缩包文件“Cheatsheets-main”中的备忘单很可能包含了上述所有或部分编程和开发领域的关键知识点,旨在帮助学习者巩固和提高他们在Codecademy上所学的技能。通过详细阅读和理解这些备忘单,学习者可以快速回顾...
#15 Cheat Sheets cheat sheet原意是考试作弊带的小抄,但也不完全是作弊,记得大学考计组时就允许带...Shell Script Cheat Sheet: Shell脚本编程常用语法 Linux Command Cheat Sheet: Linux常用命令快速索引 Linux Adm
下面是一些基本的Shell脚本知识点: 1. **变量**:Shell脚本中的变量用于存储数据,如文本、数字或路径。定义变量使用`name=value`格式,无需声明类型。 2. **命令行参数**:脚本可以接受命令行参数,这些参数在...
**详细知识点可能包括:** 1. **编程语言备忘单**: 可能涵盖Python、Java、C++、JavaScript等常见语言的语法、常用函数、错误处理等内容。 2. **框架和库**: 如React、Vue.js、Django、Spring Boot等的API用法、...
本备忘单主要涵盖了四个核心领域:Git版本控制,Vim编辑器,Bash Shell命令以及Linux系统命令,同时也提及了Java,Docker,LaTeX和IntelliJ IDEA等相关知识点。下面我们将逐一深入探讨这些主题。 1. Git版本控制: ...
以下将基于提供的书籍资源,详细解析Linux相关的知识点。 首先,"Linux 从实践中学习.pdf"这本书很可能涵盖从安装Linux系统到日常使用的一系列实践操作。这包括选择合适的Linux发行版(如Ubuntu、CentOS或Debian)...
通过以上知识点的学习,高级Java工程师不仅能够具备扎实的基础技能,还能够在面对复杂的软件开发任务时,更加从容不迫,有效地解决问题。此外,对于希望在Java领域进一步提升自己的开发者来说,这些知识也是不可或缺...
《Memento-CheatSheet》是面向开发者的一份综合备忘单,涵盖了多个IT领域的关键知识点。这份资源旨在帮助开发者快速回顾和掌握各种编程语言、框架和技术的常用技巧和概念。以下是对标题和描述中提到的知识点的详细...
速查表可能涵盖了JavaScript的基础语法、函数、对象、数组、字符串操作、事件处理、DOM操作、AJAX请求等相关知识点。 【压缩包子文件的文件名称列表】:cheatsheets-master 这个文件名“cheatsheets-master”暗示...
这个过程涉及到几个关键知识点,我们将逐一详细解释。 1. **Graphviz基础**: Graphviz是由AT&T实验室开发的,基于DOT语言的图形渲染引擎。DOT语言是一种简单的文本描述语言,用于定义图形的结构,包括节点、边...