前言
本章一起了解下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)