携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第3天,点击查看活动详情
前言
本章一起了解下Linux系统相关,分别从一下几个方面来学习:系统信息 用户管理(用户的增删改查,权限修改等等)。
系统信息
uname
- 介绍:uname命令用于显示系统相关信息,比如内核版本号、硬件架构等。
- 使用:查看系统信息在我们服务器编程中常用来判断当前的运行环境
- 显示:系统内核名称,主机名,内核版本号,已经主机处理器类型...
[root@zk ~]# uname -a
Linux zk 3.10.0-1160.62.1.el7.x86_64 #1 SMP Tue Apr 5 16:57:59 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
hostname
- 介绍:显示或修改我们主机名称
- 使用:hostname + name 或直接输入hostname
[root@zk ~]# hostname
zk
[root@zk ~]# hostname zz
[root@zk ~]# hostname
zz
date
- 介绍:date命令用于显示当前的系统时间或设置系统时间。
- 使用:直接输入date
[root@zk ~]# date
Sat Jul 30 14:32:47 CST 2022
du df
- 介绍:du命令显示目录或文件的大小(当前目录)。df用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计
- 使用:直接输入命令
[root@zk dev]# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 1917372 0 1917372 0% /dev
tmpfs 1930552 0 1930552 0% /dev/shm
tmpfs 1930552 197512 1733040 11% /run
...
[root@zk dev]# du
0 ./v4l/by-path
0 ./v4l/by-id
0 ./v4l
0 ./net
watch
- 介绍:watch命令可以以全屏的方式动态显示命令或程序的执行情况。
- 使用:watch + 需要监控的命令
[root@zz ~]# watch -n 2 -d netstat -ant
Every 2.0s: netstat -ant Sat Jul 30 14:56:19 2022
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 192.168.1.10:27017 121.4.59.78:34638 ESTABLISHED
tcp 0 0 192.168.1.10:27017 121.4.59.78:33886 ESTABLISHED
tcp 0 0 192.168.1.10:27017 121.4.59.78:58206 ESTABLISHED
tcp 0 0 192.168.1.10:27017 121.4.59.78:58226 ESTABLISHED
locate
- 介绍:Linux系统里有一个名为mlocate.db的数据库文件,这个文件包含系统文件的文件名及对应的路径信息
- 显示:
[root@zz home]# locate pwd
/etc/.pwd.lock
/usr/bin/pwd
/usr/bin/pwdx
updatedb
- 介绍:可以创建或者更新locate命令使用的数据库。updatedb命令会因定时任务定期(每天)执行。首次安装mlocate时需要执行updatedb来更新存储内容
- 使用:直接updatedb,最好加上sudo
[root@zz tmp]# sudo updatedb
用户管理
useradd、userdel、usermod
- 介绍:可以用来增加删除修改用户
- 使用:useradd + 用户名(新增用户) userdel + 用户名
[root@VM-12-5-centos spool]# useradd demo2
[root@VM-12-5-centos spool]# cut -d : -f 1 /etc/passwd
root
...
demo2
# 修改用户名 usermod -l + new_name + old_name
[root@VM-12-5-centos spool]# usermod -l demo3 demo2
groupadd groupdel
- 介绍:用来添加用户组喝删除用户组
- 使用:公司内部用来区分不同部门不同权限时候使用
[root@VM-12-5-centos spool]# groupadd test2
[root@VM-12-5-centos spool]# cut -d : -f 1 /etc/group
root
...
test2
passwd chage chpasswd
- 介绍:分别用来修改密码(查看密码状体) 修改密码过期时间 批量修改密码
- 使用:运维给公司开发或其他角色分配账号时候使用
[root@VM-12-5-centos spool]# passwd demo2
passwd: Unknown user name 'demo2'.
[root@VM-12-5-centos spool]# passwd demo3
Changing password for user demo3.
New password:
BAD PASSWORD: The password contains the user name in some form
Retype new password:
passwd: all authentication tokens updated successfully.
# 常用显示密码状态相关信息
[root@VM-12-5-centos spool]# passwd -S demo3
demo3 PS 2022-07-31 0 99999 7 -1 (Password set, MD5 crypt.)
# 常用技能
[root@VM-12-5-centos spool]# echo "123456" | passwd --stdin demo3
Changing password for user demo3.
passwd: all authentication tokens updated successfully.
# 常用-设置密码有效期
[root@VM-12-5-centos spool]# chage -E 2022-08-01 demo3
# 常用-设置密码过期后多少天禁用账户
[root@VM-12-5-centos spool]# chage -I 3 demo3
# chpasswd命令用于从标准输入中读取一定格式的用户名、密码来批量更新用户的密码,其格式为“用户 名:密码”。
[root@VM-12-5-centos spool]# chpasswd
demo3:123123
zn:zn123123
su sudo
- 介绍:su命令用于将当前用户切换到指定用户或者以指定用户的身份执行命令或程序。sudo命令,可以让普通用户在执行指定的命令或程序上,拥有超级用户的权限
- 使用:
[root@VM-12-5-centos tmp]# su zn
[zn@VM-12-5-centos tmp]$
[root@VM-12-5-centos tmp]# sudo mkdir demo
[root@VM-12-5-centos tmp]# sudo ls
demo mongodb-27017.sock stargate.lock
id w who whoami users
- 介绍:用来显示用户相关信息
- 使用:我们在写shell脚本时会需要获取当前登陆的用户信息,此时可以根据需要来使用这几个命令
# 显示用户名和用户组相关信息
[root@VM-12-5-centos home]# id
uid=0(root) gid=0(root) groups=0(root)
# 显示用户名
[root@VM-12-5-centos home]# who
root pts/1 2022-07-31 14:23 (114.91.4.47)
# 显示已登录用户
[root@VM-12-5-centos home]# users
root
# 显示当前登陆用户名
[root@VM-12-5-centos home]# whoami
root
[root@VM-12-5-centos home]# w
15:18:42 up 214 days, 23:57, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/1 114.91.4.47 14:23 2.00s 0.19s 0.00s w
last lastb lastlog
- 介绍:用来显示用户相关登陆日志
- 使用:last(登陆列表) lastb(登陆失败记录) lastlog
- 备注:last和lastlog命令都可以查看过去登录的用户信息,它们的区别是last 命令可以查看当前和过去登陆系统用户的相关信息;lastlog 命令可以查看到每个系统用户最近一次登陆系统的时间。
[root@VM-12-5-centos home]# last
zn pts/2 114.91.4.47 Sun Jul 31 15:05 - 15:08 (00:02)
root pts/1 114.91.4.47 Sun Jul 31 14:23 still logged in
root pts/3 222.65.75.87 Wed Jul 27 16:49 - 18:42 (01:53)
[root@VM-12-5-centos home]# lastlog -t 1
Username Port From Latest
root pts/1 114.91.4.47 Sun Jul 31 14:23:53 +0800 2022
zn pts/2 114.91.4.47 Sun Jul 31 15:05:32 +0800 2022
[root@VM-12-5-centos home]# lastb
root ssh:notty 43.154.151.228 Sat Jul 2 06:30 - 06:30 (00:00)
参考文档
个人觉得很不错的书籍:微信读书跟老男孩学Linux运维