Linux学习

���Ľ�������л�����Ķ�

经过以往的学习,现在对Linux的学习进行一次总结。记录一下自己在Linux使用的感悟。

by Marvin.Zhao

我的Linux哲学

Linux有自己的一套的哲学理论,我在学习Linux的过程中也被Linux的设计哲学所惊艳到。

我的Linux学习哲学是:

我是谁?

第一个对应的是英文中的WHO。在Linux系统中,我们首先要做的就是确认自己的角色。确认角色的主要目的就是为了明确自己的权限。是普通用户还是管理员,这是非常重要的。所在的组是什么,我能进行哪些操作,都是跟角色有关的。

角色就涉及到权限,权限约束这用户能够对哪些文件进行操作,能够使用哪些命令。

主要分辨出两点:

  • 普通用户
  • 管理员用户

这是需要十分明确的。使用如下命令:

1
whoami

是的,你没有看错。就是这样一条命令,系统就能告诉你,你是谁。当然除了这条命令之外还可以使用其他命令查看有哪些用户(在什么时间)登陆了该系统。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#下面的命令是查看有哪些用户登陆了该系统
users
#示例输出:
[hexo@dhu021 ~]$ users
hexo root

#下面的命令列出登陆该系统所有用户的登陆时间等
who
#示例输出:
[hexo@dhu021 ~]$ who
root pts/0 2018-07-30 14:31 (202.121.144.19)
hexo pts/1 2018-07-30 14:33 (202.121.144.19)

#下面的命令查看自己的用户ID,组ID,以及所处的组
id
#示例输出:
[hexo@dhu021 ~]$ id
uid=1000(hexo) gid=1000(hexo) groups=1000(hexo)

经过上面的操作,你就明白自己是什么角色了。其中id,这个命令的结果如果大于1000,那么就是普通用户。如果小于1000,可能是系统用户或者管理员或者普通用户。

小补充

这里补充一下系统用户的知识。什么是系统用户?

在Linux系统的/etc/passwd文件中按照行存储了一些用户以及其他的信息。

1
2
3
4
5
6
7
8
[hexo@dhu021 ~]$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
····(部分省略)
hexo:x:1000:1000::/home/hexo:/bin/bash
nginx:x:997:995:Nginx web server:/var/lib/nginx:/sbin/nologin

可以看到每一行都是按照冒号分隔了7个字段。这些字段代表了不同的意思。

字段 含义
1 用户名
2 用户的密码原来直接存储在第二字段,但是为了安全,最后专门有了/etc/shadow文件,现在默认用x替代
3 用户的uid,一般情况下root为0,1-499默认为系统账号,有的更大些到1000,500-65535为用户的可登录账号,有的系统从1000开始。
4 用户的gid,linux的用户都会有两个ID,一个是用户uid,一个是用户组id,在我们登录的时候,输入用户名和密码,其实会先到/etc/passwd查看是否有你输入的账号或者用户名,有的话将该账号与对应的UID和GID(在/etc/group中)读出来。然后读出主文件夹与shell的设置,然后再去检验密码是否正确,正确的话正常登录。
5 用户的账号说明解释
6 用户的家目录文件夹
7 用户使用的shell,如果换成/sbin/nologin/就是默认没有登录环境的。

情况就是这样。这里3、4字段的含义就指出了哪些是系统用户了,哪些是普通用户。

我在哪儿?

第二需要明确的是WHERE。就是要知道自己所处的位置。Linux系统那么多目录,一条命令:

1
2
3
4
pwd
#示例输出
[hexo@dhu021 ~]$ pwd
/home/hexo

找到自己所处的位置,不会迷路。自己也能做到心中有数。

我要干什么?

第三步,就是抛开一切的想法。脑子里只要高速自己,我在XXX目录下,我要干嘛。我的任务(TASK)是要复制一个文件还是重命名一个文件还是编辑一个文件等等。这一步讲的就是不要在Linux中迷失自我,要做到目标明确,不要做无头苍蝇。

我要怎么干?

最后一步也是通常人们常要做的。就是,我该怎么做才能达到在第三步提出的问题。我要怎么干?这就是涉及到Linux的哲学问题了。化大为小,化繁为简,分而治之。将一个大问题化简成多个小问题,把一个繁杂的问题分解成许多个简单问题。这样就可以理清楚自己需要怎么做了。

命令集合

这里我都不想写了。很多常用的我就步介绍了。这里会更新一些不常用的,而且很有用的命令。

  • scp
  • mount
  • ln

后记

在学习Linux的过程中,我们每次打开命令行只要要反问自己前三个问题,尤其是强两个问题,必须要明确。

0%