标签: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系统中随机数生成器:random和urandom
[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
原文地址:http://153744.blog.51cto.com/143744/1670480