計算機數值存儲方式:
一、在計算機系統中,數值一概用補碼來表示(存儲)。
主要緣由:使用補碼,能夠將符號位和其它位統一處理;同時,減法也可按加法來處理。另外,兩個用補
碼錶示的數相加時,若是最高位(符號位)有進位,則進位被捨棄。
二、補碼與原碼的轉換過程幾乎是相同的。
數值的補碼錶示也分兩種狀況:
(1)正數的補碼:與原碼相同。
例如,+9的補碼是00001001。
(2)負數的補碼:符號位爲1,其他位爲該數絕對值的原碼按位取反;而後整個數加1。
例如,-7的補碼:由於是負數,則符號位爲「1」,整個爲10000111;其他7位爲-7的絕對值+7的原碼
0000111按位取反爲1111000;再加1,因此-7的補碼是11111001。html
2012-06-04
1:linux 查找文件命令:find / -name "AdminUser.class"java
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;恢復數據庫node
(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 把這個路徑下的全部
@一、su - oracle
cd $ORACLE_HOME/bin
./sqlplue /nolog
conn sys as coll
pass
@二、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:查詢文件或文件夾的磁盤使用空間python
若是當前目錄下文件和文件夾不少,使用不帶參數du的命令,能夠循環列出全部文件和文件夾所使用的空間。這對查看到底是那個地方過大是不利的,
因此得指定深刻目錄的層數,參數:--max-depth=,這是個極爲有用的參數!以下,注意使用「*」,能夠獲得文件的使用空間大小.
提醒:一貫命令比linux複雜的FreeBSD,它的du命令指定深刻目錄的層數倒是比linux簡化,爲 -d。
清空linux操做記錄 cat /dev/null >/root/.bash_history
du 統計文件大小相加
df 統計數據塊使用狀況
fdisk -l 查看硬盤
若是有一個進程在打開一個大文件的時候,這個大文件直接被rm 或者mv掉,則du會更新統計數值,
df不會更新統計數值,仍是認爲空間沒有釋放。直到這個打開大文件的進程被Kill掉。linux
如此一來在按期刪除 /var/spool/clientmqueue下面的文件時,若是沒有殺掉其進程,那麼空間一直沒有釋放。nginx
使用下面的命令殺掉進程以後,系統恢復。
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;sql
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的執行權限刪除,它設定的對象爲全部使用者。shell
$ 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)apache
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;
一、查看全部用戶:
select * from dba_user;
select * from all_users;
select * from user_users;
二、查看用戶系統權限:
select * from dba_sys_privs;
select * from all_sys_privs;
select * from user_sys_privs;
三、查看用戶對象權限:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
四、查看全部角色:
select * from dba_roles;
五、查看用戶所擁有的角色:
select * from dba_role_privs;
select * from user_role_privs;
六、查看角色所擁有的權限:
select * from role_sys_privs;
select * from role_tab_privs;
七、查看全部系統權限
select * from system_privilege_map;
八、查看全部對象權限
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 建立,刪除用戶
一、建立用戶(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 分別是 四、二、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
2、常見使用
一、遠程拷貝文件
從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
二、克隆硬盤或分區
操做與上面的拷貝是雷同的,只須要由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。
三、端口掃描
能夠執行:
引用
# nc -v -w 1 192.168.228.222 -z 1-1000
hatest2 [192.168.228.222] 22 (ssh) open
四、保存Web頁面
# while true; do nc -l -p 80 -q 1 < somepage.html; done
五、模擬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內容。
六、聊天
nc還能夠做爲簡單的字符下聊天工具使用,一樣的,server2上須要啓動監聽:
[root@hatest2 tmp]# nc -lp 1234
server1上傳輸:
[root@hatest1 ~]# nc 192.168.228.222 1234
這樣,雙方就能夠相互交流了。使用Ctrl+D正常退出。
七、傳輸目錄
從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
一、wildcard : 擴展通配符
二、notdir : 去除路徑
三、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