初学UNIX T5

5.1 文件系统安全(访问权限)

在unixstuff目录中,输入
% ls -l
会输出很多有关目录的内容细节

初学UNIX T5_第1张图片

每一个文件和目录都有相关的访问权限,可以看出是什么用户什么组拥有这个文件。
-rwxrw-r-- 1 ee51ab beng95 2450 Sept29 11:52 file1
最左边一列的是十个字符组成的字符串,是由d,r,w,x,-,还有s或者S组成的,如果开头是d的

话就代表是一个目录,开头是-的话就代表是字符串的开始。
其余的九个字符显示的就是文件访问权限,三个一组加起来是九个。

  • 最左边的一组表示的文件所有者的权限
  • 中间的一组表示同一组的成员的权限
  • 最右边的一组表示所有其他人的权限
    符号r,w,等的含义根据文件或者目录来讲含义是不一样的。
文件的访问权限
  • r表示可以读取,就是有读和拷贝的权限
  • w表示写权限,就是可以修改文件
  • x表示可以执行的权限
目录的访问权限
  • r表示用户可以列印目录的内容
  • w意思是用户可以删除目录里的文件或者往目录里添加文件
  • x就可以访问目录里的文件,也就是可以读取目录里的所有文件

所以,想要读一个文件,首先要有这个文件所在的目录的执行权限。

一些例子
权限 意思
-rwxrwxrwx 可以对一个文件可读可写可执行,还有可删除
-rw------- 只有所有者可以读写,其他人不能读写也没有执行权(例如邮件)
5.2 更改访问权限
符号 意思
u user
g group
o other
a all
r read
w write(and delete)
x execute(and access directory)
+ add permission
- take away permission

chmod(changing a file mode)
只有所有者可以使用chmod来更改文件的权限。

符号 意思
u user
g group
o other
a all
r read
w write(and delete)
x execute(and access directory)
+ add permission
- take away permission

例如移除组成员和其他人对biglist文件的写和执行权限
% chmod go-rwx biglist

习题 5a

尝试改变文件science.txt和目录backups的访问权限

5.3 进程和任务

一个进程,就是以PID(进程ID)来定义的执行程序。可以使用以下信息来看看进程相关信息。
% ps
一个进程可以再前台运行,也可以在后台运行,也可以挂起。一般来说shell会在程序运行结束之后

才返回提示符。
一些进程所花的时间会很长很长,占据着终端屏幕,也不能做其他事情。后台运行一个进程就可以

马上回到UNIX提示符,可以操作其他任务了就。

运行后台进程

为了将进程后台运行,在命令行的结尾可以加一个&符号,例如,sleep命令可以使得计算机进行等

待,时间是10秒。
% sleep 10
在提示符出现之前会有十秒的时间间隔,在出现之前,什么也做不了。
也可以将这个等待命令放到后台运行
% sleep 10 &
[1] 6259
符号&会将进程放到后台运行,并且直接返回提示符,允许你在运行期间做其他的事情。
上面第一行是用户的输入命令,第二行是机器返回的信息,作业号和进程ID。用户被告知的是第一

个作业号(数字1),由方括号包裹。后面的PID会在进程完成的时候返回。后台运行在作业运行时

间很长的时候是非常有用的。

将前台的进程放到后台去

在提示符中输入,
% sleep 1000
你可以通过按下[Ctrl]+[z]来挂起进程,这个进程会进入一个作业的序列,jobs命令可以查看这个

序列。
[1] Suspended sleep 1000
[2] Running netscape
[3] Running matlab
将作业重新拉回前台运行,只要输入
% fg %jobnumber
比如,重新唤醒sleep 1000,
% fg %1
fg命令不带参数的话就会唤醒最近的一个挂起进程。

5.5 杀死一个进程

kill(终结或者中断一个进程)
有时候必须杀死一个进程,比如程序陷入无限循环。杀死一个前台的进程可以使用组合键

[Ctrl]+[c]。
% sleep 100
^C
杀死一个挂起的或者后台运行的进程可以使用kill命令
% kill %jobnumber
比如现在
% sleep 100 &
% jobs
如果他的作业号是4
% kill %4

ps(process status)
杀死一个进程,可以使用作业号或者使用进程ID,都可以
% sleep 1000 &
% ps

PID TT S TIME COMMAND
20077 pts/5 S 0:05 sleep 1000
21563 pts/5 T 0:00 netscape
21873 pts/5 S 0:25 nedit
通过进程号来杀死进程
% kill 20077
如果进程拒绝被终止,那就可以启用-9选项来强制执行
% kill -9 20077
注意:想要终止其他用户的进程是不可能的。

小结
命令 意思
ls -lag 列出所有文件访问权限
chmod [选项] 文件 改变文件的访问权限
命令 & 将命令后台运行
^c 组合键来终止前台进程
^z 组合键来挂起前台进程
bg 后台运行挂起的进程
jobs 列出现在的作业
fg %1 将作业1拿到前台运行
kill %1 终止作业1
ps 列出当前的进程
kill 26152 终止进程26152

你可能感兴趣的:(初学UNIX T5)