你必须非常努力,才能看起来毫不费力!

微信搜索公众号[ CodePlayer ],一起From Zero To Hero !

前言

本篇文章主要讨论Linux中的软硬链接,以及用户管理相关的命令,相对来说比较简单,大家一起来学习吧!

ln

命令格式

1
ln 选项 原文件 目标文件

命令描述

  • 用来为文件创建链接,链接类型分为硬链接和符号链接两种,默认的链接类型是硬链接。如果要创建符号链接必须使用"-s"选项。

  • 软链接:类似于Windows系统中的快捷方式,创建后的权限为lrwxrwxrwx,以l开头表示软链接,拥有所有权限,但是软链接的权限并不决定原文件的权限,最终的权限还是以原文件为准;创建后的链接文件大小很小,因为只是一个链接(还是类似Windows快捷方式)。

  • 硬链接:

    1. 相当于上一篇文章讲过的 cp -p 命令 + 同步更新
    • cp -p命令:拷贝后的文件属性都相同;
    • 同步更新:拷贝后的两个文件保持同步,如果源文件有改动,硬链接文件也同步改动。
    • 源文件删除,硬链接文件依然可以运行。
    • 可以看出硬链接类似于指针的概念,创建硬链接之后,两个文件都可以比作一个指针,指向真正的文件,因此文件属性肯定一样。对文件修改后,通过指针去查看文件,肯定看到的都是一样的,所以保持同步。当对源文件进行删除操作,只是删除当前保存的一个指针,并非删除源文件,因此还能对硬链接文件进行操作。
    1. 创建硬链接后,两个文件的i节点一样
    2. 不能跨分区创建硬链接(类似Windows中的C盘、D盘)
    3. 不能针对目录创建硬链接

选项

-s:创建软连接

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
[root@VM-0-5-centos ~]# touch test.txt                   # 新建一个文件
[root@VM-0-5-centos ~]# ln test.txt test_hard.txt        # 创建硬链接
[root@VM-0-5-centos ~]# ln -s test.txt test_soft.txt     # 创建软链接
[root@VM-0-5-centos ~]# ls -li                           # 查看文件详情
总用量 0
393327 -rw-r--r-- 2 root root 0 10月  9 00:15 test_hard.txt
396083 lrwxrwxrwx 1 root root 8 10月  9 00:16 test_soft.txt -> test.txt
393327 -rw-r--r-- 2 root root 0 10月  9 00:15 test.txt

# 软链接权限为:lrwxrwxrwx,同时有箭头,从软链接指向源文件  test_soft.txt -> test.txt
# 硬链接的文件属性和原文件一致, 且文件id号与原文件一样,引用数为2


[root@VM-0-5-centos ~]# echo 'hello world' >  test.txt   # 往源文件中写入数据
[root@VM-0-5-centos ~]# cat test.txt                     # 查看源文件
hello world
[root@VM-0-5-centos ~]# cat test_soft.txt								 # 查看软链接文件,与源文件相同
hello world
[root@VM-0-5-centos ~]# cat test_hard.txt								 # 查看硬链接文件,与源文件相同
hello world


[root@VM-0-5-centos ~]# rm -f test.txt									 # 删除源文件
[root@VM-0-5-centos ~]# cat test_soft.txt								 # 无法查看软链接文件
cat: test_soft.txt: 没有那个文件或目录
[root@VM-0-5-centos ~]# cat test_hard.txt								 # 正常查看硬链接文件
hello world
[root@VM-0-5-centos ~]# ls -li                           # 硬链接引用数变为了 1
总用量 4
393327 -rw-r--r-- 1 root root 12 10月  9 00:34 test_hard.txt
396083 lrwxrwxrwx 1 root root  8 10月  9 00:15 test_soft.txt -> test.txt


[root@VM-0-5-centos ~]# mkdir test
[root@VM-0-5-centos ~]# ls
test  test_hard.txt  test_soft.txt
[root@VM-0-5-centos ~]# ln test test_hard								 # 不能对目录创建硬链接
ln: "test": 不允许将硬链接指向目录
[root@VM-0-5-centos ~]# ln -s  test test_soft						 # 可以对目录创建软链接

useradd

命令格式

1
useradd 用户名

命令描述

添加新用户

示例

1
[root@VM-0-5-centos ~]# useradd user3

passwd

命令格式

1
passwd 用户名

命令描述

  • 为用户设置密码
  • root可以更改所有人的密码,普通用户只能更改自己的密码

示例

1
2
3
4
5
[root@VM-0-5-centos ~]# passwd user3
更改用户 user3 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

who

命令格式

1
who

命令描述

查看登录用户信息:

登录用户 登录终端(tty:本地终端 pts:远程终端) 登录时间 IP地址

示例

1
2
3
[root@VM-0-5-centos ~]# who
root     pts/0        2021-10-09 18:08 (180.102.173.132)
root     pts/1        2021-10-09 19:14 (122.14.229.252)

w

命令格式

1
w [选项] [参数]

命令描述

用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。执行这个命令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行w命令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。

第一行输出与 uptime 命令输出一致

  • 当前系统时间:19:26:52
  • 系统已经启动的时长:up 112 days, 5:33
  • 登录的用户数:2 users
  • 系统过去1,5,15分钟的平均负载信息:load average: 0.00, 0.02, 0.05
1
2
[root@VM-0-5-centos ~]# uptime
 19:49:47 up 112 days,  5:56,  2 users,  load average: 0.00, 0.01, 0.05

第二行信息包括如下字段说明:

  • USER:登录用户名
  • TTY: 登录用户使用的终端名(tty:本地终端 pts:远程终端)
  • FROM:登录用户来源的主机名或IP地址
  • LOGIN@:用户登录时长
  • IDLE:自用户上一次与终端进行交互以来的空闲时间
  • JCPU:附加到tty的所有进程使用的时间
  • PCPU:用户当前进程所用的时间,即显示在“ WHAT”字段中的那个进程
  • WHAT:用户当前的进程及选项/参数

选项

1
2
3
4
5
6
7
8
9
 -h, --no-header     不打印头信息;
 -u, --no-current    当显示当前进程和cpu时间时忽略用户名;
 -s, --short         使用短输出格式;
 -f, --from          显示用户从哪登录;
 -o, --old-style     老式输出
 -i, --ip-addr       显示IP地址而不是主机名(如果可能)

     --help     显示此帮助并退出
 -V, --version  显示版本信息。

参数

用户:仅显示指定用户。

示例

1
2
3
4
5
[root@VM-0-5-centos ~]# w
 19:26:52 up 112 days,  5:33,  2 users,  load average: 0.00, 0.02, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    180.102.173.132  18:08   17:48   0.12s  0.05s -bash
root     pts/1    122.14.229.252   19:14    4.00s  0.02s  0.00s w

总结

本文介绍了Linux软硬链接、以及用户管理命令:

  • 创建软硬链接:ln
  • 用户管理命令:
    • useradd:添加用户
    • passwd:给用户设置密码
    • who:查看当前用户
    • w:显示登录用户列表及系统负载

更多

微信公众号:CodePlayer