精华内容
下载资源
问答
  • linux who命令

    千次阅读 2016-01-20 21:24:50
    who am i 和 whoamiwho命令能做些什么功能who命令可以查看谁正在使用系统。 每一行代表一个已登录的用户 第一列代表用户名 第二列代表终端名 第三列代表登录时间 第四列(括号里面的)代表登录地址 (有些版本...

    who命令能做些什么

    功能

    who命令可以查看谁正在使用系统。
    who命令演示
    每一行代表一个已登录的用户
    第一列代表用户名
    第二列代表终端名
    第三列代表登录时间
    第四列(括号里面的)代表登录地址
    (有些版本默认不显示第四列的内容)

    命令参数

    -a ——–显示所有用户
    -b ——–最近一次系统启动的时间
    -d ——–显示已退出的进程
    -H ——–显示表头
    -l ———只显示系统登录进程
    –ips ——应显示用户名的地方显示IP地址(两个’ - ‘)
    –lookup -尝试通过DNS对用户名排序(两个’ - ‘)
    -m ——–与命令”who am i”相同1
    -q ———只显示登录系统的用户名和用户个数
    -r ———显示当前运行等级
    –help —–显示帮助信息
    –version -显示版本信息

    who命令是如何工作的

    原理

    who命令通过读取utmp文件来获取已登录用户的信息,已登录用户的信息存放在/var/run/utmp中(不同的系统发行版中存放路径可能有所不同)。
    utmp文件中保存的是结构体数组,数组元素的类型是utmp类型的结构,可以在utmp.h中找到utmp类型的定义

    struct utmp {
        char    ut_user[32];    //user login name
        char    ut_id[14];
        char    ut_line[32];    //device name
        short   ut_type;
        pid_t   ut_pid;
        struct exit_status {
            short e_termination;
            short e_exit;
        }
        time_t ut_time;         //time entry was made
        char ut_host[64];       //host name
    }

    utmp结构体一共包含8个成员变量,其中与who命令有关的有ut_user保存用户名,ut_line保存设备名, ut_time保存登录时间,ut_host保存用户用于登录的远程计算机名

    如何编写who命令

    流程图

    Created with Raphaël 2.1.0开始打开utmp文件读文件是否读完关闭utmp文件结束yesno

    示例代码

    #include<stdio.h>
    #include<stdlib.h>
    #include<unistd.h>
    #include<utmp.h>
    #include<fcntl.h>
    #include<time.h>
    
    #define SHOWHOST
    void showtime(long );
    void show_info(struct utmp *);
    
    int main(int argc, char *argv[ ])
    {
        if(argc == 3)
        struct utmp utbuf;
        int         utmpfd;
    
        if( (utmpfd = open(UTMP_FILE,O_RDONLY)) == -1) {
            perror(UTMP_FILE);
            exit(1);
        }
    
        while( ( read(utmpfd, &utbuf, sizeof(utbuf)) ) == sizeof(utbuf) ) {
            show_info(&utbuf);
        }
        close(utmpfd);
        return 0;
    }
    
    void show_info(struct utmp *utbufp)
    {
        if( utbufp->ut_type != USER_PROCESS) {
            return;
        }
    
        printf("%-8.8s",utbufp->ut_name);   //用户名
        printf(" ");
        printf("%-8.8s", utbufp->ut_line);  //设备名
        printf(" ");
        showtime(utbufp->ut_time);          //登录时间
    #ifdef SHOWHOST
        if(utbufp->ut_host[0] != '\0') {
            printf("(%s)",utbufp->ut_host);     //用户的主机名
        }
    #endif
        printf("\n");
    }
    
    void showtime(long timeval)    //按指定格式显示时间
    {
        char *cp;
        cp = ctime(&timeval);       
    
        printf("%12.12s", cp+4);   //对 %12.12s 和 cp+4 有疑惑请参考timeval结构体
    }

    扩展

    who am i 和 whoami

    who am i 和 whoami 是不同的命令
    who am i 命令显示当前用户的信息
    whoami命令
    whoami 命令只显示当前用户的用户名
    who am i命令
    (上面的代码不支持 whoami 命令和 who am i命令)


    1. 命令”who am i”可以查看当前有效用户的用户名
    展开全文
  • 免费领币:SafePal推出全新空投机制WHO功能 回顾下历史比较著名的空投案例: 2020年9月,Uniswap空投,每个账号400枚UNI,目前价值8万RMB; 2020年12月,1inch空投,至少600枚,平均1629枚,目前最低1.6万RMB,...

    干货:羊毛薅起来,空投常态化!免费领币:SafePal推出全新空投机制WHO功能

     

    回顾下历史比较著名的空投案例:

    • 2020年9月,Uniswap空投,每个账号400枚UNI,目前价值8万RMB;
    • 2020年12月,1inch空投,至少600枚,平均1629枚,目前最低1.6万RMB,平均4.2万RMB;
    • 2020年12月, Tokenlon空投,最少20枚,普遍收到数百枚,以300枚计现价1.2万RMB;
    • 2021年1月,SafePal空投,100~5000 枚SFP,价值约1.8K~10万RMB!
    • 2021年3月,Inverse Finance 空投,约80枚INV,价值约80万RMB!

             是不是很心动?这里介绍一个简单的可以领新币空投的APP以及方法;即,SafePal APP和它的WHO功能。关键是它还被定义为SafePal的常态化功能,SafePal以其快接近百万用户量的影响力吸引行内合作伙伴发行空投。

             SafePal最新推出了WHO功能,全称Wallet Holder Offering,这是一种创新的首发代币空投机制,为SafePal用户提供了一个类似新币代币奖励分配系统。SafePal的WHO功能旨在通过安全的、去中心化和用户友好的方式提供给SafePal生态合作伙伴给SafePal软件和硬件钱包的用户空投其代币的途径。要获得SafePal合作伙伴空投代币的资格,用户必须在其SafePal钱包中持有SFP代币,所需SFP的数量将根据空投方产品的情况而定,例如空投代币的额度分配、任务要求和时间要求等。

     

            当前常规的代币空投活动效率低下,至今仍是一个热议话题。常规的新币空投方式很容易导致分配不公特别是鲸鱼大户羊毛党们掳走了大部分的空投,使实际使用的用户和实际支持项目的用户反而没有得到空投

            随着SafePal继续与加密行业的优质项目建立生态合作伙伴关系,这些合作伙伴将为SafePal社区用户带来独家奖励和空投。

            SafePalWHO功能是SafePal用户学习和参与项目的桥梁,也是区块链项目在庞大活跃的用户群中获得宝贵社区反馈的桥梁。它的目标是通过以下方式帮助真实用户公平地获得空投奖励:

            通过学习获得:用户将通过学习和使用新的加密项目获得对应的代币空投奖励。

           简单易用:SafePal为引导入口,你通过使用对应的加密产品获得空投奖励。没有复杂的规则。奖励将直接发送到您的SafePal钱包。

          安全公平:空投经常被骗子用来诈骗用户私钥,给用户造成损失。SafePal应用程序中提供一个安全的环境,允许参与者参与空投而不必担心掉进钓鱼网站

    如何参与?

           参与规则根据项目方的情况而有所不同,例如奖励分配、任务和时间表。不久将有两个伙伴加入世卫组织。以下是一些有用的提示,让您为即将到来的活动做好准备:

    1. 下载SafePal APP;
    2. 创建一个钱包;
    3. 囤一点 SafePal 的SFP代币,币安上的单价大约在3美金左右,建议囤300枚左右,不用太多,不同的项目方会有不同的要求。

     

    对于项目方来说,WHO一个很好的空投方式,即直用户群,直接接触真正参与产品使用和反馈的用户,减少前期营销资本支出,从而使优质项目团队能够专注于产品开发。

     

    WHO开发代币空投的最佳方,为新加密项目提供优质的空投途径WHO的目标是通过以下方式帮助高质量加密项目实现其增长指标:

    产生意识并形成强大的社会责任感

    1. 初创项目缺乏用户意识,也缺乏一个安全的平台来存储他们的新项目代币。
    2. 获取真实用户,而不是空投给僵尸用户,因为所有参与空投活动的用户都是SFP持有者,是行业内成熟的用户群。
    3. SafePal是加密资产的入口,拥有超过75+万名用户(而且仍在快速增长)
    4. 通过直接连接到发行方的用户群,减少外部营销渠道、中间商和费用;
    5. 与真实用户建立社交媒体帐户,建立直接与受众沟通的方法;

    让用户了解你的项目

    1. 早期参与者将获得项目代币,从而引起其对代币的兴趣和价值认可;
    2. WHO机制最重要的任务是教育,教育用户如何使用项目工具、平台和生态系统。作为回报,奖励用户,以推动真正的产品效用,应用以及获得更高质量的支持者;
    3. SafePal开发了一种机制来改进对真实用户和参与者的识别,而不是机器人;
    4. 由于硬件钱包代表了业界最安全的加密资产存储解决方案之一,支持者们清晰地知道他们的代币可以是HODL住的使人到安全

    奖励并调用户对项目的兴趣

    – 培养用户对项目的认可度和忠诚度

    – 直接集成SafePal生态系统中,将项目实融入SafePal应用程序中, 这样key允许用户根据各自的兴趣爱好方便地参与其中。

    – 通过实际的产品使用来奖励社区,当引起用户更大的兴趣开发出更深层的代币价值

    代币空投分配更有广度、更平分

    – 能够有效阻止鲸鱼大户将项目搅黄; 

    – 公平分配给真正的参与者,同时取消投机者的资格

    – 以公平透明的方式帮助项目达到目标增长指标

    – 将项目代币传播到全球100多个SafePal用户所在的国家

    干货:

             第一个空投项目已经在昨天(2021年3月18)启动,空投代币为“TKO”,TKO是币安投资印度尼西亚合规加密资产交易平台TokoCrypto 的代币。我搜索了一下,Tokocrypto 交易平台的来头不小,是第四人口国印度尼西亚的合法交易平台并且和币安的关系很不一般,后期TKO代币上币安是件大概率事件,所以能领一些早期的空投币来囤着未尝不可。按照参与人数瓜分200万颗TKO和100万美金的SFP;

     

    如何参与?

    1. 下载SafePal Wallet APP,并创建钱包;
    2. 对于中国大陆的朋友,需准备科学上网工具;
    3. 往钱包里存入基于币安智能链协议BRC_20发行的代币,如BUSD、BNB、SFP等;

    完成任务,领取空投:

    1. 打开SafePal,找到活动入口;目前入口至于钱包首页顶部的banner广告栏:

    1. 进入Wallet Holder Offering-TKO Dapp后,界面如下,总共有6个任务可以做分别是:“关注推特并转发”、“加入官方电报群”、“推荐给朋友”、“锁仓100 SFP”、“锁仓 1 BNB”、“使用TokoCrypto ”;最后一个“使用TokoCrypto ”我们是完成不了的,是针对印度尼西亚的用户才有,所以我们能做的就5个任务。

    从简单的开始:

    1. “推荐给朋友”或接受朋友的推荐,共享获得对方的“10% Share”,点击Dapp中的“10% Share”条目,进入活动页面:

    标号1位置处为你自己的推荐码,如图我的推荐码是“MY4DYW”,将推荐码分享给朋友,让其填入到标号2处;标号2位置是填入别人分享给你的推荐码,可以填入我的推荐码“MY4DYW”就可以额外获得我份额中的10%份额的量,然后点击【Claim Now】按钮。然后回到Dapp主页,在“10% Share”栏目的右边点击【Join】,让其变为“Oogoing”状态。

     

     

    1. 关注和转发推特;关注@Tokocrypto 和@ISafePal。并转发连接中的推特内容,评论内容需带上你自己的推荐码;
    2. 加入电报群;
    3. 参与闪兑并持仓100个SFP,锁仓7天;
    4. 参与闪兑并持仓1个BNB,锁仓7天;

     

    如何“闪兑”?

    1. 账户需要存入基于币安智能链协议BRC_20发行的代币,如BUSD、BNB、SFP等,可以从币安购买并转入,例如BUSD(免手续费);
    2. 打开科学上网工具;
    3. 杀死SafePal Wallet APP,再重新启动;
    4. 底部Tab栏会出现闪兑图标,点击,将你的BUSD分别兑换为1个BNB和100个SFP;

    然后回到Wallet Holder Offering-TKO Dapp,分别“SFP 1-1.5Share”和“BNB1-1.5Share”活动任务页面,拉到最下方,点击“Join Now”,点击后您的1颗BNB和100个SFP将被锁定7天,7天后自动解锁。Dapp主页相应栏目的右边状态变为“Ongoing”.

     

    风险提示:数字货币交易存在巨大风险,请谨慎购买,并注意交易风险。本人不对您的任何交易行为承担担保、赔偿等责任。

    更多分享,请搜索并关注微信公众号:“苏叁币Notes

     

     

    展开全文
  • who命令实现

    千次阅读 2017-06-04 23:32:10
    linux who命令实现

    who命令实现

    1.who命令

    1.1who命令实践

    在linux环境中使用who命令,可以打印当前登录系统中的用户。

    root@ubuntu:~# who
    ye       tty7         2017-05-12 22:07 (:0)
    ye       pts/4        2017-06-04 13:40 (192.168.1.5)
    ye       pts/21       2017-06-04 13:55 (192.168.1.5)

    1.2 who命令解释

    WHO(1) User Commands NAME
           who - show who is logged on
    SYNOPSIS
           who [OPTION]... [ FILE | ARG1 ARG2 ]
    DESCRIPTION
           Print information about users who are currently logged in.
    
    If FILE is not specified, use /var/run/utmp.  /var/log/wtmp as FILE is common.  If ARG1 ARG2 given, -m presumed: 'am i' or 'mom likes' are usual.

    ​ 由解释可知,该who命令查询的是一个/var/run/utmp文件来获取当前系统的登录用户信息。

    2. utmp文件

    • utmp maintains a full accounting of the current status of the system, system boot time (used by uptime), recording user logins at which terminals, logouts, system events etc.
    • wtmp acts as a historical utmp
    • btmp records failed login attempts

    linux下文件路径:

    /var/run/utmp
    /var/log/wtmp
    /var/log/btmp

    ​ These files are not regular text files, but rather a binary format which needs to be edited by specially crafted programs. The implementation and the fields present in the file differ depending of the system or the libc version, and are defined in the utmp.h header file.

    3. utmp.h文件

    3.1 utmp结构体

    #define UT_LINESIZE      32
    #define UT_NAMESIZE      32
    #define UT_HOSTSIZE     256
    
    struct exit_status {              /* Type for ut_exit, below */
                   short int e_termination;      /* Process termination status */
                   short int e_exit;             /* Process exit status */
               };
    struct utmp {
                   short   ut_type;              /* Type of record */
                   pid_t   ut_pid;               /* PID of login process */
                   char    ut_line[UT_LINESIZE]; /* Device name of tty - "/dev/" */
                   char    ut_id[4];             /* Terminal name suffix,
                                                    or inittab(5) ID */
                   char    ut_user[UT_NAMESIZE]; /* Username */
                   char    ut_host[UT_HOSTSIZE]; /* Hostname for remote login, or kernel version for run-level messages */
                   struct  exit_status ut_exit;  /* Exit status of a process marked as DEAD_PROCESS; not used by Linux init (1 */
                   /* The ut_session and ut_tv fields must be the same size when compiled 32- and 64-bit.  This allows data files and shared memory to be shared between 32- and 64-bit applications. */
               #if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32
                   int32_t ut_session;           /* Session ID (getsid(2)),
                                                    used for windowing */
                   struct {
                       int32_t tv_sec;           /* Seconds */
                       int32_t tv_usec;          /* Microseconds */
                   } ut_tv;                      /* Time entry was made */
               #else
                    long   ut_session;           /* Session ID */
                    struct timeval ut_tv;        /* Time entry was made */
               #endif
    
                   int32_t ut_addr_v6[4];        /* Internet address of remote host; IPv4 address uses just ut_addr_v6[0] */
                   char __unused[20];            /* Reserved for future use */
               };
    
      /* Backward compatibility hacks */
    #define ut_name ut_user
    #ifndef _NO_UT_TIME
    #define ut_time ut_tv.tv_sec
    #endif
    #define ut_xtime ut_tv.tv_sec
    #define ut_addr ut_addr_v6[0]

    3.2 ut_type 值

    ​ 可根据此值变化判断某个登录用户是否活跃。

        /* Values for ut_type field, below */
    
               #define EMPTY         0 /* Record does not contain valid info (formerly known as UT_UNKNOWN on Linux) */
               #define RUN_LVL       1 /* Change in system run-level (see init(8)) */
               #define BOOT_TIME     2 /* Time of system boot (in ut_tv) */
               #define NEW_TIME      3 /* Time after system clock change (in ut_tv) */
               #define OLD_TIME      4 /* Time before system clock change (in ut_tv) */
               #define INIT_PROCESS  5 /* Process spawned by init(8) */
               #define LOGIN_PROCESS 6 /* Session leader process for user login */
               #define USER_PROCESS  7 /* Normal process */
               #define DEAD_PROCESS  8 /* Terminated process */
               #define ACCOUNTING    9 /* Not implemented */
    
        The first entries ever created result from init(1) processing inittab(5).  Before an entry is processed, though,init(1) cleans up utmp by setting ut_type to DEAD_PROCESS, clearing ut_user, ut_host, and ut_time with null  bytes for  each  record which ut_type is not DEAD_PROCESS or RUN_LVL and where no process with PID ut_pid exists.  If no empty record with the needed ut_id can be found, init(1) creates a new one.It  sets  ut_id  from  the  inittab,ut_pid and ut_time to the current values, and ut_type to INIT_PROCESS.
        mingetty(8)  (or  agetty(8)) locates the entry by the PID, changes ut_type to LOGIN_PROCESS, changes ut_time, sets ut_line, and waits for connection to be established.
        login(1), after  a  user  has  been  authenticated,  changes ut_type  to  USER_PROCESS, changes ut_time, and sets ut_host and ut_addr.  Depending on mingetty(8) (or agetty(8)) and login(1), records may be located by ut_line instead of the preferable ut_pid.
        When init(1) finds that a process has exited, it locates its utmp entry by ut_pid, sets ut_type  to  DEAD_PROCESS,and clears ut_user, ut_host and ut_time with null bytes.

    3.3 登录时间值

    #define ut_time ut_tv.tv_sec
    
    其中:
    struct utmp ut;
    struct timeval tv;
    /* gettimeofday((struct timeval *) &ut.ut_tv, NULL); */
    gettimeofday(&tv, NULL);
    ut.ut_tv.tv_sec = tv.tv_sec;
    ut.ut_tv.tv_usec = tv.tv_usec;
    
    DESCRIPTION  
        The functions gettimeofday and settimeofday can get and set the time as  
        well as a timezone. The tv argument is a timeval struct, as specified  
        in <sys/time.h>:  
        struct timeval {  
              time_t       tv_sec;     /* seconds */  
              suseconds_t   tv_usec; /* microseconds */  
        };  
    
    time_t存的是197011000 秒算起至今的UTC时间所经过的秒数
    time_t是long int类型.

    ​ 想清晰得得到现在的年月日信息,就不能通过这个time_t了,需要用struct tm来显示,而将time_t和struct tm转换的函数就是localtime(time_t*),返回一个struct tm*类型,注意是指针类型。然后可以得到tm中的成员.

    查询关于时间转换的函数:

    root@ubuntu:/var/run# man -k time | grep transform
    asctime (3)          - transform date and time to broken-down time or ASCII
    asctime_r (3)        - transform date and time to broken-down time or ASCII
    ctime (3)            - transform date and time to broken-down time or ASCII
    ctime_r (3)          - transform date and time to broken-down time or ASCII
    gmtime (3)           - transform date and time to broken-down time or ASCII
    gmtime_r (3)         - transform date and time to broken-down time or ASCII
    localtime (3)        - transform date and time to broken-down time or ASCII
    localtime_r (3)      - transform date and time to broken-down time or ASCII
    mktime (3)           - transform date and time to broken-down time or ASCII
    
    root@ubuntu:/var/run# man 3 localtime
           #include <time.h>
    
           struct tm *localtime(const time_t *timep);
           struct tm *localtime_r(const time_t *timep, struct tm *result);
    
            struct tm {
              int tm_sec;      /* 秒 – 取值区间为[0,59] */
              int tm_min;      /* 分 - 取值区间为[0,59] */
              int tm_hour;      /* 时 - 取值区间为[0,23] */
              int tm_mday;      /* 一个月中的日期 - 取值区间为[1,31] */
              int tm_mon;      /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */
              int tm_year;      /* 年份,其值等于实际年份减去1900 */
              int tm_wday;      /* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */
              int tm_yday;      /* 从每年的11日开始的天数 – 取值区间为[0,365],其中0代表11日,1代表12日
            };

    4 实例代码

    /*who01.c文件*/
    #include <stdio.h>
    #include <utmp.h>
    #include <string.h>
    #include <time.h>
    /* 文件路径 */
    #define FILE_PATH "/var/run/utmp"
    #define SHOWHOST
    
    /*
    函数名称:show_info
    函数功能:打印登录用户信息
    输入参数:struct utmp *utmpfp
    输出参数:无
    备注:
    */
    void show_info(struct utmp *utmpfp)
    {
        /* 时间值转换 */
        time_t timelong = utmpfp->ut_time;
        struct tm *localnow=localtime(&timelong);
       /* 根据当前用户的状态值,判断是否为当前登录用户 */
        if(utmpfp->ut_type == USER_PROCESS)
        {
            printf("%8s\t",utmpfp->ut_name);
            printf("%12s\t",utmpfp->ut_line);
            printf("%d-%d-%d %d:%d ",localnow->tm_year+1900,localnow->tm_mon+1,localnow->tm_mday,localnow->tm_hour,localnow->tm_min); //登录时间
    
            #ifdef SHOWHOST
                printf("(%s)",utmpfp->ut_host);
            #endif  
            printf("\n");
        }
    }
    
    /*
    函数名称:main()
    函数功能:主函数
    输入参数:无
    输出参数:无
    备注:
    */
    int main()
    {
        struct utmp current_record;
        FILE *utmpfd = NULL;
    
        int reclen = sizeof(current_record);
        /* 打开登录信息记录文件 */
        if((utmpfd = fopen(FILE_PATH,"r"))==NULL)
        {
            printf("file open error!\n");
            return 0;
        }   
        printf("file open success!\n");
        memset(&current_record,0x00,reclen);
        /*循环读取*/
        while(fread(&current_record,sizeof(char),reclen,utmpfd)==reclen)
        {
            //read success
            show_info(&current_record);
            memset(&current_record,0x00,reclen);
        }
       /* 关闭文件 */
        fclose(utmpfd);
        return 0;
    }

    程序测试:

    root@ubuntu:/work/shell_cmd/1_code# gcc -g -Wall who01.c -o main
    root@ubuntu:/work/shell_cmd/1_code# ./main
    file open success!
          ye            tty7    2017-5-12 22:7 (:0)
          ye           pts/4    2017-6-4 13:40 (192.168.1.5)
          ye          pts/21    2017-6-4 13:55 (192.168.1.5)
    展开全文
  • 问题一、yarn web ui界面没有办法查看application具体运行情况 Yarn Web UI界面效果如下: ...You (User dr.who) are not authorized to view application application_1557385812521_0002 原因及解决方法 dr.who...

    问题一、yarn web ui界面没有办法查看application具体运行情况

    Yarn Web UI界面效果如下:
    默认配置

    点击一个running 状态的application,会显示如下信息:

    You (User dr.who) are not authorized to view application application_1557385812521_0002
    

    原因及解决方法

    dr.who为yarn登录的默认用户名,修改用户名配置如下:

    core-site.xml
    <property>
      <description>
        The user name to filter as, on static web filters
        while rendering content. An example use is the HDFS
        web UI (user to be used for browsing files).
      </description>
      <name>hadoop.http.staticuser.user</name>
      <value>rhino</value>
    </property>
    

    重启hdfs、yarn,再次登录,界面显示如下:
    修改配置后的界面

    问题二、yarn web ui是否提供kill application按钮

    我司有三种大数据组件环境:1.纯开源社区版本的组件;2.hdp版本的组件;3.华为提供的fusioninsight平台。在之前的运维工作中,貌似在yarn web ui界面上看到过“kill application”按钮,可以更方便的去kill application,今天正好有时间,就研究一下。经过一番查证,终于发现,hdp版本提供yarn.resourcemanager.webapp.ui-actions.enable配置项,该参数值为true时,会显示“kill application” button,该按钮可以kill application。效果如下:
    在这里插入图片描述
    Apache hadoop版本的Yarn组件,在yarn-site.xml文件中,没有找到该key,估计是不提供该功能。华为大数据组件平台不是由我司维护,不敢轻易去修改配置,就不去探究了。

    注意,此处前提是rhino 要属于管理员权限。
    

    看官有收获的话,关注公众号支持一下呗~
    在这里插入图片描述

    展开全文
  • Linux命令——who

    千次阅读 2015-11-04 21:15:42
    功能:显示登录用户的信息 提示: 执行who命令可得知目前有那些用户登入系统; 单独执行who命令会列出登入帐号,使用的终端机,登入时间和从何处登入; 选项: -b:显示系统上次启动时间 -H或–heading:显示头信息...
  • Who命令详解

    2011-03-24 15:26:44
    who命令主要用于查看当前在线上的用户情况。这个命令非常有用。如果用户想和其他用户建立即使通讯,比如使用talk命令,那么首先要确定的就是该用户确实在线上,不然talk进程就无法建立起来。 又如,系统管理员希望...
  • Linux下编写Who命令

    千次阅读 2018-03-07 11:37:34
    Who命令可以显示登录系统的用户信息。1、查看who命令相关内容通过联机手册,可以查询到who命令的详解。在终端输入man who,在Ubuntu 14.04 系统上,在...因此,我们继续查看utmp文件是什么。2、查看utmp运用ma...
  • who命令的编写

    千次阅读 2013-01-10 15:06:16
    一.who功能:  查看当前哪些用户正在使用系统 二.who的工作流程:  从 /var/run/utmp 文件中读取已登录用户的信息,然后输出   (注意:我的操作环境是ubuntu11.10 ,有些地方与其他系统不同)   ...
  • 下来我们就看看这几个命令的区别:首先Fire登录的是root用户,我们看一下这三个命令的区别:然后Fire用su命令切换到普通用户下,在看看...who:显示当前真正登录系统中的用户(不会显示那些用su命令切换用户的登录者)
  • w、who、whoami、who am i命令

    千次阅读 2017-01-11 14:21:18
    命令功能:显示登录用户的信息 命令格式: 常用选项: 举例: w 显示已经登录的用户及正在进行的操作 [root@localhost ~]# w  11:22:01 up 4 days, 21:22, 3 users, load a
  • who命令的基本实现(上)

    千次阅读 2018-06-01 20:15:30
    1.who命令的作用是什么?使用who命令能查看正在使用当前系统的用户:who命令的具体用法可以通过man who命令查看。2.who命令的原理是什么?上图是通过man who命令得到的who命令的帮助手册,它的小节编号是1,。不同...
  • 有人会问,为什么我sudo su到root之后,who里面却没有显示呢?   这是因为su过去的用户进程空间是作为一个子空间存在,他并没有得到一个登录的tty。   who这个命令重点是用来查看当前有哪些用户登录到...
  • Who is YaoGe.(搞笑篇)

    千次阅读 2014-10-31 17:24:09
    gcc -O4的功能是发送代码给耀哥重写。  耀哥有一次没有通过图灵测试,因为他正确说出了斐波那契数列的第203项的值,在一秒钟内。  真空中光速曾经是35英里每小时,直到耀哥花了一个周末时间优化了一下物理法则。...
  •  功能说明:查找并显示用户信息。   语 法:whois [帐号名称]   补充说明:whois指令会去查找并显示指定帐号的用户相关信息,因为它是到Network Solutions的WHOIS数据库去查找,所以该帐号名称必须在...
  • linux编程who命令的简单实现

    千次阅读 2014-08-25 16:25:34
    Linux下的所有命令其实就是一个个可执行程序,通过man 手册可以找到who 其实是打开了文件/
  • 项目中遇到了从相册选取图片裁剪后上传头像的功能,但在小米5 6.0系统的机型上无法裁剪,报错如下,9-26 15:14:31.331 3828-3850/? E/ANDR-PERF-RESOURCEQS: Failed to apply optimization [4, 0] 09-26 15:14:31....
  • Linux 系统管理 : who 命令详解

    千次阅读 2018-06-20 13:31:02
    who命令是显示目前登录系统的用户信息。执行who命令可得知目前有那些用户登入系统,单独执行who命令会列出登入帐号,使用的终端机,登入时间以及从何处登入或正在使用哪个X显示器。语法who(选项)(参数)选项-H或--...
  • linux学习之who命令学习

    千次阅读 2012-05-22 15:10:41
    在linux中,who用于显示用户相关的信息,该信息包含在结构体utmp中,包含用户名,用户的登录时间等相关信息。...//实现who功能函数 void whoread() { struct utmp current_utmp;//用户相关的结构
  • w 命令 和 who 命令

    千次阅读 2012-07-30 16:12:27
    该命令用于显示登录到系统的用户情况,w命令功能强大,它不但可以显示有谁登录到系统,还可以显示出这些用户当前正在进行的工作,并且统计数据相对who命令来说更加详细和科学. w命令的显示项目按以下顺序排列:...
  • Shell中w与who列出Linux系统登录用户

    千次阅读 2018-05-16 20:39:45
    w命令,用于显示登录的用户及他们当前运行的进程,w命令输出的第一行内容与uptime命令默认输出的内容相同。第三行分别显示的是:登录帐号的用户名、tty...who命令有与 w 命令类似的用途,但它的功能比w命令更强大一些。
  • 编写自己的who命令

    千次阅读 2010-11-23 18:46:00
    今天自己照着书一步步敲了who命令的实现。老外写的有些书就是不错,一步步启发你告诉你怎么思考,怎么根据已有的线索查询联机帮助,怎么一步步最终解决问题。真不错。 下面我就根据书上的思想,来回顾...
  • ESP-WHO(一)ESP32 摄像头驱动分析

    千次阅读 2019-01-12 18:21:36
    ESP-WHO(一)ESP32 摄像头驱动分析ESP32 摄像头驱动分析摄像头初始化 ESP32 摄像头驱动分析 摄像头代码 摄像头初始化 Step: 寻找摄像头 提供摄像头时钟、初始化 SCCB 总线、硬件复位摄像头 通过 SCCB ...
  • LINUX下的who指令

    千次阅读 2006-11-23 15:30:00
    本节中要介绍的不只是进程查看方面的内容,由于Linux是个多用户系统,有时候也要了解其他用户现在在干什么,所以在本节中还将接触多用户方面的内容。同时Linux是一个多进程系统,经常需要对这些进程进行一些调配和...
  • This book is for web designers who want to create interactive elements for their designs, and for developers who want to create the best user interface for their web applications. Basic JavaScript ...
  • Linux who(查看用户登录信息)命令

    千次阅读 2018-04-03 20:50:36
    who:查看用户登录信息 格式:who 用户名 命令输出:用户名 登录终端 登录时间(登录来源ip地址) 例:
  • 儿童成长曲线 (WHO标准)

    千次阅读 2009-04-05 21:34:00
    想知道宝宝每个成长阶段与世界卫生组织(WHO)的标准相差多少吗?您所关心的问题由我们来为您解答!我们根据世界卫生组织(WHO)的标准编写了"儿童成长曲线"软件. 此软件是一款记录儿童(0 - 5周岁)成长数据的软件。他以...
  •  功能说明:查找并显示用户信息。   语 法:whois [帐号名称]   补充说明:whois指令会去查找并显示指定帐号的用户相关信息,因为它是到Network Solutions的WHOIS数据库去查找,所以该帐号名称必须在...
  • who>userlist ,shell程序运行who程序,并将
  • unix/linux who命令的实现

    千次阅读 2017-03-07 14:35:14
    Understanding Unix/Linux Programming(Unix/Linux编程实践教程) 学习模式: (1)它能做什么? (2)它是如何实现的? (3)能不能自己编写一个?
  • 执行git commit命令提示:"Please tell me who you are" 意思是,Git想知道提交代码的是谁,造成这个现象的原因可能是第一次提交代码,也有可能是长时间不操作,需要重新验证下。 #解决方案 在Git控制台输入一下...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 80,655
精华内容 32,262
关键字:

who是什么功能