一直以为ps aux就可以列出所有的在运行进程,最近发现还是有些缺陷,用ps aux和-ef得到的结果居然不一样,以后尽量用-ef参数吧。
情况是这样的,我用/bmrt/blaph/blaph/bmgctl来启动进程,由于ps aux是用BSD格式来显示结果,所以可能只会显示到/bmrt/blaph/blap,后面的都被截掉了。
这样,如果用ps aux | grep bmgctl 来过滤该进程,可能就会误伤,获取不到bmgctl进程。
而ps -ef是用全格式的System V格式,显示出来就是带全路径的进程名,会显示出bmgctl,在ps -ef | grep bmgctl命令下就可以完整显示该进程了。
第一:如果当前目录下有linux-3.0源码目录文件和修改后的linux-3.0-s3c2440目录文件,如何生成patch文件?
>>>>diff -Nuar linux-3.0 linux-3.0 > linux-3.0-s3c2440.patch
就可以生成linux-3.0-s3c2440.patch文件。
第二:如果当前目录下有修改后的linux-3.0-s3c2440目录文件和linux-3.0-s3c2440.patch文件,如何生成源码linux-3.0源码目录文件呢?
>>>> patch -RE -p0 < linux-3.0-s3c2440.patch
>>>>mv linux-3.0-s3c2440 linux-3.0
就可以生成linux-3.0源码目录文件
第三:如果当前目录下有linux-3.0源码目录文件和linux-3.0-s3c2440.patch文件,如何生成修改后的linux-3.0-s3c2440目录文件呢?
>>>>patch -p0 < linux-3.0-s3c2440.patch
>>>>mv linux-3.0 linux-3.0-s3c2440
就可以生成linux-3.0-s3c2440目录文件
当然程序员不必对整个linux系统样样精通。下面根据本人开发的经验,列出程序员基本需要掌握的linux知识。
一、linux的基本命令
1、用户管理
userdel 删除用户帐号
useradd 增加用户账号
su 改变当前用户的ID
2、文件目录管理
ls 浏览目录,查看当前目录下的文件和文件名
chmod 修改文件权限
chown 改变文件所有者
cp 复制文件
cd 改变当前目录
mv 重命名文件或移动文件
rm 删除文件或者目录
pwd 当前目录
scp 远程拷贝
alias 别名
3、其他命令
ln 在文件之间建立链接
tail 输出文件内容后面的部分,一般我们会通过tail -f 实时查看当前程序打印的日志。
type 查看一个命令所在路径
wc 查看行数
grep 在文件内容中查找
find 查找文件
date 查看日期
crontab 制定计划任务,通常用于系统监控。
df 查看磁盘剩余空间,你最好在crontab中写个脚本监控磁盘的空间。超过90%就给相关的人员发email。
ps 查看进程状态
top 查看CPU的使用率
kill 终止进程
killall java程序员最喜欢用killall -9 java吧
w 查看登录用户和他们正在做什么,也可以看看系统的load。load太高,就该找找原因了。
who 查看当前用户的便当情况
tar 解压或压缩文件
echo 控制台输出
wget http访问
rpm rpm包管理
4、重定向、管道
5、标准输出、标准错误
6、使用/屏蔽一个特殊字符的含义
7、正则表达式
二、熟练掌握vim编辑器。
三、liunx环境下shell脚本、perl脚本的编写
为了对网上服务器应用进行管理,通常需要编写一些脚本。
脚本的编写重点掌握下面几点:
1、理解双引号、单引号、反引号的含义。
2、反斜线的使用。
3、shell脚本赋值语句左边的变量名不要加上$,常写perl脚本的常犯此错误。
4、字符串比较长,含有空格的时候,作为一个参数时脚本出错,用双引号把字符串括起来。
5、掌握好awk和sed的用法。
四、基本软件包的安装
apache、eclipse、mysql、jdk
一般的步骤就是:
configure
make
make install