码迷,mamicode.com
首页 > 系统相关 > 详细

Linux终端命令

时间:2015-07-03 16:15:27      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:linux

Linux终端:

 

whoami命令:

用来显示当前登录到系统的账户。

[root@en /]# whoami

root

[root@en /]#

 

who命令:(注意:su –过去的不是登陆用户,不会显示。)

登录到当前系统的用户有哪些。

[root@en ~]# who

root    tty1         2014-11-20 09:04 (:0)

root    pts/0        2014-11-20 09:06(192.168.20.92)

dwzhang pts/1        2014-11-20 13:34(192.168.20.92)

zhang1  pts/2        2014-11-20 10:09(192.168.20.92)

[root@en ~]#

一共三个字段:

第一段表示用户名称。

第二段表示用户从哪个终端登录进来的。

第三段表示登录时间。

第四段表示注释,来源。如(192.168.20.92)

 

其中第二段的意义:

linux终端类型:

物理终端: /dev/console

虚拟终端: /dev/tty(1,6)  (命令行终端登陆)(tty1:代表第一个虚拟终端,tty5:第五个)

  ttyS:串行终端。

模拟终端: /dev/pts/#  (远程登录的终端,图形界面终端)

图形终端.

显示系统当前运行级别:

[root@en ~]# who –r    

        run-level 5  2014-12-22 09:38

[root@en ~]#

上面显示说明:

[root@en ~]# who -H

NAME    LINE         TIME             COMMENT

root    tty1         2014-12-22 09:47 (:0)

root    pts/0        2014-12-22 10:03(192.168.20.92)

[root@en ~]#

 

w命令:(显示信息比who更详细)

登录到当前系统的用户有哪些和在干什么。

包括系统运行多长时间。

 

last命令:

列出目前与过去登入系统的用户相关信息。

[root@en ~]# last

root    pts/3        :0.0             Thu Nov 20 14:00   still logged in  

dwzhang pts/1        192.168.20.92    Thu Nov 20 13:34   still logged in  

dwzhang pts/1        192.168.20.92    Thu Nov 20 11:34 - 13:33  (01:59)   

[root@en ~]# last -2     (显示几条)

root    pts/3        :0.0             Thu Nov 20 14:00   still logged in  

dwzhang pts/1        192.168.20.92    Thu Nov 20 13:34   still logged in  

 

wtmp begins Thu Sep 11 21:26:19 2014

[root@en ~]#

其实last读取信息的文件为:

/var/log/wtmp文件。

[dwzhang@en ~]$ file /var/log/wtmp

/var/log/wtmp: data

[dwzhang@en ~]$

 

lastb命令:

显示用户错误的登录尝试。

读取信息的文件为:/var/log/btmp文件。

[root@cnyum ~]# ll -d /var/log/btmp

-rw-------. 1 root utmp 0 1   4 10:07 /var/log/btmp

[root@cnyum ~]# file /var/log/btmp

/var/log/btmp: empty

[root@cnyum ~]#

 

[root@en ~]# lastb     

dwzhang ssh:notty    192.168.20.92    Thu Nov 20 13:33 - 13:33  (00:00)   

dwzhang ssh:notty    192.168.20.92    Tue Nov 18 17:35 - 17:35  (00:00)   

 

btmp begins Sat Nov 15 11:08:36 2014

[root@en ~]#

[root@en ~]# lastb -2       (只显示最近2次错误登录的)

dwzhang ssh:notty    192.168.20.92    Thu Nov 20 13:33 - 13:33  (00:00)   

dwzhang ssh:notty    192.168.20.92    Tue Nov 18 17:35 - 17:35  (00:00)   

 

btmp begins Sat Nov 15 11:08:36 2014

[root@en ~]#

 

lastlog命令:

列出用户最后登录的时间和登录终端的地址,如果此用户从来没有登录,则显示:**Never logged in**

   -u:显示特定用户。

[root@en ~]# lastlog

Username         Port     From             Latest

root             pts/0    192.168.20.92    Thu Nov 20 14:21:43 +0800 2014

bin                                        **Never logged in**

[root@en ~]# lastlog -u dwzhang    (显示dwzhang用户最近的登录信息)

Username         Port     From             Latest

dwzhang          pts/1    192.168.20.92    Thu Nov 20 13:34:03 +0800 2014

[root@en ~]#

 

basename命令:(取基名)

取得路径的基名,(文件名)脚本中常用!

basename指定一个路径,basename命令会删掉所有的前缀包括最后一个slash(‘/’)字符,然后将字符串显示出来。

[root@en ~]# basename /etc/abc/me

me

[root@en ~]# basename /da/wei/aaa

aaa

[root@en ~]#

 

$0

代表脚本路径及名称。

取得脚本名称:(执行脚本的路径及名称)

[dwzhang@public test]$ vim bane.sh

 

#!/bin/bash

#

echo "file is `basename $0`"

[dwzhang@public test]$ bash bane.sh

file is bane.sh

[dwzhang@public test]$

 

mail命令:

收邮件命令。

大多数系统都会默认安装一个邮件服务的,这是系统有自动任务,要有什么问题可以自动发邮件给用户。

当前系统每个用户都有自己的邮箱。

[root@en mail]# pwd

/var/spool/mail

[root@en mail]# ll

total 28

-rw-rw----. 1 dwzhang mail   535 Nov 20 14:47 dwzhang

-rw-------. 1 root    mail    20375 Dec 23 09:25 root

-rw-rw----. 1 rpc     mail    0 Sep 11 21:19 rpc

-rw-rw----. 1 user1   mail    0 Dec  4 11:01 user1

-rw-rw----. 1 user3   mail    0 Dec  4 11:01 user3

-rw-rw----. 1 zhang   mail    0 Sep 16 17:10 zhang

-rw-rw----. 1 zhang1  mail    0 Sep 15 13:51 zhang1

[root@en mail]#

查看自己的邮件:

[root@en ~]# mail       (q退出)

Heirloom Mail version 12.4 7/29/08.  Type ? for help.

"/var/spool/mail/root": 21messages 21 new

>N 1 Anacron               Fri Sep 1210:52  17/672   "Anacron job ‘cron.daily‘ on l"

 N  2Anacron               Tue Sep 1610:41  17/552   "Anacron job ‘cron.daily‘ on e"

 N  3Anacron               Wed Sep 1709:38  17/552   "Anacron job ‘cron.daily‘ on e"

& q (退出)

[root@en ~]#

 

如何给系统用户发邮件:

-s :指定主题。

[root@en ~]# echo "it meeting 18:01" | mail -s"it meeting" dwzhang  

You have mail in /var/spool/mail/root

[root@en ~]#

说明:

echo "it meeting 18:01" :要文。

mail -s "it meeting" :主题。

dwzhang :收件人。

dwzhang用户登录查看mail

[dwzhang@en ~]$ mail

Heirloom Mail version 12.4 7/29/08.  Type ? for help.

"/var/spool/mail/dwzhang": 1message 1 new

>N 1 root                  Thu Nov 2014:44  18/524   "it meeting"

& 1

Message 1:

From root@en.com  Thu Nov 20 14:44:59 2014

Return-Path: <root@en.com>

X-Original-To: dwzhang

Delivered-To: dwzhang@en.com

Date: Thu, 20 Nov 2014 14:44:59 +0800

To: dwzhang@en.com

Subject: it meeting

User-Agent: Heirloom mailx 12.4 7/29/08

Content-Type: text/plain; charset=us-ascii

From: root@en.com (root)

Status: R

 

it meeting 18:01

 

& q

Held 1 message in /var/spool/mail/dwzhang

You have mail in /var/spool/mail/dwzhang

[dwzhang@en ~]$

 

hostname(临时改变主机名)

如果当前主机的主机名不是een.com,就将其改名为een.com

[root@en ~]# [ `hostname` != ‘een.com‘ ] && hostnameeen.com

[root@en ~]# hostname

een.com

[root@en ~]#

如果当前主机的主机名是een.com,就将其改名为en.com

[root@en ~]# hostname

een.com

[root@en ~]# [ `hostname` == ‘een.com‘ ] &&hostname en.com

[root@en ~]# hostname

en.com

[root@en ~]#

如果当前主机的主机名为空,或者为(none),或者为localhost,就将其改为en.com

[root@en ~]# [ -z `hostname` ] || [ `hostname` == ‘(none)‘-o `hostname` == ‘localhost‘ ] && hostname en.com

 

RANDOM:

生成随机数。

[root@en ~]# echo $RANDOM

28449

[root@en ~]# echo $RANDOM

28792

[root@en ~]# echo $RANDOM

27

[root@en ~]# echo $RANDOM

31155

[root@en ~]# echo $RANDOM

3466

[root@en ~]#

 

linux系统中随机数生成器:randomurandom

[root@en ~]# ll /dev/random

crw-rw-rw-. 1 root root 1, 8 Nov 20 09:01/dev/random

[root@en ~]#

[root@en ~]# ll /dev/urandom

crw-rw-rw-. 1 root root 1, 9 Nov 20 09:01/dev/urandom

[root@en ~]#

 

[chengmo@centos5  shell]$ head -1 /dev/urandom

ù…KTtanV1&“2íùU“F|_ ”mEeUrá=JˉTAìAúRtó

#读一行,怎么是乱码呢?其实它是通过二进制数据保存实时数据的,那么我们怎么样把它变成整型数据呢?

 

[chengmo@centos5 ~/shell]$ head -200/dev/urandom | cksum

1615228479 50333

#由于urandom的数据是非常多,不能直接通过cat读取,这里取前200行,其实整个数据都是变化的,取多少也一样是唯一的。

#cksum 将读取文件内容,生成唯一的表示整型数据,只有文件内容不变,生成结果就不会变化,php crc函数

 

[chengmo@centos5  shell]$ head -200 /dev/urandom | cksum | cut -f1 -d" "

484750180

#cut 以” “分割,然后得到分割的第一个字段数据

 

写一个脚本:

利用RANDOM生成10个随机数,并找出其中的最大值和最小值:

首先生成10个随机数:

[root@en script]# vim ransuiji.sh

#!/bin/bash

#

for I in {1..10}; do       (生成10个随机数给I变量)

  if[ $I -le 9 ]; then       (处理前面带逗号,最后不带逗号方法)

  echo -n "$RANDOM,"  (如果I小于9,就带逗号)

 else

  echo "$RANDOM"     (否则不带逗号)

  fi

done

[root@en script]# bash ransuiji.sh

28753,27027,14816,19248,26180,10660,30036,5455,4093,19292

[root@en script]#

 

在从中取出最大值:

[root@en script]# vim ransuiji.sh

 

#!/bin/bash

#

declare -i MAX=0      (定义MAX为整型变量)

 

for I in {1..10}; do

 MYRAN=$RANDOM      (把随机数给变量MYRAN)

  if[ $I -le 9 ]; then         (如果I小于9)

  echo -n "$MYRAN,"      (就带逗号)

 else

  echo "$MYRAN"         (就不带逗号)

  fi

  [$MYRAN -gt $MAX ] && MAX=$MYRAN  (如果MYRAN大于等于)

done

 

 echo $MAX

[root@en script]# bash ransuiji.sh

1677,14322,3511,6718,1317,29824,6565,15470,24082,31254

31254

[root@en script]#

 

在从中取出最大值和最小值:

[root@en script]# vim ransuiji.sh

 

#!/bin/bash

#

declare -i MAX=0

declare -i MIN=0     (定义MIN为整型变量)

 

for I in {1..10}; do

 MYRAN=$RANDOM

  [$I -eq 1 ] && MIN=$MYRAN    (如果$I等于1,就赋值MIN=$MYRAN)

  if[ $I -le 9 ]; then

  echo -n "$MYRAN,"

 else

  echo "$MYRAN"

  fi

  [$MYRAN -gt $MAX ] && MAX=$MYRAN

  [$MYRAN -lt $MIN ] && MIN=$MYRAN

done

 

 echo $MAX,$MIN

[root@en script]# bash ransuiji.sh

4402,4596,13713,29122,30765,29253,14581,24367,7097,10521

30765,4402

[root@en script]#

 


Linux终端命令

标签:linux

原文地址:http://153744.blog.51cto.com/143744/1670480

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!