Shell命令和运行原理

shell命令及运行原理

命令行

命令行的结构如下:

1
[用户名@主机名 所处目录]提示符

对于提示符,root用户是#,普通用户是$

命令行的交互是通过 外壳程序 进行的,shell是介于用户和操作系统内核之间的命令行解释器,linux中的shell叫bash

linux权限

权限概述

linux权限分为:管理员用户普通用户

在系统中安装命令实际上就是将程序拷贝到/usr/bin/目录下

普通用户->超级用户(需要密码):su / su -

​ su 不进行路径变化,su -会进行路径变化

超级用户->普通用户(不需要密码):su 用户名

普通用户身份下 sudo + 指令 可以短暂为指令提权,第一次需要普通用户密码,第二次可以在一定时间内获得root权限

/etc/sudoers是类似于白名单的文件,允许普通用户拥有root权限

身份

	1. 拥有者
	2. 所属组:更精细化的权限管理
	3. other

ll命令

展示的文件信息中前9个字符,3个为一组,从前到后分别对应拥有者、所属组、other权限位

​ 每组权限位的3个字符分别对应 允许读允许写允许执行(r/-,w/-,x/-)

文件类型

文件信息中也包含了文件类型

- 普通文件(文本、可执行程序、库、图片、视频...)
d 目录文件
c 字符文件(键盘、显示器、终端...,输入的字符具有顺序性)
b 块设备文件(磁盘...)
l 链接文件
p 管道文件
s socket文件

linux下文件类型不靠后缀区分,系统不关心后缀,但是工具关心

权限修改

chmod

修改文件的访问权限

1
chmod [option] filename

拥有者(u),所属组(g),other(o),所有身份(a)

身份 +/- r/w/x 身份之间用”,”隔开

例如:

1
chmod u+r log.txt

9个字符当成3个8进制数,所以可以用如下方式修改权限:

1
chmod 666 log.txt

chown

修改文件的拥有者/所属组

1
chown [option] filename (需要root)
1
2
3
[options]:
拥有者名
拥有者:所属组

chgrp

修改文件的所属组

1
chgrp groupname filename (需要root)

权限规则

用户只能修改自己的文件权限
用户自己的文件的拥有者无权修改为别人除非是root账户
CentOS下,用户角色确定,只确定一次,顺序是:拥有者、所属组、other

root权限

root不受权限约束

目录权限

查看目录内容需要r权限

目录内创建文件需要w权限

进入目录需要x权限

文件能否被删除与目录文件的w权限有关

任何用户无权进入其他用户的家目录

粘滞位:

​ 使用 chmod +t dirname ,为目录创建粘滞位,该目录下自己的文件只能被自己删除

umask

权限掩码,直接执行可以查看文件默认权限

最终权限 = 起始权限 & (~umask)

按照以上计算规则,凡是在umask中出现的权限不应该出现在最终权限中

**umask + 目标权限**指令 用于设置umask

umask是内存级的,不会被彻底修改

安装软件

源代码安装
软件包安装 --- rpm
包管理器yum(centos) apt/apt-get(类ubuntu)