正则表达式

if( preg_match( '/^\/service\/(.*?)$/', $request_url ) === 1 )
把这个case弄透
把正则表达式全看完吧
------------------------------------------------------
\\tc-apptest-cms03.tc.baidu.com\user1\cmsui
成功创建映射网络驱动器

回家尝试
\\tc-apptest-cms02.tc.baidu.com\user1
---------------------------------------------------
zip命令

zip -r gamebox.zip gamebox
zip -r gamebox.zip gamebox/Applications        // 只压缩gamebox目录下的Applications文件夹
zip save.zip -d ~/huming/back/huming/ 把save.zip解压到目录 ~/huming/back/huming下

注意:如果不加-r,则只会压缩空文件夹
--------------------------------------
vi下
:set fileencoding可以看到编码格式
:set fileencoding=utf-8可以直接设置
--------------------------------
引用:
在Linux中查看文件编码可以通过以下几种方式:

1.在Vim中可以直接查看文件编码
:set fileencoding
即可显示文件编码格式。
如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在
~/.vimrc 文件中添加以下内容:
set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936
这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开。

-------------------------------------------------
free显示信息:             
             total       used       free     shared    buffers     cached
Mem:       8164340    8122280      42060          0      46856    1581420
-/+ buffers/cache:    6494004    1670336
Swap:      1024056     233692     790364
如何查看free命令显示的信息?
--------------------------------------------------
top 显示进程信息
tload 显示系统负载 内容未看懂
file 显示文件基本信息,文件长度,文件格式等等
lsb_release -a 查看Linux版本 
cat /proc/version 查看内核版本
date格式 Thu Sep 12 16:07:03 CST 2013
free显示信息:             
             total       used       free     shared    buffers     cached
Mem:       8164340    8122280      42060          0      46856    1581420
-/+ buffers/cache:    6494004    1670336
Swap:      1024056     233692     790364
---------------------------------------------------------------------------------------------
            $user_id = $sess->get('cms','login_user_id');
            $channel_id = $sess->get( 'cms', 'cms_top_ch' );
            $password = $sess->get('cms', 'cas_user_password');
            $channel_name = $sess->get( 'cms', 'cms_top_ch_spell' );


-------------------------------------------------------
一个完整的POST过程:
--------------------------------------------------------------------------          
               $err_msg = $this->build_err_msg("execute deliver fail, fail_reason:".$ret['fail_reason']);    
               $logger->error($err_msg,__FILE__,__LINE__);    
               //打印调试
               $post_data = array(
               //all message parameter here
               'priority' => 3,     //默认是3,也可以改成其他优先级
               'businessCode' => 55,
               //短信ID,待填
               //'msgId' =>
               'msgDest' => $potentate_num,
               'msgContent' => '发布过程出错,文件未能全部发布成功!',
               'userName' => 'vscms',
               'password' => 'dbef9d4b65dd43b8101a2831fe17bb2a'     //常规md5加密,32位MD5小写
               //'password' => 'vscms&*()'
                    );                        
              
               $ch = curl_init();
               curl_setopt($ch, CURLOPT_POST, 1);
               curl_setopt($ch, CURLOPT_HEADER, 0);
               curl_setopt($ch, CURLOPT_URL, $smss_url);
               curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
               curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data));
               $response= curl_exec($ch);
              
               if (curl_errno($ch) != 0) {
                    $err_msg = curl_error($ch);
                    curl_close($ch);
               }    
                                            
               curl_close($ch);     
----------------------------------------------------------------------------

----------------------------------------------------------------------
朱旭项目里边需要一个获取mis当前登录用户名的函数。你写一个吧~
放到util.php中就行,然后需要在MetadataJsContext.class.php中注册一下。
----------------------------------------------------------------------
关于获取正确的当前时间
解决方式:

在页头使用date_default_timezone_set()设置我的默认时区为北京时间

date_default_timezone_set('PRC');
echo  date('Y-m-d H:i:s');

时间和服务器当前时间一样了
-----------------------------------------------------------------------
只显示某些行:

linux 如何显示一个文件的某几行(中间几行)

【一】从第3000行开始,显示1000行。即显示3000~3999行

cat filename | tail -n +3000 | head -n 1000

 

【二】显示1000行到3000行

cat filename| head -n 3000 | tail -n +1000

 

*注意两种方法的顺序

 

分解:

    tail -n 1000:显示最后1000行

    tail -n +1000:从1000行开始显示,显示1000行以后的

    head -n 1000:显示前面1000行

 

【三】用sed命令

 

 sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行。


看来需要学习些OP使用的命令了,方便自己追问题或是追bug。
比如:awk

总结,以后遇到这种问题该怎么办?
1、log里有ERROR的错误,看函数调用栈即可
2、像今天这样,log里没有error,而是程序执行到某一步直接停掉了。。。。基本是什么原因?需要跟朱旭沟通,怎么跟他沟通?向他问什么问题?
--------------------------------------------------------------
firebug调试是什么意思?
--------------------------------------------------------------
只显示某些行:

linux 如何显示一个文件的某几行(中间几行)

【一】从第3000行开始,显示1000行。即显示3000~3999行

cat filename | tail -n +3000 | head -n 1000

 

【二】显示1000行到3000行

cat filename| head -n 3000 | tail -n +1000

 

*注意两种方法的顺序

 

分解:

    tail -n 1000:显示最后1000行

    tail -n +1000:从1000行开始显示,显示1000行以后的

    head -n 1000:显示前面1000行

 

【三】用sed命令

 

 sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行。


看来需要学习些OP使用的命令了,方便自己追问题或是追bug。
比如:awk

总结,以后遇到这种问题该怎么办?
1、log里有ERROR的错误,看函数调用栈即可
2、像今天这样,log里没有error,而是程序执行到某一步直接停掉了。。。。基本是什么原因?需要跟朱旭沟通,怎么跟他沟通?向他问什么问题?

--------------------------------------------------------------------------------------------------------------

关于筛选包含中文字符串的行,Linux下不方便,应该使用Windows下的UltraEdit来筛选:
UltraEdit32,查找功能(CTRL + F),高级(老的版本无需点高级),勾选中"列出包含字符串的所有行/List Lines Containing String",然后查找,找到后会有一个列表框,右边有复制到剪切板的按钮…… 
我这儿没有你说的只列出一行的问题。
修改:
我明白你的意思了,这个仍然可以用UltraEdit来解决,只要用好正则表达式就行:
查找时,勾选“正则表达式”,引擎使用“UltraEdit”,搜索的字符输入:
User=^[HC2^]?+[^r^p^n]?+[^r^p^n]
上面的是匹配多出一行来的,我用你补充的数据测试是可以的。如果再要多几行,可以多加几个 ?+[^r^p^n]
其中[^r^p^n]是匹配一个换行符,但因为不知道你的文件具体是哪种方式的换行,所以用了三种供任意匹配。
----------------------------------------------------------
vi下的分屏操作:
vi -On filename1 filename2   这是垂直分屏
vi -on filename1 filename2     这是水平分屏

启动分屏

1.使用大写O参数进行垂直分屏

$ vim -On file1 file2 ...

2.使用小写o参数进行水平分屏

$ vim -on file1 file2 ...

: n是数字,表示分屏的数量


关闭分屏

1.关闭当前窗口

ctrl+w c

2.关闭当前窗口,如果只剩最后一个,则退出vim

ctrl+w q

关闭分屏

1.关闭当前窗口

ctrl+w c

2.关闭当前窗口,如果只剩最后一个,则退出vim

ctrl+w q

 

编辑中分屏

1.上下分割当前打开的文件

ctrl+w s

2.上下分割,并打开一个新的文件

:sp filename

3.左右分割当前打开的文件

ctrl+w v

4.左右分割,并打开一个新的文件

:vsp filename

 

分屏编辑中光标的移动

vi中的光标键是h,j,k,l,要在各个屏之间切换,只需要先按一下ctrl+w

1.把光标移动到上边的屏

ctrl+w k

2.把光标移动到下边的屏

ctrl+w j

3.把光标移动到右边的屏

ctrl+w l

4.把光标移动到左边的屏

ctrl+w h

5.把光标移动到下一个的屏

ctrl+w w

 

移动分屏

1.向上移动

ctrl+w K

2.向下移动

ctrl+w J

3.向右移动

ctrl+w L

4.向左移动

ctrl+w H


屏幕尺寸

1.增加高度

ctrl+w +

2.减少高度

ctrl+w -

3.让所有屏的高度一致

ctrl+w =
--------------------------------------------------------------------------

cms线上机器部署:

tc-cms-db00.tc (cmsui

tc-cms-db01.tc (cmsdeliver

ai-cms-hn00.ai01 (后端定时定点脚本:updatetask_shell_new)

ai-cms-hn01.ai01 (cmspmcenter)

用门神连上机器: tc-cms-db00.tc ( cmsui

-------------------------------------------------------------------------
关于服务器响应慢的问题定位:引用自: http://www.linuxidc.com/Linux/2010-10/29069.htm

起因:线上的一台服务器,最近总是出现 访问 很慢的情况发生,点击一个链接要2秒钟以上才能打开,按照我们对于访问人数的估计,服务器应该不至于响应这么慢,从而需要针对这个问题进行分析,来解决网站访问过慢。

分析:

1、首先,在页面访问变慢情况发生时,使用 top 命令查看了服务器的负载情况,发现负载并不高,初步估计不是程序的问题。 
2、然后,查看了线程中的 httpd 的数量, ps -aux | grep httpd | wc -l 发现,线程数已经达到了 apache 设置的最大值。由此断定是网站访问人数过多造成了访问过慢。 
3、为了验证,查看了连接数和当前的连接数,分别是 
    netstat -ant | grep $ip:80 | wc -l 
    netstat -ant | grep $ip:80 | grep EST | wc -l 
    发现果然,连接数特别多,远远超过我们的估计值。 

--------------------------------------------

---------------------------------------------------------------------------
-----------------------------
香港CMS机器还有服务吗?
hk01-cms-icms1.hk01
这个机器
------------------------------

2、CMS任务积压处理
cms任务积压检查处理

ssh tc-cms-db01.tc
sudo -u rd -iH
cd /home/work/cmsdeliver

1,查看 dlv日志
[rd@tc-cms-db01.tc.baidu.com cmsdeliver]$ grep taskNum log/cmsdeliver.log
NOTICE: 10-28 16:01:48: cmsdeliver. * 182895225568 taskNum=407 get_task_from_db 445
DEBUG: 10-28 16:01:48: cmsdeliver. * 182895225568 Total jobCount=390 taskNum=407
NOTICE: 10-28 16:06:14: cmsdeliver. * 182895225568 taskNum=500 get_task_from_db 445
DEBUG: 10-28 16:06:14: cmsdeliver. * 182895225568 Total jobCount=500 taskNum=500
NOTICE: 10-28 16:11:20: cmsdeliver. * 182895225568 taskNum=500 get_task_from_db 445
DEBUG: 10-28 16:11:20: cmsdeliver. * 182895225568 Total jobCount=500 taskNum=500
NOTICE: 10-28 16:16:31: cmsdeliver. * 182895225568 taskNum=500 get_task_from_db 445
DEBUG: 10-28 16:16:31: cmsdeliver. * 182895225568 Total jobCount=500 taskNum=500
NOTICE: 10-28 16:21:23: cmsdeliver. * 182895225568 taskNum=500 get_task_from_db 445
DEBUG: 10-28 16:21:23: cmsdeliver. * 182895225568 Total jobCount=500 taskNum=500
NOTICE: 10-28 16:26:25: cmsdeliver. * 182895225568 taskNum=500 get_task_from_db 445
DEBUG: 10-28 16:26:25: cmsdeliver. * 182895225568 Total jobCount=500 taskNum=500
NOTICE: 10-28 16:31:23: cmsdeliver. * 182895225568 taskNum=500 get_task_from_db 445
DEBUG: 10-28 16:31:23: cmsdeliver. * 182895225568 Total jobCount=499 taskNum=500
NOTICE: 10-28 16:36:18: cmsdeliver. * 182895225568 taskNum=500 get_task_from_db 445
DEBUG: 10-28 16:36:18: cmsdeliver. * 182895225568 Total jobCount=474 taskNum=500
NOTICE: 10-28 16:37:29: cmsdeliver. * 182895225568 taskNum=500 get_task_from_db 445
DEBUG: 10-28 16:37:29: cmsdeliver. * 182895225568 Total jobCount=242 taskNum=500
NOTICE: 10-28 16:38:10: cmsdeliver. * 182895225568 taskNum=500 get_task_from_db 445
DEBUG: 10-28 16:38:10: cmsdeliver. * 182895225568 Total jobCount=205 taskNum=500

注意 jobCount
如果jobCount在500左右,说明是满了,这样的话,

1.先连上cmsui所在的机器:
ssh  tc-cms-db00.tc.baidu.com
2.转换rd账户
sudo -u rd -iH
3.连上cms数据库
/home/work/mysql/bin/mysql -h10.42.8.212 -ucms_alldb_w -piY7Uhtp97C -P6151 db_cms_utf8

4.mysql> select count(task_id),task_top_ch from table_tasks group by task_top_ch;
查看那些频道的任务太多
5. 再看看现在deliver的任务数
有下降的趋势的吗?
如果有的话,建议是等待。

6. 看看对目前产品线的影响,如果不大,就啥也不干,干等着。
如果影响大,执行:
delete from table_tasks where task_top_ch=xxx
----------------------------------------------------------------------------------
在vim里使用set list显示换行和回车符和制表符
-----------------------------------------------------------------------------------
问题: 两种正则表达式的区别?POSIX和PERL
-------------------------------------------------------------
读编程修养:
      记得有一个UNIX上的服务应用程序,大约有几百的C文件编译而成,运行测试良好,等使用时,每隔三个月系统就是down一次,搞得许多人焦头烂额,查不出问题所在。只好,每隔两个月人工手动重启系统一次。出现这种问题就是Memery Leak在做怪了,在C/C++中这种问题总是会发生,所以你一定要小心。一个Rational的检测工作——Purify,可以帮你测试你的程序有没有内存泄漏。

14、函数的传值和传指针
————————————
向函数传参数时,一般而言,传入非const的指针时,就表示,在函数中要修改这个指针把指内存中的数据。如果是传值,那么无论在函数内部怎么修改这个值,也影响不到传过来的值,因为传值是只内存拷贝。

什么?你说这个特性你明白了,好吧,让我们看看下面的这个例程:

void
GetVersion(char* pStr)
{
    pStr = malloc(10);
    strcpy ( pStr, "2.0" );
}

main()
{
    char* ver = NULL;
    GetVersion ( ver );
    ...
    ...
    free ( ver );
}

我保证,类似这样的问题是一个新手最容易犯的错误。程序中妄图通过函数GetVersion给指针ver分配空间,但这种方法根本没有什么作用,原因就是——这是传值,不是传指针。你或许会和我争论,我分明传的时指针啊?再仔细看看,其实, 你传的是指针其实是在传值
--疑问:这是为什么?

30、请sizeof类型而不是变量
—————————————

许多程序员在使用sizeof中,喜欢sizeof变量名,例如:

int score[100];
char filename[20];
struct UserInfo usr[100];

在sizeof这三个的变量名时,都会返回正确的结果,于是许多程序员就开始sizeof变量名。这个习惯很虽然没有什么不好,但我还是建议sizeof类型。

我看到过这个的程序:

    pScore = (int*) malloc( SUBJECT_CNT );
    memset( pScore, 0, sizeof(pScore) );
    ...
    
此时,sizeof(pScore)返回的就是4(指针的长度),不会是整个数组,于是,memset就不能对这块内存进行初始化。为了程序的易读和易维护,我强烈建议使用类型而不是变量,如:

对于score:     sizeof(int) * 100   /* 100个int */
对于filename:  sizeof(char) * 20   /* 20个char */
对于usr:       sizeof(struct UserInfo) * 100   /* 100个UserInfo */

这样的代码是不是很易读?一眼看上去就知道什么意思了。


另外一点,sizeof一般用于分配内存,这个特性特别在多维数组时,就能体现出其优点了。如,给一个字符串数组分配内存,

/* 
 * 分配一个有20个字符串,
 * 每个字符串长100的内存 
 */

char* *p;

/*
 * 错误的分配方法
 */
p = (char**)calloc( 20*100, sizeof(char) );


/*
 * 正确的分配方法
 */
p = (char**) calloc ( 20, sizeof(char*) );
for ( i=0; i<20; i++){
    /*p = (char*) calloc ( 100, sizeof(char) );*/
    p[i] = (char*) calloc ( 100, sizeof(char) );
}
--我也会犯相同的错误

(注:上述语句被注释掉的是原来的,是错误的,由dasherest朋友指正,谢谢)

为了代码的易读,省去了一些判断,请注意这两种分配的方法,有本质上的差别。


没有转换一个指针。(例如malloc返回的指针是void的,你没有把之转成你实际类型而报警,还是手动的在之前明显的转换一下吧)

类型向下转换。(例如:float f = 2.0; 这种语句是会报警告的,编译会告诉你正试图把一个double转成float,你正在阉割一个变量,你真的要这样做吗?还是在2.0后面加个f吧,不然,2.0就是一个double,而不是float了)

Unix 下,要把自己的程序加入系统的启动服务只需要在 /etc/init.d 中配置就行了。写下一个有启动停止功能脚本,以特殊命名的方式链接到不同启动模式目录下就行了。 Windows 下加一个启动服务,如果你不编写程序,估计比较困难。

Unix 下,如果要取得系统的信息。只需要到 /proc 目录下去 cat 那堆文件。所有进 / 线程的状态、命令行、内存 / 交换区使用情况、打开的文件描述符,等等,系统的 CPU ,内存,交换区,内存文件 IO ,分区,信息,网络,系统运行状态,系统设备,等等,要有多详细就有多详细,而且完全是纯文本的,直接就可以看了。到了 Windows 下,要穷举系统当前进程的信息,就不是一样很容易的事,更别说要取得别的信息了。





Java基本上是采用堆分配



C++ 对象的内存布局 (上)

------------------------------------------------------------------------------------------------------------------------------

另外@胡明,以后申请数据库权限的时候,这2个ip一起申请。
10.23.249.116 服役中的imis机器
10.46.122.52     备用的imis机器
//123.125.70.92     服役中的vmis机器,ping vmis.baidu.com的结果
10.81.8.103     vmis机器,ping db-cms-www0.db01.baidu.com的结果
为什么ping的结果不一样?
实验发现123.125.70.92是百度安全中心的ip,汗,差点出错啊

------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------
命令学习

一些可能你不知道的shell用法和脚本,简单&强大!

在阅读以下部分前,强烈建议读者打开一个shell实验,这些都不是shell教科书里的大路货哦:)

  • !$
    !$是一个特殊的环境变量,它代表了上一个命令的最后一个字符串。如:你可能会这样:
    $mkdir mydir
    $mv mydir yourdir

    $cd yourdir
    可以改成:
    $mkdir mydir
    $mv !$ yourdir
    $cd !$
  • sudo !!
    以root的身份执行上一条命令 。
    场景举例:比如Ubuntu里用apt-get安装软件包的时候是需要root身份的,我们经常会忘记在apt-get前加sudo每次不得不加上sudo再重新键入这行命令,这时可以很方便的用sudo !!完事
    (陈皓注:在shell下,有时候你会输入很长的命令,你可以使用!xxx来重复最近的一次命令,比如,你以前输入过,vi /where/the/file/is, 下次你可以使用 !vi 重得上次最近一次的vi命令。)
  • cd –
    回到上一次的目录 
    场景举例:当前目录为/home/a,用cd ../b切换到/home/b。这时可以通过反复执行cd –命令在/home/a/home/b之间来回方便的切换。
    (陈皓注:cd ~ 是回到自己的Home目录,cd ~user,是进入某个用户的Home目录)
  • ‘ALT+.’ or ‘<ESC> .’
    热建alt+. 或 esc+. 可以把上次命令行的参数给重复出来。
  • --只试验成功了ESC+.
  • ^old^new
    替换前一条命令里的部分字符串
    场景:echo "wanderful",其实是想输出echo "wonderful"。只需要^a^o就行了,对很长的命令的错误拼写有很大的帮助。(陈皓注:也可以使用 !!:gs/old/new
  • du -s * | sort -n | tail
    列出当前目录里最大的10个文件。
  • mtr coolshell.cn
    mtr命令比traceroute要好。
  • --没试验成功
  • 在命令行前加空格,该命令不会进入history里。
  • --没试验成功
  • echo “ls -l” | at midnight
    在某个时间运行某个命令。(这个命令相当有用!!!但是时间点怎么写?)
  • curl -u user:pass -d status=”Tweeting from the shell” http://twitter.com/statuses/update.xml
    命令行的方式更新twitter。
  • curl -u username –silent “https://mail.google.com/mail/feed/atom” | perl -ne ‘print “\t” if /<name>/; print “$2\n” if /<(title|name)>(.*)<\/\1>/;’
    检查你的gmail未读邮件
  • ps aux | sort -nk +4 | tail
    列出头十个最耗内存的进程
  • man ascii
    显示ascii码表。
    场景:忘记ascii码表的时候还需要google么?尤其在天朝网络如此“顺畅”的情况下,就更麻烦在GWF多应用一次规则了,直接用本地的man ascii吧。
  • ctrl-x e
    快速启动你的默认编辑器(由变量$EDITOR设置)。
  • --没试验成功
  • netstat –tlnp
    列出本机进程监听的端口号。(陈皓注:netstat -anop 可以显示侦听在这个端口号的进程)
  • tail -f /path/to/file.log | sed '/^Finished: SUCCESS$/ q'
    当file.log里出现Finished: SUCCESS时候就退出tail,这个命令用于实时监控并过滤log是否出现了某条记录。
  • --待实验
实验文本:
实验结果:

  • ssh user@server bash < /path/to/local/script.sh
    在远程机器上运行一段脚本。这条命令最大的好处就是不用把脚本拷到远程机器上。
  • ssh user@host cat /path/to/remotefile | diff /path/to/localfile -
    比较一个远程文件和一个本地文件
  • --diff改成vimdiff应该也一样
  • screen -d -m -S some_name ping my_router
    后台运行一段不终止的程序,并可以随时查看它的状态。-d -m参数启动“分离”模式,-S指定了一个session的标识。可以通过-R命令来重新“挂载”一个标识的session。更多细节请参考screen用法 man screen
  • wget --random-wait -r -p -e robots=off -U mozilla http://www.example.com
    下载整个www.example.com网站。(注:别太过分,大部分网站都有防爬功能了:))
  • curl ifconfig.me
    当你的机器在内网的时候,可以通过这个命令查看外网的IP。
  • convert input.png -gravity NorthWest -background transparent -extent 720×200  output.png
    改一下图片的大小尺寸
  • lsof –i
    实时查看本机网络服务的活动状态。
  • vim scp://username@host//path/to/somefile
    vim一个远程文件
  • python -m SimpleHTTPServer
    一句话实现一个HTTP服务,把当前目录设为HTTP服务目录,可以通过http://localhost:8000访问 这也许是这个星球上最简单的HTTP服务器的实现了。
  • history | awk '{CMD[$2]++;count++;} END { for (a in CMD )print CMD[a] " " CMD[a]/count*100 "% " a }' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n10
    (陈皓注:有点复杂了,history|awk {print $2}|awk BEGIN {FS=”|”} {print $1}|sort|uniq -c|sort -rn|head -10)
    这行脚本能输出你最常用的十条命令,由此甚至可以洞察你是一个什么类型的程序员。
  • tr -c “[:digit:]” ” ” < /dev/urandom | dd cbs=$COLUMNS conv=unblock | GREP_COLOR=”1;32″ grep –color “[^ ]“
    想看看Marix的屏幕效果吗? (不是很像,但也很Cool!)
  • net rpc shutdown -I ipAddressOfWindowsPC -U username%password
    远程关闭一台Windows的机器
  • :w !sudo tee %
    在vi中保存一个只有root可以写的文件
  • date -d@1234567890
    时间截转时间
  • --没试验车成功
> file.txt
创建一个空文件, 比touch短。
--比touch短是什么意思?

------------------------------------------------------------------------------------------------------
2、命令df
# df -Th

Filesystem    Type    Size  Used Avail Use% Mounted on

/dev/sda1     ext4     13G  7.6G  4.2G  65% /

df 的-T参数就可以显示文件系统的类型,-h参数让其显示的更人性化。

------------------------------------------------------------------------------------------------------
show tables from db_mis like 'cms_%';
这个命令很有用 
----------------------------------------------------------------------------------------------------
当数组作为参数传递给一个函数,则这个数组就退化为指针了
---------------------------------------------------------------------
查看linux下的cpu构架:
cat /proc/cpuinfo
uname -m
arch
--x86_64
---------------------------------------------------
数据库一条insert卡了很久,怎么监控呢?
----------------------------------------------------
疑问:每个类中的activeEnvs()函数为什么会自动执行?这个功能是写到框架里的吗?
--------------------------------------------------------------------------------------------------------------------

@如何查看一个文件有多少行,多少个word,最长那行多少个字

如:wc -l filename 就是查看文件里有多少行

       wc -w filename 看文件里有多少个word。

       wc -L filename 文件里最长的那一行是多少个字。
-------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------
@ 只显示某些行:

linux 如何显示一个文件的某几行(中间几行)

【一】从第3000行开始,显示1000行。即显示3000~3999行

cat filename | tail -n +3000 | head -n 1000

【二】显示1000行到3000行

cat filename| head -n 3000 | tail -n +1000 

*注意两种方法的顺序

 分解:

    tail -n 1000:显示最后1000行

    tail -n +1000:从1000行开始显示,显示1000行以后的

    head -n 1000:显示前面1000行 

【三】用sed命令

 sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行。

看来需要学习些OP使用的命令了,方便自己追问题或是追bug。
比如:awk

---------------------------------------------------------------------------------------------------------------------------
@Chrome快捷键
 
Alt + D\Ctrl + L\F6    进入Chrome地址栏
Ctrl+U 查看源代码 
--------------------------------------------------------
find -mtime
假如删除当前目录下最后修改时间是3小时以前的文件
find . -mmin 180 -print | xargs rm -rf
注意-mtime之后带的数字是以24小时为单位的
 
  
@完整的find按时间查找
find 按文件修改时间查找文件
---(+n)----------|----------(n)----------|----------(-n)---
      (n+1)*24H前|   (n+1)*24H~n*24H间   |n*24H内

-ctime -n    查找距现在 n*24H 内修改过的文件
-ctime n    查找距现在 n*24H 前, (n+1)*24H 内修改过的文件
-ctime +n    查找距现在 (n+1)*24H 前修改过的文件

[a|c|m]min    [最后访问|最后状态修改|最后内容修改]min
[a|c|m]time    [最后访问|最后状态修改|最后内容修改]time

linux 文件的几种时间 (以 find 为例):
atime 最后一次访问时间, 如 ls, more 等, 但 chmod, chown, ls, stat 等不会修改些时间, 使用 ls -utl 可以按此时间顺序查看;
ctime 最后一次状态修改时间, 如 chmod, chown 等状态时间改变但修改时间不会改变, 使用 stat file 可以查看;
mtime 最后一次内容修改时间, 如 vi 保存后等, 修改时间发生改变的话, atime 和 ctime 也相应跟着发生改变.

注意: linux 里是不会记录文件的创建时间的, 除非这个文件自创建以来没有发生改变, 那么它的创建时间就是它的最后一次修改时间.
#ls -lt    ./  按修改时间顺序查看
#ls -lut ./ 按访问时间顺序查看
(如果想反序查看的话需要加一个选项 -r)
---------------------------------------------------------------------------------------------------------------------
find -mtime
假如删除当前目录下最后修改时间是3小时以前的文件
find . -mmin 180 -print | xargs rm -rf
注意-mtime之后带的数字是以24小时为单位的
-----------------------------------------------------------
@vi中移动行位置:

vi操作.

:n1,n2 m n3       移动n1-n2行(包括n1,n2)到n3行之下;

:n1,n2 co n3      复制n1-n2行(包括n1,n2)到n3行之下;

:n1,n2 d              删除n1-n2行(包括n1,n2)行;



@如何把文件里的重复行合并?(把重复的删掉,只留一份)

方法1:

linux下:uniq -c file
               uniq file1 file2
这两个命令有用

方法2:使用外部命令
:%!sort -u
实验成功

@vi删除空行
进入命令模式 g/^s*$/d或 :g/^$/d

-------------------------------------------------------------------------------------------------
vi中,ctrl+G显示当前打开的文件名
-----------------------------------------------------
@用SQL语句实现:更新某列的所有数据项,使得所有的数据项在原来的基础上加个后缀或前缀

如:有表student,字段sname

- 加后缀'MM'

          update student
          set sname=CONCAT(sname,'MM')

- 加前缀'MM'

          update student
          set sname=CONCAT('MM',sname)
--------------------------------------------------------------------------------












  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值