- 浏览: 743962 次
- 性别:
- 来自: 北京
最新评论
-
nmgrd:
赞一个,在分析AQS源码的博客当中,楼主是写的最细致,最易懂, ...
java并发编程--AbstractQueuedSynchronizer公平锁和非公平锁分析(三) -
ljzxloaf:
阻塞和等待不一样吧,condition持有等待队列,而AQS持 ...
java并发编程--AbstractQueuedSynchronizer加锁和解锁分析(二) -
DaCang4535:
楼主,不知道你那个book类有什么作用。setBook那个方法 ...
JAXB--简单应用(一) -
yuhui0531:
f-u-c-k!!!!!!!!!!!!!!!!!!!!!!!! ...
java线程常见的几种死锁模式和解决方法 -
刘文超:
form提交的几种方法
文章列表
linux服务和启动流程
- 博客分类:
- linux
1. linux服务(daemon):stand alone(服务可单独启动)和super daemon(通过xinetd统一管理的服务)。
1.1 stand alone daemon启动的脚本放置在/etc/init.d/这个目录中,
启动规则一:/etc/init.d/rsync {start|stop|status|restart|condrestart}
启动规则二:service rsync start
特点:daemon常驻内存,响应快,无服务启动时间。
1.2 super daemon的配置文件/etc/xinetd.conf,个别daem ...
条件测试的标准
Bash中允许测试两种类型的条件:命令成功或失败,表达式成功或失败
任何一种测试中,都要有退出状态(返回值),退出状态为0表示命令成功或表达为真,非0则表示命令失败或表达式为假。
状态变量$?中保存命令退出状态的值
&& 当前面的命令执行正确时(仅有标准输出),就可以接着执行后面的命令,否则略过。
|| 刚好相反,当前面的命令执行错误时(仅有错误输出),就可以接着执行后面的命令,否则略过。
command1 && command2 || command3
如果对linux shell 数组不是很熟悉的话,请看上一篇文章:linux shell 数组建立及使用技巧 ,这篇文章主要讲是动态生成数组系列。方法应该很多,我这里主要以一个求和计算的题目为例进行分析。
题目:请用linux shell 写一段脚本,实现从1..1000中所有偶数的和值。
方法一:
linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case)。下面我将通过例子介绍下,各个语句使用方法。
一、shell条件语句(if用法)
if语句结构[if/then/elif/else/fi]
if 条件测试语句
then
linux shell在编程方面比windows 批处理强大太多,无论是在循环、运算。已经数据类型方面都是不能比较的。 下面是个人在使用时候,对它在数组方面一些操作进行的总结。
1.数组定义
[chengmo@centos5 ~]$ a=(1 2 3 4 5)[chengmo@centos5 ~]$ echo $a1
一对括号表示是数组,数组元素用“空格”符号分割开。
2.数组读取与赋值
得到长度:
在刚开始学习inux shell脚本编程时候,对于它的 四则运算以及逻辑运算。估计很多朋友都感觉比较难以接受。特变逻辑运算符”[]”使用时候,必须保证运算符与算数 之间有空格。 四则运算也只能借助:let,expr等命令完成。 今天讲的双括号”(())”结构语句,就是对shell中算数及赋值运算的扩展。
使用方法:
语法:
((表达式1,表达式2…))
特点:
shell常用语法总结
- 博客分类:
- linux
1 变量小结
1.1 变量显示(2种方式):
echo $var
echo ${var}
1.2 变量赋值(等号两侧不能有空格,否则,会当成命令来解析):
var="aaaa"
如:> var = "aaa"
-bash: var: command not found
常见用法:
var=$(uname -r) #不容易 ...
shell中的特殊变量
- 博客分类:
- linux
shell中的特殊变量:
变量名 含义
$0 shell或shell脚本的名字
$* 以一对双引号给出参数列表
$@ 将各个参数分别加双引号返回
$# 参数的个数
$_ 代表上一个命令的最后一个参数
$$ 代表所在命令的PID
$! 代表最后执行的后台命令的PID
$? 代表上一个命令执行后的退出状态
shell script的追踪与调试
- 博客分类:
- linux
shell脚本的追踪和调试
sh [-nvx] scripts.sh
参数:
-n:不要执行script,仅检查语法的问题;
-v:在执行script前,先将script的内容输出到屏幕上;
-x:将使用到的script内容显示到屏幕上,非常使用,开发调试利器;使用 -x 是追踪脚本的好方法,它可以在执行前列出所有执行的程序段,如果是程序段落,则输出时,最前面会加上 + 符号,表示它是程序代码,实际的输出则与标准输出有关。
使用lsof命令查看哪个进程占用某端口
- 博客分类:
- linux
lsof简介
lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接 和硬件。所以如传输控制协议 (tcp) 和用户数据报协议 (udp) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因 为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。
lsof输出信息含义
在终端下 ...
Java线程:新特征-有返回值的线程
在Java5之前,线程是没有返回值的,常常为了“有”返回值,破费周折,而且代码很不好写。或者干脆绕过这道坎,走别的路了。
现在Java终于有可返回值的任务(也可以叫做线程)了。
可返回值的任务必须实现Callable接口,类似的,无返回值的任务必须Runnable接口。
执行Callable任务后,可以获取一个Future的对象,在该对象上调用get就可以获取到Callable任务返回的Object了。
下面是个很简单的例子:
Java线程:新特征-线程池
Sun在Java5中,对Java线程的类库做了大量的扩展,其中线程池就是Java5的新特征之一,除了线程池之外,还有很多多线程相关的内容,为多线程的编程带来了极大便利。为了编写高效稳定可靠的多线程程序,线程部分的新增内容显得尤为重要。
有关Java5线程新特征的内容全部在java.util.concurrent下面,里面包含数目众多的接口和类,熟悉这部分API特征是一项艰难的学习过程。目前有关这方面的资料和书籍都少之又少,大所属介绍线程方面书籍还停留在java5之前的知识层面上。
当然新特征对做多线程程序没有必须的关系,在jav ...
Linux防火墙(iptables)的开启与关闭
Linux中的防火墙主要是对iptables的设置和管理.
1. Linux防火墙(Iptables)重启系统生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
2.Linux防火墙(Iptables) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。
在开启了Linux防火墙(Iptables)时 ...
今天在家里的RHLE5.5上安装apache的时候,先用user1用户./configure命令配置,然后才用root用户make && make install,结果apache起来的时候就报如下错误:
httpd: apr_sockaddr_info_get() failed for bogon
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
虽然不妨碍 ...
查询、修改主机信息
一、如何修改Linux主机名称
1. 变更当前主机名 1.1 echo new-hostname > /proc/sys/kernel/hostname (系统启动时,从此文件中读取主机名字) 1.2 hostname new-hostname (即时生效,但系统重启后将失效)
2. 修改配置文件,使得下次重启的时候,使用新的主机名
2.1 编辑文件: /etc/sysconfig/network(注意:修改主机名后,需要重启系统后生效)