隨筆-159  評論-114  文章-7  trackbacks-0
           

          Core Java是核心競爭力。

          一個.java文件中,只能有一個public class文件,因為Sun規定,Java文件名必須與public的類的名稱一致(大小寫)

          如果沒有public class,都是一個個class,編譯完成,就會生成若干.class文件。

          設置環境變量:

          三個變量

          JAVA_HOME  指向JDK目錄,主要為其他工具能夠找到JDK。

          PATH 添加JAVA_HOME/bin,為了能找到javac ,java 命令

          CLASSPATH .  找到.class文件。可以有多個,逐一路徑尋找.class文件,找到第一個為止。好像Unix中,ps有兩種具體實現,但是ps只能調出一個一個意思。

          表示類路徑,.為當前目錄。

          javac -d . HelloWorld.java
          按照源文件包結構生成文件。

          package lujl01;

          /**
          *
          *
          */
          public class HelloWorld{//類名稱
              public static void main(String[] args)
              {
                   System.out.println("My name is ");
              }
          }

          java lujl01.HelloWorld
          My name is


          byte 1一個字節
          short 2個字節
          int 4個字節
          long 8個字節

          int a = 030;
          8進制

          int a = 0x30
          16進制

          long l = 40l

          byte a = 1;
          byte b = 2;
          byte c = a + b;

          注意,一旦運算,就會變成int。int以下byte,short運算后,一律變為int型。系統對于整型的默認類型就是int。

          char 2字節
          與int類型互通,而不是short,上面已經說到沒有字面值來區分short,byte,int,系統就按int來記整數。

          Java中使用Unicode 2字節來進行字符編碼。

          float f = 1.3f;

          末尾f必須寫。

          double d = 1.3d(或者1.3)

          1.3E10,E表示10的為底。

          ========================

          System.out.println(2.0-1.1)
          0.899999999999999999

          為什么?
          因為二進制的缺陷問題,在2進制表達方式下無法進行精確表示0.1,不信可以手算,會丟失精度。

           那么float和double決不能用作精確計算領域(金融,證券,銀行),使用java.math.BigDecimal類。


          ========================
          a+b 兩個操作數進行計算,轉換在Java中如何處理。

          1.如果任意一個為字符串,有,結果為字符串
          2.如果任意一個為double,有,結果為double
          3.如果任意一個為float,有,結果為float
          4.有無long,有,則結果為long
          5.以上都不是,那么就是int







          posted @ 2005-11-23 23:31 北國狼人的BloG 閱讀(409) | 評論 (0)編輯 收藏

          表的建立有4個步驟

          1.表名
          2.列名
          3.主鍵,外鍵,非空,唯一約束
          4.外鍵表,外鍵列
          5.數據類型
          6.數據


          建表語句

          create table lujl11
          (id number(7),
          start_date DATE DEFAULT SYSDATE)

          在同一個用戶表空間,不能有同名的表。


          ========================================


                                           RDBMS
          ---|---------------------------|-------------------|
          DB1(TLAB1)
          |-----------------------------|-------------------------|
          Table Space(users)         T.S(temp)                    
          |---------------------|
          schema(s0510)         (j0510)其他用戶的目錄讀權限
          |---------|
          s_emp    s_dept

          為什么sqlplus,一登陸就是某個庫,1個用戶只能登陸一個庫,那么這個庫在.cshrc環境變量中,ORACLE_SID表明。在登錄到對應用戶,使用對應用戶的表空間。

          openlab上。

          SQL> !more .cshrc
          # @(#)cshrc 1.11 89/11/29 SMI
          umask 022
          setenv ORACLE_BASE /tarenadb
          setenv ORACLE_HOME /tarenaora/software/9.0.1
          setenv ORACLE_SID TARENADB

          =======================================

          數據類型

          VARCHAR2(size)
          CHAR(size)
          NUMBER(p,s)  p為有效位數,s為小數位數,那么NUMBER(5,2),整數位為3位。
          DATE 日期與時間值。
          LONG 大文本
          RAW和LONG RAW 圖像或者聲音

          約束類型

          NOT NULL
          UNIQUE
          PRIMARY KEY
          FOREIGN KEY
          CHECK

          約束起名,如果不起名,系統會分配一個名字,SYS_Cxxxx。
          約束 最好是 表名_列名_約束類型 
          lujl11_dept_id_fk 外鍵
          lujl11_id_pk主鍵
          lujl11_name_nn非空
          lujl11_title_uk唯一
          lujl11_salary_ckCHECK約束

          定義,有列一級定義也有表一級定義,但是效果完全一樣。

          約束與數據是一對矛盾。誰先存在,誰有理,數據已存在,那么得添加約束要符合數據情況。

          非空約束,列級約束。

          create table friend
          (phone varchar2(15) constraint friend_phone_nn NOT NULL,
          )

          create table lujl04
          (
          id number(5) constraint lujl04_id_uk unique,
          last_name varchar2(10),
          first_name varchar2(20),
          salary number(10,2),
          constraint lujl04_first_last_name_uk
          unique(last_name,first_name)
          );

          表一級約束,constraint開頭。

          constraint lujl11_dept_id_fk
          foreign key(dept_id)
          references s_dept(id)
          on delete cascade
          級聯刪除
          沒有級聯更新。


          create table emp_41
          as
          select id,last_name..
          from s_emp
          where..

          除了非空約束存在,其他丟失。



          數據字典

          user                               users
          all     ------->_-------->views
          dba                                indexs
                                               constraints

          user_tables
          user_views
          user_indexs
          user_constraints
          user_sequeces

          DML

          insert into table
          values (102,null,....)

          insert into table(id)
          values(102)

          時間問題,依然要重視

          insert into s_emp(id,first_name,last_name,start_date)
          values
          (25,'Donna','Smith',TO_DATE('01-JAN-99 09:00','DD-MON-YY HH:MI'));

          update s_emp
          set dept_id = 100
          where id = 2;


          delete from s_emp;

          delele from s_emp
          where start_date>TO_DATE('01.01.1996','DD.MM.YYYY')

          Transaction 事務

          一個事務
          多個DML語句
          但是一旦遇到DCL(grant),DDL(alter,drop)就會自動提交事物

          或者COMMIT提交,

          或者ROLLBACK回滾到事物開始。

          也就是說,如果先插入了很多記錄,再刪很多記錄,沒有commit或者退出,或者DCL,DDL,那么ROLLBACK可以回滾到插入數據之前。

          sqlplus--->另外的buff保存著,當前事務涉及到的行,這是操作修改的是buff中的數據,但是這些行記錄被鎖定,行級所,所以可以rollback,一旦提交,就更新到數據庫中了。

          除非實時修復DBA能恢復數據。

          可以SAVEPOINT,保存事物中間某個標志為,回滾到該標志地方。




          ALTER table s_emp
          ADD
          MODIFY
          DROP

          約束只能添加和刪除,不能修改(除了alter table jerry03 modify (id null))。

          ALTER TABLE s_dept
          DROP PRIMARY KEY CASCADE

          一個表一個主鍵約束,可以不指定列。正常有外鍵關聯主鍵,主鍵約束不能刪除,除非CASCADE。

          ALTER TABLE s_emp
          ENABLE CONSTRAINT s_emp_id_pk;

          恢復需要一個一個將外鍵的表恢復外鍵約束。

          DROP TABLE table CASCADE CONSTRAINTS

          Truncate table s_emp;
          刪除所有數據,不同于delete from s_emp;,它釋放了表占據的空間。磁盤空間。

          建Sequences,序列獨立于表,沒關系,,誰都能用該序列。

          create sequence lujl11_id
          increment by 1
          start with 54
          maxvalue 9999999
          nocache
          nocycle

          user_sequences

          drop sequence lujl11_id;




          View

          一面墻上有一幅畫(數據),前面是一面墻,墻上有窗,那就是視圖,不是數據本身,就是select語句,

          兩類,簡單視圖(可以DML),復雜視圖(不能DML)。

          CREATE OR REPLACE VIEW empvu45
          (id_number,employee,job)
          as select id,last_name,title
          from s_emp
          where dept_id = 45


          CREATE OR REPLACE VIEW empvu44
          AS SELECT *
          FROM s_emp
          WHERE dept_id = 41
          WITH CHECK OPTION CONSTRAINT empvu41_ck;一個約束!

          就是條件中(where)出現的列不能修改。

          WITH READ ONLY 只讀


          INDEX

          B*Tree,就是平分法排序,實現快速查找。

          索引會提高查詢速度,但會降低插入速度。

          1.值分散
          2.空值多
          3.多列
          4.表大
          5.更多索引不能提速更多。


            1  select rowid,s_dept.*
            2* from s_dept
          SQL> /

          ROWID                      ID NAME                       REGION_ID
          ------------------ ---------- ------------------------- ----------
          AAAIlTAAIAAABeqAAA         10 Finance                            1
          AAAIlTAAIAAABeqAAB         31 Sales                              1
          AAAIlTAAIAAABeqAAC         32 Sales                              2
          AAAIlTAAIAAABeqAAD         33 Sales                              3
          AAAIlTAAIAAABeqAAE         34 Sales                              4
          AAAIlTAAIAAABeqAAF         35 Sales                              5

          rowid是地址,天生的主鍵。非空,唯一。


          posted @ 2005-11-22 22:57 北國狼人的BloG 閱讀(440) | 評論 (0)編輯 收藏

          上回,Select DISTINCT dept_id,title from s_emp,注意DISTINCT是作用于兩列的組合。

          Group Functions

          分組函數

          SELECT column,group_function
          FROM table
          [WHERE condition]
          [GROUP BY group_by_expression]
          [HAVING group_condition]
          [ORDER BY column];

          AVG(DISTINCT|ALL|n)
          COUNT(DISTINCT|ALL|expr|*)
          MAX(DISTINCT|ALL|expr)
          MIN(DISTINCT|ALL|expr)
          SUM(DISTINCT|ALL|n)


          SQL> select AVG(salary),MAX(salary),
            2  MIN(salary),SUM(salary)
            3  from s_emp
            4  where UPPER(title) LIKE 'SALES%';

          AVG(SALARY) MAX(SALARY) MIN(SALARY) SUM(SALARY)
          ----------- ----------- ----------- -----------
              1463.75        1515        1400        5855


          SQL> select count(*)
            2  from s_emp
            3  where dept_id=31
            4  ;

            COUNT(*)
          ----------
                   1

          SQL> select count(commission_pct)
            2  from s_emp
            3  where dept_id = 31;

          COUNT(COMMISSION_PCT)
          ---------------------
                              1

          注意,count具體列,只統計非空數目。

            1  select dept_id,Count(*) "Number"
            2  from s_emp
            3* group by dept_id
          SQL> /

             DEPT_ID     Number
          ---------- ----------
                  31          1
                  32          1
                  33          1
                  34          1
                  35          1
                  41          2
                  42          2
                  43          2
                  44          2
                  45          3
                                8

          不寫Group by,只是一組,

          加了Group by,多組。

          出現在Select中,非組函數的值,必須出現加在Group by中。可以不Select某列,但是group by該列,但結果當然也沒有這一列,只是按照它來分組顯示其他組函數數據。


          組函數的判斷不能在Where子句中,必須是在Having中。

          SELECT title,12*AVG(salary) "ANNUAL SALARY",COUNT(*) "NUMBER OF EMPLOYEES"
          FROM s_emp
          GROUP BY title
          HAVING COUNT(*)>2;

          第一步,分組
          第二步,應用組函數
          第三步,匹配Having子句的組函數

          select title,sum(salary) PALALL
          FROM s_emp
          WHERE title NOT LIKE "VP%"
          GROUP BY title
          HAVING SUM(salary) > 5000
          ORDER BY SUM(salary);

          Subqueries 子查詢

          select last_name,title
          from s_emp
          where title=
          (select title
          from s_emp
          where last_name='Smith');

          select last_name,title,salary
          from s_emp
          where salary<
          (select avg(salary)
          from s_emp);

          自查詢有多值返回時,使用IN關鍵字

          select last_name,first_name,title
          from s_emp
          where dept_id IN
          (select id
          from s_dept
          where name = 'Finance' or region_id = 2);

          子查詢也可以出現在Having中

          Select dept_id,AVG(salary)
          from s_emp
          group by dept_id
          having avg(salary)>
          (select avg(salary)
          from s_emp
          where dept_id=32);

          子查詢有效率問題,既能夠用連接又能用子查詢時,請使用連接,一次查詢快!

          設置變量

          SQL> select id,last_name,salary
            2  from s_emp
            3  where dept_id=&department_number;
          Enter value for department_number:

          where title = '&job_title';

          一般用于插入數據時,進行定義。

          可以保存一個.sql文件,在文件的開頭設定變量,在執行insert,但sqlplus中,只保存sql命令,不保存sqlplus命令,DEFINE和ACCEPT是sqlplus命令。

          DEFINE did=105(CHAR) 都是字符型。

          insert into lujl11
          values (&did,'&address',&salary);

          使用ACCEPT命令來進行變量定義,可以區分類型,和添加提示符

          ACCEPT p_dname PROMPT 'Provide the department name'
          ACCEPT p_salary NUMBER PROMPT 'Salary amoount:'
          ACCEPT pswd CHAR PROMPT 'Password:' HIDE

          UNDEFINE或者退出sqlplus,會清楚變量。



          SET VERIFY ON
          察看新舊值開關。


          數據庫建模

          立項
          ----〉需求分析
          ----------------〉設計,設計細化
          ----------------------------------〉建表,測試(邏輯測試,需求滿足否,物理測試,數據量承受力),優化
          --------------------------------------------〉真實數據,產品。

          實線---必然的聯系

          虛線---可能的聯系

          范式

          第一范式 解決單值問題。
          第二范式 解決依賴性。
          第三范式 解決非傳遞性問題。

          例子:一想就明白了

          經過需求分析,整理出下列屬性。

          product#,order#,name,date,price,quantity,customer#,customer_name,customer_address(Province,city,address))

          INF分析后

          (product#,order#,name,date,price,quantity,customer#,customer_name,Province,City,Address)

          2NF分析后

          (product#,name,price)
          (order#,date,customer#,customer_name,Province,City,Address)
          (product#,order#,quantity)

          3NF分析后

          (product#,name,price)
          (order#,date,customer#)
          (product#,order#,quantitiy)
          (customer#,customer_name,Province,City,Address)





          今天安裝FC3,費了些時間,為能夠在自己機器上也跑上Redhat,安裝了Fedora Core 3,http://fedora.linuxsir.org/main/
          不錯的網站,我就是照著裝上的,以后就可以研究一下了。哈哈











           

          posted @ 2005-11-22 00:05 北國狼人的BloG 閱讀(400) | 評論 (0)編輯 收藏

          Data retrieval
          -Select

          Data manipulation language (DML)
          -INSERT,UPDATE,DELETE

          Data definition language(DDL
          -CREATE,ALTER,DROP,RENAME,TRUNCATE

          Transacation control
          -COMMIT, ROLLBACK,SAVEPOINT

          Data control language(DCL)
          -GRANT,REVOKE

          使用SQL *Plus進行數據庫操作。

          openlab.tarena.ca% sqlplus tarena/tarena@TARENADB

          用戶名/密碼

          注意這樣登錄是強烈不推薦的,因為這樣別人能看到你的用戶名和密碼。

          SQL> !ps -ef|grep sqlplus
              lujl   966   955  0 08:43:17 pts/1    0:00 sqlplus tarena/tarena@TARENADB
              lujl   969   966  1 08:45:45 pts/1    0:00 /bin/csh -c ps -ef|grep sqlplus
              lujl   971   969  0 08:45:45 pts/1    0:00 grep sqlplus

          由于本人已有很多編寫SQL語句的經驗,所以只記錄重點信息。

          SQL中可以使用數學表達式

          +
          -
          *
          /

          先乘除后加減。

          SQL> select last_name,salary, 12*salary + 100
            2  from s_emp

          注意每一個子句最好單獨占一行。這樣以便以后的修改,要想寫完就執行,最后添加  ‘;’

          1。可以給列取別名 Aliase,
          2。可以級聯兩列,作為整體,輸出結果。

          SQL> select first_name||last_name "Employees"
            2  from s_emp;

          Employees
          ------------------------------
          benqu
          hui
          lgf
          liganfeng
          lgf
          BenDumas
          AntoinetteDumas


          使用單引號,將字符括起來。

          select first_name||' '||last_name
          from s_emp;

          NULL是一個不確定的值!

          對空的任何操作,返回都是空。

          使用nvl函數,處理空值,為空就使用默認值。

          NVL(salary,1000)

          select distinct name
          from s_dept;



          sqlplus有很多命令。


          SQL> help index

          Enter Help [topic] for help.

           @             COPY         PAUSE                    SHUTDOWN
           @@            DEFINE       PRINT                    SPOOL
           /             DEL          PROMPT                   SQLPLUS
           ACCEPT        DESCRIBE     QUIT                     START
           APPEND        DISCONNECT   RECOVER                  STARTUP
           ARCHIVE LOG   EDIT         REMARK                   STORE
           ATTRIBUTE     EXECUTE      REPFOOTER                TIMING
           BREAK         EXIT         REPHEADER                TTITLE
           BTITLE        GET          RESERVED WORDS (SQL)     UNDEFINE
           CHANGE        HELP         RESERVED WORDS (PL/SQL)  VARIABLE
           CLEAR         HOST         RUN                      WHENEVER OSERROR
           COLUMN        INPUT        SAVE                     WHENEVER SQLERROR
           COMPUTE       LIST         SET
           CONNECT       PASSWORD     SHOW


          DESCRIBE s_dept

          SQL> describe s_dept
           Name                                      Null?    Type
           ----------------------------------------- -------- ----------------------------
           ID                                        NOT NULL NUMBER(7)
           NAME                                      NOT NULL VARCHAR2(25)
           REGION_ID 

          NUMBER(p,s)p為整數位,s為小數位數
          VARCHAR2(s)
          DATE  (Oracle中只有一種日期格式!)
          CHAR(s)

          SQL Plus  提供了很強的編輯SQL語句的能力。

          SQL> l 
            1  select first_name||last_name "Employees"
            2* from s_emp
          SQL> 1
            1* select first_name||last_name "Employees"
          SQL>

          list(簡寫l)
          列出緩存中的SQL語句。

          1(數字)就是將當前編輯行

          看前面有*的,為當前編輯行,再才使用行編輯命令,就需要確定是否是想編輯的行。

          A[PPEND] text
          C[HANGE] /old/new
          CL[EAR]BUFF[ER]
          DEL
          I[NPUT] text
          L[IST] n
          n text

          由于有時會查出很多記錄,這時,需要分頁停頓。

          SET PAUSE {[OFF|ON] text}

          SAVE file寫緩存到文件
          GET file讀入緩存

          START filename讀文件到緩存,并執行。
          @filename = START filename
          EDIT filename
          SPOOL filename 開始記錄,并將執行的命令和結果都寫入相應文件。
          SPOOL OFF,這時會寫入文件。EXIT,正常退出,也會寫入文件。

          關鍵命令

          COL[UNM] [{column|alias} [option]]

          FOR[MAT] format

          9
          0
          $
          L
          .
          ,

          col last_name format a15   調整last_name為15字符長度,默認為last_name數據類型的長度。(VARCHAR2(35),那就是35),調整列寬。


          HEA[DING] text
          設置表頭

          JUS[TIFY] {align}
          left center right

          column last_name HEADING 'Employee|Name' FORMAT A15
          column salary JUSTIFY LEFT FORMAT $099,999,99    保證位數,$012,345,00
          column start_date FORMAT A8 NULL 'Not hired'    等同于nvl函數

          column last_name
          顯示某列的格式

          column last_name CLEAR





          select last_name
          from s_emp
          order by last_name;
          升序默認

          desc降序

          select last_name,salary*12
          from s_emp
          order by 2;

          按照select子句中的第二項 排序

          select last_name,dept_id,salary
          from s_emp
          order by dept_id,salary DESC;

          先按部門排序,如果相同,再按salary降序排。

          -------------------------------------------------
          where 子句,last_name='Megee',單引號!

          日期格式默認為日日-月月月-年年  DD-MON-RR(RR不同于YY,它只取1950到2049年的年,是為解決千年蟲問題設定的)

          邏輯比較符
          = > >= < <=

          SQL比較符
          BETWEEN...AND...
          IN(LIST)  IN(1,3) 1和3
          LIKE
          IS NULL

          邏輯操作符
          AND
          OR
          NOT

          不等于!= <> ^=

          NOT BETWEEN
          NOT IN
          NOTLIKE
          ISNOTNULL

          ===============================

          LIKE

          select last_name from s_emp where last_name like '_M%'

          '_' 代表有且只有一格字符

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

          這時,老師發現緩存不夠,察看老師的幾條命令,應用性很強哦。記下來,以后自己用!

          du -sk *|sort
          當前目錄按照大小的數字排序,

          df -k .
          察看當前目錄的文件系統使用情況。

          rm -rf *
          不提示刪除文件

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

          select table_name
          from user_tables
          where table_name like 'S\_%' ESCAPE '\';

          以S_開頭的表名,escape定義了轉義字符\


          IS NULL  

          IS NOT NULL

          不要 = null    不出錯,但是邏輯不對!

          執行順序

          比較操作符〉AND〉OR



          ==============================

          函數

          單行函數,輸入一個值,輸出一個值

          多行函數,多輸入,單輸出。

          LOWER('SQL Course')=sqlcourse

          UPPER

          INITCAP('SqL COurse')=SqL COurse

          CONCAT級聯

          SUBSTR('String',1,3)=Str

          LENGTH

          NVL


          ROUND(45.923,2)=45.92
          ROUND(45.923,-1)=50

          TRUNC(45.923,2)=45.92
          TRUNC(45.923,-1)=50

          MOD(1600,300)=100  余數

          ===========================================

          Oracle Date Format是重點

          日期包括世紀、年、月、日、小時、分鐘、秒幾類數

          Oracle時間可以保存10負9次方妙

          默認顯示日期格式為DD-MON-RR

          SYSDATE一個能返回當前系統時間的函數

          select sysdate from dual;

          dual是了保證select語句完整性,設置的,沒有實際意義。我認為是個測試函數的好幫手。

          YY   05
          YYYY   2005
          RR   05
          RRRR   2005
          YEAR   two thousand and five
          MM   12
          MON   NOV
          MONTH   NOVEMBER
          DD   18
          DDTH   18TH
          DDSP   EIGHTEEN
          DDSPTH   EIGHTEENTH
          HH   03   (12小時)
          HH24   15
          MI   31   分鐘
          SS   48   秒
          AM   PM
          D   5
          DY   FRI
          DAY   FRIDAY


          SQL> select to_char(sysdate,'yyyy mm ddhh miss')
            2  from dual;

          TO_CHAR(SYSDATE,'
          -----------------
          2005 11 1904 1946



          時期+/-數字,可以得到一個新的日期。(加在日子上)
          兩個日期相減,得到一個數字。
          如果想加小時到日期上,必須先除以24,在與對應日期相加。

            1  select to_char(sysdate+0.25,'yyyy mm dd hh miss')
            2* from dual

          當前時間+6小時的時間。

          日期相關函數

          MONTHS_BETWEEN('01-SEP-95','11-JAN-94')
          19.774194

          1  select ROUND(MONTHS_BETWEEN('01-SEP-95','11-JAN-94'))
            2* from dual
            3  ;

          20

          返回兩個日期之間的月差值。

          ADD_MONTHS('11-JAN-94',6)

          NEXT_DAY('01-SEP-95','FRIDAY')

          注意:下一個星期幾,但不一定下一周的星期幾,找到第一個為準。

          LAST_DAY('01-SEP-98')

          '30-SEP-98'

          ROUND('25-MAY-95','MONTH')
          01-JUN-95

          TRUNC('25-MAY-95','MONTH')
          01-MAY-95




          TO_CHAR(date,'fmt')

          fm是一個去除前置0或者空格的開關,fm....fm....

          fm作用域,是從當前到下一個fm之間的范圍。第二個fm后面表示不去除前置0,奇偶變。


          TO_CHAR(number,'fmt')

          9
          0
          $
          L
          .
          ,


          TO_NUMBER(char)

          char必須是一個‘數字’



          TO_DATE(char[,'fmt'])
          不給定日期轉換格式,就按照默認的dd-mon-rr,進行轉換。



          函數可以嵌套

            1  select last_name,
            2  NVL(TO_CHAR(MANAGER_ID),'No Manager')
            3  from s_emp
            4* where manager_id IS NULL




          Join方法

          等值
          非等值
          外連接
          自連接


          必須有連接鍵,否則就是迪卡爾連接。

            1  select s.last_name,s.dept_id,d.id,d.name
            2  from s_emp s,s_dept d
            3* where s.dept_id=d.id

          LAST_NAME          DEPT_ID         ID NAME
          --------------- ---------- ---------- -------------------------
          Dumas                   31         31 Sales
          Dumas                   32         32 Sales
          Dumas                   33         33 Sales
          payn                      34         34 Sales

          外連接是一種特殊的等值連接,用于有空值出現時,尋找到所有記錄。

            1  select s.last_name,s.id,c.sal,c.name
            2  from s_emp s,s_customer c
            3* where s.id(+) = c.sal

          LAST_NAME        ID        SAL      NAME
          --------------- ---------- ---------- -------------------------
          Dumas                   12         12         athletes attic
          Dumas                   12         12         great athletes
          Dumas                   12         12         bj athletics
          Dumas                   12         12         athletic for all
          Dumas                   12         12         sports,inc
                                                    14         athletics two
                                                    14         athletics one
                                                    14         shhes for sports
                                                    14         athletic attire
          那個+ 表示有一側可能沒有對應數據。

          表示有部分客戶沒有銷售代表。

          如果+ 在另外一側,表示查找所有銷售的客戶情況。


          posted @ 2005-11-19 16:29 北國狼人的BloG 閱讀(685) | 評論 (0)編輯 收藏
          復習,
          Solaris上,比如ftp rusers finger,等都是需要開啟服務,才能用的。

          需要在/etc/inet/inetd.conf配置才有效。

          inetd為超級監聽進程,相當于“客戶代表”,需要具體工程師來完成任務,比如in.telnetd。

          CShell 在執行命令時,實際上是將自己復制一份,再在這個子進程中執行,完成后,就終結了。

          后面source ~/.cshrc,這條命令是由C Shell本身來執行的。

          =====================================================================

          Shell 腳本編程基礎。B Shell

          那么第一行都是

          #!/bin/sh

          告訴下面為B Shell下的腳本。

          #!/bin/sh
          #lowercase any filenames with uppercase chars
          for oldname in $*
          do
             if [ -f $oldname ]
             then
                   newname = `echo $oldname | tr "[A-Z]" "[a-z]"`
                   if [ $oldname != $newname ]
                   then
                         mv $oldname $newname
                   fi
             fi
          done

          sh,很嚴格。

          exec ls

          是用當前Shell來執行ls,最后會退出的!

          ====================================

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

          crontab是另外一種執行程序的手段

          crontab -l

          croutab是另外一種執行程序的方式,叫做自動調度程序。

          crontab -e

                該命令用來編輯cront的執行任務列表,需要設置環境變量EDITOR,來編輯,

                setenv EDITOR vi

          crontab -r

                取消cront

          0 2 * * * /tmp/a.sh
          第一位是分鐘,第二位是小事,第三位是天,第四位是月,第五位是星期幾 最后是執行哪個文件

          13 5 13 * 5 /tmp/b.sh
          每月13號并且是星期5的5點13分,執行b.sh

          0,30 8-17 * * 1-5 /tmp/c.sh
          每月每天并且是周一到周五之間,8點到17點,每半小時執行一次。

          /var/spool/cron/crontabs

          可以查看mail來查看,執行結果,執行成功或者失敗都會 發mail

          %mailx

          ---------------------------
          列出目錄中隱含文件

          ls -al|awk '{print $9}'|grep '^\.'

          awk很有用
          ---------------------------

          ====================================================

          環境變量

          兩類環境變量

          系統的環境變量

          應用環境變量

          setenv LANG C
          setenv LANG zh.GBK

          用戶主目錄下.cshrc

          echo $LANG

          --------------------------------
          setenv AA something

          這是臨時設置變量,不能永久保存。

          想永久保存,需要在配置文件中寫入。

          C Shell

               /etc/.login ------> $HOME/.cshrc ---> $HOME/.login ----> $HOME/.logout

          一般情況下,useradd 命令執行后,會將系統的local.profile local.login local.cshrc拷貝到$HOME/ 下。

          而實際做法是,將同組人的配置文件,考到自己主目錄,做相應修改,最有效率。



          初始化文件的內容,有幾個方面

          umask,就是創建文件或者目錄的默認權限,777-umask 666-umask(文件)

          缺省提示符

          $path

          TERM 終端類型

          別名

          vi .cshrc 或者 cp ~hiloo/.cshrc
          source .cshrc

          注意source是當前Shell本身來執行的。


          臨時
          setenv AA abc
          unsetenv AA

          set bb=abc
          局部變量,作用域不同,切換Shell后,失效。

          B Shell

          AA=abc這是還是局部變量
          export AA 將局部變量提升為全局變量

          .profile永久,需要自己先行建立。

          unset

          env 查看所有環境變量



          setenv WHO `uname -n`

          可以將一個命令執行結果作為環境變量的值

          setenv USERCOUNT `who|wc -l`

          注意`是飄號,不是引號'

          單引號,是字符串
          echo '$WTO'
          \斜杠,為轉義
          echo \$WTO
          就是表達$WTO的本來面目




          $PATH與$path同步更新,一個是全局,一個是局部變量。
          因為它太重要了

          尋找命令,在PATH中找到第一個的為主。

          有時,編寫了一個腳本,在當前目錄下加入執行權限,但是a.sh不能執行,Command not found!

          那是因為環境變量中,沒有. ,沒有當前目錄. ,作為尋找的路徑,這也是./a.sh可以執行的原因,強制本地執行命令。

          which ps,查看使用的ps命令的路徑
          whereis ps 查看有哪些ps,路徑。





          set history=30

          alias h history

          !!上一條
          !n  以開頭最近的命令,或者數字 第幾條
          !48



          薛老師的課程結束了,回味無窮,很多以前每天敲很多變的命令變得更有意,老師講的很到位!對于日后深入學習UNIX,打下良好基礎。

          ==================================================================================
          Oracle SQL 張靖老師的口頭語為,這說的清楚么?比較親近
          ==================================================================================

          DML Data manipulation language

          DDL Data definition language
                   TRUNCATE
                   刪除數據

          DCL GRANT REVOKE


          select salary+salary*nvl(commission_pet,0)/100 totalsalary from s_emp;

          select first_name||' '||last_name||','||title "Employees" From s_emp;

          雙引號,大小寫敏感。

          sqlplus username/password

          edit ed
          list l

          ! 臨時切換

          posted @ 2005-11-17 23:16 北國狼人的BloG 閱讀(551) | 評論 (0)編輯 收藏

          補充兩點

          echo 反顯命令
          可以用來創建文件

          echo aaa>a.txt
          echo bbb>>a.txt追加

          users 查看在線用戶
          比who看到的信息少,但是同時刻用戶數一樣

          統計當前在線用戶數

          openlab.tarena.ca% users
          xiaoyao lujl xiaoyao tanjh
          openlab.tarena.ca% users|wc -w
                 4

          等價于

          openlab.tarena.ca% who|wc -l
                 4

          ===========================================================

          find / -name file
          find . -mtime 10 -print 修改時間距現在正好10天
          find /etc -user 0 -size +400 -print /etc目錄下 user為0,也就是root為owner的文件,并大小大于400的文件
                注意兩個條件為與關系,并且大于400,是data block。

                1data block = 512bytes   也就是 400 data block = 200K

          find ~ -perm 777 > ~/holes
                權限為777的
          find /export/home -type f atime +365 -exec rm {} \;

                注意后面,-exec空格rm空格{}空格\;  一個都不能少,才可執行刪除,刪除目錄-exec rm -r {} \;

          可以用于刪除文件名為rm某參數的不可刪除文件

          例如
                echo aaa>-i 為形成-i的文件

                openlab.tarena.ca% rm -i
                usage: rm [-fiRr] file ...

          那么就需要這樣來刪除
                find . -name '-i' -exec rm {} \;

          grep -i  不區分大小寫
          grep -v 過濾不匹配后面的串

          ls -l|grep ^d
                那么就是列出該目錄中的子目錄

          ls -l|grep -v ^d
                列出文件了,因為是-v
          與li -l|grep ^-等價

          grep file *
          到每個文件中尋找"file"串
                   
          more file*
          可以同時查看多個file1,file2,file3。。。的內容。

          diff file1 file2

          openlab.tarena.ca% echo aaa>file1
          openlab.tarena.ca% echo bbb>file2
          openlab.tarena.ca% diff file1 file2
          1c1
          < aaa
          ---
          > bbb

          提示說明,將第一個文件的第一行修改成為bbb

          openlab.tarena.ca% more file*
          ::::::::::::::
          file1
          ::::::::::::::
          aaa
          ccc
          ::::::::::::::
          file2
          ::::::::::::::
          bbb
          openlab.tarena.ca% diff file1 file2
          1,2c1
          < aaa
          < ccc
          ---
          > bbb

          提示,第一、二兩行都變成bbb



          openlab.tarena.ca% more file*
          ::::::::::::::
          file1
          ::::::::::::::
          aaa
          ccc
          ::::::::::::::
          file2
          ::::::::::::::
          aaa
          ccc
          zzz
          openlab.tarena.ca% diff file1 file2
          2a3
          > zzz

          在第一個文件的第二行后,加入第二個文件的第三行的內容

          openlab.tarena.ca% more file*
          ::::::::::::::
          file1
          ::::::::::::::
          aaa
          ccc
          ::::::::::::::
          file2
          ::::::::::::::
          aaa
          ccc


          zzz
          openlab.tarena.ca% diff file1 file2
          2a3,5
          >
          >
          > zzz

          第一個文件第二行,加入第二個文件中的3到5行內容。

          openlab.tarena.ca% diff file1 file2
          6d5
          < xxx

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

          openlab.tarena.ca% more file1 file2
          ::::::::::::::
          file1
          ::::::::::::::
          aaa
          ccc

          zzz

          xxx
          ::::::::::::::
          file2
          ::::::::::::::
          aaa
          ccc

          zzz
          openlab.tarena.ca% diff file1 file2
          5,6d4
          <
          < xxx

          注意是將第一個文件的5到6行刪除,到第二個文件的第四行。


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

          ps -ef

          e所有進程 f詳細列表方式

          PID 進程號
          PPID 父進程號

          任何進程最后都能追蹤到inetd

          sh -> csh -> in.telnetd -> inet -> init(1) -> sched(0)

          ps -ef|grep inetd|grep -v grep|wc -l



          ps -ef|more 有各列表頭

          STIME進程開始時間

          TTY 終端 Console
          ?表示與終端脫離關系的進程,應該是daemon

          TIME 累計占用時間

          CMD進程名稱


          /usr/ucb/ps -auwx|more

          ps的另外一個實現版本



          進程有幾種狀態,運行,就緒,掛起,僵尸進程。

          <default>,由于父進程出現問題,當子進程已經沒有了,告訴父,但是父沒有消除它,這樣造成任在進程表中保留一項,累計多后,對系統造成影響。

          上述情況,由程序員造成。解決,殺死父進程。

          kill -9 12487

          -9表示無條件殺死

          pkill sleep
                不需要進程號

          -------------------------------------
          sleep 100 前臺運行,不釋放終端控制
          sleep 100& 后臺運行

          jobs -l 列任務

          bg 任務號
          fg 任務號


          stop 進程號 掛起后臺進程
          Control -z掛起前臺進程。
          Control -c放棄前臺進程。


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

          ls file*|xargs grep file

          分解輸入

          grep file file1 file2

          查內容了,不等同于ls file*|grep file,將結果給grep,而是分解file*為file1 file2再給grep

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

          /etc/hosts
          ip與主機名的對應表
          /etc/netmasks
          /etc/defaultrouter
          默認網關
          /etc/hostname.hme0
          主機名稱

          /etc/resolv.conf
          DNS

          /etc/nodename
          網卡對應的名稱,一臺機器有可能有多個網卡,而主機名只有一個,與/etc/hostname.hme0不同。


          ping 127.0.0.1(loop back地址),是檢查邏輯地址有效否?也就是檢查TCP/IP是否安裝好?

          netstat -rn 查看硬件

          rusers -l tarenalab3
          遠程看lab3上的在線用戶。

          traceroute www.sina.com.cn

          finger user1@tarenalab1



          telnet

          rlogin hostname -l lujl

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

          ftp hostname

          lcd 顯示本地目錄,和設置本地目錄

          hash 打#每1024

          prompt交互信息開關

          mget mput

          mdelete

          rename  可以移動文件!!!!!!!

          wall 廣播 Ctrl + D

          write

          talk

          mesg -y|-n

          posted @ 2005-11-16 22:47 北國狼人的BloG 閱讀(324) | 評論 (0)編輯 收藏

          touch命令

          如果文件不存在,創建新文件。
          文件存在,同時更新訪問和修改時間。

          注意文件的更新時間和訪問時間不一樣。

          touch file1
          vi file1

          添加內容。

          ls -lt 會看到該文件的最后修改時間。
          過一些時候,執行more file參看一下該文件,也就是訪問一下。
          ls -lu會看到該文件最后訪問的時間。

          這是再touch file1,ls -lt和ls -lu會看到同樣的時間。


          做不了事(執行不了動作),你要檢查幾件事!

          1.你是誰 (id命令)

          openlab.tarena.ca% id
          uid=25791 gid=103(tarena)

          2.你在哪(pwd),你對某個文件的關系(owner group同組者 other)

          3.你是否能在某目錄里做事(讀ls 寫創建文件 執行cd),看看這個目錄的權限
             
                在該目錄下,執行 ls -ld,查看該目錄
                注意:回上一級,執行ls -l lujl,是查看該目錄下文件和子目錄的權限。

          ls -al lujl 可以查看隱藏文件。

          ls -R 將該目錄下所有文件夾遞歸展開

          su - somebody 就是將環境變量也更換為somebody的,否則不更新,cd時回原來的用戶的主目錄。



          一些基本命令。

          mkdir -p dir6/dir7/dir8 可創建層級目錄

          cp -i beans apple 文件存在,會提示,-i作用

          ===============================
          openlab.tarena.ca% cp -r dir3 dir4

          注意:如果dir4不存在,那么就先建立dir4,在將dir3中內容拷貝過去,如果dir4存在,則是將整個dir3包括dir3本身,整個目錄結構拷貝過去。

          openlab.tarena.ca% ls
          dir3   file1
          openlab.tarena.ca% cp -r dir3 dir4
          openlab.tarena.ca% ls -R
          .:
          dir3   dir4   file1

          ./dir3:
          a.txt

          ./dir4:
          a.txt
          openlab.tarena.ca% cd dir4   
          openlab.tarena.ca% rm *
          openlab.tarena.ca% cd
          openlab.tarena.ca% ls
          dir3   dir4   file1
          openlab.tarena.ca% cp -r dir3 dir4
          openlab.tarena.ca% ls -R
          .:
          dir3   dir4   file1

          ./dir3:
          a.txt

          ./dir4:
          dir3

          ./dir4/dir3:
          a.txt


          mv 命令相當于給文件改名稱

          mv 源 目標

          目標不存在,相當于給源改名稱

          目標存在,對于文件,覆蓋
                              對于目錄,移動整個目錄結構到目標目錄中。

          openlab.tarena.ca% ls
          dir3   file2
          openlab.tarena.ca% mkdir dir4
          openlab.tarena.ca% ls
          dir3   dir4   file2
          openlab.tarena.ca% mv dir3 dir4
          openlab.tarena.ca% ls -R
          .:
          dir4   file2

          ./dir4:
          dir3

          ./dir4/dir3:
          a.txt

          rm -r[i] directory_name(s)
          rmdir只能刪除空目錄

          題外話

                /tmp 每個系統根下都有一個臨時文件夾,查看該目錄權限,

                openlab.tarena.ca% cd /tmp
                openlab.tarena.ca% ls -ld
                total 64
                drwxrwxrwt   4 0        sys          753 11月 15 20:06 .
                openlab.tarena.ca% 

               看好了,那不是777,而是后面有個t,1777,它表示/tmp里,誰都能寫,讀,刪。但是必須是該文件的owner。

               chmod 1777 dir



          ln

          兩種鏈接,

          硬連接和符號連接(軟連接)

          openlab.tarena.ca% ls -l
          total 4
          drwxr-xr-x   3 25791    tarena       512 11月 15 20:03 dir4
          -rw-r--r--   1 25791    tarena        13 11月 15 19:38 file2

          蘭色表示硬鏈接數,對于目錄,那個數字表示該目錄下文件和子目錄數總和。

          openlab.tarena.ca% cp file2 file2.bak
          openlab.tarena.ca% ln file2 file2.ln
          openlab.tarena.ca% ls -il
          total 8
              858670 drwxr-xr-x   3 25791    tarena       512 11月 15 20:03 dir4
              409639 -rw-r--r--   2 25791    tarena        13 11月 15 19:38 file2
              409792 -rw-r--r--   1 25791    tarena        13 11月 15 20:23 file2.bak
              409639 -rw-r--r--   2 25791    tarena        13 11月 15 19:38 file2.ln
          openlab.tarena.ca%

          注意硬鏈接后,被鏈接文件和鏈接文件的inode號,是相同的,他們是同一個inode,硬鏈接號加1。

          =================================================
          inode i節點 關鍵概念

             touch beans這個命令執行時,創建一個文件時到系統中申請一個i節點,如果申請不到,就不會創建成功。

            i節點保存這除文件名以外的關于這個文件的所有屬性。大小,屬主,屬組,權限,數據塊指針。

          那么那個數據塊(data block)指針,指向一個數據塊。

          一個目錄也有inode,inode中數據塊指針指向的數據塊保存著該目錄的文件名與inode的對應信息。

          ==================================================

          軟鏈接

          ln -s beans beans.sln

          openlab.tarena.ca% ls -il beans*
          total 10
              409793 -rw-r--r--   1 25791    tarena         0 11月 15 20:52 beans
              409794 lrwxrwxrwx   1 25791    tarena         5 11月 15 20:53 beans.sln -> beans
          openlab.tarena.ca%

          注意,beans和beans.sln的inode號不同,說明是兩個文件。那么beans.sln的大小是5,基本可以理解為保存著beans的名稱,以便能夠找到它。

          這時,more beans.sln實際上 先找到beans.sln的inode-〉數據塊-〉5個字母beans->more beans

          系統中就有軟鏈接的例子,

          openlab.tarena.ca% cd /
          openlab.tarena.ca% ls -l|grep bin
          lrwxrwxrwx   1 0        root           9  5月 28  2002 bin -> ./usr/bin
          drwxr-xr-x   2 0        sys         1024  5月 16  2004 sbin
          openlab.tarena.ca%

          可以看到 bin就是./usr/bin的軟鏈接。



          man name 查看命令
          man -k function 查看函數    man -k setuid

          空格
          b back
          f forward
          q
          /string search
          n 查找一個

          ls d??=ls dat
          ls [a-f]b*

          cd;ls

          標準輸出重定向
          cal 5 2007>a.txt
          cal 5 2007>>a.txt追加

          ls -l /etc|more

          cal 5 2007|tee cal.lst
          tee是個3向頭,既顯示,又重定向到cal.lst文件中。

          cal 5 2007|tee -a cal.lst
          追加

          cat /dev/null > ~/b.txt
          清空文件,回收datablock

          cat /etc/passwd | awk -F: '{print $1 "\t" $6}' \
          |sort >~/userinfo

          \是指要換行繼續寫命令
          然后就是awk和sed有很強的文本處理能力。


          tail -30 a.txt
          head -30 a.txt
          tail -f ServiceStartupLog.txt

          more filename(s)操作和man一樣!

          openlab.tarena.ca% who am i
          lujl       pts/2        11月 15 19:27   (219.236.137.165)

          查看登陸用戶

          whoami顯示有效用戶。su后,會看到結果。

          ==========================================================

           VI

            底行模式 :/? 命令模式 i a o 輸入模式(Esc退出)

          kljh 上右下左

          i插入
          a后
          o當前行下插入新行 大寫O當前行上插入新行

          vi file1

          i

          some words

          Esc

          :w!

          直接輸入vi

          編輯到最后

          Esc
          :wq! file2

          保存file2,并退出

          不保存直接退
          :q!

          保存后直接退
          :wq!
          :x!
          ZZ


          命令模式下

          G 最后一行
          1G第一行,輸入沒有時間限制

          當前屏幕

          Shift +L 最下
          Shift +H 嘴上
          Shift +M中間

          Ctrl D 滾下半屏
          Ctrl U 滾上半屏
          Ctrl F 滾下整屏
          Ctrl B 滾上整屏

          r 修改一個字母
          cw 修改某個單詞
          cc 整行
          C 替換光標到行尾

          yw
          yy
          p
          :1,8co6
          :1,6m8

          x
          dw
          dd
          5dd
          :5,10d

          u UNDO

          ~
          大小寫
          J 連接下一行
          :set nu
          :21=21G
          /
          ?
          n 繼續查找
          :r file2

          :1,$/要替換/新串/g
          g表示全部替換

          :1,19/^/#/
          表示1到19行開頭加入#,注釋掉


          ^表示行首,這也是為什么Shift +6回到當前行行首,(Shift+4行尾)















          posted @ 2005-11-15 21:51 北國狼人的BloG 閱讀(443) | 評論 (0)編輯 收藏

          hanlj給我們做了精要的開學典禮。

          1,時刻想想1萬3千8可不是小數字對于沒畢業的自己,所以當你在能聽講的時候,走神;能練習的時候發呆;能復習的時候,看電視,那你就是在浪費1萬多塊錢!

          2,對自己執行歸零操作,如果權限不夠,請使用ROOT強制執行,把你原來那點東西收起來吧,重新輸入正統功力,至少讓達內精英幫你自己原有內功重新梳理,理順吧!

          3,專注(專心學習,學好了,挑戰到高薪,才是對關愛你的人最大回報,而不是嘴上說,身邊陪。)

                勤勞(多用功,學習容量很大哦)
             
                積極(用最大的熱情去學習每一個知識點,沒有漏洞)

                溝通(應該有很多人能夠認識)

          4,安排時間,培養好習慣。

          學習流程:

                [Core Java]JDBC[Core C++][C++ 高級][Java 高級][Web實戰][J2EE OO OA OD][IP計費項目實戰]

          今天正題:

          [Unix基礎] 老師用最易懂的方式將我看了很多書或者帖子都沒弄懂的問題,搞懂了,印象很深刻。

          學習路徑

          登錄、登出Solaris系統
          漫游Solaris文件系統
          建立文件和文件夾,并且改變權限
          操作文本文件,并使用vi編輯器
          使用命令來查找目錄以及文件
          使用基本網絡命令
          識別和改變初始化文件,環境變量的設置*(不同Shell)


          Solaris = SunOS + CDE

          Solaris 2.5 = SunOS 5.5

          Solaris 在1980,由Berkeley加入了VM(虛擬存儲)支持,TCP/IP網絡,vi,csh等

          三大概念

          Kernel

          Kernel管理設備,內存,進程,控制系統程序/工具和系統硬件,管理交換去,精靈進程,文件系統和其他功能。

          Shell

          File System

          C Shell和文件系統比較重要對于開發者。

          A shell is an interface between the user and the kernel,which acts as an interpreter or translator.

          Shell實質上是一個程序,一登錄,系統幫你運行的。

          B Shell
          K Shell
          *C Shell
          ba Shell

          B Shell系統管理員比較喜歡用,很多啟動腳本中,都是B Shell寫的。

          C Shell是B Shell的擴展,支持history,并且編程環境與C類似,每個Shell腳本都是C語言風格。與B Shell的語法不兼容,例如設置環境變量不同的句法不同。

          tcsh是csh的增強擴展版本。

          ps命令,查看當前用戶使用的Shell。

          從csh進入sh,那么csh是sh的父Shell。exit退出子Shell,回到上一級Shell。

          進入系統的默認Shell,叫做登錄Shell,在/etc/passwd中記錄。

          bash有保存命令歷史的作用,支持 上 下 鍵。

          $su進入超級用戶root。

          Solaris文件系統

          命令df -k,查看目錄,與文件系統關系以及使用情況。

          會發現,

          /dev/dsk/c0t0d0
          /dev/dsk/c0t1d0

          如果c0t0d0部分不完全相同,表示兩塊硬盤,那么上面的是兩塊物理硬盤。

          c控制位,t目標位,d磁盤位。

          那么對于一個5G的磁盤,要進行分區,那么分出來的叫做Slice:片

          c0t0d0s0~c0t0d0s7,一共是8個,但是c0t0d0s2表示整個磁盤不能分,也就不能表示。所以一塊磁盤最多分7個Slice。

          /c0t0d0     ------>   format -------> s0 2G大小 s1 3G大小。

          /c0t0d0s0   -------> newfs 做文件系統,那么文件系統是建立在Slice上的。那么newfs實質上是在分數據塊block.

          那么最后新的文件系統要掛接到(mount)到根上,那么就是鉤在目錄上。

          掛接命令mount  /dev/dsk/c0t0d0s0 /opt

          那么可以仔細看一下文件系統了。

          /dev/dsk/c0t1d0s0 8260757 4269347 3908803 /newusers

          8260757 由于是以kbytes為單位,三位一分,基本上是8G總大小。

          ===================================================================

          /sbin/ifconfig -a 查看ip地址。

          ====================

          more /etc/passwd
             
             luolu:x:30662:10::/newusers/sd0510/luolu:/bin/csh

          用戶名:密碼位(密碼信息存在在/etc/shadow中,密文保存):UID:GID::主目錄:登陸Shell。

          ===================================================================

          pwd - print working directory

          cd ~hiloo 表示進入hiloo的主目錄。cd直接空格和cd ~表示自己的主目錄。
          cd ../.. 退兩級

          查看文件類型的三種方式

          ls -l

          - 文件 d 目錄

          file 文件名

          ls -F

          顯示文件類型


          目錄的讀權限,是否可以查看文件列表
          目錄的寫權限,是否可以生成文件和子目錄或者刪除文件與子目錄
          執行權限,就是指是否可以'cd 該目錄'

          rw-          r--                      r--
          對owner  對同組其他人  對其他人
          可以看成由9個0和1組成,所以000到111,對每類用戶的權限是8種變化,值為0到7。

          rwx r-x r-w 755
          rw- r-- r-- 644

          只有root和某文件的owner才能修改該文件的權限。

          改變文件權限的兩種方式:

          chmod 644 file
          chmod 755 file

          chmod g-r file1
          chmod u+x,go+r file1在原有權限基礎上,給文件owner加執行權限,給同組和其他人加讀權限。
          chmod a=rw file1 (表示讓所有用戶,都是rw權限,那么就是666)

          touch filename(s)

          posted @ 2005-11-14 21:55 北國狼人的BloG 閱讀(552) | 評論 (0)編輯 收藏

          今天終于有時間去聽課了,高興。

          今天最重要的收獲,了解了衡量自己的幾個基本方面。

          1,就是知識結構層次,教育程度
          2,技術技能,實際的應用
          3,經驗,那么做過某項工作,和沒做過肯定是不一樣的。
          4,閱歷,閱歷主要是指正確知識或者認知,在遇到很多事情時,得到驗證,而獲得的新的體會。

          還有人成功的幾點

          1,品德,
          2,毅力,
          3,抓住每次機遇,不一是享福,好的機遇,很多吃苦的機會,也是很重要的。比如三伏天對著電腦,漢流夾背的編程,編一天。或者其他吃苦的機會。為什么?!其實很簡單,人類的潛意識會告訴你答案,當你在人生路上再遇到很難過的時候,你會想到之前那么苦,那么累都能支撐過來,這算什么!所以任何機會都是鍛煉人的!
          4,積累人脈,


          posted @ 2005-11-12 17:18 北國狼人的BloG 閱讀(763) | 評論 (0)編輯 收藏
          2個月前,一個老朋友(發小)讓我幫他老板制作網站,那時的我興致很高,以為很簡單的一個商務網站,我就直接信用卡買了空間,就做。

          中間,也沒有什么需求,就照著經驗制作。當然也連老板都沒見到就做完了。自己還夢想著拿錢。

          結果,人家根本不是這么想的,找了另外的人負責網站的人,一個女人。失敗,說界面不行,重新修改。

          又說¥……%¥—…………%74#%……¥#·……¥·#

          反正需求跟我做的基本不大一樣。

          我當時恨不得。。。


          我正好已經辭職了,所以有功夫,改吧,我就重新設計,重新做網頁,重新做程序。

          原來的網站,還用Web標準做的,DIV+CSS,其實在我看來都是扯淡,還不夠累得呢,腦子全用在CSS上了。還是Table定位方便,幾個Table一套。OK。以前的經驗讓我在短短一周重做了一個新網站。


          昨天,又去談了談,其實人家老板還是很爽快的,我說支付一部分費用,等都改好了,再支付另外的。

          拿到1500,唉,累。。。。


          這件事以后,記住不做朋友介紹的活,其實也是不做私活,因為如果拿著高新,您把工作做到家,會有更大利益,私活沒有保證阿!!!!

          做項目,一定不要先投入太多,把需求談好,初稿定了,然后拿到定金,再投入。記住了朋友。
          posted @ 2005-11-12 08:08 北國狼人的BloG 閱讀(729) | 評論 (1)編輯 收藏
          僅列出標題
          共17頁: First 上一頁 9 10 11 12 13 14 15 16 17 下一頁 
          主站蜘蛛池模板: 灌阳县| 高淳县| 屏山县| 彩票| 三江| 连云港市| 和平区| 来凤县| 长寿区| 辛集市| 山阴县| 兴业县| 北碚区| 古浪县| 织金县| 静宁县| 原阳县| 武平县| 永康市| 昌吉市| 三穗县| 定南县| 都昌县| 隆化县| 淳化县| 广昌县| 伽师县| 祁东县| 时尚| 商水县| 平顺县| 北流市| 桦甸市| 甘洛县| 佳木斯市| 黑水县| 卢湾区| 信丰县| 新丰县| 广宁县| 石门县|