你必须非常努力,才能看起来毫不费力!
微信搜索公众号[ CodePlayer ],一起From Zero To Hero !
前言
本篇文章主要讨论Linux中的软硬链接,以及用户管理相关的命令,相对来说比较简单,大家一起来学习吧!
ln
命令格式
命令描述
-
用来为文件创建链接,链接类型分为硬链接和符号链接两种,默认的链接类型是硬链接。如果要创建符号链接必须使用"-s"选项。
-
软链接:类似于Windows系统中的快捷方式,创建后的权限为lrwxrwxrwx
,以l
开头表示软链接,拥有所有权限,但是软链接的权限并不决定原文件的权限,最终的权限还是以原文件为准;创建后的链接文件大小很小,因为只是一个链接(还是类似Windows快捷方式)。
-
硬链接:
- 相当于上一篇文章讲过的
cp -p
命令 + 同步更新
。
- cp -p命令:拷贝后的文件属性都相同;
- 同步更新:拷贝后的两个文件保持同步,如果源文件有改动,硬链接文件也同步改动。
- 源文件删除,硬链接文件依然可以运行。
- 可以看出硬链接类似于指针的概念,创建硬链接之后,两个文件都可以比作一个指针,指向真正的文件,因此文件属性肯定一样。对文件修改后,通过指针去查看文件,肯定看到的都是一样的,所以保持同步。当对源文件进行删除操作,只是删除当前保存的一个指针,并非删除源文件,因此还能对硬链接文件进行操作。
- 创建硬链接后,两个文件的
i节点
一样
- 不能跨分区创建硬链接(类似Windows中的C盘、D盘)
- 不能针对目录创建硬链接
选项
-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
|
[root@VM-0-5-centos ~]# useradd user3
|
passwd
命令格式
命令描述
- 为用户设置密码
- root可以更改所有人的密码,普通用户只能更改自己的密码
示例
1
2
3
4
5
|
[root@VM-0-5-centos ~]# passwd user3
更改用户 user3 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
|
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
命令格式
命令描述
用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。执行这个命令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行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