王道建手册

计算机数值存储方式:
1、在计算机系统中,数值一律用补码来表示(存储)。
主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补
码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。
2、补码与原码的转换过程几乎是相同的。
数值的补码表示也分两种情况:
(1)正数的补码:与原码相同。
例如,+9的补码是00001001。
(2)负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。
例如,-7的补码:因为是负数,则符号位为“1”,整个为10000111;其余7位为-7的绝对值+7的原码
0000111按位取反为1111000;再加1,所以-7的补码是11111001。

2012-06-04
1:linux 查找文件命令:find / -name "AdminUser.class"

2:如果数据库因为断电等原因启动不起来,可以使用命令 start force
(1)启动oracle步骤,分两步,(1)启动监听.(2)启动oracle
@1:su - oracle --切换oracle用户
@2:lsnrctl start --“打开监听”
@3:sqlplus /nolog --进入到sqlplus
@4: conn /as sysdba --连接到sysdba
@5:startup --启动数据库实例
@6:shutdown immediate --关闭数据库实例
recover database;恢复数据库

(2).用dbstart和dbshut启动和关闭数据库实例
先启动监听 lsnrctl start
启动实例 dbstart
使用dbstart命令启动数据库比较方便,但是在linux上安装好oracle之后,第一次使用dbstart命令可能会报如下错误:
ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
Usage: /u01/app/oracle/oracle/product/10.2.0/db_1/bin/dbstart ORACLE_HOME
dbstart和dbshut脚本文件中ORACLE_HOME_LISTNER的设置有问题,分别打开两个文件找到:用vi编辑dbstart,ORACLE_HOME_LISTNER=$1,修改为
ORACLE_HOME_LISTNER=$ORACLE_HOME
后保存退出,此时再运行dbstart,已经不报错了,但是没有任何反应,ps一下进程,没有oracle的进程,说明oracle实例没有正常启动。
此时的原因是在/etc/oratab的设置问题,我们vi一下,发现zgz:/home/oracle/product/10g:N
最后设置的是"N"(我的环境中只有一个实例,因此只有一行配置语句),我们需要把“N”修改为“Y”。
以上的工作做好之后,dbstart就可以正常使用了:
@1:lsnrctl start --启动监听
@2:dbstart --启动数据库实例
@3: dbshut --关闭数据库实例
@4: lsnrctl stop --关闭监听
(3):如何使数据库实例和linux系统一起启动
在/etc/rc.d/rc.local中加入如下语句即可实现同系统启动实例:
su - oracle -c "lsnrctl start"
su - oracle -c "dbstart"

3:linux vi 进行撤销 按u键
dd 删除一行
l+10 --向右移动10个字符
0 --移动行头
$ --移到行尾
4:oracle 启动报错问题
ORA-09817: Write to audit file failed 的解决
今天在进行awr报表导出时,用sys as sysdba 登录,不能connect,报ORA-09817: Write to audit file failed 错误,是系统空
间不足的报警。df -lh 查看空间使用,已经用到了100%,然后删除trace文件,tracle文件路径:/opt/oracle/admin/sid_name/
udump。trace文件为对后台跟踪信息,在后台生成的跟踪文件记录,可以删除
在我本地用的路径是 cd /home/oracle/admin/radius/udump 把这个路径下的所有
@1、su - oracle
cd $ORACLE_HOME/bin
./sqlplue /nolog
conn sys as coll
pass
@2、df -lh
@3:cd /opt/oracle/admin/sid_name/udump
rm -f *.trc
(在我本地用的路径是 cd /home/oracle/admin/radius/udump 把这个路径下的所有trc后缀的文件都删掉)


5:Linux下查看文件和文件夹大小的df和du命令
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择
df -h可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
df -i 可以看到Inode节点已经满了。
du可以查看文件及文件夹的大小。
两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。
参考网站 http://www.zeali.net/entry/480
du:查询文件或文件夹的磁盘使用空间

如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,
所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.
提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
清空linux操作记录 cat /dev/null >/root/.bash_history
du 统计文件大小相加
df 统计数据块使用情况
fdisk -l 查看硬盘
如果有一个进程在打开一个大文件的时候,这个大文件直接被rm 或者mv掉,则du会更新统计数值,
df不会更新统计数值,还是认为空间没有释放。直到这个打开大文件的进程被Kill掉。

如此一来在定期删除 /var/spool/clientmqueue下面的文件时,如果没有杀掉其进程,那么空间一直没有释放。

使用下面的命令杀掉进程之后,系统恢复。
fuser -u /var/spool/clientmqueue
(调试192.168.1.197是由于文件夹下产生大量文件,占满硬盘空间)
du -h --max-depth=1 /home/oracle/app/oracle/product/10g/dbs
rm -rf *

http://hi.baidu.com/lanbo0829/item/6cfa92d51ba916826dce3f12

2012-06-06
1: linux secure 工具导入导出命令
导入 rz 导出 sz

2012-06-11
1:sql developer 修改连接数据库地址
D:\oracle_client\instantclient_11_2\tnsnames.ora
2: oracle设置控制台输出: set serviceoutput on
execute简写exec 控制plsql语句,可以省略写begin end
3:运行plsql脚本文件 @abc.pkg 或者 start abc.pkg
4:显示plsql变量命令 show all
5:plsql使下面命令都输入到一个文件中
spool report.txt
@run_report
spool off;
6:plsql 错误处理
@1:whenever sqlerror exit sql.sqlcode
@2: whenever sqlerror sql.sqlcode exit roolback
7:ORACLE系统方法统计:
1) length(str) 字符串的长度
2) a = nvl(b, 0) 如果b=null 则a=0
3)
8:授权用户,角色,所有使用sql权限
1:grant execute on wordcount to scott 授予用户权限
2:revoke execute on wordcount from scott 取消用户权限
3:grant execute on wordcount to all_mis 授予角色权限
4:grant execute on wordcount to putlic 授予所有人权限
9:oracle 查看所有表格
select * from user_objects
10:删除存储过程
drop function aaa;
完整删除包
drop package bbb;
只删除包体
drop package body ccc;

2012-06-12
1:linux chmod 修改文件权限
1. 文字设定法
语法:chmod [who] [+ | - | =] [mode] 文件名
命令中各选项的含义为:
操作对象who可是下述字母中的任一个或者它们的组合:
   u 表示“用户(user)”,即文件或目录的所有者。
   g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
   o 表示“其他(others)用户”。
   a 表示“所有(all)用户”。它是系统默认值。
操作符号可以是:
  + 添加某个权限。
  - 取消某个权限。
  = 赋予给定权限并取消其他所有权限(如果有的话)。
设置 mode 所表示的权限可用下述字母的任意组合:
   r 可读。
   w 可写。
 x 可执行
2. 数字设定法
我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限, 2表示可写权限,4表示可读
权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。
例如,如果想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)=6(读/写)。
数字设定法的一般形式为:
语法:chmod [mode] 文件名
指令实例:
chmod a+x sort
% 即设定文件sort的属性为:
 文件属主(u) 增加执行权限
  与文件属主同组用户(g) 增加执行权限
  其他用户(o) 增加执行权限
chmod ug+w,o-x text
% 即设定文件text的属性为:
 文件属主(u) 增加写权限
 与文件属主同组用户(g) 增加写权限
  其他用户(o) 删除执行权限
chmod u+s a.out
% 假设执行chmod后a.out的权限为(可以用ls – l a.out命令来看):
  –rws--x--x 1 inin users 7192 Nov 4 14:22 a.out
  并且这个执行文件要用到一个文本文件shiyan1.c,其文件存取权限为“–rw-------”,
即该文件只有其属主具有读写权限。
  当其他用户执行a.out这个程序时,他的身份因这个程序暂时变成inin(由于chmod
命令中使用了s选项),所以他就能够读取shiyan1.c这个文件(虽然这个文件被设定为
其他人不具备任何权限),这就是s的功能。
  因此,在整个系统中特别是root本身,最好不要过多的设置这种类型的文件(除非
必要)这样可以保障系统的安全,避免因为某些程序的bug而使系统遭到入侵。
chmod a–x mm.txt
chmod –x mm.txt
chmod ugo–x mm.txt
% 以上这三个命令都是将文件mm.txt的执行权限删除,它设定的对象为所有使用者。

$ chmod 644 mm.txt
% 即设定文件mm.txt的属性为:-rw-r--r--
  文件属主(u)inin 拥有读、写权限
 与文件属主同组人用户(g) 拥有读权限
 其他人(o) 拥有读权限
chmod 750 wch.txt
% 即设定wchtxt这个文件的属性为:-rwxr-x---
 文件主本人(u)inin 可读/可写/可执行权
 与文件主同组人(g) 可读/可执行权
  其他人(o) 没有任何权限

2012-06-21
myeclipse 远程调试
远程启动tomcat命令:
catalina.sh jpda start

2012-06-26
1) oracle 查看会话状态命令:show all
2)


2012-06-28
oracle修改表增加列删除列修改列
2008-11-06 9:59
tag:oracle修改表;sql增加列;sql删除列;sql修改列

1.增加列

ALTER TABLE table_name ADD( column datatype [DEFAULT EXPR][,column datatype...]);

例如:
alter table tbl_users add(fEquipmentMoney number(38,4) default 0);

SQL>ALTER TABLE emp01 ADD eno NUMBER(4);

2.修改列定义

例如:

SQL>ALTER TABLE emp01 MODIFY job VARCHAR2(15)

2 DEFAULT 'CLERK'

3.删除列

例如:

SQL> ALTER TABLE emp01 DROP COLUMN dno;

4.修改列名

例如:

SQL>ALTER TABLE emp01 RENAME COLUMN eno TO empno;

5.修改表名

例如:

SQL>RENAME emp01 TO employee;

6.增加注释

例如:

SQL>COMMENT ON TABLE employee IS '存放雇员信息';

SQL>COMMENT ON TABLE employee.name IS '描述雇员姓名';

--1:创建序列
CREATE SEQUENCE tbl_Menu_seq
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10;

7:查看oracle实例
select * from v$instance;
8:查看oracle的用户
select * from dba_users;
select * from all_users;
9:查看当前用户的表
select * from user_tables;
10:查看所有用户的表
select * from all_tables;
11:oracle查看用户表空间
select * from user_all_tables;
12:oracle查看所有函数和存储过程
select * from user_source;
13:查看当前用户连接
select * from v$session;
14:查看当前用户权限
select * from session_privs;
15:oracle查看用户表空间使用情况
select a.file_id "FileNo",a.tablespace_name
"Tablespace_name",
a.bytes "Bytes",a.bytes-sum(nvl(b.bytes,0)) "Used",
sum(nvl(b.bytes,0)) "Free",
sum(nvl(b.bytes,0))/a.bytes*100 "%free"
from dba_data_files a, dba_free_space b
where a.file_id = b .file_id(+)
group by a.tablespace_name ,
a.file_id,a.bytes order by a.tablespace_name;
1、查看所有用户:
select * from dba_user;
select * from all_users;
select * from user_users;
2、查看用户系统权限:
select * from dba_sys_privs;
select * from all_sys_privs;
select * from user_sys_privs;
3、查看用户对象权限:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
4、查看所有角色:
select * from dba_roles;
5、查看用户所拥有的角色:
select * from dba_role_privs;
select * from user_role_privs;
6、查看角色所拥有的权限:
select * from role_sys_privs;
select * from role_tab_privs;
7、查看所有系统权限
select * from system_privilege_map;
8、查看所有对象权限
select * from table_privilege_map;

以上是在Oracle中查看用户权限 ,
在DB2中为:
select * from syscat.dbauth
或者
get authorizations

查看sid
select * from v$instance

2012-08-07
@1:linux查看当前防火墙是否开启
service iptables stop |start
chkconfig iptables --list
chkconfig httpd off 关闭服务
chkconfig httpd on 开启服务
也可以选择 level 开启服务
# chkconfig --level 345 httpd on
@2:linux 查看某个文件夹下的文件 find
find /usr -name stdio.h 查看usr目录下 名字叫stdio.h的文件
查找目录:find /(查找范围) -name '查找关键字' -type d
查找文件:find /(查找范围) -name 查找关键字 -print
+4代表大亍等亍5天前癿檔名:ex> find /var -mtime +4
-4代表小亍等亍4天内癿档案档名:ex> find /var -mtime -4
4则是代表4-5那一天癿档案档名:ex> find /var -mtime 4

@3:linux debug c程序 gcc -g main -o main 把main.c编译,并在编译文件里放入源码
@4:linux修改系统变量 1: cd ~ 2: vim .bashrc
whereis (寻找特定档案) [
!通常我们都是先使用 whereis 或者是 locate 来检查,因为 whereis 不 locate 是利用数据库来搜寻数据
2012-08-16
@1:javaScript 判断字符串是否为数字的简单方法
isNaN(parseInt("Hello",10));//true;
isNaN(parseInt("110",10));//false;
2012-08-23
@1:oracle清理数据库sql语句
set head off;
set feed off;
spool /home/up.sql;
select 'drop table ' || table_name ||';'||chr(13)||chr(10) from user_tables;
spool off;
2012-08-30
Linux下查看、关闭及开启防火墙命令
关闭
/etc/rc.d/init.d/iptables stop
开启
/etc/rc.d/init.d/iptables start
查看当前配置:iptables -L
1)永久性生效,重启后不会复原
开启: chkconfig iptables on 关闭: chkconfig iptables off
2)即时生效,重启后复原
开启: service iptables start 关闭: service iptables stop
需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。
在开启了防火墙时,做如下设置,开启相关端口, 修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
3)查看防火墙状态
chkconfig iptables --list
2012-09-02
@1:ssh -l root 192.168.1.133
出现ssh无法连接错误,解决方法:cat /etc/ssh/sshd_config | grep Port
查看ssh配置文件的端口,是10010, 然后ssh -l root 192.168.1.133 -p 10010即可,因为ssh默认端口是22
exit 退出当前ssh
@2:ps -aux 查看系统进程影响,同top作用相同
ps -ef | grep -i "ora_" 查看oracle后台进程

2012-09-06
*.Z compress 程序压缩的档案;
*.gz gzip 程序压缩的档案;
*.bz2 bzip2 程序压缩的档案;
*.tar tar 程序打包的数据,并没有压缩过;
*.tar.gz tar 程序打包的档案,其中并且经过 gzip 的压缩
*.tar.bz2 tar 程序打包的档案,其中并且经过 bzip2 的压缩
压缩解压缩
.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)

tar -zxf libxml2-2.6.19.tar.gz
———————————————
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
压缩并且显示压缩比:gzip -v man.config
tar -zpcv -f /root/etc.tar.gz /etc //打包并压缩
压 缩:tar -jcv -f filename.tar.bz2 要被压缩的档案或目录名称
tar -jcv -f man.config.tar.bz2 ../wang/* --exclude=man.config 不包含man.config文件
tar -cv -f file.tar只打包不压缩
查 询:tar -jtv -f filename.tar.bz2
解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
tar -jtv -f /root/etc.tar.bz2 | grep 'shadow' 解压指定的文件
bzip2这个命令比gzip性能还要好
bzip2 man.config 压缩
bzcat man.config.bz2 打开bzip2命令压缩的文件
bzip2 -d man.config.bz2 解压bzip2命令压缩的文件
bzip2 -9 -c man.config > man.config.bz2
-c :将压缩的过程产生的数据输出到屏幕上!
-d :解压缩的参数
-k :保留源文件,而不会删除原始的档案喔!
-z :压缩的参数
-v :可以显示出原档案/压缩文件案的压缩比等信息;
-# :不 gzip 同样的,都是在计算压缩比癿参数, -9 最佳, -1 最忚!
2012-09
linux 查看定时器命令 crontab -l

解压zip后缀的压缩文件
linux zip命令
zip -r myfile.zip ./* 将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,
-r表示递归压缩子目录下所有文件.
2.unzip unzip -o -d /home/sunny myfile.zip
把myfile.zip文件解压到 /home/sunny/ -o:不提示的情况下覆盖文件; -d:-d /h
--------------------------------------------------------------------
linux鸟哥命令集:
1:查看文档具体信息加详细时间 ls -al -full-time
以醒目单位查看,即单位是K,M,G ls -lh
统计当前目录大小 ll -h
查看linux系统磁盘分区为单位查看文件系统 df -lh
2: chgrp :改变档案所属群组
chown :改变档案拥有者
chmod :改变档案的权限, SUID, SGID, SBIT等等的特性
例子:[root@www ~]# chgrp [-R] dirname/filename ... 选顷不参数:
-R : 进行递归(recursive)的持续变更,亦即连同次目彔下的所有档案、
目彔 都更新成为这个群组乀意。常常用在变更某一目彔内所有的档案乀情况。
范例: [root@www ~]# chgrp users install.log
[root@www ~]# ls -l
-rw-r--r-- 1 root users 68495 Jun 25 08:53 install.log
[root@www ~]# chgrp testing install.log
chgrp: invalid

chown bin install.log 将install.log的拥有者改为bin这个账号
chown root:root install.log 将install.log的拥有者不群组改回为root

r:4 w:2 x:1
owner = rwx = 4+2+1 = 7 group = rwx = 4+2+1 = 7 others= --- = 0+0+0 = 0
..chmod
..u g o a
..+(加入) -(除去) =(讴定)
..r w x
..档案戒目彔
chmod u=rwx,go=rx .bashrc
3:linux 创建,删除用户
1、创建用户(useradd):

(1)用useradd命令创建用户创建用户:
语法: useradd [所要创建的用户名] ,回车

(2)用passwd命令为该用户创建密码:
语法: passwd [用户名] ,回车

(3)输入密码:一般密码至少要有六个字符,这里输入的密码是看不见的,所以看到屏幕没显示,不要以为是输入失败

(4)重新输一次密码:
删除用户(userdel命令)
语法:userdel [-r] [要删除的用户的名称]
例如:[root@localhost ~]userdel -r aillo
(5)查看新建用户,tail /etc/passwd
删除文件夹 rm -rf wang
(6)修改用户信息
功能说明:修改用户帐号。
  语  法:usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s ][-u ][用户帐号]
(7)su是switch user的缩写,表示用户切换

(8)用户组的创建
用户组的添加和删除:
groupadd testgroup
组的添加
groupdel testgroup 组的删除
说明:组的增加和删除信息会在etc目录的group文件中体现出来
whoami 显示自身的用户名称,本指令相当于执行"id -un"指令。
2.文件夹操作:
(5)uname -r 2.6.18-128.el5 <==可以察看实际的核心版本
(6) 文件夹操作
cd:变换目录
pwd:显示当前目录
mkdir:建立一个新的目录
rmdir:删除一个空的目录
mkdir -p /home/bird/testing/test1 连续创建文件夹
3 echo $PATH 查看环境变量
4:文件夹移动 mv /bin/ls /root
# mv 为移动
5 ls
[root@www ~]# ls [--full-time] 目弽名称 选项不参数:
-a :全部癿档案,连同隐藏档( 开头为 . 癿档案) 一起列出杢(常用)
-A :全部癿档案,连同隐藏档,但丌包括 . 不 .. 这两个目弽
-d :仅列出目弽本身,而丌是列出目弽内癿档案数据(常用)
-f :直接列出结果,而丌迚行排序 (ls 预讴会以档名排序!)
-F :根据档案、目弽等信息,给予附加数据结构,例如:
*:代表可执行文件; /:代表目弽; =:代表 socket 档案; |:代表 FIFO 档案;
-h :将档案容量以人类较易读癿方式(例如 GB, KB 等等)列出杢;
-i :列出 inode 号码,inode 癿意义下一章将会介绍;
-l :长数据串行出,包吨档案癿属性不权限等等数据;(常用)
-n :列出 UID 不 GID 而非使用者不群组癿名称 (UID不GID会在账号管理提到!)
-r :将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小;
-R :连同子目弽内容一起列出杢,等亍该目弽下癿所有档案都会显示出杢;
-S :以档案容量大小排序,而丌是用档名排序;
-t :依时间排序,而丌是用档名。
--color=never :丌要依据档案特性给予颜色显示;
--color=always :显示颜色
--color=auto :讥系统自行依据讴定杢判断是否给予颜色
--full-time :以完整时间模式 (包吨年、月、日、时、分) 输出
--time={atime,ctime} :输出 access 时间戒改变权限属性时间 (ctime)
6 复制文件
cp [-adfilprsu] 杢源文件(source) 目标文件(destination)
cp /var/log/wtmp . <==想要复制到当前目录,不要忘记.
cp -a /var/log/wtmp wtmp_2 权限等所有属性都copy过来
cp -r /etc/ /tmp 复制目录下所有文件
7:更改文件,文件夹名字
mv mvtest mvtest2 <== 这样就更名了!简单~
mv bashrc1 bashrc2 mvtest2 将文件移到文件夹下
[root@www ~]# basename /etc/sysconfig/network
network
[root@www ~]# dirname /etc/sysconfig/network
/etc/sysconfig

8:打开文件各种命令
cat 由第一行开始显示档案内容
tac 从最后一行开始显示,可以看出 tac 是 cat 倒着写!
nl 显示的时候,顺道输出行号!
more 一页一页的显示档案内容
less 不 more 类似,但是比 more 更好的是,他可以往前翻页!
head 叧看头几行
tail 叧看尾巴几行
od 以二迚制的方式读取档案内容!
9:less快捷键讲解
空格键 :向下翻劢一页;
[pagedown]:向下翻劢一页;
[pageup] :向上翻劢一页;
/字符串 :向下搜寻『字符串』的功能;
?字符串 :向上搜寻『字符串』的功能;
n :重复前一个搜寻 (不 / 或 ? 有关!)
N :反向癿重复前一个搜寻 (不 / 或 ? 有关!)
q :离开 less 这个程序;
10:head -n 20 /etc/man.config 显示文件前20行
11: grep who /use/local -r
who是pattern,如果含有特殊字符则要加上引号。
/usr/local是local,
-r 是option,表示所有的文件,且对子目录递归,
但是用了这个,就不能指定*.c之类的参数了。
12: 档案预讴权限:umask
[root@www ~]# umask
0022
[root@www ~]# umask -S
要注意的是,umask 的分数指的是『该默认值需要减掉的权限!』
因为 r、w、x 分别是 4、2、1 分,所以啰!也就是说,当要拿掉能写的权限,就是输入 2 分,
而如果要拿掉能读的权限,也就是 4 分,那么要拿掉读不写的权限,也就是 6 分,
而要拿掉执行不写入的权限,也就是 3 分,这样了解吗?请问你, 5 分是什么?呵呵! 就是读不执行的权限啦!
13: 范例:请将该档案的 i 属性取消!
[root@www tmp]# chattr -i attrtest
[root@www ~]# chattr [+-=][ASacdistu] 档案戒目弽名称
选项与参数: + :增加某一个特殊参数,其他原本存在参数则不动。
- :移除某一个特殊参数,其他原本存在参数则不动。
= :设定一定,且仅有后面接的参数
i :这个 i 可就很厉害了!他可以让一个档案『不能被删除、改名、设定连结也无法 写入或新增资料!』
对于系统安全性有相当大的帮助!叧有 root 能设定此属性
14: 前面介绍过 SUID 不 SGID 的功能,那么如何配置文件案使成为具有 SUID 不 SGID 的权限呢?
这就需要第六章的数字更改权限的方法了! 现在你应该已经知道数字型态更改权限癿方式为『三个数字』的组合,
那么如果在这三个数字之前再加上一个数字的话,最前面癿那个数字就代表这几个权限了!
4 为 SUID
2 为 SGID
1 为 SBIT
而除了数字法之外,妳也可以透过符号法来处理喔!其中 SUID 为 u+s ,而 SGID 为 g+s ,SBIT 则是 o+t 啰!
15:观察文件类型:file filename
16:which [-a] command
------------------------------------------------------------------
鸟哥第8章
1:dumpe2fs [-bh] 装置文件名
dumpe2fs /dev/hdc2
2:env 查看当前系统环境变量
Linux 磁盘与文件系统管理
3:ls -li 查看文件的inode节点号码
4:ln /etc/crontab . 建立实体链接的指令,两个文件指向同一个inode,可以用ll -i 文件名查看
ln -s /etc/conrtab crontab2 建立符号链接,相当于windows系统的快捷方式,删除掉文件,快捷方式就没啦
5:磁盘分区
fdisk [-l] 装置名称
6:重命名文件
alias sc="source ~/.bash_profile"
alias p="ps -u $USER"
保存后退出
然后执行source .bash_profile,重新载入环境变量文件.
7:使用lsnrctl中的SET,reload等命令可以动态修改listener的一些参数,而不影响客户端连接数据库。
8: 远程连接数据库
在防火墙开通的前提下:
1.简便连接:
sqlplus username/password@hostname:port/service_name
hotname:B的hostname或IP,port,监听程序的端口,例如1521
service_name:通常为数据库名
例如在A电脑上:sqlplus hr/hr@84.24.24.24:1521/orcl
2.本地命名:
在A电脑上配置tnsnames.ora文件
<oracle_home>/network/admin/tnsname.ora
oracle_home:安装客户端时指定的oracle_home
可以在百度一下tnsnames.ora文件的配置格式。
RADIUS =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 远程主机ip地址)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = radius)
)
)
9:dd if="input_file" of="output_file" bs="block_size" \
选项和参数:
if :就是 input file 啰~也可以是装置喔!
of :就是 output file 喔~也可以是装置;
bs :规划的一个 block 的大小,若未指定则预设是 512 bytes(一个 sector 的大小)
count:多少个 bs 的意思。
复制,dd if=/etc/passwd of=/home/wang/passwd.bak
----------------------------------------------------------
鸟哥第11章
1:uname -r 显示出目前癿核心版本
2:locate 命令 可以列出所有的相关档案档名
3: set 显示所有bash的变量
4:locale 查看当前系统有多少语系
5:export 显示所有的环境变量
6:ulimit 列出所有的限额(比如内存)
7:type -a ls 了解指令搜索顺序
8: stty -a 查看当前系统按键与按键内容
一下是管线命令的使用
9: echo $PATH | cut -d ':' -f 5 管线命令 获得 冒号分割的第5段
10:last 显示登陆者的信息
11: last | grep -v 'root' |cut -d ' ' -f1 获得登陆者信息中不是root的行,并且获得第一空格 段
12:cat /etc/passwd | sort -t ':' -k 3 -n 显示个人账号,获得:分割的第三段 按照数字进行排序
13: last | cut -d ' ' -f1 | sort | uniq -c 获得登陆这的信息,把这些信息用空格切分,取第一段,进行排序,重复的显示一条,并且显示数量
14:cat /etc/man.config | wc 实现文件的行 ,字数,字符
-l :仅列出行;
-w :仅列出多少字(英文单字);
-m :多少字符;
last | grep [a-zA-Z] | grep -v 'wtmp' | wc -l 取出登陆者信息,去出空白行,去出带有wtmp行,计算行数
15:ll | tee -a last.list |more 把ll输出的控制台的信息输出到 last.list文件,是累加信息,想到与>>
16: last | tr '[a-z]' '[A-Z]' 将last输出的小写转换为大写
tr [-ds] SET1 ...
-d :删除讯息当中的 SET1 这个字符串;
-s :取代掉重复的字符!
cat /etc/passwd | tr -d ':' 删除:

17:col [-xb]
-x :将 tab 键转换成对等的空格键
-b :在文字内有反斜杠 (/) 时,仅保留反斜杠最后接的那个字符
cat /etc/man.config | col -x | cat -A | more 利用 cat -A 显示出所有特殊按键,最后以 col 将 [tab] 转成空白
18: last -n 5 | awk '{print $1 "\t" $3}'
3:367页
---------------------------------------------------------
2012-09-21 关于二次拨号的李总写相关linux命令,把环境调试通
1: more /root/.bash_history 查看执行过的命令或者使用命令 history
带时间的histroy 为 HISTTIMEFORMAT="%F %T:" history
清空linux操作记录 cat /dev/null >/root/.bash_history
echo $HISTSIZE 查看history最大值
2: 使用scp协议传输文件
scp -P 10010 mydradius.portal.tar.gz root@192.168.1.195:/home
3:压缩文件
tar cvfz mydradius.portal.tar.gz mydradius.portal
解压文件
tar xvfz lib.tar.gz
4:编译c项目
make clean 或者make
5:执行c项目
gdb ./radiusd 必须是当前目录下
运行 r -e等等,需要查
6:监听网卡,进行抓包(#)
tcpdump -i eth0 udp port 1812 or udp port 1813
7:查看linux系统的网络情况
netstat -natp|grep 1521|grep radiusd
8: 查看当前机器的网络配置情况
vi /etc/sysconfig/network
cd /etc/sysconfig/network-scripts/
9:ping 192.168.1.195 是否与195机器通
10:passwd修改密码
11:运行radiusd程序
gdb ./radiusd
12:vi /home/pradius/radius.conf
修改radius.confg配置文件 database 和ip地址 是4段的
13:tnsping radius
tnsping pradius
14:查看radiusd进程
ps -aef | grep 'radiusd'
15:查看radiusd的依赖库
cd /home/radius/bin
ldd radiusd
16: 增加动态库搜索路径,缺少libmemcached.so.9 而无法启动radiusd进程
ldd radiusd 查看radiusd的依赖库,查找到缺失包的路径
vim /etc/ld.so.conf
添加上/usr/local/lib/即可
ldconfig 重启加载 ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令.
17:gdb调试radiusd
gdb ./radiusd
r -X -p 1645 运行radiusd程序开始调试
make clean 清理的,方便重新编译,查询makefile内容
后来添加:因为radius重启导致重新编译,之前修改的为起作用,因此重新修改
vim /etc/init.d/radiusd 修改radius设备启动项
vi /etc/rc.d/init.d/radiusd 修改机器启动项里的
grep -r pradius . 当前目录下查询,同时查询子目录

kill命令用来中止一个进程。
killall radiusd 杀掉radiusd进程
1)强行中止(经常使用杀掉)一个进程标识号为324的进程:
kill格式 kill [ -s signal | -p ] [ -a ] pid …
kill -l [ signal ]
#kill -9 324
关于linux下c的编译,包引用
make clean
make
gdb bin/radiusd
关于radiusd 调试问题
gdb radiusd
b radrecv
set follow-fork-mode child
r y 如果是pradiusd 的话则 r -p 1645
radiusd 进程在/etc/init.d 目录下,service radiusd start
补充: 安装expect
1。先安装tcl

  进入tcl解压目录,然后进入unix目录

  #./configure

  #make

  #make install

2.后安装expect

  进入expect解压目录

  #./configure --with-tclinclude=/usr/src/tcl8.4.19/generic/ --with-tclconfig=/usr/local/lib/

  #make

  #make install

完成,测试
18:grep搜索
明确要求搜索子目录:grep -r
或忽略子目录:grep -d skip
grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),
grep -C number pattern files :匹配的上下文分别显示[number]行,
grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。
^M 以M开头的行,^表示开始的意思
M$ 以M结尾的行,$表示结束的意思
^[0-9] 以数字开始的行,[]内可列举字母
^[124ab] 以1,2,4,a,或b开头的行
^b.503 句点表示任一字母
* 星号表示0个以上的字母(可以没有)
+ 加号表示1个以上的字母

$ ls -l | grep \'^a\'
通过管道过滤ls -l输出的内容,只显示以a开头的行。
$ grep \'test\' d*
显示所有以d开头的文件中包含test的行。
$ grep \'test\' aa bb cc
显示在aa,bb,cc文件中匹配test的行。
$ grep \'[a-z]{5}\' aa
显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
查看radius进程是否起来 ps -aux | grep radius 显示所有包含其他使用者的行程
grep -H -R "aa" *.c 在当前目录下查找包含aa字符串的文件
19:测试远程机器某端口是否打开,nc是 natCat的缩写 参考http://www.huanxiangwu.com/477/linux-nc-netcat
由于telnet需要反响解析有时会迷惑管理员所以用nc比较好
服务器很多的情况下可以通过工具执行以下来测试80是否通
if nc -z -w1 192.168.1.11 80 ;then echo "ok"; else echo "fail"; fi

二、常见使用
1、远程拷贝文件
从server1拷贝文件到server2上。需要先在server2上,用nc激活监听,server2上运行:

引用
[root@hatest2 tmp]# nc -lp 1234 > install.log
server1上运行:

引用
[root@hatest1 ~]# ll install.log
-rw-r–r– 1 root root 39693 12月 20 2007 install.log
[root@hatest1 ~]# nc -w 1 192.168.228.222 1234 < install.log
2、克隆硬盘或分区
操作与上面的拷贝是雷同的,只需要由dd获得硬盘或分区的数据,然后传输即可。
克隆硬盘或分区的操作,不应在已经mount的的系统上进行。所以,需要使用安装光盘引导后,进入拯救模式(或使用Knoppix工 具光盘)启动系统后,在server2上进行类似的监听动作:

# nc -l -p 1234 | dd of=/dev/sda
server1上执行传输,即可完成从server1克隆sda硬盘到server2的任务:

# dd if=/dev/sda | nc 192.168.228.222 1234
※ 完成上述工作的前提,是需要落实光盘的拯救模式支持服务器上的网卡,并正确配置IP。

3、端口扫描
可以执行:

引用
# nc -v -w 1 192.168.228.222 -z 1-1000
hatest2 [192.168.228.222] 22 (ssh) open
4、保存Web页面

# while true; do nc -l -p 80 -q 1 < somepage.html; done
5、模拟HTTP Headers

引用
[root@hatest1 ~]# nc www.huanxiangwu.com 80
GET / HTTP/1.1
Host: ispconfig.org
Referrer: mypage.com
User-Agent: my-browser

HTTP/1.1 200 OK
Date: Tue, 16 Dec 2008 07:23:24 GMT
Server: Apache/2.2.6 (Unix) DAV/2 mod_mono/1.2.1 mod_python/3.2.8 Python/2.4.3 mod_perl/2.0.2 Perl/v5.8.8
Set-Cookie: PHPSESSID=bbadorbvie1gn037iih6lrdg50; path=/
Expires: 0
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Cache-Control: private, post-check=0, pre-check=0, max-age=0
Set-Cookie: oWn_sid=xRutAY; expires=Tue, 23-Dec-2008 07:23:24 GMT; path=/
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html
[......]
在nc命令后,输入红色部分的内容,然后按两次回车,即可从对方获得HTTP Headers内容。

6、聊天
nc还可以作为简单的字符下聊天工具使用,同样的,server2上需要启动监听:

[root@hatest2 tmp]# nc -lp 1234
server1上传输:

[root@hatest1 ~]# nc 192.168.228.222 1234
这样,双方就可以相互交流了。使用Ctrl+D正常退出。

7、传输目录
从server1拷贝nginx-0.6.34目录内容到server2上。需要先在server2上,用nc激活监听,server2上运行:

引用
[root@hatest2 tmp]# nc -l 1234 |tar xzvf -
server1上运行:

引用
[root@hatest1 ~]# ll -d nginx-0.6.34
drwxr-xr-x 8 1000 1000 4096 12-23 17:25 nginx-0.6.34
[root@hatest1 ~]# tar czvf – nginx-0.6.34|nc 192.168.228.222 1234

20:file 检查文件的类型
file my.pdf
my.pdf: PDF document, version 1.5
“PDF document“ 告诉我们 , my.pdf 是pdf类型的文件。
版本执行的标准是:1.5
如果需要更详细的信息,可以加参数:
如:file -i data.txt
21:locate命令可以让用户很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个
包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库。
locate -n 10 crontab -n显示的数目
22:查看命令位于路径
type -a pwd
查看命令版本rpm -q nc 或者 rpm -qa | grep freetype

查看软件安装目录 rpm -ql libpng
2012-09-22
1:修改ip地址,网关,子网掩码
vi /etc/sysconfig/network-scripts/ifcfg-eth0 第一个网卡
vi /etc/sysconfig/network-scripts/ifcfg-eth1 第二个网卡
vi /etc/sysconfig/network 修改网关
修改完后重启 方可起作用 /etc/init.d/network restart
或者service network restart
2:查看网关
netstat -nr
3:二次拨号调用失败,查看日志目录
/var/log/vyatta#
查看ppp是否拨号成功,查看是否进程
ps -aef|grep ppp
pppd进程负责拨号
linux c一站式学习
1:调试函数的一系列命令,源代码如下main.c
#include <stdio.h>

int add_range(int low, int high)
{
int i,sum;
for(i=low;i<=high;i++)
sum=sum+i;
return sum;
}
int main(void)
{
int result[100];
result[0]=add_range(1,10);
result[1]=add_range(1,100);
printf("result[0]=%d\nresult[1]=%d\n",result[0],result[1]);
return 0;
}
结果为55 5015 与正确结果不同,调试如下

1步骤: gcc -g main.c -o main linux下c源文件编译(含有源代码,可以调试):
gdb main 进入main函数的调试
help帮助
l 1或者 l main 查看源代码
start开始调试
n(next)下一步
s(step)跳进函数
bt(backtrace)查看函数调用的栈帧
i(info) locals 查看方法的局部变量
f(frame) 1 选择1号栈帧
i locals 查看1号栈帧的局部变量,即main函数的局部变量
p(print) sum 查看sum变量的值
finish 跳出当前函数,回到main函数
set var sum=0 修改变量sum的值为0
p(print) result[2]=33 print也可以像set一样设置变量的值
2
int main()
{
int sum=0,i=0;
char input[5];
while(1)
{
scanf("%s",input);
for(i=0;input[i]!='\0';i++)
sum=sum*10+input[i]-'0';
printf("input=%d\n",sum);
}
return 0;
}
第一次输入123正确,第二次错误

调试命令如下:
start 启动调试
display sum 每次定下来都显示sum的值
undisplay 取消对这个变量的跟踪
b(break) 9 在第9行设置一个断点 参数也可以是函数名
c(continue) 表示连续运行,跳到下一个断点
i breakpoints 显示已经设置的断点
delete breakpoints 2 删除断点2
d(delete breakpoints) 删除所有的断点
disable breakpoints 3 使某个断点失效
break 9 if sum != 0 满足条件才可以使用该断点
r 重新从程序开始连续执行
x 命令打印存储器中的内容 x/7b input 7b是打印格式,b表示每个字节一组,7表示打印7组
watch input[5] 跟踪某变量

2012-10-15
1:windows 系统电脑出现不能上网问题
@1:arp -d
@2:arp -a
FROM tbl_DnsActioFROM tbl_DnsActioFROM tbl_DnsActiorr

2012-11-13
调试广州互通认证是学习知识
@1:/home/radius/log
vi nohup.out
查看用户认证数据包
tail -f nohup.out
@2:truncate tbl_log;
扔掉日志表
2012-11-26
要设置当前日期或时间,可用:
date -s mm/dd/yy 及 date -s hh:mm:ss
例:date -s 10/17/2008
date -s 10:12:13

2012-12-04
编译成目标文件 gcc -c stack/is_empty.c stack/pop.c stack/push.c stack/stack.c
编译并链接 gcc -g main.c -o mian
打包成一个静态库libstack.a:
ar rs libstack.a stack.o push.o pop.o is_empty.o
编译器默认会找的目录可以用-print-search-dirs选项查看
gcc -print-search-dirs
反汇编
objdump -dS push.o
编译链接成可执行文件
gcc -g main.c stack.o push.o pop.o is_empty.o -Istack -o main
反汇编
objdump -dS main

打包 编译例题
max.c
int max(int val1, int val2)
{
int iVal = (val1 > val2) ? val1 : val2;
return iVal;
}
min.c
int min(int val1, int val2)
{
int iVal = (val1 < val2) ? val1 : val2;
return iVal;
}
main.c
#include <stdio.h>

extern int max(int val1, int val2);
extern int min(int val1, int val2);

int main()
{
int val1, val2;

scanf("%d %d", &val1, &val2);
printf("%d/n", max(val1, val2));
printf("%d/n", min(val1, val2));
}
>gcc -c max.c min.c
>ar rcs libcmp.a max.o min.o
>gcc -o test main.c libcmp.a
>gcc -share -fPIC -o libcmp.so max.c min.c
>cp libcmp.a libcmp.a.bak
>cp libcmp.so libcmp.so.bak
>cp test test.orig
>strip libcmp.a libcmp.so
>strip test
>ll -h

虚拟机网路不通可能是网关冲突,
把 vi /etc/sysconfig/network-scripts/ifcfg-eth0:0 里的mask注释掉
service network restart
-------------------------------
2012-12-05
makefile命令

gcc -M main.c 查看一个源文件都包含哪几个文件
gcc -MM main.c 出去库文件,包含哪些文件
在命令前面加上-,那么命令出了错,他也会执行下面的命令的
Clean:
-rm –f *.o
1、wildcard : 扩展通配符
2、notdir : 去除路径
3、patsubst :替换通配符

例子:
建立一个测试目录,在测试目录下建立一个名为sub的子目录
建立连续目录 mkdir -p /usr/local/apache2
$ mkdir test
$ cd test
$ mkdir sub

在test下,建立a.c和b.c2个文件,在sub目录下,建立sa.c和sb.c2 个文件

建立一个简单的Makefile
src=$(wildcard *.c ./sub/*.c)
dir=$(notdir $(src))
obj=$(patsubst %.c,%.o,$(dir) )

all:
@echo $(src)
@echo $(dir)
@echo $(obj)
@echo "end"

执行结果分析:
第一行输出:
a.c b.c ./sub/sa.c ./sub/sb.c

wildcard把 指定目录 ./ 和 ./sub/ 下的所有后缀是c的文件全部展开。

第二行输出:
a.c b.c sa.c sb.c
notdir把展开的文件去除掉路径信息

第三行输出:
a.o b.o sa.o sb.o

在$(patsubst %.c,%.o,$(dir) )中,patsubst把$(dir)中的变量符合后缀是.c的全部替换成.o,
任何输出。
或者可以使用
obj=$(dir:%.c=%.o)
效果也是一样的。

这里用到makefile里的替换引用规则,即用您指定的变量替换另一个变量。
它的标准格式是
$(var:a=b) 或 ${var:a=b}
它的含义是把变量var中的每一个值结尾用b替换掉a

今天在研究makefile时在网上看到一篇文章,介绍了使用函数wildcard得到指定目录下所有的C语言源程序文件名的方法,
这下好了,不用手工一个一个指定需要编译的.c文件了,方法如下:

SRC = $(wildcard *.c)

等于指定编译当前目录下所有.c文件,如果还有子目录,比如子目录为inc,则再增加一个wildcard函数,象这样:

SRC = $(wildcard *.c) $(wildcard inc/*.c)

也可以指定汇编源程序:
ASRC = $(wildcard *.S)

这样一来,makefile模板可修改的基本就是AVR名称和时钟频率了,其它的一般不用动了。

gcc -Wall hello.c -o hello.o
选项 -Wall 开启编译器几乎所有常用的警告──强烈建议你始终使用该选项。
编译器有很多其他的警告选项但 -Wall 是最常用的。
默认情况下GCC 不会产生任何警告信息。
当编写 C 或 C++ 程序时编译器警告非常有助于检测程序存在的问题。
-------------------------
char * const cp : 定义一个指向字符的指针常数,即const指针

const char* p : 定义一个指向字符常数的指针

char const* p : 等同于const char* p

 

const char **是一个指向指针的指针,那个指针又指向一个字符串常量。
char **也是一个指向指针的指针,那个指针又指向一个字符串变量。

------------------------
2012-12-11
crtl-u 删除shell命令

2012-12-12

ipaddr=`/sbin/ifconfig | grep 'inet addr:' | grep -v '127.0.0.1'| tee temp.txt | cut -d : -f3 | awk '{print $1}'`
echo $ipaddr
==========
radiusd切换到调试状态
nohup ./radiusd -X&
tail -f nohup.out 查看调试日志

2013-01-05
修改tbl_users中主键sUsername所有大写字母为小写时
主键时出现异常unique constraint (MYDRADIUS.SYS_C0015574) violated
是因为修改后会导致主键重复,所以会出错,
可以查看修改后是否存在重复的行
select lower(susername) from tbl_users having count(lower(susername))>1 group by lower(susername);
如果查出来后则删除掉
然后进行修改
update tbl_users set sUserName = lower(sUserName);
-------------------
2013-03-18 删除oracle数据库页面操作不动,可能是oracle表空间不足导致的,下面查看下oracle的表空间
select a.tablespace_name,total,total-free usage,substr((total-free)/total*100, 1, 5) usageRate from
(select tablespace_name,sum(bytes)/1024/1024 total from dba_data_files group by tablespace_name) a,
(select tablespace_name,sum(bytes)/1024/1024 free from dba_free_space group by tablespace_name ) b
where a.tablespace_name=b.tablespace_name and b.tablespace_name='RADSPACE'


radiusd 测试包发送
/home/radius/bin/radtest user pass 127.0.0.1 9 testing123
临时表空间设置为自动扩展
alter database tempfile '/ora/oradata/radius/temp01.dbf' autoextend on next 20m maxsize unlimited;
查看表空间使用情况
select a.tablespace_name,total,free,total-free used from
( select tablespace_name,sum(bytes)/1024/1024 total from dba_data_files
group by tablespace_name) a,
( select tablespace_name,sum(bytes)/1024/1024 free from dba_free_space
group by tablespace_name) b
where a.tablespace_name=b.tablespace_name;

往默认表空间里增加数据库文件
alter tablespace USERS add datafile '/ora/oradata/radius/users02.dbf' size 1000M;

alter tablespace USERS add datafile
'/ora/oradata/radius/users02.dbf' size 1000m reuse autoextend on next 100m;

查看用户所有表
select table_name from all_tables;

radiusd调试成nohup状态
nohup radiusd -X&
vim dw删除一个一个词汇
安装snmp时用到命令
snmp配置文件目录:/etc/snmp/snmpd.conf
启动snmp服务:service snmpd start
chkconfig --levle 2345 snmpd on
查看端口的开启状况:netstat -tunlp | grep snmp

查找大文件 显示15个
du -h / |sort -rn|head -15
linux 查看端口是否被使用
netstat -tunlp | grep 80


==================
radiusd用户拨号认证错误,日志信息不详细,则把radisud起到调试状态进行调试
1:gdb radiusd gdb调试radiusd
2:r -p 1645 -X 把radiusd在1645端口运行到调试状态
3:./radtest 017a2131102 13902113499 127.0.0.1:1645 9 testing123 客户端拨号测试
然后查看收到的包是否正确,比如是否缺少属性,如果缺少则把字典插入到数据库内,然后重新运行raidusd
4:r

===========
2013-07-02:如果service radisud start 启动提示地址被占用,ps aux | grep radiusd进程却没有,则查看1812是否被占用
首先查看radwatch进程是否开启,关闭他的邮箱进程
netstat -apn | grep 1812 来显示所有连接的端口并用数字表示
kill -9 pid即可
lsof -p pid(list open files)是一个列出当前系统打开文件的工具
查看22端口现在运行的情况
# lsof -i :22
查看所属root用户进程所打开的文件类型为txt的文件
# lsof -a -u root -d txt
查看radiusd打开的文件
#lsof | grep radiusd

 

 

posted @ 2013-07-12 10:28  王道健  阅读(850)  评论(0编辑  收藏  举报