Linux基础(1)

内容概要

  • 文件类型
  • 软链接&硬链接
  • 用户与用户组

内容概要

一、文件类型

1、Linux文件类型简介

查看文件详细信息

# 命令:
	ls -li  # -i 显示文件的 inode 数字
	
[root@localhost ~]# ls -li
total 12
134319695 -rw-------. 1 root root 1691 Dec  8 17:25 anaconda-ks.cfg
135085785 -rw-r--r--. 1 root root  678 Dec 11 19:02 elijah.txt
134319703 -rw-r--r--  1 root root    0 Dec 14 10:11 hard_index
135085801 -rw-r--r--  1 root root 1504 Dec 12 22:04 niu.txt
# 详解
134319695		 # 文件的inode,表示该文件的内存地址
-rw-------.		 # ‘-’ 表示文件类型为普通文件,rw------- 是权限
1				# 表示文件的硬链接数
root			# 文件所属用户
root			# 文件所属组
1691			# 文件大小,单位为字节
Dec  8 17:25	 # 表示修改日期
anaconda-ks.cfg	 # 文件名

image

2、Linux 文件类型

# 如何判断文件类型
-rw-r--r--    查看这里的第一个字符

1、普通文本			f(-)
2、文件夹			 d    	 # directory
3、链接文件		l    		# link
4、设备文件			b		# 磁盘文件
					c		# 字符文件
5、管道文件			P		
6、套接字文件			s		# socket
	yum install mariadb* -y

注意:不能以颜色判断文件类型。

二、软链接 & 硬链接

简介

	在 Linux 中,每个文件都有对应的独一无二的 inode 号,用于作为文件的标识,文件名只是便于记忆,inode 号指向
的是文件内存的地址

	# 硬链接(hard link)
	可以将它理解为一个 “指向原始文件 inode 的指针”,系统不为他添加独立的 inode,所以,硬链接文件与原始文件其实
是同一个文件,只是名字不同。每添加一个硬链接,文件的硬链接数就会加1
	
	# 软链接
	等同于 Windows 系统下的快捷方式。仅仅包括所含链接文件的路径名字。因此能链接目录,也能跨文件系统链接。但是,
当删除原始文件后,链接文件也将失效。

删除文件

	每添加一个硬链接,文件的硬链接数就会加 1 ,当删除原文件或者硬链接文件的时候,硬链接数就会减 1 ,当硬链接数
达到 0 的时候,文件就算是被删除了

	删除文件的底层逻辑
        1、删除的是硬链接
        2、判断该文件硬链接数是否为0
        3、如果为0,则在磁盘中将其删除
        4、如果不为0,则只删除一个硬链接

操作命令

[root@localhost ~]# ll -i
total 12
134319703 -rw-r--r--  1 root root    0 Dec 14 15:36 index.txt

# 创建硬链接
	ln [参数] [原文件路径] [硬链接文件路径]

[root@localhost ~]# ln index.txt hard_link
[root@localhost ~]# ll -i
total 12
134319703 -rw-r--r--  2 root root    0 Dec 14 15:36 hard_link	# 硬链接数从 1 变成了 2,文件的inode号与原文件一致
134319703 -rw-r--r--  2 root root    0 Dec 14 15:36 index.txt

# 创建软链接
	ln -s [原文件路径] [硬链接文件路径]

[root@localhost ~]# ln -s index.txt soft_link
[root@localhost ~]# ll -i
total 12
134319703 -rw-r--r--  2 root root    0 Dec 14 15:36 hard_link
134319703 -rw-r--r--  2 root root    0 Dec 14 15:36 index.txt
134319708 lrwxrwxrwx  1 root root    9 Dec 14 15:40 soft_link -> index.txt

	可以看到软链接是个单独的文件,链接数为 1,文件类型是链接文件,而且保存的只是原文件的路径信息

# 删除原文件
[root@localhost ~]# rm index.txt
[root@localhost ~]# ll -i
total 12
134319703 -rw-r--r--  1 root root    0 Dec 14 15:36 hard_link
134319708 lrwxrwxrwx  1 root root    9 Dec 14 15:40 soft_link -> index.txt
	
	文件的硬链接数变为 1,软链接提示也变红了,表示无法识别原文件

image

图示

1、原文件

image

2、添加硬链接

image

3、删除原文件

image

4、创建软链接

image

image


3、用户与用户组

简介

用户:相当于账号
	root   test
用户组:某些具有相同属性的账号的集合
	root

用户分类

系统用户:uid在 0 - 999 之间的用户,我们就看作系统用户
	系统用户一般用在启动应用程序上,一般不需要登录系统。

普通用户:uid在 1000及以上的用户,我们就看作普通用户
	一般用在登录上。

创建用户和创建组

创建用户的命令:useradd
    参数:
        -g : 指定用户组(用户必须存在)
        -r : 创建系统用户
        -M :不创建家目录
        -u :指定创建用户的ID的

# 创建普通用户
	useradd [用户名]
	[root@localhost home]# useradd user01
	
	每创建一个普通用户,就会在 /home 目录下创建一个用户文件夹
[root@localhost ~]# cd /home
[root@localhost home]# ll -i
total 0
1215668 drwx------ 2 elijah elijah 99 Dec 13 17:38 elijah
1223338 drwx------ 2 user01 user01 62 Dec 14 16:16 user01

# 创建系统用户
	[root@localhost home]# useradd -r root01

# 创建用户组
	[root@localhost home]# groupadd mygroup
	组信息存放的目录: /etc.group

# 删除用户
	[root@localhost home]# userdel user01
	[root@localhost home]# userdel -r user01     连同用户主目录一起删除

[root@localhost home]# userdel -r elijah
[root@localhost home]# ls
user01
[root@localhost home]#

切换用户

su - [用户名]
su [用户名]

[root@localhost home]# su elijah
[elijah@localhost home]$
	
	注意看用户名已经从 root 变为了 elijah, 符号 # 变为了 $

查看用户 ID

# 查看用户的ID和组的ID
    id [用户名]

[root@localhost home]# id elijah
uid=1000(elijah) gid=1000(elijah) groups=1000(elijah)

用户账户信息文件(passwd)

目录 : /etc/passwd

[root@localhost home]# cat /etc/passwd

elijah:x:1000:1000: 用户简介 :/home/elijah:/bin/bash

用户名		  : elijah
密码占位符    :x
1000		: userid
1000		: 组id
/home/elijah : 家目录
/bin/bash	:默认的解析器	

用户组信息文件(group)

# 查看用户组
目录 : /etc/group

[root@localhost etc]# cat group

root01:x:996:
mygroup:x:1002:
elijah:x:1000:
用户组名 --> elijah
用户组id --> 1000

用户密码信息文件(shadow)

# 目录
	/etc/shadow

[root@localhost etc]# cat shadow
root01:!!:18975::::::
elijah:!!:18975:0:99999:7:::
user02:!!:18975:0:99999:7:::

用户名 --> elijah
加密密码  --> !!		# 无密码暂时用 !! 代替
最后一次修改时间  --> 18975		# 计算日期的时间是以  1970 年 1 月 1 日作为 1 不断累加得到的时间

4、不使用 useradd 创建用户

须知


     一个标准的用户在如下文件中拥有自己的信息:

      /etc/passwd  用户的账户信息  格式是              名字:密码:ID:GroupID:描述符:家目录:shell
      /etc/shadow  用户的密码信息  格式是              $加密方式$干扰值$密码:密码可以隔多久该更改一次:          
      /etc/group     组信息
      /home/用户名    一个标准的用户还会拥有自己的家目录,家目录中还会有一定的资源
	/etc/skel/ 中的隐藏文件是家目录中的模版

1、创建用户家目录

[root@localhost home]# ls
elijah  user01
# 创建用户 user02
[root@localhost home]# mkdir user02
[root@localhost home]# ls
elijah  user01  user02

2、添加用户组信息

[root@localhost etc]# vim group

mygroup:x:1002:
elijah:x:1000:
user02:x:1001:

3、添加用户账户信息

[root@localhost etc]# cat passwd
elijah:x:1000:1000::/home/elijah:/bin/bash
# 添加用户账户信息
[root@localhost etc]# vim passwd
[root@localhost etc]# cat passwd
elijah:x:1000:1000::/home/elijah:/bin/bash
user02:x:1001:1001::/home/user02:/bin/bash

4、添加用户密码信息

[root@localhost etc]# cat shadow
elijah:!!:18975:0:99999:7:::
# 添加用户密码信息
[root@localhost etc]# vim shadow
[root@localhost etc]# cat shadow
root01:!!:18975::::::
elijah:!!:18975:0:99999:7:::
user02:!!:18975:0:99999:7:::

5、修改家目录及子目录的所有者和属组以及修改用户权限

# 修改家目录及子目录的所有者和属组
chown -R user_name:user_name /home/user_name   # 模板 修改所属用户与组(包括下面的目录)

[root@localhost etc]# chown -R user02:user02 /home/user02


# 修改权限
 chmod 700 <目标文件> : 修改用户的权限为: 只有拥有者可以读写打开
 或者
 chmod -R go= /home/user_name
 
 [root@localhost etc]# chmod 700 /home/user02
 

6、拷贝家目录隐藏文件

/etc/skel/ 中的隐藏文件是家目录中的模版
[root@localhost skel]# ll -a
total 24
drwxr-xr-x.  2 root root   62 Dec  8 17:17 .
drwxr-xr-x. 82 root root 8192 Dec 14 16:44 ..
-rw-r--r--.  1 root root   18 Apr  1  2020 .bash_logout
-rw-r--r--.  1 root root  193 Apr  1  2020 .bash_profile
-rw-r--r--.  1 root root  231 Apr  1  2020 .bashrc

cp -r /etc/skel/. <家目录路径>  把模版拷贝到你的家目录中
或
cp -r /etc/skel/* <家目录路径>

# 下面这个是把整个 skel 文件夹都拷贝过来了
[root@localhost etc]# cp -r /etc/skel /home/user02

# 正确用这个:
[root@localhost user02]# cp -r /etc/skel/. /home/user02

[root@localhost user02]# ll -ai
total 12
135096541 drwx------  3 user02 user02  74 Dec 14 19:10 .
134418322 drwxr-xr-x. 5 root   root    48 Dec 14 17:39 ..
135096537 -rw-r--r--  1 root   root    18 Dec 14 19:10 .bash_logout
135096542 -rw-r--r--  1 root   root   193 Dec 14 19:10 .bash_profile
135096543 -rw-r--r--  1 root   root   231 Dec 14 19:10 .bashrc

测试

# 用户 user02 创建成功!

[root@localhost /]# su user02
[user02@localhost /]$ 
[user02@localhost /]$ 
[user02@localhost /]$

用户信息四个重要文件:
普通用户主目录: /home/用户名
用户账号信息: /etc/passwd
用户组文件: /etc/group
用户密码文件: /etc/shadow

posted @ 2021-12-14 20:03  elijah_li  阅读(39)  评论(1编辑  收藏  举报
//一下两个链接最好自己保存下来,再上传到自己的博客园的“文件”选项中