终端类型
能够登录服务器,并且进行用户登录校验的设备接口,这就是终端。
当登录以后,进行操作和查看信息是理所当然的,不够也要受到权限的控制。
回过头来划分,所谓终端是包含了硬件和软件两个部分的。
硬件是显示屏之类的,进行信息展示。
软件就是用户鉴权的程序,至于权限控制,那就是Linux本身的程序了。
终端 | 类型 | 说明 |
---|---|---|
console |
控制台 | 直连服务器进行信息显示 和用户无关,无鉴权操作 相当于服务器自身设备一部分 |
pty |
物理终端 | 直连服务器,显示服务器信息 无关用户,不鉴权,就是 console pty 是console 的类别称谓console 是pty 的具体实现名称 |
tty |
虚拟终端 | 附加在物理终端之上,进行显示,都是存在于本地 Linux上面可以看到 tty# ,就是虚拟终端区别于远程登录,包括上述所说,都是通过 VGA 进行连接显示的 |
ttyS |
串行终端 | 通过串口进行通信并进行显示,主要区别于VGA 显示方式串行终端多是字符设备,图形显示设备都是类 VGA 的方式强行去区分的话, VGA 可以有华丽的图形化桌面但是命令行这种基本上都是字符的界面差别不大 |
pty |
伪终端 | shell 远程连接时候的终端类型建立在一个伪文件系统之上,故称之为伪终端 |
- 终端的数量
Linux认识那个就是多用户的,所以终端类型也是有复数个。
哪怕是最近距离的
物理终端
,也有复数个,所以其他类型的终端都不止一个,具体编号显示时会标出。不过在
物理终端
中的console
却是唯一,只会有一个正统的控制台
。不过没什么矛盾的,
tty1
也只有一个。一方面是
类型
,一方面是具体
,总要有特殊性才称得上是个体
。
用户活动
whoami
whoami
查看当前登录用户名,仅仅如此
who
who
这个信息比较丰富,默认的就会输出用户名、终端、时间、备注
如果记不清楚含义,可以加一下
-H
,会把头信息打印一下who -H
选项 | 说明 |
---|---|
-a |
一些列的选线,可以man who 具体看一下 |
-t |
time ,时间 |
-H |
head ,头信息 |
-r |
runlevel ,运行级别 |
-p |
process ,进程号 |
更多信息,有兴趣的可以
man
一下。
w
w
这个就比较丰富,会显示
用户、终端、登录地址、登录时刻、空闲时间、
cpu
、做什么其实
who
也可以,不过不会自带这么全的信息。
选项 | 说明 |
---|---|
-h |
去头 |
-s |
short |
-f |
from |
-i |
ip |
-o |
old-style |
不过,差别真的不大,直接
w
即可,选项没太必要。
用户轨迹
last
last
用户、终端、
IP
、日期、登录时间、登出时间、活动时长
last -n 3
-n
之后,可以指定最近登录活动的次数。这个命令是Linux本身的日志查看,对应文件为
/var/log/wtmp
。
lastb
lastb
同
last
,查看登录日志,但是记录的是错误登录的日志,对应文件为/var/log/btmp
。很幸运也很不幸的是,我并没有看到啥。
毕竟也没谁黑我,哈哈,自己错误登录就能看到了,这个就不说了。
和
last
选项差不多,都能用。
lastlog
lastlog
所以说,Linux会创建很多用户不是吹的。
不过别乱删,很多事必须的,如果背熟了,有
外人
来访,想想都刺激。就这些了
lastlog -u root
针对用户号监控登录记录啊。
工具命令
sleep
sleep 3
会编程的就很熟悉了,休眠啊,这是纯正的系统休眠了,没有借助
JVM
或者啥东西,直接的休眠。
basename
basename /etc/own/tools/test
知道路径,不管相对的还是绝对的,获取文件名,谁都做过吧。
有的截取,有的正则。感觉有用又不是很有用,十分鸡肋。
basename
也很是鸡肋,它能够获取最末端的文件名,也能够对后缀进行操作。但是它取不到路径哦,哈哈哈。
上述就能够得到
test
,你觉得好用…么?
hostname
hostname
hostname www.godme.com
hostname
直接使用的话,就是查看本机主机名后面有 参数的话,就是设置主机名了
对应的环境变量
HOSTNAME
,直接修改环境变量是改不了的哦
RANDOM
echo $RANDOM
获取随机数,看起来是个变量,但是没都会变得。
范围[0,32768],32位的嘛,至于64位,不就是65535了么。
这个的随机数,都是熵池里面取得的,具体分类如下两种。
设备 来源 阻塞 说明 /dev/random
熵池 是 熵池空以后可能返回空值
请求填充熵池/dev/urandom
熵池 否 熵池空以后软件自动生成随机数返回 利用软件生成的随机数难免有迹可循。
从易用的角度来看,不会阻塞的
urandom
比较好。从安全的角度衡量,
random
拥有更高的安全价值。
mail
- 查看
mail
直接
q
则退出。就是那个序号。
内容就是
content
。一个q
就能退出了。
- 发送
echo "content" | mail -s "subject" root
那一封就是这样发送出去的。
- 内容
echo "content"
使用
|
流进行内容的传输,所以呢,你还可以有很多种方法。比如
cat "XXX" | mail root
或者重定向
mail root < cat "XXX"
都可以,你用
EOF
现场手写也没问题。
- 主题
-s
指定subject
- 附件
-c
,自动拷贝文件作为附件发送。
- 发送
最后的就是用户啦,也可以是邮箱地址,可以列表哦。
脚本
报时
#!/bin/bash
while ((1)) ;do
date +"%Y-%m-%d %H:%m:%S"
sleep 1
done
想要整点报时的话,还要进行整点匹配。
重复输出太浪费资源,第一次匹配之后就
sleep
,这样比较方便。不过还不如
crontab
呢,啥都方便了,所以这个就这样算了。
好友关注
#!/bin/bash
while ((1));do
who | grep "godme"
if [ $? -eq 0 ];then
echo "friend godme login"
fi
sleep 10
done
文件名获取
#!/bin/bash
fileName=`basename $0`
echo "myname is $filename"
看起来好简单,不过我想说明的是,及时是
$0
,表现也不一样。相对路径运行
./name.sh # $0显示的是./name.sh
绝对路径
/home/godme/name.sh # $0显示的是/home/godme/name.sh
要做到无区别的话,最好
basename
,提示的就都会是name.sh
了。