<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-314  評論-209  文章-0  trackbacks-0
     
    1.hive模糊搜索表
      show tables like '*name*';

    2.查看表結構信息
      desc formatted table_name;
      desc table_name;

    3.查看分區(qū)信息
      show partitions table_name;

    4.根據(jù)分區(qū)查詢數(shù)據(jù)
      select table_coulm from table_name where partition_name = '2014-02-25';

    5.查看hdfs文件信息
      dfs -ls /user/hive/warehouse/table02;

    6.從文件加載數(shù)據(jù)進表(OVERWRITE覆蓋,追加不需要OVERWRITE關鍵字)
      LOAD DATA LOCAL INPATH 'dim_csl_rule_config.txt' OVERWRITE into table dim.dim_csl_rule_config;
      --從查詢語句給table插入數(shù)據(jù)
      INSERT OVERWRITE TABLE test_h02_click_log PARTITION(dt) select * 
      from stage.s_h02_click_log where dt='2014-01-22' limit 100;

    7.導出數(shù)據(jù)到文件
      insert overwrite directory '/tmp/csl_rule_cfg' select a.* from dim.dim_csl_rule_config a;
      hive -e "select day_id,pv,uv,ip_count,click_next_count,second_bounce_rate,return_visit,pg_type from tmp.tmp_h02_click_log_baitiao_ag_sum where day_id in ('2014-03-06','2014-03-07','2014-03-08','2014-03-09','2014-03-10');"> /home/jrjt/testan/baitiao.dat;

    8.自定義udf函數(shù)
      1.繼承UDF類
      2.重寫evaluate方法
      3.把項目打成jar包
      4.hive中執(zhí)行命令add jar /home/jrjt/dwetl/PUB/UDF/udf/GetProperty.jar;
      5.創(chuàng)建函數(shù)create temporary function get_pro as 'jd.Get_Property'//jd.jd.Get_Property為類路徑;
     
    9.查詢顯示列名 及 行轉列顯示 
      set hive.cli.print.header=true; // 打印列名
      set hive.cli.print.row.to.vertical=true; // 開啟行轉列功能, 前提必須開啟打印列名功能
      set hive.cli.print.row.to.vertical.num=1; // 設置每行顯示的列數(shù)

    10.查看表文件大小,下載文件到某個目錄,顯示多少行到某個文件
       dfs -du hdfs://BJYZH3-HD-JRJT-4137.jd.com:54310/user/jrjt/warehouse/stage.db/s_h02_click_log;
       dfs -get /user/jrjt/warehouse/ods.db/o_h02_click_log_i_new/dt=2014-01-21/000212_0 /home/jrjt/testan/;
       head -n 1000 文件名 > 文件名

    11.殺死某個任務  不在hive shell中執(zhí)行
       hadoop job -kill job_201403041453_58315
     
    12.hive-wui路徑
       http://172.17.41.38/jobtracker.jsp

    13.刪除分區(qū)
       alter table tmp_h02_click_log_baitiao drop partition(dt='2014-03-01');
       alter table d_h02_click_log_basic_d_fact drop partition(dt='2014-01-17');
       

    14.hive命令行操作
       執(zhí)行一個查詢,在終端上顯示mapreduce的進度,執(zhí)行完畢后,最后把查詢結果輸出到終端上,接著hive進程退出,不會進入交互模式。
       hive -e 'select table_cloum from table'
       -S,終端上的輸出不會有mapreduce的進度,執(zhí)行完畢,只會把查詢結果輸出到終端上。這個靜音模式很實用,,通過第三方程序調用,第三方程序通過hive的標準輸出獲取結果集。
       hive -S -e 'select table_cloum from table'
       執(zhí)行sql文件
       hive -f hive_sql.sql

     15.hive上操作hadoop文件基本命令
        查看文件大小
        dfs -du /user/jrjt/warehouse/tmp.db/tmp_h02_click_log/dt=2014-02-15;
        刪除文件
        dfs -rm /user/jrjt/warehouse/tmp.db/tmp_h02_click_log/dt=2014-02-15;

     16.插入數(shù)據(jù)sql、導出數(shù)據(jù)sql
        1.insert 語法格式為:
        基本的插入語法:
        INSERT OVERWRITE TABLE tablename [PARTITON(partcol1=val1,partclo2=val2)]select_statement FROM from_statement
        insert overwrite table test_insert select * from test_table;

        對多個表進行插入操作:
        FROM fromstatte
        INSERT OVERWRITE TABLE tablename1 [PARTITON(partcol1=val1,partclo2=val2)]select_statement1
        INSERT OVERWRITE TABLE tablename2 [PARTITON(partcol1=val1,partclo2=val2)]select_statement2

        from test_table                     
        insert overwrite table test_insert1 
        select key
        insert overwrite table test_insert2
        select value;

        insert的時候,from子句即可以放在select 子句后面,也可以放在 insert子句前面。
        hive不支持用insert語句一條一條的進行插入操作,也不支持update操作。數(shù)據(jù)是以load的方式加載到建立好的表中。數(shù)據(jù)一旦導入就不可以修改。

        2.通過查詢將數(shù)據(jù)保存到filesystem
        INSERT OVERWRITE [LOCAL] DIRECTORY directory SELECT.... FROM .....

        導入數(shù)據(jù)到本地目錄:
        insert overwrite local directory '/home/zhangxin/hive' select * from test_insert1;
        產(chǎn)生的文件會覆蓋指定目錄中的其他文件,即將目錄中已經(jīng)存在的文件進行刪除。

        導出數(shù)據(jù)到HDFS中:
        insert overwrite directory '/user/zhangxin/export_test' select value from test_table;

        同一個查詢結果可以同時插入到多個表或者多個目錄中:
        from test_insert1
        insert overwrite local directory '/home/zhangxin/hive' select * 
        insert overwrite directory '/user/zhangxin/export_test' select value;

     17.mapjoin的使用 應用場景:1.關聯(lián)操作中有一張表非常小 2.不等值的鏈接操作
        select /*+ mapjoin(A)*/ f.a,f.b from A t join B f  on ( f.a=t.a and f.ftime=20110802) 

     18.perl啟動任務
       perl /home/jrjt/dwetl/APP/APP/A_H02_CLICK_LOG_CREDIT_USER/bin/a_h02_click_log_credit_user.pl 
       APP_A_H02_CLICK_LOG_CREDIT_USER_20140215.dir >& /home/jrjt/dwetl/LOG/APP/20140306/a_h02_click_log_credit_user.pl.4.log

     19.查看perl進程
       ps -ef|grep perl

     20.hive命令移動表數(shù)據(jù)到另外一張表目錄下并添加分區(qū)
       dfs -cp /user/jrjt/warehouse/tmp.db/tmp_h02_click_log/dt=2014-02-18 /user/jrjt/warehouse/ods.db/o_h02_click_log/;
       dfs -cp /user/jrjt/warehouse/tmp.db/tmp_h02_click_log_baitiao/* /user/jrjt/warehouse/dw.db/d_h02_click_log_baitiao_basic_d_fact/;--復制所有分區(qū)數(shù)據(jù)
       alter table d_h02_click_log_baitiao_basic_d_fact add partition(dt='2014-03-11') location '/user/jrjt/warehouse/dw.db/d_h02_click_log_baitiao_basic_d_fact/dt=2014-03-11';
      
     21.導出白條數(shù)據(jù)
        hive -e "select day_id,pv,uv,ip_count,click_next_count,second_bounce_rate,return_visit,pg_type from tmp.tmp_h02_click_log_baitiao_ag_sum where day_id like '2014-03%';"> /home/jrjt/testan/baitiao.xlsx;
       
     22.hive修改表名
        ALTER TABLE o_h02_click_log_i RENAME TO o_h02_click_log_i_bk;
      
     23.hive復制表結構
       CREATE TABLE d_h02_click_log_baitiao_ag_sum LIKE tmp.tmp_h02_click_log_baitiao_ag_sum;


     24.hive官網(wǎng)網(wǎng)址
       https://cwiki.apache.org/confluence/display/Hive/GettingStarted#GettingStarted-InstallationandConfiguration
       http://www.360doc.com/content/12/0111/11/7362_178698714.shtml
     25.hive添加字段
       alter table tmp_h02_click_log_baitiao_ag_sum add columns(current_session_timelenth_count bigint comment '頁面停留總時長');
       ALTER TABLE tmp_h02_click_log_baitiao CHANGE current_session_timelenth current_session_timelenth bigint comment '當前會話停留時間';
       
     26.hive開啟簡單模式不啟用mr
       set hive.fetch.task.conversion=more;
     27.以json格式輸出執(zhí)行語句會讀取的input table和input partition信息
       Explain dependency query  
    posted @ 2015-02-13 15:20 xzc 閱讀(364) | 評論 (0)編輯 收藏

    轉自:http://www.aboutyun.com/forum.php?mod=viewthread&tid=8590&highlight=hive

    問題導讀:
    1.如何查看hive表結構?
    2.如何查看表結構信息?
    3.如何查看分區(qū)信息?
    4.哪個命令可以模糊搜索表


    1.hive模糊搜索表

      show tables like '*name*';

    2.查看表結構信息
      desc formatted table_name;
      desc table_name;

    3.查看分區(qū)信息
      show partitions table_name;

    4.根據(jù)分區(qū)查詢數(shù)據(jù)
      select table_coulm from table_name where partition_name = '2014-02-25';

    5.查看hdfs文件信息
      dfs -ls /user/hive/warehouse/table02;

    6.從文件加載數(shù)據(jù)進表(OVERWRITE覆蓋,追加不需要OVERWRITE關鍵字)
      LOAD DATA LOCAL INPATH 'dim_csl_rule_config.txt' OVERWRITE into table dim.dim_csl_rule_config;
      --從查詢語句給table插入數(shù)據(jù)
      INSERT OVERWRITE TABLE test_h02_click_log PARTITION(dt) select * 
      from stage.s_h02_click_log where dt='2014-01-22' limit 100;

    7.導出數(shù)據(jù)到文件
      insert overwrite directory '/tmp/csl_rule_cfg' select a.* from dim.dim_csl_rule_config a;
      hive -e "select day_id,pv,uv,ip_count,click_next_count,second_bounce_rate,return_visit,pg_type from tmp.tmp_h02_click_log_baitiao_ag_sum where day_id in ('2014-03-06','2014-03-07','2014-03-08','2014-03-09','2014-03-10');"> /home/jrjt/testan/baitiao.dat;

    8.自定義udf函數(shù)
      1.繼承UDF類
      2.重寫evaluate方法
      3.把項目打成jar包
      4.hive中執(zhí)行命令add jar /home/jrjt/dwetl/PUB/UDF/udf/GetProperty.jar;
      5.創(chuàng)建函數(shù)create temporary function get_pro as 'jd.Get_Property'//jd.jd.Get_Property為類路徑;

    9.查詢顯示列名 及 行轉列顯示 
      set hive.cli.print.header=true; // 打印列名
      set hive.cli.print.row.to.vertical=true; // 開啟行轉列功能, 前提必須開啟打印列名功能
      set hive.cli.print.row.to.vertical.num=1; // 設置每行顯示的列數(shù)

    10.查看表文件大小,下載文件到某個目錄,顯示多少行到某個文件
       dfs -du hdfs://BJYZH3-HD-JRJT-4137.jd.com:54310/user/jrjt/warehouse/stage.db/s_h02_click_log;
       dfs -get /user/jrjt/warehouse/ods.db/o_h02_click_log_i_new/dt=2014-01-21/000212_0 /home/jrjt/testan/;
       head -n 1000 文件名 > 文件名

    11.殺死某個任務  不在hive shell中執(zhí)行
       hadoop job -kill job_201403041453_58315

    12.hive-wui路徑
       http://172.17.41.38/jobtracker.jsp

    13.刪除分區(qū)
       alter table tmp_h02_click_log_baitiao drop partition(dt='2014-03-01');
       alter table d_h02_click_log_basic_d_fact drop partition(dt='2014-01-17');


    14.hive命令行操作
       執(zhí)行一個查詢,在終端上顯示mapreduce的進度,執(zhí)行完畢后,最后把查詢結果輸出到終端上,接著hive進程退出,不會進入交互模式。
       hive -e 'select table_cloum from table'
       -S,終端上的輸出不會有mapreduce的進度,執(zhí)行完畢,只會把查詢結果輸出到終端上。這個靜音模式很實用,,通過第三方程序調用,第三方程序通過hive的標準輸出獲取結果集。
       hive -S -e 'select table_cloum from table'
       執(zhí)行sql文件
       hive -f hive_sql.sql

    15.hive上操作hadoop文件基本命令
        查看文件大小
        dfs -du /user/jrjt/warehouse/tmp.db/tmp_h02_click_log/dt=2014-02-15;
        刪除文件
        dfs -rm /user/jrjt/warehouse/tmp.db/tmp_h02_click_log/dt=2014-02-15;

    16.插入數(shù)據(jù)sql、導出數(shù)據(jù)sql
        1.insert 語法格式為:
        基本的插入語法:
        INSERT OVERWRITE TABLE tablename [PARTITON(partcol1=val1,partclo2=val2)]select_statement FROM from_statement
        insert overwrite table test_insert select * from test_table;

        對多個表進行插入操作:
        FROM fromstatte
        INSERT OVERWRITE TABLE tablename1 [PARTITON(partcol1=val1,partclo2=val2)]select_statement1
        INSERT OVERWRITE TABLE tablename2 [PARTITON(partcol1=val1,partclo2=val2)]select_statement2

        from test_table                     
        insert overwrite table test_insert1 
        select key
        insert overwrite table test_insert2
        select value;

        insert的時候,from子句即可以放在select 子句后面,也可以放在 insert子句前面。
        hive不支持用insert語句一條一條的進行插入操作,也不支持update操作。數(shù)據(jù)是以load的方式加載到建立好的表中。數(shù)據(jù)一旦導入就不可以修改。

        2.通過查詢將數(shù)據(jù)保存到filesystem
        INSERT OVERWRITE [LOCAL] DIRECTORY directory SELECT.... FROM .....

        導入數(shù)據(jù)到本地目錄:
        insert overwrite local directory '/home/zhangxin/hive' select * from test_insert1;
        產(chǎn)生的文件會覆蓋指定目錄中的其他文件,即將目錄中已經(jīng)存在的文件進行刪除。

        導出數(shù)據(jù)到HDFS中:
        insert overwrite directory '/user/zhangxin/export_test' select value from test_table;

        同一個查詢結果可以同時插入到多個表或者多個目錄中:
        from test_insert1
        insert overwrite local directory '/home/zhangxin/hive' select * 
        insert overwrite directory '/user/zhangxin/export_test' select value;

    17.mapjoin的使用 應用場景:1.關聯(lián)操作中有一張表非常小 2.不等值的鏈接操作
        select /*+ mapjoin(A)*/ f.a,f.b from A t join B f  on ( f.a=t.a and f.ftime=20110802) 

    18.perl啟動任務
       perl /home/jrjt/dwetl/APP/APP/A_H02_CLICK_LOG_CREDIT_USER/bin/a_h02_click_log_credit_user.pl 
       APP_A_H02_CLICK_LOG_CREDIT_USER_20140215.dir >& /home/jrjt/dwetl/LOG/APP/20140306/a_h02_click_log_credit_user.pl.4.log

    19.查看perl進程
       ps -ef|grep perl

    20.hive命令移動表數(shù)據(jù)到另外一張表目錄下并添加分區(qū)
       dfs -cp /user/jrjt/warehouse/tmp.db/tmp_h02_click_log/dt=2014-02-18 /user/jrjt/warehouse/ods.db/o_h02_click_log/;
       dfs -cp /user/jrjt/warehouse/tmp.db/tmp_h02_click_log_baitiao/* /user/jrjt/warehouse/dw.db/d_h02_click_log_baitiao_basic_d_fact/;--復制所有分區(qū)數(shù)據(jù)
       alter table d_h02_click_log_baitiao_basic_d_fact add partition(dt='2014-03-11') location '/user/jrjt/warehouse/dw.db/d_h02_click_log_baitiao_basic_d_fact/dt=2014-03-11';

    21.導出白條數(shù)據(jù)
        hive -e "select day_id,pv,uv,ip_count,click_next_count,second_bounce_rate,return_visit,pg_type from tmp.tmp_h02_click_log_baitiao_ag_sum where day_id like '2014-03%';"> /home/jrjt/testan/baitiao.xlsx;

    22.hive修改表名
        ALTER TABLE o_h02_click_log_i RENAME TO o_h02_click_log_i_bk;

    23.hive復制表結構
       CREATE TABLE d_h02_click_log_baitiao_ag_sum LIKE tmp.tmp_h02_click_log_baitiao_ag_sum;


    24.hive官網(wǎng)網(wǎng)址
       https://cwiki.apache.org/conflue ... ionandConfiguration
       http://www.360doc.com/content/12/0111/11/7362_178698714.shtml

    25.hive添加字段
       alter table tmp_h02_click_log_baitiao_ag_sum add columns(current_session_timelenth_count bigint comment '頁面停留總時長');
       ALTER TABLE tmp_h02_click_log_baitiao CHANGE current_session_timelenth current_session_timelenth bigint comment '當前會話停留時間';

    26.hive開啟簡單模式不啟用mr
       set hive.fetch.task.conversion=more;

    27.以json格式輸出執(zhí)行語句會讀取的input table和input partition信息
       Explain dependency query  

    posted @ 2015-02-13 15:19 xzc 閱讀(3917) | 評論 (0)編輯 收藏
         摘要: 轉自:http://blog.chinaunix.net/uid-16844903-id-3411118.html工具mysqlmysqldump應用舉例導出導出全庫備份到本地的目錄mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --lock-all-tables --ad...  閱讀全文
    posted @ 2015-02-09 10:52 xzc 閱讀(660) | 評論 (0)編輯 收藏

    JAVA 命令參數(shù)詳解:

    1、-D<name>=<value> set a system property  設置系統(tǒng)屬性。

          java命令引入jar時可以-cp參數(shù),但時-cp不能用通配符(多個jar時什么煩要一個個寫,不能*.jar),面通常的jar都在同一目錄,且多于1個。前些日子找到(發(fā)現(xiàn))-Djava.ext.dirs太好。

    如:

    java -Djava.ext.dirs=lib MyClass  

     

    可以在運行前配置一些屬性,比如路徑什么的。

    java -Dconfig="d:/config/config.xml" Abc

    這樣在Abc中就可以通過System.getProperty("config");獲得這個值了。

     

     

    在虛擬機的系統(tǒng)屬性中設置屬性名/值對,運行在此虛擬機之上的應用程序可用
    當虛擬機報告類找不到或類沖突時可用此參數(shù)來診斷來查看虛擬機從裝入類的情況。

    另外,javac -d <目錄> 指定存放生成的類文件的位置

    Standard System Properties

     

    Key Meaning
    "file.separator" Character that separates components of a file path. This is "/" on UNIX and "\" on Windows.
    "java.class.path" Path used to find directories and JAR archives containing class files. Elements of the class path are separated by a platform-specific character specified in the path.separator property.
    "java.home" Installation directory for Java Runtime Environment (JRE)
    "java.vendor" JRE vendor name
    "java.vendor.url" JRE vender URL
    "java.version" JRE version number
    "line.separator" Sequence used by operating system to separate lines in text files
    "os.arch" Operating system architecture
    "os.name" Operating system name
    "os.version" Operating system version
    "path.separator" Path separator character used in java.class.path
    "user.dir" User working directory
    "user.home" User home directory
    "user.name" User account name

     

     

     

    所謂的 system porperty,system 指的是 JRE (runtime)system,不是指 OS。

    System.setProperty("net.jxta.tls.principal", "client");
    System.setProperty("net.jxta.tls.password", "password");
    System.setProperty("JXTA_HOME",System.getProperty("JXTA_HOME","client"));
    可以利用系統(tǒng)屬性來加載多個驅動

    posted @ 2015-01-21 10:09 xzc 閱讀(873) | 評論 (0)編輯 收藏

    在linux系統(tǒng)下進程遇到查看文件的權限、修改文件的權限以及修改文件的所有者等操作,主要涉及到chmod、chgrp、chown三個命令。本文簡單講述下這三個命令的使用。

    • chgrp 修改文件所屬組
    • chown 修改文件所有者
    • chmod 修改文件屬性

    一、chgrp 使用說明 

    用法:chgrp [-cfhRv][--help][--version][所屬群組][文件或目錄...] 
    或者:chgrp [-cfhRv][--help][--reference=參考文件或目錄][--version][文件或目錄...] 

    參數(shù)[-R] 用于整個目錄下遞歸 
    參數(shù)[-h] 有且只有改變符號連接的用戶組 
    參數(shù)[-c]與[-v]類似,但是v表示無論如何也要顯示結果,c表示只有更改組之后才顯示結果 

    實例:chgrp [-R] test test.txt  
    表示把test.txt文件的群組修改成test 

    二、chown 使用說明 
    用法:chown [選項]... 所有者[:[組]] 文件... 
      或:chown [選項]... :組 文件... 
      或:chown [選項]... --reference=參考文件 文件... 

    chown [-cfhvR] [--help] [--version] user[:group] file... 
    <參數(shù)>[-cfvR] 類似上面的chgrp的用法 

    范例 
    chown test:users test.txt 
    將檔案 test.txt 的擁有者設為 users 群的使用者 test 

    chown -R test:users * 
    將目前目錄下的所有檔案與子目錄的擁有者皆設為 users 群體的使用者 test 

    chgrp和chown 的都是轉移文件屬主 但是chown只能在同一個用戶組里面轉換而chgrp可以轉移到不同的用戶組 

    三、chmod 使用說明 
    用法:chmod [選項]... 模式[,模式]... 文件... 
      或:chmod [選項]... 八進制模式 文件... 
      或:chmod [選項]... --reference=參考文件 文件... 
    <模式>由三部份組成:一個或以上的 ugoa 字母,一個或以上的 +-= 符號, 
    和一個或以上的 rwxXstugo 字母。 
    <參數(shù)>[-cfvR] 類似上面的chgrp的用法 

    具體比如 chmod [-R] u/g/o/a  +/-/=  rwx  檔案或目錄 
    【u/g/o/a】說明

    • u:user表示該檔案的擁有者
    • g:group表示與該檔案的擁有者屬于同一個群體(group)者
    • o:other表示其他以外的人
    • a:all表示這三者皆是

    【+-=】說明

    • +:增加權限
    • -:撤銷權限
    • =:設定權限

    【rwx】說明

    • r:read表示可讀取
    • w:write表示可寫入
    • x:excute表示可執(zhí)行
    • X 表示只有當該檔案是個子目錄或者該檔案已經(jīng)被設定過為可執(zhí)行

    當然rwx這些權限也可以用數(shù)字來代替 
    r:4 w:2 x:1 -:0 
       比如執(zhí)行:chmod u=rwx,g=rx,o=r filename 
       就等同于: chmod u=7,g=5,o=4 filename 
        
    范例: 
       chmod o-r test.txt 
      表示給其他人撤銷test.txt這個文件的讀權限 

       chmod -R a+r * 
      將目前目錄下的所有檔案與子目錄皆設為任何人可讀取 

       chmod ug+w,o-w test1.txt test2.txt 
      將檔案 test1.txt 與 test2.txt 設為該檔案擁有者,與其所屬同一個群體者可寫入,但其他以外的人則不可寫入 

      chmod ug=rwx,o=x file 效果等同于 chmod 771 file 

      chmod a=rwx file 效果等同于 chmod 777 file

    posted @ 2015-01-20 11:33 xzc 閱讀(250) | 評論 (0)編輯 收藏
         摘要: 事務具有ACID四種特性。但是Isolation并發(fā)可能引起如下問題:1.臟讀允許讀取到未提交的臟數(shù)據(jù)。2.不可重復讀如果你在時間點T1讀取了一些記錄,在T2時再想重新讀取一次同樣的這些記錄時,這些記錄可能已經(jīng)被改變、或者消失不見。3.幻讀解決了不重復讀,保證了同一個事務里,查詢的結果都是事務開始時的狀態(tài)(一致性)。但是,如果另一個事務同時提交了新數(shù)據(jù),本事務再更新時,就會“驚奇的&#...  閱讀全文
    posted @ 2015-01-15 19:57 xzc 閱讀(391) | 評論 (3)編輯 收藏

    本文總結了Linux添加或者刪除用戶和用戶組時常用的一些命令和參數(shù)。
    1、建用戶:
    adduser phpq                             //新建phpq用戶
    passwd phpq                               //給phpq用戶設置密碼

    2、建工作組
    groupadd test                          //新建test工作組

    3、新建用戶同時增加工作組
    useradd -g test phpq                      //新建phpq用戶并增加到test工作組

    注::-g 所屬組 -d 家目錄 -s 所用的SHELL


    4、給已有的用戶增加工作組
    usermod -G groupname username

    或者:gpasswd -a user group

    5、臨時關閉:在/etc/shadow文件中屬于該用戶的行的第二個字段(密碼)前面加上*就可以了。想恢復該用戶,去掉*即可。

    或者使用如下命令關閉用戶賬號:
    passwd peter –l

    重新釋放:
    passwd peter –u

    6、永久性刪除用戶賬號
    userdel peter

    groupdel peter

    usermod –G peter peter   (強制刪除該用戶的主目錄和主目錄下的所有文件和子目錄)

    7、從組中刪除用戶
    編輯/etc/group 找到GROUP1那一行,刪除 A
    或者用命令
    gpasswd -d A GROUP

    8、顯示用戶信息
    id user
    cat /etc/passwd

    更詳細的用戶和用戶組的解說請參考
    Linux 用戶和用戶組詳細解說
    本文主要講述在Linux 系統(tǒng)中用戶(user)和用戶組(group)管理相應的概念;用戶(user)和用戶組(group)相關命令的列舉;其中也對單用戶多任務,多用戶多任務也做以解說。

    本篇文章來源于 PHP資訊 原文鏈接:http://www.phpq.net/linux/linux-add-delete-user-group.html

     

    Linux 用戶(user)和用戶組(group)管理概述

     

    、理解Linux的單用戶多任務,多用戶多任務概念;

    Linux 是一個多用戶、多任務的操作系統(tǒng);我們應該了解單用戶多任務和多用戶多任務的概念;


    1、Linux 的單用戶多任務;

    單用戶多任務;比如我們以beinan 登錄系統(tǒng),進入系統(tǒng)后,我要打開gedit 來寫文檔,但在寫文檔的過程中,我感覺少點音樂,所以又打開xmms 來點音樂;當然聽點音樂還不行,MSN 還得打開,想知道幾個弟兄現(xiàn)在正在做什么,這樣一樣,我在用beinan 用戶登錄時,執(zhí)行了gedit 、xmms以及msn等,當然還有輸入法fcitx ;這樣說來就有點簡單了,一個beinan用戶,為了完成工作,執(zhí)行了幾個任務;當然beinan這個用戶,其它的人還能以遠程登錄過來,也能做其它的工作。


    2、Linux 的多用戶、多任務;

    有時可能是很多用戶同時用同一個系統(tǒng),但并不所有的用戶都一定都要做同一件事,所以這就有多用戶多任務之說;

    舉個例子,比如LinuxSir.Org 服務器,上面有FTP 用戶、系統(tǒng)管理員、web 用戶、常規(guī)普通用戶等,在同一時刻,可能有的弟兄正在訪問論壇;有的可能在上傳軟件包管理子站,比如luma 或Yuking 兄在管理他們的主頁系統(tǒng)和FTP ;在與此同時,可能還會有系統(tǒng)管理員在維護系統(tǒng);瀏覽主頁的用的是nobody 用戶,大家都用同一個,而上傳軟件包用的是FTP用戶;管理員的對系統(tǒng)的維護或查看,可能用的是普通帳號或超級權限r(nóng)oot帳號;不同用戶所具有的權限也不同,要完成不同的任務得需要不同的用戶,也可以說不同的用戶,可能完成的工作也不一樣

    值得注意的是:多用戶多任務并不是大家同時擠到一接在一臺機器的的鍵盤和顯示器前來操作機器,多用戶可能通過遠程登錄來進行,比如對服務器的遠程控制,只要有用戶權限任何人都是可以上去操作或訪問的;


    3、用戶的角色區(qū)分;

    用戶在系統(tǒng)中是分角色的,在Linux 系統(tǒng)中,由于角色不同,權限和所完成的任務也不同;值得注意的是用戶的角色是通過UID和識別的,特別是UID;在系統(tǒng)管理中,系統(tǒng)管理員一定要堅守UID 唯一的特性;

    root 用戶:系統(tǒng)唯一,是真實的,可以登錄系統(tǒng),可以操作系統(tǒng)任何文件和命令,擁有最高權限;
    虛擬用戶:這類用戶也被稱之為偽用戶或假用戶,與真實用戶區(qū)分開來,這類用戶不具有登錄系統(tǒng)的能力,但卻是系統(tǒng)運行不可缺少的用戶,比如bin、daemon、adm、ftp、mail等;這類用戶都系統(tǒng)自身擁有的,而非后來添加的,當然我們也可以添加虛擬用戶;
    普通真實用戶:這類用戶能登錄系統(tǒng),但只能操作自己家目錄的內(nèi)容;權限有限;這類用戶都是系統(tǒng)管理員自行添加的;


    4、多用戶操作系統(tǒng)的安全;

    多用戶系統(tǒng)從事實來說對系統(tǒng)管理更為方便。從安全角度來說,多用戶管理的系統(tǒng)更為安全,比如beinan用戶下的某個文件不想讓其它用戶看到,只是設置一下文件的權限,只有beinan一個用戶可讀可寫可編輯就行了,這樣一來只有beinan一個用戶可以對其私有文件進行操作,Linux 在多用戶下表現(xiàn)最佳,Linux能很好的保護每個用戶的安全,但我們也得學會Linux 才是,再安全的系統(tǒng),如果沒有安全意識的管理員或管理技術,這樣的系統(tǒng)也不是安全的。

    從服務器角度來說,多用戶的下的系統(tǒng)安全性也是最為重要的,我們常用的Windows 操作系統(tǒng),它在系紡權限管理的能力只能說是一般般,根本沒有沒有辦法和Linux或Unix 類系統(tǒng)相比;


    二、用戶(user)和用戶組(group)概念;


    1、用戶(user)的概念;

    通過前面對Linux 多用戶的理解,我們明白Linux 是真正意義上的多用戶操作系統(tǒng),所以我們能在Linux系統(tǒng)中建若干用戶(user)。比如我們的同事想用我的計算機,但我不想讓他用我的用戶名登錄,因為我的用戶名下有不想讓別人看到的資料和信息(也就是隱私內(nèi)容)這時我就可以給他建一個新的用戶名,讓他用我所開的用戶名去折騰,這從計算機安全角度來說是符合操作規(guī)則的;

    當然用戶(user)的概念理解還不僅僅于此,在Linux系統(tǒng)中還有一些用戶是用來完成特定任務的,比如nobody和ftp 等,我們訪問LinuxSir.Org 的網(wǎng)頁程序,就是nobody用戶;我們匿名訪問ftp 時,會用到用戶ftp或nobody ;如果您想了解Linux系統(tǒng)的一些帳號,請查看 /etc/passwd ;


    2、用戶組(group)的概念;

    用戶組(group)就是具有相同特征的用戶(user)的集合體;比如有時我們要讓多個用戶具有相同的權限,比如查看、修改某一文件或執(zhí)行某個命令,這時我們需要用戶組,我們把用戶都定義到同一用戶組,我們通過修改文件或目錄的權限,讓用戶組具有一定的操作權限,這樣用戶組下的用戶對該文件或目錄都具有相同的權限,這是我們通過定義組和修改文件的權限來實現(xiàn)的;

    舉例:我們?yōu)榱俗屢恍┯脩粲袡嘞薏榭茨骋晃臋n,比如是一個時間表,而編寫時間表的人要具有讀寫執(zhí)行的權限,我們想讓一些用戶知道這個時間表的內(nèi)容,而不讓他們修改,所以我們可以把這些用戶都劃到一個組,然后來修改這個文件的權限,讓用戶組可讀,這樣用戶組下面的每個用戶都是可讀的;

    用戶和用戶組的對應關系是:一對一、多對一、一對多或多對多;

    一對一:某個用戶可以是某個組的唯一成員;
    多對一:多個用戶可以是某個唯一的組的成員,不歸屬其它用戶組;比如beinan和linuxsir兩個用戶只歸屬于beinan用戶組;
    一對多:某個用戶可以是多個用戶組的成員;比如beinan可以是root組成員,也可以是linuxsir用戶組成員,還可以是adm用戶組成員;
    多對多:多個用戶對應多個用戶組,并且?guī)讉€用戶可以是歸屬相同的組;其實多對多的關系是前面三條的擴展;理解了上面的三條,這條也能理解;


    三、用戶(user)和用戶組(group)相關的配置文件、命令或目錄;


    1、與用戶(user)和用戶組(group)相關的配置文件;


    1)與用戶(user)相關的配置文件;

    /etc/passwd 注:用戶(user)的配置文件;
    /etc/shadow 注:用戶(user)影子口令文件;


    2)與用戶組(group)相關的配置文件;

    /etc/group 注:用戶組(group)配置文件;
    /etc/gshadow 注:用戶組(group)的影子文件;


    2、管理用戶(user)和用戶組(group)的相關工具或命令;


    1)管理用戶(user)的工具或命令;

    useradd    注:添加用戶 
    adduser    注:添加用戶
    passwd     注:為用戶設置密碼
    usermod  注:修改用戶命令,可以通過usermod 來修改登錄名、用戶的家目錄等等;
    pwcov       注:同步用戶從/etc/passwd 到/etc/shadow 
    pwck         注:pwck是校驗用戶配置文件/etc/passwd 和/etc/shadow 文件內(nèi)容是否合法或完整;
    pwunconv  注:是pwcov 的立逆向操作,是從/etc/shadow和 /etc/passwd 創(chuàng)建/etc/passwd ,然后會刪除 /etc/shadow 文件;
    finger        注:查看用戶信息工具
    id              注:查看用戶的UID、GID及所歸屬的用戶組
    chfn          注:更改用戶信息工具
    su             注:用戶切換工具
    sudo         注:sudo 是通過另一個用戶來執(zhí)行命令(execute a command as another user),su 是用來切換用戶,然后通過切換到的用戶來完成相應的任務,但sudo 能后面直接執(zhí)行命令,比如sudo 不需要root 密碼就可以執(zhí)行root 賦與的執(zhí)行只有root才能執(zhí)行相應的命令;但得通過visudo 來編輯/etc/sudoers來實現(xiàn);
    visudo      注:visodo 是編輯 /etc/sudoers 的命令;也可以不用這個命令,直接用vi 來編輯 /etc/sudoers 的效果是一樣的;
    sudoedit  注:和sudo 功能差不多;



    2)管理用戶組(group)的工具或命令;

    groupadd  注:添加用戶組;
    groupdel         注:刪除用戶組;
    groupmod        注:修改用戶組信息
    groups     注:顯示用戶所屬的用戶組
    grpck
    grpconv   注:通過/etc/group和/etc/gshadow 的文件內(nèi)容來同步或創(chuàng)建/etc/gshadow ,如果/etc/gshadow 不存在則創(chuàng)建;
    grpunconv   注:通過/etc/group 和/etc/gshadow 文件內(nèi)容來同步或創(chuàng)建/etc/group ,然后刪除gshadow文件;

     


    3、/etc/skel 目錄;

    /etc/skel目錄一般是存放用戶啟動文件的目錄,這個目錄是由root權限控制,當我們添加用戶時,這個目錄下的文件自動復制到新添加的用戶的家目錄下;/etc/skel 目錄下的文件都是隱藏文件,也就是類似.file格式的;我們可通過修改、添加、刪除/etc/skel目錄下的文件,來為用戶提供一個統(tǒng)一、標準的、默認的用戶環(huán)境;

    [root@localhost beinan]# ls -la /etc/skel/
    總用量 92
    drwxr-xr-x    3 root root  4096  8月 11 23:32 .
    drwxr-xr-x  115 root root 12288 10月 14 13:44 ..
    -rw-r--r--    1 root root    24  5月 11 00:15 .bash_logout
    -rw-r--r--    1 root root   191  5月 11 00:15 .bash_profile
    -rw-r--r--    1 root root   124  5月 11 00:15 .bashrc
    -rw-r--r--    1 root root  5619 2005-03-08  .canna
    -rw-r--r--    1 root root   438  5月 18 15:23 .emacs
    -rw-r--r--    1 root root   120  5月 23 05:18 .gtkrc
    drwxr-xr-x    3 root root  4096  8月 11 23:16 .kde
    -rw-r--r--    1 root root   658 2005-01-17  .zshrc

     

    /etc/skel 目錄下的文件,一般是我們用useradd 和adduser 命令添加用戶(user)時,系統(tǒng)自動復制到新添加用戶(user)的家目錄下;如果我們通過修改 /etc/passwd 來添加用戶時,我們可以自己創(chuàng)建用戶的家目錄,然后把/etc/skel 下的文件復制到用戶的家目錄下,然后要用chown 來改變新用戶家目錄的屬主;

    4、/etc/login.defs 配置文件;

    /etc/login.defs 文件是當創(chuàng)建用戶時的一些規(guī)劃,比如創(chuàng)建用戶時,是否需要家目錄,UID和GID的范圍;用戶的期限等等,這個文件是可以通過root來定義的;

    比如Fedora 的 /etc/logins.defs 文件內(nèi)容;

    # *REQUIRED*
    #   Directory where mailboxes reside, _or_ name of file, relative to the
    #   home directory.  If you _do_ define both, MAIL_DIR takes precedence.
    #   QMAIL_DIR is for Qmail
    #
    #QMAIL_DIR      Maildir
    MAIL_DIR        /var/spool/mail  注:創(chuàng)建用戶時,要在目錄/var/spool/mail中創(chuàng)建一個用戶mail文件;
    #MAIL_FILE      .mail

    # Password aging controls:
    #
    #       PASS_MAX_DAYS   Maximum number of days a password may be used.
    #       PASS_MIN_DAYS   Minimum number of days allowed between password changes.
    #       PASS_MIN_LEN    Minimum acceptable password length.
    #       PASS_WARN_AGE   Number of days warning given before a password expires.
    #
    PASS_MAX_DAYS   99999   注:用戶的密碼不過期最多的天數(shù);
    PASS_MIN_DAYS   0       注:密碼修改之間最小的天數(shù);
    PASS_MIN_LEN    5       注:密碼最小長度;
    PASS_WARN_AGE   7       注:

    #
    # Min/max values for automatic uid selection in useradd
    #
    UID_MIN                   500  注:最小UID為500 ,也就是說添加用戶時,UID 是從500開始的;
    UID_MAX                 60000   注:最大UID為60000;

    #
    # Min/max values for automatic gid selection in groupadd
    #
    GID_MIN                   500   注:GID 是從500開始;
    GID_MAX                 60000

    #
    # If defined, this command is run when removing a user.
    # It should remove any at/cron/print jobs etc. owned by
    # the user to be removed (passed as the first argument).
    #
    #USERDEL_CMD    /usr/sbin/userdel_local

    #
    # If useradd should create home directories for users by default
    # On RH systems, we do. This option is ORed with the -m flag on
    # useradd command line.
    #
    CREATE_HOME     yes   注:是否創(chuàng)用戶家目錄,要求創(chuàng)建;

     


    5、/etc/default/useradd 文件;

    通過useradd 添加用戶時的規(guī)則文件;

    # useradd defaults file
    GROUP=100
    HOME=/home  注:把用戶的家目錄建在/home中;
    INACTIVE=-1  注:是否啟用帳號過期停權,-1表示不啟用;
    EXPIRE=   注:帳號終止日期,不設置表示不啟用;
    SHELL=/bin/bash  注:所用SHELL的類型;
    SKEL=/etc/skel   注: 默認添加用戶的目錄默認文件存放位置;也就是說,當我們用adduser添加用戶時,用戶家目錄下的文件,都是從這個目錄中復制過去的;

     


    后記:

    關于用戶(user)和用戶組(group)管理內(nèi)容大約就是這么多;只要把上面所說的內(nèi)容了解和掌握,用戶(user)和用戶組(group)管理就差不多了;由于用戶(user)和用戶組(group)是和文件及目錄權限聯(lián)系在一起的,所以文件及目錄權限的操作也會獨立成文來給大家介紹;

    摘自 http://fedora.linuxsir.org/main/?q=node/91

    posted @ 2015-01-09 18:18 xzc 閱讀(344) | 評論 (0)編輯 收藏
         摘要: 原文見:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF1.內(nèi)置運算符1.1關系運算符運算符類型說明A = B所有原始類型如果A與B相等,返回TRUE,否則返回FALSEA == B無失敗,因為無效的語法。 SQL使用”=”,不使用”==”。A <> B...  閱讀全文
    posted @ 2015-01-06 17:01 xzc 閱讀(434) | 評論 (0)編輯 收藏
         摘要: 簡介Netstat 命令用于顯示各種網(wǎng)絡相關信息,如網(wǎng)絡連接,路由表,接口狀態(tài) (Interface Statistics),masquerade 連接,多播成員 (Multicast Memberships) 等等。輸出信息含義執(zhí)行netstat后,其輸出結果為Active Internet connections (w/o servers)Proto Recv-Q Send-Q Local A...  閱讀全文
    posted @ 2014-12-29 16:53 xzc 閱讀(411) | 評論 (1)編輯 收藏
         摘要: netstat命令用于顯示與IP、TCP、UDP和ICMP協(xié)議相關的統(tǒng)計數(shù)據(jù),一般用于檢驗本機各端口的網(wǎng)絡連接情況。netstat是在內(nèi)核中訪問網(wǎng)絡及相關信息的程序,它能提供TCP連接,TCP和UDP監(jiān)聽,進程內(nèi)存管理的相關報告。如果你的計算機有時候接收到的數(shù)據(jù)報導致出錯數(shù)據(jù)或故障,你不必感到奇怪,TCP/IP可以容許這些類型的錯誤,并能夠自動重發(fā)數(shù)據(jù)報。但如果累計的出錯情況數(shù)目占到所接收的IP數(shù)...  閱讀全文
    posted @ 2014-12-08 21:13 xzc 閱讀(497) | 評論 (1)編輯 收藏
    僅列出標題
    共32頁: First 上一頁 4 5 6 7 8 9 10 11 12 下一頁 Last 
    主站蜘蛛池模板: 亚洲综合在线另类色区奇米| 午夜男人一级毛片免费| 久久久久亚洲精品中文字幕| 国产青草亚洲香蕉精品久久| 国产在线不卡免费播放| 久久亚洲AV成人无码国产电影| 免费观看理论片毛片| 亚洲国产AV无码一区二区三区 | 国产免费一区二区三区在线观看| 亚洲精品无码久久毛片| 一级做a爰片久久毛片免费陪 | 久久久影院亚洲精品| 亚洲成人免费在线| 亚洲国产美女精品久久久久| 一二三四在线播放免费观看中文版视频| 亚洲神级电影国语版| 一二三四免费观看在线电影 | 亚洲H在线播放在线观看H| 成人无码区免费A片视频WWW| 日本亚洲免费无线码| 国产一区二区三区免费在线观看| 无码AV动漫精品一区二区免费| 国产亚洲精品国看不卡| 麻豆成人久久精品二区三区免费| 亚洲人色大成年网站在线观看| 四虎永久在线精品免费网址 | 久久精品夜色国产亚洲av| 中文字幕在线免费| 亚洲精品无码中文久久字幕| 免费在线看片网站| 久久久久久久99精品免费| 一区二区亚洲精品精华液| 亚洲精品视频在线看| 永久黄色免费网站| 无码天堂va亚洲va在线va| 久久综合日韩亚洲精品色| 永久久久免费浮力影院| 两个人日本免费完整版在线观看1| 亚洲成在人线中文字幕| 亚洲精品国产日韩无码AV永久免费网 | 久久www免费人成看片|