unix

Unix传奇(上篇)

混江龙づ霸主 提交于 2020-03-24 14:11:55
http://hi.baidu.com/hieda/blog/item/eb78fd444aca4940510ffeef.html 了解过去,我们才能知其然,更知所以然。总结过去,我们才会知道我们明天该如何去规划,该如何去走。在时间的滚轮中,许许多的东西就像流星一样一闪而逝,而有些东西却能经受着时间的考验散发着经久的魅力,让人津津乐道,流传至今。要知道明天怎么去选择,怎么去做,不是盲目地跟从今天各种各样琳琅满目前沿技术,而应该是去 —— 认认真真地了解和回顾历史。 Unix是目前还在存活的操作系统的元老了,走过了40年的历程(参看《 Unix 40年:Unix年鉴 》、《 Unix 40年:昨天,今天和明天 》)。在技术更新如此迅速的计算机世界的今天,Unix始终保持它那神圣的光环,它那曲折和令人叹息的历史,以及由它引发的思想变革,对当今计算机文化造成的深远影响,这40年所产生的人和事,让它成为了一个传奇,不能不让人为之惊叹。 这是一段所有从事计算机行业人员尤其是软件开发人员需要了解的历史。Unix的传奇历史是整个计算机世界文化最具代表性的,它对整个计算机世界文化的影响也是最巨大,最深远的。他给人带来的不单单的对过去的回味,更为我们带来了计算机世界的新思潮。 了解这段的历史的人,才能体会计算机世界变迁过程中的是是非非,才能了解计算机世界中的文化,从而才能参与到整个计算机革命的大潮中

计算机经典书籍

*爱你&永不变心* 提交于 2020-03-23 00:14:59
1、Java Java编程语言(第三版)---Java四大名著----James Gosling(Java之父) Java编程思想(第2版)----Java四大名著----Bruce Eckel Java编程思想(第3版)----Java四大名著----------------Bruce Eckel JAVA 2核心技术 卷I:基础知识(原书第7版)---Java四大名著-----Cay Horstmann JAVA 2核心技术 卷II:高级特性(原书第7版)----Java四大名著-----Cay Horstmann Effective Java中文版------Java四大名著--------Joshua Bloch 精通Struts:基于MVC的Java Web设计与开发---孙卫琴 精通Hibernate:Java对象持久化技术详解---孙卫琴 Tomcat与Java Web开发技术详解------------孙卫琴 Java与模式------------------------------阎宏 2、c# C#程序设计-------Charles Petzold“windows编程泰山北斗”---C#语言“倚天屠龙双剑” C# Primer中文版--------Stanley B.Lippman---C#语言“倚天屠龙双剑” .NET框架程序设计(修订版)-------

UltraEdit实现“删除包含某个关键字的所有行”

自古美人都是妖i 提交于 2020-03-22 17:32:22
原文: UltraEdit实现“删除包含某个关键字的所有行” UltraEdit实现“删除包含某个关键字的所有行” 1.Ctrl+R调出“替换对话框” 2.在左下角的“正则表达式”和“从文件顶部全部替换”都打勾(正则表达式引擎用UltraEdit) 3.在“查找内容”后面输入:*select*^p 4.在“替换为”后面置空 5.点击右侧的“全部替换” 但是注意这里的^p只是在unix编码格式中,dos编码格式时要用^n。 UE的DOS格式: 纯文本文件(不包括MAC格式)一般有两种,一种表示行末的是一个“回车+换行”也就是“\r\n”组合,另一种呢,则只有换行,也就是“\n”,这两种格式,一种是DOS格式,另一种一般是Unix系统使用的,所谓转换成DOS格式就是指这种转换了。 下面解释下ultraedit正则表达式: 首先,在UE中需要用户按键到“高级”-“配置”-“搜索”-“正则表达式引擎”中进行使用哪一种正则表达式的选择。如图 如果你选中“UltraEdit风格正则表达式”,在以后的搜索和替换功能中就将使用“UltraEdit风格正则表达式”的语法规则来进行操作,其它同理。 现在的版本里面,还加入了“Perl 兼容正则表达式”,在以后的文章中还有提到。 符号 功能 % 匹配行的开始 - 显示搜索字符串必须在行的开始,但是在所选择的结果字符串中不包括任何行终止字符。 $ 匹配行尾

开发人员行走Unix的随身四艺

感情迁移 提交于 2020-03-22 05:21:01
Unix系统永远只会越来越多,开发人员就没必要特意学习它们的安装、配置和管理了,就全部交给集成人员吧。 但开发人员行走于Unix之间,依然有四样东西要熟练。 一、VI 虽然Unix上的文本编辑器已经越来越好用,但不在Console前面,网速也不够连XWindows的时候,还是要依赖VI。 回想VI的时代背景,发现VI对开发人员已经周到得离谱了,热键多到你双手不离键盘就能完成大半编辑工作。 建议自己制作一张自己认为有用,但又经常忘记的命令的sheet--参见附录A,拿出考试的力气把它背熟。 二、文本处理 开发人员在Unix下干得最多的除了Make和除Bug外,大概就是处理日志文件、业务文件的查错和统计了。 只会more和grep是不够的,开发老手会把awk,sed,grep,sort,uniq,wc,head,tail这些文本处理命令,通过管道玩具 式的拆卸拼装,最后完成一件原本以为非编写大段代码不可的工作。周到的参数设定,让人再一次感叹那个简单的年代,这样复杂到极致的设计.......怪不 得《Unix 编程艺术》的作者有那么骄傲的自觉。 比如车东的每月访问TOP10 统计脚本: awk -F '\ t' '{ print $ 4 }' 2004_2 . txt| grep chedong . com / tech / | uniq -c| sort -rn|head - 10

how do you script gnu screen from within a screen session to open new windows and run commands in them?

让人想犯罪 __ 提交于 2020-03-21 05:17:09
问题 From within a screen session, I'd like to run a shell script that opens a few new screen windows in the same session and start running some programs in them. I need a script like this: screen -t newWindow [switch to newWindow and execute a command] screen -t newWindow2 [switch to newWindow2 and execute a command] I don't know how to accomplish the effect I describe in the brackets. Any clues? Please note that this is not a script I'll be running to start a screen session. I need this script

Splitting a large directory into smaller ones in Linux

北慕城南 提交于 2020-03-21 03:45:49
问题 I have a large directory named as application_pdf which contains 93k files. My use-case is to split the directory into 3 smaller subdirectories (to a different location that the original large directory) containing around 30k files each. Can this be done directly from the commandline. Thanks! 回答1: Using bash: x=("path/to/dir1" "path/to/dir2" "path/to/dir3") c=0 for f in * do mv "$f" "${x[c]}" c=$(( (c+1)%3 )) done 回答2: If you have the rename command from Perl , you could try it like this:

开发人员行走Unix的随身四艺

邮差的信 提交于 2020-03-19 13:58:43
Unix系统永远只会越来越多,开发人员就没必要特意学习它们的安装、配置和管理了,就全部交给集成人员吧。 但开发人员行走于Unix之间,依然有四样东西要熟练。 一、VI 虽然Unix上的文本编辑器已经越来越好用,但不在Console前面,网速也不够连XWindows的时候,还是要依赖VI。 回想VI的时代背景,发现VI对开发人员已经周到得离谱了,热键多到你双手不离键盘就能完成大半编辑工作。 建议自己制作一张自己认为有用,但又经常忘记的命令的sheet,拿出考试的力气把它背熟。 二、文本处理 开发人员在Unix下干得最多的除了Make和除Bug外,大概就是处理日志文件、业务文件进行查错和统计了。 只会more和grep是不够的,开发老手会把awk,sed,grep,sort,unique,wc这些文本处理命令,通过管道玩具式的拆卸拼装,最后完成一件原本以为非编写大段代码不可的工作。周到的参数设定,让人再一次感叹那个简单的年代,复杂到极致的设计.......怪不得《Unix 编程艺术》的作者有那么骄傲的自觉。 比如车东的每月访问TOP10 统计脚本: awk -F ' t' '{ print $ 4 }' 2004_2 . txt| grep chedong . com / tech / | sort |uniq -c| sort -rn|head - 10 awk -F '/t'

How can we get weekday based on given date in unix

痴心易碎 提交于 2020-03-18 17:54:16
问题 From a given date in %m-%d-%Y format we should determine what day it is Please help me with the command like if i pass a date like 09-01-2017 output should be Friday 回答1: DayOfWeek=$(date +%A) This would yield the day of week monday-sunday If your input date is strictly in the format MM-DD-YYYY , use the following IFS='-' read -ra ADDR <<< "09-01-2017" formattedDate=${ADDR[2]}-${ADDR[0]}-${ADDR[1]} date -d $formattedDate +%A The first line tokenizes the components of the date and the second

How can we get weekday based on given date in unix

岁酱吖の 提交于 2020-03-18 17:53:17
问题 From a given date in %m-%d-%Y format we should determine what day it is Please help me with the command like if i pass a date like 09-01-2017 output should be Friday 回答1: DayOfWeek=$(date +%A) This would yield the day of week monday-sunday If your input date is strictly in the format MM-DD-YYYY , use the following IFS='-' read -ra ADDR <<< "09-01-2017" formattedDate=${ADDR[2]}-${ADDR[0]}-${ADDR[1]} date -d $formattedDate +%A The first line tokenizes the components of the date and the second

Nginx平滑升级源码分析

大城市里の小女人 提交于 2020-03-18 14:48:15
一、平滑升级步骤 1、重命名之前的sbin/nginx文件,将新的nginx文件放到sbin/目录下 #mv ./sbin/nginx ./sbin/nginx.old #cp ~/nginx ./sbin/ 2、向正在运行的nginx发送USR2信号启动新的nginx,这个时候新老nginx都会接收请求,看那一个进程能抢到锁,抢到锁的worker进程可以accpet新请求 #kill -USR2 `cat nginx.pid` 3、观察新的nginx运行无误后,向旧nginx发信号 停止旧nginx的运行 #kill -QUIT `cat nginx.pid.oldbin` 二、源码分析 1,nginx启动时 设置信号监听函数,监听信号 src/core/nginx.c 368行 ngx_init_signals函数 设置要监听的信号,和信号的处理函数 src/core/nginx.c 291-293行 信号为sig->signo,对应的处理函数为sig->handler sig的定义如下 QUIT和USR2的信号处理函数都为 ngx_signal_handler 对应的流程图为 2、master进程通过sigsuspend挂起在信号监听处 3,向master进程id发送USR2信号 ngx_signal_handler处理USR2信号 src/os/unix/ngx