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 | [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)