一.shell外壳程序
<1>Windows下,除了键盘操作电脑,也用鼠标点击,这是一种图形化界面,他就是一种shell外壳程序。
<2>Linux下,用命令行操作,也是一种shell外壳程序。
<3>为什么要有shell外壳程序
可以地把电脑的软硬件粗略划分:
操作系统对下管理好软硬件资源,对上为用户提供服务。当用户想要访问操作系统内部时,操作系统认为不安全,而且用户并不擅长使用操作系统内部的东西,但是又要满足用户的需要,对用户提供系统接口。shell外壳程序听取用户的需求,作为中间桥梁,分派任务给子进程,调用系统接口,完成用户的要求。shell外壳程序的存在:一是为了提供整机效率,二是保护操作系统。系统执行各种任务是让shell外壳程序,以子进程的方式完成,它专心管理好资源、分派任务即可。
二.权限
权限是基于人和事物所具有的属性的约束:
<1>人分为root和普通用户,权限对root是无意义的,对普通用户才有意义。
把人再细分:拥有者、所属组、other。
第一列中d表示是个目录,-表示是个文件。
一种身份的权限用三个字母表示,第一个 r/- 表示有读权限/无读权限;第二个 w/- 表示有写权限/无写权限;第三个 x/- 表示有执行权限/没有执行权限。
改变某种身份的权限,前提是有当前路径的所有权限,有两种方案:
第一种比较直观:
第二种:八进制方案,给三位八进制数字,一位数字表示一种身份的权限
000表示所有身份都没有权限,777表示所有身份都有权限
对于第一种方案,如果想要改所属组的权限,将u换成g,想要改other权限,u换成o即可。
如果要改变身份呢?
普通用户是不能给普通用户权限的,应该使用root给,或者添加普通用户进入信任列表,然后普通用户sudo给。
root账号下添加普通用户进信任列表:
默认一个目录被创建出来的权限是777,一个文件被创建出来的权限是666,但是实际情况不是这样,问什么呢?
实际目录的起始权限是775,文件的起始权限是664,原因就是umask
umask出现的不能再起始权限中出现-->(起始权限)&(~umask)
如果把umask置为0,再创建目录和文件时,就可以看到777和666
那么,如果在一个目录里,能够创建文件,删除文件,执行代码,需要什么权限?
权限只被认证一次,对于既是拥有者,又是所属组。
如果没有r权限呢?进入到目录里,将不能使用ls、cat 等读取指令
如果没有w权限呢?进入目录里将不能创建文件和目录
如果没有x权限呢?将不能进入目录
在权限的前面除了d、-还有其它类型:
p 管道文件
b 块设备
c 字符设备
粘滞位:
如果在一个目录里,让所有人都具有创建、修改、删除、执行的权限,即具有rwx权限,可那样的话,所有人都可以删除所有人的文件了。粘滞位的存在,就可以让目录的所有人删除的时候,只能删除创建的文件或者目录。一般而言,这个目录为root拥有,里面的大家属于other。
三.vim常见指令
首先,在一个新的普通用户先配置一下vim,把gcc和g++下载好。
配置:在码云上搜索VimForCpp,按照提示按照即可
再执行一下 sudo install -y gcc-g++
三种模式:底行模式、命令模式、编辑模式
Esc之后再按i进入编辑模式
再按Esc回到命令模式
按:进入底行模式 输入w保持 q退出 带!表示强制
命令模式的一些指令:
上下左右:k j h l
批量注释:ctrl v +上下左右 +A + // +Esc
批量去注释:ctrl v+上下左右 +d
删除:(n)dd
剪切:(n)dd+p
取行首:^
取行尾:$
w、b:在一行以单词移动
取列头:gg
取列尾:G
删除行的字符:(n)x
切换大小写:~
替换模式:R
替换字符:(n)r
底行模式
vs 另一个文件:分屏操作 ctrl ww 切换
!输入指令,比如mam …… 可以查看 然后回车就回到vim了